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