俞宏霖 李明明 陳旭標 白炳斌
嘉興職業(yè)技術學院
基于51單片機的16*16 LED滾動式點陣顯示研究
俞宏霖 李明明 陳旭標 白炳斌
嘉興職業(yè)技術學院
以51單片機為主要芯片,通過16*16 LED點陣顯示展開研究。首先簡要介紹了16*16 LED點陣顯示系統(tǒng)的控制系統(tǒng)的硬件設計電路,詳細描述了16*16 LED點陣顯示的設計過程,著重描述了軟件延時、循環(huán)滾動顯示的函數(shù)等,從而實現(xiàn)16*16 LED點陣顯示的功能。
單片機 LED點陣 滾動顯示
LED點陣廣告牌在日常生活中隨處可見,其設計原理相對簡單:單片機為主芯片,通過LED點陣顯示點亮顯示屏。但是,傳統(tǒng)的點陣實驗大都為8*8點陣,這類點陣顯示系統(tǒng)重點在于硬件驅動的設計和硬件優(yōu)化方面。如何通過軟件設計來實現(xiàn)LED點陣顯示是當前單片機應用研究的熱點之一。
大量研究證明,LED點整設計方案的研究側重點主要有以下分類:基于有線設備的、基于無線設備的;基于AT89C51單片機的、基于AT89S51單片機的、基于STC單片機的;基于74LS245驅動的、基于74HC154驅動的。其中,以無線傳輸為基礎網絡設施,但是尚未實現(xiàn)文字的滾動顯示而則基于8*8顯示屏幕實現(xiàn)了文字的滾動顯示,其顯示范圍難以適用與較大點陣屏幕的需求。滿足了LED點陣屏16*64的顯示系統(tǒng),卻沒有實現(xiàn)文字的滾動顯示。
綜上所述,設計一款點陣顯示系統(tǒng)能滿足廣泛需求的點陣、同時提供文字顯示、單片機芯片簡單易操作的顯示系統(tǒng),具有一定的必要性。因此,首先設計了16*16點陣顯示的硬件電路,包括點陣顯示的字模設計和接線設計;其次,通過引入多個指針變量實現(xiàn)延時、循環(huán)和滾動文字顯示;最終完成16*16滾動點陣顯示系統(tǒng)。
以ATMEL AT89C51作為核心控制元件,4個8*8的LED模塊作為顯示元件實現(xiàn)16*16的點陣序列,增加一個74HC154作為列驅動器。系統(tǒng)的元件邏輯結構如圖1所示。
圖1 系統(tǒng)元件邏輯結構圖
為了實現(xiàn)漢字的顯示,采用字模軟件來完成漢字的顯示。在16*16 LED點陣顯示中,漢字以16行16列的LED矩陣式排列顯示出來。例如“分”這個字,如圖2所示。
圖2 16*16字模案例
將這個字的字模(C語言格式)復制到軟件中可以實現(xiàn)軟件設計的漢字顯示。但是,在AT89C51單片機的仿真平臺Proteus中只有8*8的LED,以“分”為例,見圖3。如何實現(xiàn)16*16 LED呢?
圖3 16*16點陣對應的單片機引腳接口
根據AT89C51單片機并行口的特點:以8位形式控制,單個端口為8位,如果一個漢字需要分為上、下兩個部分(兩部分都是由8×16組成)。
則采用8*8 LED實現(xiàn)16*16 LED點陣如圖4所示。保持原始位置放至在虛擬臺上,先向左旋轉九十度,左邊的引腳對應的是8位行,右邊的引腳對應的是列。將后面三個連接完成后,為了美觀,將4塊板靠緊,不留縫隙。
圖4 16*16仿真電路接線規(guī)則
為了能夠實現(xiàn)顯示功能,需要一個信號譯碼器,選擇74CH159芯片的目的在于:使用74HC154作為4—16線譯碼器,可以將信號解碼輸入并以低態(tài)掃描信號輸出,74CH159芯片的硬件結構如圖5所示。
圖5 74CH159芯片
傳統(tǒng)的點陣顯示實驗以硬件驅動效果為主,尚未在軟件設計方面做出較大改進。為了有效實現(xiàn)16*16點陣顯示的滾動效果,在軟件設計部分,基于傳統(tǒng)的點陣顯示系統(tǒng)增加了指針變量、偏移量,以實現(xiàn)不同延時和滾動效果。
3.1 系統(tǒng)主功能
通過設定指針變量p和偏移量movevalue實現(xiàn)圖像的滾動顯示。當偏移量增加,*(p+movevalue)會指向下一個數(shù)據,從而滿足滾動要求,程序設計如圖6所示。
圖6 系統(tǒng)主函數(shù)
3.2 延時函數(shù)
為了控制閃爍持續(xù)時間和滾動速度而設定延時函數(shù)。設置當前延時為20s,如圖7所示。
圖7 系統(tǒng)延時函數(shù)
3.3 循環(huán)滾動設置
實現(xiàn)文字在LED上重復不斷的顯示。為實現(xiàn)控制每次移位LED的閃次數(shù)設定total。當total為x時,每移位一次,LED閃爍x次。程序設計結果如圖8所示。
圖8 循環(huán)滾動設置
基于傳統(tǒng)的8*8 LED點陣廣告牌設計的不足,提出16*16 LED點陣顯示的設計和研究,考慮滾動設置、漢字顯示兩個功能,通過硬件設計與軟件研發(fā),實現(xiàn)了漢字滾動顯示的功能。下一步研究工作將著手于實現(xiàn)16*64 LED漢字滾動顯示的研究。
[1]王靜霞.主編.單片機應用技術(C語言版)[M].北京:電子工業(yè)出版社,2009.5
[2]曹旻罡. 基于51單片機的LED點陣顯示屏的設計[J]. 2013(26)
[3]李昭靜, 韓超, 郭雷崗. 基于AT89S51單片機的LED點陣顯示屏設計[J]. 電腦知識與技術. 2011. 07(11): 2706-2707
[4]章建, 陳迪, 唐曉平等. 基于無線傳輸?shù)腖ED點陣顯示系統(tǒng)[J]. 數(shù)字技術與應用, 2010(11):26-27
[5]鄔芝權.李騏.基于51系列單片機的LED顯示屏開發(fā)技術[M].北京航空航天大學出版社.2009.3
[6]詹新生.張江偉.基于單片機的16×64 LED點陣顯示屏的設計[J]. 電子元器件應用, 2009(8):8-10