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