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