基于單片機的LED搖搖棒的設計應用
根據(jù)系統(tǒng)分析,具體的硬件電路連如圖2 所示。在具體制作硬件的時候,將16 個3mm 高亮度紅色的LED 排列成整齊的一列。(點擊可查看大圖)
在proteus 下仿真調(diào)試的時候,給定的電源VCC 為5V,實際使用時用3 節(jié)干電池串聯(lián)4.5V 即可。
2 系統(tǒng)軟件設計
2.1 軟件設計思想
在搖動LED 棒的時候單片機必須單程傳送數(shù)據(jù),否則顯示的圖形會產(chǎn)生重影,影響視覺效果。因此當系統(tǒng)開始工作后通過滾珠開關(guān)的位置來使單片機實現(xiàn)單程傳送數(shù)據(jù)給LED.如果滾珠開關(guān)位于右邊,則進入外部中斷1 并將一變量置1,在變量為1期間讓單片機以一定的頻率將數(shù)據(jù)傳送給LED.如果滾珠開關(guān)位于左邊,則進入外部中斷0 并將變量置0.在這期間單片機不會傳送數(shù)據(jù)給LED.在送數(shù)據(jù)時,數(shù)據(jù)送完后應延時一段時間來使搖動時顯示的每個字不會太擁擠,之后再立刻熄滅LED 并開始重新判斷滾珠開關(guān)的位置。
2.2 軟件設計流程圖
通過軟件設計思想的分析,得到該系統(tǒng)的主程序流程如圖3所示。
系統(tǒng)開始運行,首先初始化整個系統(tǒng),然后等待外部中斷。當用手搖動到指定位置時,由滾珠開關(guān)觸發(fā)外部中斷,系統(tǒng)接收到外部中斷信號后,就傳送數(shù)據(jù),再經(jīng)過一段延時后開始顯示。顯示完成返回主程序,等待下一個搖動周期的到來。周而復始的晃動,則會顯示出相應的信息。
3 結(jié)論
在設計中通過調(diào)試,使用外部中斷讓數(shù)據(jù)單程傳輸很好的取消了重影。通過改變傳送數(shù)據(jù)方式:由一個字符接一個字符傳送改為將一組字符一起傳送,傳送結(jié)束后再延時等,使顯示的內(nèi)容在扇形區(qū)域內(nèi)完整的顯示出來,同時也解決了畫面連續(xù)出現(xiàn)沒有間斷的問題。所以得出,只要控制好數(shù)據(jù)傳輸方式以及每次傳輸數(shù)據(jù)間的延時就可以實現(xiàn)多種數(shù)據(jù)的顯示方法。整個系統(tǒng)達到了預期的目的,結(jié)構(gòu)簡單,趣味性好。經(jīng)過繼續(xù)研究可以應用到LED廣告等行業(yè)中。
評論