現代社會的不斷發展,也促進了高科技技術的不斷發展,給人們的日常生活帶來了更多的便利。而經常在晚會等娛樂節目場合出現發熱發光二極管也給人們帶來了新的體驗。
本文通過研究和設計一個利用事先編好程序來控制16 個LED ,并配合左右手的搖晃來顯示字符和簡易圖形的電子裝置(簡稱為“搖搖棒”),來傳遞有趣的信息。此裝置利用 對發光二極管進行控制。用滾珠開關檢測當前搖動狀態,單片機控制16 個發光二極管進行不同頻率的亮滅刷新,則只要搖動就可以可顯示輸出文字及圖案等信息,從而達到在該視覺平面上傳達信息的作用。
本設計的簡單有趣的LED 搖搖棒,它是基于單片機控制的電子裝置。具有按鍵進行畫面切換和消除重影等功能,能使畫面清晰顯示出來。它主要由單片機控制部分,LED 驅動部分,LED 顯示部分組成,其硬件組成框圖如圖1 所示。
本設計中通過一個畫面切換開關對顯示的內容進行切換。在設計中通過滾珠開關來控制搖搖棒只能向一邊搖動時顯示信息,否則會出現鏡像字或鏡像畫面,也就是重影的現象??蛇x的搖動控制開關有水銀開關和滾珠開關兩種。水銀開關穩定性較高,但安全性較差。滾珠開關雖然穩定性稍差,但不容易被打破,安全度很高??紤]到實際應用環境,故選用滾珠開關作為系統的搖動控制,由滾珠開關帶來的不穩定性可以通過軟件進行彌補。手動復位開關的功能是控制系統的啟停。
單片機最小系統作為整個系統的控制核心,它主要負責控制二極管的亮滅及顯示狀態。通過單片機的軟件編程及外部中斷,來控制搖搖棒的顯示效果。
此設計中根據LED 點陣的顯示原理來設計顯示部分。點陣的顯示分為行掃描與列掃描兩種,列掃描是將字模數組通過點陣屏的行驅動進行輸入,然后通過列對每一行進行掃描,當列為低(高)電平、行為高(低)電平時則表示該點為圖案的一部分,將其讀出、顯示。而本次設計的LED顯示棒數據傳輸原理與LED 點陣屏相似。可以把LED 顯示棒看成是LED 點陣屏中的一列。為了使顯示的圖案清晰,在設計中使用了16 個高亮度LED 管將它們排成一列,整個屏在靜止時也就相當于16 行×1 列。數據傳輸時同樣使用行送數據、列掃描。在擺動過程中,應用人眼的視覺暫留原理,被點亮的列不會很快的消失,而是隨著擺動的方向繼續向前移動,只要移動的速度高于視覺暫留的最短時間顯示內容就不會熄滅,這樣,一幅圖案也就可以這樣被“擺動”出來了。
根據系統分析,具體的硬件電路連如圖2 所示。在具體制作硬件的時候,將16 個3mm 高亮度紅色的LED 排列成整齊的一列。
在proteus 下仿真調試的時候,給定的電源VCC 為5V,實際使用時用3 節干電池串聯4.5V 即可。
在搖動LED 棒的時候單片機必須單程傳送數據,否則顯示的圖形會產生重影,影響視覺效果。因此當系統開始工作后通過滾珠開關的位置來使單片機實現單程傳送數據給LED.如果滾珠開關位于右邊,則進入外部中斷1 并將一變量置1,在變量為1期間讓單片機以一定的頻率將數據傳送給LED.如果滾珠開關位于左邊,則進入外部中斷0 并將變量置0.在這期間單片機不會傳送數據給LED.在送數據時,數據送完后應延時一段時間來使搖動時顯示的每個字不會太擁擠,之后再立刻熄滅LED 并開始重新判斷滾珠開關的位置。
通過軟件設計思想的分析,得到該系統的主程序流程如圖3所示。
系統開始運行,首先初始化整個系統,然后等待外部中斷。當用手搖動到指定位置時,由滾珠開關觸發外部中斷,系統接收到外部中斷信號后,就傳送數據,再經過一段延時后開始顯示。顯示完成返回主程序,等待下一個搖動周期的到來。周而復始的晃動,則會顯示出相應的信息。
在設計中通過調試,使用外部中斷讓數據單程傳輸很好的取消了重影。并且通過改變傳送數據方式:由一個字符接一個字符傳送改為將一組字符一起傳送,傳送結束后再延時等,使顯示的內容在扇形區域內完整的顯示出來,同時也解決了畫面連續出現沒有間斷的問題。所以得出,只要控制好數據傳輸方式以及每次傳輸數據間的延時就可以實現多種數據的顯示方法。整個系統達到了預期的目的,結構簡單,趣味性好。經過繼續研究可以應用到LED廣告等行業中。