基于AT89C51單片機(jī)控制LED顯示屏的電路設(shè)計(jì)
LED顯示屏廣泛應(yīng)用于工礦企業(yè)、學(xué)校、商場(chǎng)、店鋪、公共場(chǎng)所等進(jìn)行圖文顯示,廣告宣傳,信息發(fā)布。本文設(shè)計(jì)一種由4個(gè)16×16點(diǎn)陣LED模塊組成的顯示屏,由單片機(jī)作控制器,平滑移動(dòng)顯示任意多個(gè)文字或圖形符號(hào),本電路可級(jí)聯(lián)擴(kuò)展實(shí)現(xiàn)由任意多個(gè)16×16點(diǎn)陣LED模塊組成的顯示屏。
1 電路設(shè)計(jì)
控制電路由AT89C51單片機(jī)作控制器,顯示屏由4個(gè)16×16點(diǎn)陣LED模塊組成,每個(gè)16×16點(diǎn)陣LED模塊由4個(gè)8×8點(diǎn)陣LED模塊組成,用戶可根據(jù)需要擴(kuò)展增加任意多個(gè)16×16點(diǎn)陣LED模塊。8×8點(diǎn)陣LED模塊結(jié)構(gòu)如圖1所示,共8行8列,每個(gè)發(fā)光二極管放置在行線和列線的交叉點(diǎn)上,共64個(gè)發(fā)光二極管。當(dāng)某一列為高電平,某一行為低電平時(shí),則對(duì)應(yīng)的發(fā)光二極管點(diǎn)亮。
單片機(jī)P3.0引腳接串入并出移位寄存器74LS164(U10)的串行數(shù)據(jù)輸入端,8個(gè)74LS164(U10~U17)級(jí)聯(lián),P3.1引腳接8個(gè)74LSl64的時(shí)鐘脈沖輸入端;8個(gè)74LS164分別接8個(gè)鎖存器74LS373(U18~U25),8個(gè)鎖存器的數(shù)據(jù)輸出端接4個(gè)16×16點(diǎn)陣LED模塊的行線,每個(gè)16×16點(diǎn)陣LED模塊的行線是獨(dú)立控制的。P1.O接8個(gè)74LS164(U2~U9)的時(shí)鐘脈沖輸入端,P1.1接U2、U4、U6、U8的串行數(shù)據(jù)輸入端,每兩個(gè)74LSl64(U2和U3,U4和U5,U6和U7,U8和U9)級(jí)聯(lián);U2~U9的并行數(shù)據(jù)輸出端接4個(gè)16×16點(diǎn)陣LED模塊的64條列線。P1.2接所有74LSl64的清0端,P1.3接鎖存器的鎖存控制端。
2 工作原理
本電路利用串行通信口工作于方式0,同時(shí)利用P1.O和P1.1模擬串行輸出,來實(shí)現(xiàn)LED顯示屏字符平滑移動(dòng)顯示。由于LED模塊為16× 16點(diǎn)陣,所以字符點(diǎn)陣也為16×16點(diǎn)陣,即每個(gè)字符由32個(gè)字節(jié)即16個(gè)字?jǐn)?shù)據(jù)組成,每個(gè)字?jǐn)?shù)據(jù)決定了每列LED點(diǎn)亮的情況。16×16點(diǎn)陣字符數(shù)據(jù)由字符點(diǎn)陣提取軟件獲得。
首先單片機(jī)P1.1串行輸出一位二進(jìn)制位“1”,經(jīng)4組74LSl64給4個(gè)16×16點(diǎn)陣LED模塊的第1列送入一高電平,接著由P3.O串行輸出4個(gè)16×16點(diǎn)陣LED模塊的第1列行數(shù)據(jù),即Y1,Y17,Y33,Y49列的行數(shù)據(jù),經(jīng)74LS373鎖存后送LED顯示屏的行線,此時(shí)每個(gè)LED模塊第1列對(duì)應(yīng)的LED點(diǎn)亮。每列的行數(shù)據(jù)為1個(gè)字?jǐn)?shù)據(jù),4列共4個(gè)字?jǐn)?shù)據(jù),每個(gè)字?jǐn)?shù)據(jù)首字節(jié)在字符點(diǎn)陣數(shù)據(jù)表中的地址相差32,此時(shí)每個(gè)LED模塊顯示每個(gè)字符的第1列。接著P1.1串行輸出一位二進(jìn)制位“0”,經(jīng)4組74LS164移位后給4個(gè)LED模塊的第2列送入一高電平,再由P3.O串行輸出4個(gè)16× 16點(diǎn)陣LED模塊的第2列行數(shù)據(jù),即Y2,Y18,Y34,Y50列的行數(shù)據(jù),經(jīng)74LS373鎖存后送LED顯示屏的行線,此時(shí)每個(gè)LED模塊第2列對(duì)應(yīng)的LED點(diǎn)亮,即顯示每個(gè)字符的第2列。如此循環(huán),依次點(diǎn)亮每個(gè)LED模塊每列對(duì)應(yīng)的LED,直到點(diǎn)亮每個(gè)LED模塊的第16列,即依次顯示每個(gè)字符的各列。只要每列交替顯示的時(shí)間適當(dāng),利用人眼的視覺暫留特性,看上去16列LED同時(shí)點(diǎn)亮,即看上去整個(gè)字符同時(shí)顯示。然后再從第1列依次掃描顯示至16列,如此循環(huán)多次,以確保顯示出的字符具有足夠的亮度。
為實(shí)現(xiàn)字符平滑移動(dòng)顯示的效果,在上面實(shí)現(xiàn)的4個(gè)字符靜態(tài)顯示一定時(shí)間后,再次掃描顯示時(shí),每個(gè)LED模塊的第1列從每個(gè)字符的第2列數(shù)據(jù)開始掃描顯示,即第1個(gè)LED模塊顯示第1個(gè)字符的第2列、第3列、……、第16列和第2個(gè)字符的第1列,第2個(gè)LED模塊顯示第2個(gè)字符的第2列、第3列、……、第16列和第3個(gè)字符的第1列、第2列、……。當(dāng)?shù)谌螔呙栾@示時(shí),每個(gè)LED模塊的第1列從每個(gè)字符的第3列數(shù)據(jù)開始掃描顯示,即第1個(gè)LED模塊顯示第1個(gè)字符的第3列、第4列、……、第16列和第2個(gè)字符的第1列、第2列,第2個(gè)LED模塊顯示第2個(gè)字符的第3列、第4列、……、第16列和第3個(gè)字符的第1列、第2列、……。如此實(shí)現(xiàn)了字符的平滑移動(dòng)顯示。
3 程序設(shè)計(jì)
根據(jù)以上電路設(shè)計(jì)及工作原理,繪制出本電路的控制程序流程圖。按程序流程圖編寫出控制程序,用Wave或Keil軟件調(diào)試通過后,產(chǎn)生目標(biāo)代碼文件。
4 電路仿真
將目標(biāo)代碼文件加入用Proteus軟件繪制的LED顯示屏控制電路仿真圖中的單片機(jī)中,仿真運(yùn)行,運(yùn)行結(jié)果如圖4所示。
基于AT89C51單片機(jī)控制LED顯示屏的電路設(shè)計(jì)
5 結(jié)語
該LED顯示屏控制電路用單片機(jī)作為控制器,采用串行移位輸出方式,實(shí)現(xiàn)了一行字符的平滑移動(dòng)顯示,在實(shí)際應(yīng)用時(shí)還應(yīng)加上相關(guān)驅(qū)動(dòng)電路。本電路可擴(kuò)展實(shí)現(xiàn)由任意多個(gè)16×16點(diǎn)陣LED模塊組成的LED顯示屏顯示控制。經(jīng)實(shí)際應(yīng)用表明,該電路穩(wěn)定可靠,效果良好。