四字LED點(diǎn)陣顯示屏的制作
隨著LED的快速發(fā)展,大街小巷到處都可見到行行色色LED廣告屏。它以其高亮度,低功耗。顯示內(nèi)容易改等特點(diǎn)備受青睞,于是筆者動(dòng)手制作了一個(gè)四字LED點(diǎn)陣顯示屏,現(xiàn)介紹給大家,以供參考。
一、顯示漢字原理
我們以UCDOS中文宋體"大"字庫為例,如圖1所示。每一個(gè)字由16行16列的點(diǎn)陣組成顯示。
即國(guó)標(biāo)漢字庫中的每一個(gè)字均由256點(diǎn)陣來表示。
我們可以把每一個(gè)點(diǎn)理解為一個(gè)像素,而把每一個(gè)字的字形理解為一幅圖像。事實(shí)上這個(gè)漢字屏不僅可以顯示漢字,也可以顯示256像素的圖片。
圖1顯示宋體"大"字實(shí)例。
圖2是8X8點(diǎn)陣的原理圖。其實(shí)就是64個(gè)發(fā)光二極管。以8X8矩陣的形式連接在一起,要完整顯示一個(gè)漢字需要256個(gè)像素點(diǎn),所以要四塊8×8點(diǎn)陣拼起來用,變成16×16個(gè)點(diǎn)。其點(diǎn)陣顯示的原理是將51單片機(jī)的P0 P2口接點(diǎn)陣的16個(gè)行,然后第0列送高電平。單片機(jī)是低電平有效。也就是說現(xiàn)在P0 P2的16個(gè)口中那個(gè)口有低電平,其相應(yīng)的LED亮,現(xiàn)在還以"大"為例P0 El送11011111,P2 El送1111 1111既PO=0xdf,P2=0xff,然后延時(shí)一段時(shí)間,關(guān)閉第0列,打開第1列,既送高電平,此時(shí)P0=0xdf.P2=0xbf,再延時(shí)一段時(shí)問……一直到16列送完。再重復(fù)從第0列循環(huán)。利用人眼的視覺暫留效應(yīng),感覺顯示的是穩(wěn)定的漢字。
圖2 8x8點(diǎn)陣的原理圖
二、采用行掃描列送數(shù)方式
我們?cè)谶@里采用行掃描列送數(shù)的方式(如圖3所示),有點(diǎn)陣的行線接在一起,變成了16根行線。
圖3行掃描列送數(shù)框圖
掃描16根行線達(dá)到整屏掃描的效果,硬件可以采用4線--16線譯碼器74LSl54,代替PO、P2的循環(huán)掃描,由于筆者手頭沒有74LSl54故采用兩個(gè)3線--8線的譯碼器74LSl38串接實(shí)現(xiàn),如圖4所示。
行掃描共用五根線實(shí)現(xiàn)(A、B、C、D和使能端G1),其中D為第一塊138的E3和第二塊138的E1并接,G1為第一塊138的E2和第二塊138的E2并接。(低電平有效)。
列上我們用串口轉(zhuǎn)并口的移位寄存器,可以達(dá)到用一根線就可以實(shí)現(xiàn)數(shù)據(jù)的傳輸,這在硬件上無疑是非常經(jīng)濟(jì)的。這樣各行的顯示就分成了兩部分既數(shù)據(jù)的傳輸和數(shù)據(jù)顯示。但是串行傳輸缺點(diǎn)就是慢,需等待數(shù)據(jù)傳送完成,才打開相應(yīng)的行,為解決串行傳輸中列數(shù)據(jù)傳輸和顯示時(shí)間的矛盾問題,可以采用重疊的方法。即顯示一行數(shù)據(jù)的同時(shí)送下一行的數(shù)據(jù)。這樣硬件就需要有鎖存的功能。
經(jīng)上述分析。列儲(chǔ)存器應(yīng)具備兩種功能:一是串入并出的移位功能,二是具有并行鎖存的功能。所以筆者采用了具有串入并出并帶有鎖存的移位寄存器74LS595.這樣,本行的顯示數(shù)據(jù)打入鎖存器顯示時(shí),串13寄存器就開始下一行的數(shù)據(jù)的移位。從而不會(huì)影響本行的顯示時(shí)間,大大的提高了顯示的亮度。
三、硬件選擇
主控芯片選擇的是STC89C52單片機(jī),內(nèi)部帶有8k的儲(chǔ)存儲(chǔ)存空間,采用12MHz的晶振。提高刷新頻率,使顯示更加穩(wěn)定。同時(shí)采用P2"O~P2'3做行循環(huán)掃描,P247為譯碼器的使能端,P1"5為發(fā)數(shù)控制信號(hào),TXD為移位脈沖輸出端,RXD為顯示數(shù)據(jù)輸出端。P0、P2暫時(shí)空閑。用于擴(kuò)展系統(tǒng)ROM和RAM.顯示原理圖如圖5(僅參考并非真實(shí)電路圖)。
圖5
主要元器件的選擇:行掃描芯片為兩塊74LSl38.移位寄存器為74LS595,晶振為12MHz,點(diǎn)陣限流電阻為470Q(改變大小可改變屏的亮度)。行驅(qū)動(dòng)三極管為8550.
四、軟件設(shè)計(jì)
軟件流程圖如圖6所示。
圖6軟件流程圖
軟件的設(shè)計(jì)主要由主程序,初始化子程序,中斷掃描子程序,顯示程序等組成。C語言由于具有移植性強(qiáng)??梢詫?shí)現(xiàn)復(fù)雜運(yùn)算,函數(shù)化結(jié)構(gòu),可以直接進(jìn)行位運(yùn)算,非常適合初學(xué)者學(xué)習(xí)等優(yōu)點(diǎn)。所以本程序采用C語言編寫。在KEIL 51環(huán)境下調(diào)試,PROTEuS下仿真。
部分程序解釋如下:
初始化程序:
中斷掃描程序:
程序仿真效果圖如圖7所示。
圖7
注:由于點(diǎn)陣的接線用了網(wǎng)絡(luò)標(biāo)號(hào),所以屏中出現(xiàn)了八條紅色的豎線,影響了仿真效果。
圖8
五、硬件的焊接與調(diào)試
顯示部分采用一塊帶驅(qū)動(dòng)電路,主控板一塊,顯示板由于線路復(fù)雜、接線多、所以采用雙面布線。
主控板其實(shí)就一個(gè)STC89C52 的單片機(jī),外接最小系統(tǒng)(晶振和復(fù)位),并引出九根線控制線。比較簡(jiǎn)單,這里采用萬能實(shí)驗(yàn)板制作,如圖9 所示。
圖9 實(shí)物照片
顯示結(jié)果如圖10 所示。
圖10 顯示結(jié)果示意
結(jié)束語
最后需要說明的是,該顯示屏的不足之處就是漢字的編碼和程序一起燒上。顯示內(nèi)容修改還需重新再燒一次。如有高手能編寫上位機(jī)軟件與單片機(jī)通信,利用PC 機(jī)在線修改顯示內(nèi)容,則會(huì)使條屏更加簡(jiǎn)單實(shí)用。