一種LED點陣顯示控制的設(shè)計方案
由于單片機技術(shù)的不斷發(fā)展以及高亮度LED發(fā)光管的出現(xiàn),使得大屏幕高亮度LED電子廣告屏成為可能。與傳統(tǒng)的霓虹燈廣告相比,LED電子廣告屏在顯示效果以及可修改性上都有著無法比擬的優(yōu)勢,而且單片機的日益平民化以及LED技術(shù)的不斷創(chuàng)新,使得高亮度高清晰的LED點陣廣告牌與傳統(tǒng)霓虹燈廣告牌的成本日益接近。另外,SMT技術(shù)飛速發(fā)展,開關(guān)電源的大規(guī)模使用,使其無論在體積上還是在可靠性上都比傳統(tǒng)的霓虹燈廣告有明顯的優(yōu)勢,為其在特殊領(lǐng)域的應(yīng)用奠定了基礎(chǔ)。
1 設(shè)計原理與設(shè)計方案
1.1 設(shè)計原理
對于點陣型LED顯示可以采用共陰極或共陽極,本系統(tǒng)采用共陽極,其硬件電路如圖1所示。當(dāng)行上有一正選通信號時,列選端四位數(shù)據(jù)為0的發(fā)光二極管便導(dǎo)通點亮。這樣只需要將圖形或文字的顯示編碼作為列信號跟對應(yīng)的行信號進(jìn)行逐次掃描,就可以逐行點亮點陣。只要掃描速度大于24 Hz,由于掃描時間很快,人眼的視覺有暫留效應(yīng),就可以看到顯示的是完整的圖形或文字。
圖1 硬件電路
本次設(shè)計要完成基于單片機的LED點陣顯示控制的設(shè)計,總體方案是以單片機為控制核心,通過行列驅(qū)動電路,在LED點陣屏上以靜止、左移、右移等方式顯示文字。在設(shè)計過程中驅(qū)動電路運用動態(tài)掃描顯示,動態(tài)掃描簡單地說就是逐行輪流點亮,這樣掃描驅(qū)動電路就可以實現(xiàn)多行(比如16行)的同名列共用一套列驅(qū)動器。由于動態(tài)掃描顯示(并行傳輸)的局限性,故采用動態(tài)掃描顯示(串行傳輸),顯示模式用LED點陣屏模塊作顯示屏。
1.2 總體方案
本次設(shè)計單片機采用AT89C51,行電路使用逐行掃描的方式,列電路使用串入并出的數(shù)據(jù)傳輸方式,顯示屏使用由16x16的點陣LED組成的點陣模塊。使用到的芯片有傳入并出移位寄存器74LS595、4線-16線譯碼器74LS154和三極管8550。總體設(shè)計框圖如圖2所示。
圖2 總體設(shè)計框圖
2 系統(tǒng)硬件設(shè)計
硬件電路大致上可以分成單片機系統(tǒng)及外圍電路、列驅(qū)動電路和行驅(qū)動電路以及LED點陣陣列3部分,用到的芯片有單片機AT89C51,4線-16線譯碼器74LS154,帶鎖存功能的串入并出移位寄存器74LS595。
2.1 單片機系統(tǒng)及外圍電路
單片機采用AT89C51。系統(tǒng)采用12 MHz或更高頻率的晶振,以獲得較高的刷新頻率,使顯示更穩(wěn)定。單片價的串口與列驅(qū)動器相連,用來送顯示數(shù)據(jù)。P1口低4位與行驅(qū)動器相連,送出行選信號,P1.5~P1.7口則用來發(fā)送控制信號。P0和P2口空閑,在必要時可以擴展系統(tǒng)的ROM和RAM。
2.2 時鐘脈沖電路
AT89C51的最高時鐘脈沖頻率已經(jīng)達(dá)到24 MHz,它內(nèi)部已經(jīng)具備了振蕩電路,只要在AT89C51的兩個引腳(即19、18腳)連接到簡單的石英振蕩晶體的2個管腳即可,同時晶體的2個管腳也要用30 pF的電容耦合到地,如圖3所示。
圖3 時鐘脈沖電路
2.3 復(fù)位電路
AT89C51的復(fù)位引腳(RESET)是第9腳,當(dāng)此引腳連接高電平超過2個機器周期時,即可產(chǎn)生復(fù)位的動作。以24 MHz的時鐘脈沖為例,每個時鐘脈沖為05μs,兩個機器周期為1 μs,因此,在第9腳上連接1個2μs的高電平脈沖,即可產(chǎn)生復(fù)位動作。最簡單的就是只有1個電阻跟1個電容就可構(gòu)成可靠復(fù)位的電路,電阻一般選擇10 kΩ,電容一般選擇10μF,如圖4所示。
圖4 復(fù)位電路
2.4 點陣顯示驅(qū)動電路設(shè)計
由于題目要求不允許使用集成驅(qū)動電路,但不采取驅(qū)動電路,顯示屏不穩(wěn)定、亮度不高,故采取分立元件三極管作驅(qū)動電路,驅(qū)動電路如圖5所示。
圖5 點陣顯示驅(qū)動電路
3 系統(tǒng)軟件設(shè)計
顯示屏軟件的主要功能是向顯示屏提供顯示數(shù)據(jù),并產(chǎn)生各種控制信號,使屏幕按設(shè)計的要求顯示。
根據(jù)軟件分層次設(shè)計的原理,可把顯示屏的軟件系統(tǒng)分成兩大層:第一層是底層的顯示驅(qū)動程序,第二層是上層的系統(tǒng)應(yīng)用程序。顯示驅(qū)動程序負(fù)責(zé)向點陣屏傳送特定組合的顯示數(shù)據(jù),并負(fù)責(zé)產(chǎn)生行掃描信號和其他控制信號,配合完成LED顯示屏的掃描顯示工作。顯示驅(qū)動程序由顯示子程序?qū)崿F(xiàn);系統(tǒng)環(huán)境設(shè)置(初始化)由系統(tǒng)初始化程序完成;顯示效果處理等工作,則由主程序通過調(diào)用子程序來實現(xiàn)。
3.1 顯示驅(qū)動程序
顯示驅(qū)動程序在進(jìn)入中斷后首先要對定時器T0重新賦初值,以保證顯示屏刷新率的穩(wěn)定。16行掃描格式的顯示屏刷新率(幀頻)的計算公式如下:
其中:F為晶振頻率;T為定時器T0初值(工作在16位定時器模式)。
其次,顯示驅(qū)動程序查詢當(dāng)前點亮的行號,從顯示緩存區(qū)內(nèi)讀取下一行的顯示數(shù)據(jù),并通過串口發(fā)送給移位寄存器。
為消除在切換行顯示數(shù)據(jù)時產(chǎn)生的拖尾現(xiàn)象,驅(qū)動程序先要關(guān)閉顯示屏,即消隱,等顯示數(shù)據(jù)輸入輸出鎖存器后,再輸出新的行號,重新打開顯示。圖6所示為顯示驅(qū)動程序(顯示屏掃描函數(shù))流程圖。
圖6 顯示驅(qū)動程序流程圖
3.2 系統(tǒng)主程序
系統(tǒng)主程序開始以后,首先是對系統(tǒng)環(huán)境初始化,包括設(shè)置串口、定時器、中斷、端口。然后以“卷簾出”效果顯示文字或圖案,停留幾秒鐘,接著向上滾動顯示漢字或圖形,停留幾秒后,再左移顯示漢字或圖形、右移顯示等。最后以“卷簾入”效果隱去文字。圖7所示為系統(tǒng)主程序的流程圖。
圖7 系統(tǒng)主程序的流程圖
4 軟件仿真與硬件實現(xiàn)
4.1 軟件仿真
本設(shè)計的核心單元是單片機AT89C51,所以選用單片機仿真軟件Proteus 7.O和Keil對整體設(shè)計進(jìn)行軟件仿真。
運行Proteus中的ISIS模塊對設(shè)計好的原理圖進(jìn)行布圖,仿真電路如圖8所示。
圖8 仿真電路
將完整的源程序Copy到Keil仿真開發(fā)環(huán)境里,運行調(diào)試。把編譯好的源程序加載到仿真電路圖中,運行程序,在點陣顯示屏上按設(shè)計的顯示效果依次以“卷簾入”、“左卷簾”、“右卷簾”、“卷簾出”顯示結(jié)果正確。
4.2 硬件實現(xiàn)
軟件仿真通過后,充分證明了方案的正確性與可行性。按照設(shè)計方案進(jìn)行硬件電路的搭建并進(jìn)行調(diào)試。結(jié)果正確如下圖9所示。
圖9 硬件實物圖
5 結(jié)束語
本文通過設(shè)計基于單片機的LED點陣顯示控制的設(shè)計,對LED顯示模塊單元如何進(jìn)行行列信號控制及信號傳輸中的驅(qū)動問題進(jìn)行了研究。給出了硬件的原理以及連接的方法,軟件的設(shè)計流程以及部分代碼,并給出了完整的電路圖,結(jié)果可以正常顯示漢字、圖片信息,并且可動態(tài)顯示。