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