俞宏霖 李明明 陳旭標 白炳斌
嘉興職業(yè)技術(shù)學(xué)院
基于51單片機的16*16 LED滾動式點陣顯示研究
俞宏霖 李明明 陳旭標 白炳斌
嘉興職業(yè)技術(shù)學(xué)院
以51單片機為主要芯片,通過16*16 LED點陣顯示展開研究。首先簡要介紹了16*16 LED點陣顯示系統(tǒng)的控制系統(tǒng)的硬件設(shè)計電路,詳細描述了16*16 LED點陣顯示的設(shè)計過程,著重描述了軟件延時、循環(huán)滾動顯示的函數(shù)等,從而實現(xiàn)16*16 LED點陣顯示的功能。
單片機 LED點陣 滾動顯示
LED點陣廣告牌在日常生活中隨處可見,其設(shè)計原理相對簡單:單片機為主芯片,通過LED點陣顯示點亮顯示屏。但是,傳統(tǒng)的點陣實驗大都為8*8點陣,這類點陣顯示系統(tǒng)重點在于硬件驅(qū)動的設(shè)計和硬件優(yōu)化方面。如何通過軟件設(shè)計來實現(xiàn)LED點陣顯示是當(dāng)前單片機應(yīng)用研究的熱點之一。
大量研究證明,LED點整設(shè)計方案的研究側(cè)重點主要有以下分類:基于有線設(shè)備的、基于無線設(shè)備的;基于AT89C51單片機的、基于AT89S51單片機的、基于STC單片機的;基于74LS245驅(qū)動的、基于74HC154驅(qū)動的。其中,以無線傳輸為基礎(chǔ)網(wǎng)絡(luò)設(shè)施,但是尚未實現(xiàn)文字的滾動顯示而則基于8*8顯示屏幕實現(xiàn)了文字的滾動顯示,其顯示范圍難以適用與較大點陣屏幕的需求。滿足了LED點陣屏16*64的顯示系統(tǒng),卻沒有實現(xiàn)文字的滾動顯示。
綜上所述,設(shè)計一款點陣顯示系統(tǒng)能滿足廣泛需求的點陣、同時提供文字顯示、單片機芯片簡單易操作的顯示系統(tǒng),具有一定的必要性。因此,首先設(shè)計了16*16點陣顯示的硬件電路,包括點陣顯示的字模設(shè)計和接線設(shè)計;其次,通過引入多個指針變量實現(xiàn)延時、循環(huán)和滾動文字顯示;最終完成16*16滾動點陣顯示系統(tǒng)。
以ATMEL AT89C51作為核心控制元件,4個8*8的LED模塊作為顯示元件實現(xiàn)16*16的點陣序列,增加一個74HC154作為列驅(qū)動器。系統(tǒng)的元件邏輯結(jié)構(gòu)如圖1所示。

圖1 系統(tǒng)元件邏輯結(jié)構(gòu)圖
為了實現(xiàn)漢字的顯示,采用字模軟件來完成漢字的顯示。在16*16 LED點陣顯示中,漢字以16行16列的LED矩陣式排列顯示出來。例如“分”這個字,如圖2所示。

圖2 16*16字模案例
將這個字的字模(C語言格式)復(fù)制到軟件中可以實現(xiàn)軟件設(shè)計的漢字顯示。但是,在AT89C51單片機的仿真平臺Proteus中只有8*8的LED,以“分”為例,見圖3。如何實現(xiàn)16*16 LED呢?

圖3 16*16點陣對應(yīng)的單片機引腳接口
根據(jù)AT89C51單片機并行口的特點:以8位形式控制,單個端口為8位,如果一個漢字需要分為上、下兩個部分(兩部分都是由8×16組成)。
則采用8*8 LED實現(xiàn)16*16 LED點陣如圖4所示。保持原始位置放至在虛擬臺上,先向左旋轉(zhuǎn)九十度,左邊的引腳對應(yīng)的是8位行,右邊的引腳對應(yīng)的是列。將后面三個連接完成后,為了美觀,將4塊板靠緊,不留縫隙。

圖4 16*16仿真電路接線規(guī)則
為了能夠?qū)崿F(xiàn)顯示功能,需要一個信號譯碼器,選擇74CH159芯片的目的在于:使用74HC154作為4—16線譯碼器,可以將信號解碼輸入并以低態(tài)掃描信號輸出,74CH159芯片的硬件結(jié)構(gòu)如圖5所示。

圖5 74CH159芯片
傳統(tǒng)的點陣顯示實驗以硬件驅(qū)動效果為主,尚未在軟件設(shè)計方面做出較大改進。為了有效實現(xiàn)16*16點陣顯示的滾動效果,在軟件設(shè)計部分,基于傳統(tǒng)的點陣顯示系統(tǒng)增加了指針變量、偏移量,以實現(xiàn)不同延時和滾動效果。
3.1 系統(tǒng)主功能
通過設(shè)定指針變量p和偏移量movevalue實現(xiàn)圖像的滾動顯示。當(dāng)偏移量增加,*(p+movevalue)會指向下一個數(shù)據(jù),從而滿足滾動要求,程序設(shè)計如圖6所示。


圖6 系統(tǒng)主函數(shù)
3.2 延時函數(shù)
為了控制閃爍持續(xù)時間和滾動速度而設(shè)定延時函數(shù)。設(shè)置當(dāng)前延時為20s,如圖7所示。

圖7 系統(tǒng)延時函數(shù)
3.3 循環(huán)滾動設(shè)置
實現(xiàn)文字在LED上重復(fù)不斷的顯示。為實現(xiàn)控制每次移位LED的閃次數(shù)設(shè)定total。當(dāng)total為x時,每移位一次,LED閃爍x次。程序設(shè)計結(jié)果如圖8所示。

圖8 循環(huán)滾動設(shè)置
基于傳統(tǒng)的8*8 LED點陣廣告牌設(shè)計的不足,提出16*16 LED點陣顯示的設(shè)計和研究,考慮滾動設(shè)置、漢字顯示兩個功能,通過硬件設(shè)計與軟件研發(fā),實現(xiàn)了漢字滾動顯示的功能。下一步研究工作將著手于實現(xiàn)16*64 LED漢字滾動顯示的研究。
[1]王靜霞.主編.單片機應(yīng)用技術(shù)(C語言版)[M].北京:電子工業(yè)出版社,2009.5
[2]曹旻罡. 基于51單片機的LED點陣顯示屏的設(shè)計[J]. 2013(26)
[3]李昭靜, 韓超, 郭雷崗. 基于AT89S51單片機的LED點陣顯示屏設(shè)計[J]. 電腦知識與技術(shù). 2011. 07(11): 2706-2707
[4]章建, 陳迪, 唐曉平等. 基于無線傳輸?shù)腖ED點陣顯示系統(tǒng)[J]. 數(shù)字技術(shù)與應(yīng)用, 2010(11):26-27
[5]鄔芝權(quán).李騏.基于51系列單片機的LED顯示屏開發(fā)技術(shù)[M].北京航空航天大學(xué)出版社.2009.3
[6]詹新生.張江偉.基于單片機的16×64 LED點陣顯示屏的設(shè)計[J]. 電子元器件應(yīng)用, 2009(8):8-10