張波+丁樂
[摘 要]LED點(diǎn)陣屏諸多優(yōu)點(diǎn),在當(dāng)今社會(huì)應(yīng)用越來越廣,市場前景廣闊。文章深入研究分析了LED點(diǎn)陣屏的構(gòu)成及工作原理,以STC15F2K60S2單片機(jī)為控制核心,通過兩片74HC138芯片構(gòu)成4線-16譯碼器進(jìn)行行控制,通過八片74HC595串接以串入并出方式進(jìn)行列控制,設(shè)計(jì)制作出了16×64點(diǎn)陣屏,并指出了點(diǎn)陣屏擴(kuò)展方法和顯示內(nèi)容更新的方法。實(shí)踐證明本設(shè)計(jì)穩(wěn)定可靠,性價(jià)比高,有很高的實(shí)用價(jià)值。
[關(guān)鍵詞]點(diǎn)陣屏;掃描;串入并出;動(dòng)態(tài)顯示
[DOI]10.13939/j.cnki.zgsc.2017.15.290
1 引 言
LED點(diǎn)陣屏是一種文字符號(hào)與簡單圖形的顯示器,具有性價(jià)比高、壽命長、亮度高、易于控制、顯示靈活多樣、傳播距遠(yuǎn)[1]等許多優(yōu)點(diǎn),在現(xiàn)代社會(huì)被廣泛應(yīng)用。物流領(lǐng)域、商鋪、銀行、證券市場、學(xué)校、體育館、車站、碼頭、公交車、火車等很多地方均能經(jīng)常見到LED顯示屏,且隨著社會(huì)信息化的進(jìn)程,LED顯示屏應(yīng)用越來越廣。
2 LED點(diǎn)陣構(gòu)成及工作原理
LED點(diǎn)陣屏內(nèi)部是由發(fā)光二極管構(gòu)成。以簡單的8×8點(diǎn)陣屏為例。8×8點(diǎn)陣屏共有64個(gè)發(fā)光二極管構(gòu)成,每行和每列的二極管數(shù)目者是8個(gè),每個(gè)二極管都位于行和列的交叉處。每行的二極管共陽(或共陰)連接后用一個(gè)引腳引出,每列的二極管共陰(或共陽連接后也同樣用一個(gè)引腳引出。任意一個(gè)二極管要點(diǎn)亮,要它所在和行和列信號(hào)同時(shí)有效才行。8×8點(diǎn)陣屏是一種很簡單基礎(chǔ)的點(diǎn)陣屏,但用8×8點(diǎn)陣屏可很方便地組成其他類型的點(diǎn)陣屏。比如32×64點(diǎn)陣屏,每行用8個(gè)8×8點(diǎn)陣屏,每列用4個(gè)8×8點(diǎn)陣屏組合構(gòu)成即可。
要顯示一個(gè)符號(hào),先分析出點(diǎn)陣上哪些二極管點(diǎn)亮可以顯示該符號(hào)。行信號(hào)控制:顯示時(shí)選中一行,使要顯示的那一行信號(hào)有效,其他的行信號(hào)無效,這樣只有選中的那一行的二極管才有可能被點(diǎn)亮;列信號(hào)控制方法:根據(jù)選中行需要點(diǎn)亮的二極管,配行行信號(hào)控制同進(jìn)送出列信號(hào),需要點(diǎn)亮的二極管所在的列信號(hào)有效,不需要點(diǎn)亮的二極管列信號(hào)無效(即不能點(diǎn)亮二極管),這樣選中的那一行的需要點(diǎn)亮的二極管就會(huì)被點(diǎn)亮。比如要點(diǎn)亮第二行位于第一列和第三列的兩個(gè)二極管,行信號(hào)使第二行的信號(hào)有效,其他行信號(hào)無效,同時(shí)送出列信號(hào),列信信號(hào)使第一列和第三列信號(hào)有效,其他的列信號(hào)無效,這樣第二行位于第一列和第三列的兩個(gè)二極管就被點(diǎn)亮了。選中某一行一小段時(shí)間后,接下來選中下一行,同樣的方法送出相應(yīng)的列信號(hào),每行都如此依次顯示,最后一行顯示完了之后再顯示第一行,循環(huán)進(jìn)行。雖然實(shí)際上每行是不同時(shí)間點(diǎn)亮的,但每行點(diǎn)亮的時(shí)間都極短,比如每行點(diǎn)亮2毫秒,加上人眼視覺滯后現(xiàn)象,人們看上去會(huì)感覺到需要點(diǎn)亮的二極管時(shí)是同時(shí)點(diǎn)亮的。每行點(diǎn)亮的時(shí)間過長會(huì)有閃爍現(xiàn)象,點(diǎn)亮的時(shí)間過短亮度會(huì)影響發(fā)光亮度,所以要恰當(dāng)控制每行點(diǎn)亮的時(shí)間。實(shí)現(xiàn)顯示內(nèi)空的移動(dòng)顯示,實(shí)際上是把顯示的內(nèi)容移動(dòng)的方向每移動(dòng)一列作為新的顯示內(nèi)容按照一定的時(shí)間間隔依次顯示出來。比如時(shí)間間隔1秒顯示。要顯示的內(nèi)容顯示1秒后,把顯示的內(nèi)容移動(dòng)一列作為新的顯示內(nèi)容下一秒顯示。顯示的內(nèi)容移動(dòng)一列后行的控制方式不變,列信號(hào)控制方式也一樣,只是每次送出的內(nèi)容和前一秒有所區(qū)別,是顯示內(nèi)容移動(dòng)一列后對(duì)應(yīng)的編碼。這種顯示方式稱之為行掃描,也就是任意時(shí)間段只有某一行的二極管可能被點(diǎn)亮,列控制是送出該行顯示對(duì)應(yīng)的數(shù)據(jù)。[2]相應(yīng)地,還有列掃描,控制時(shí)行和列的控制方式和行掃描時(shí)對(duì)調(diào)一下。
3 STC15F2K60S2單片機(jī)及其他主要器件介紹
單片機(jī)種類很多,其中常用的80C51系列單片機(jī)都是在Intel公司MCS-51基礎(chǔ)上發(fā)展起來的。晶宏STC15F2K60S2單片機(jī)是其STC15系列單片機(jī)中的一種,是新一代的增強(qiáng)型51單片機(jī)。[3]STC15單片機(jī)主要特點(diǎn)有:增強(qiáng)型51內(nèi)核,單時(shí)鐘機(jī)器周期,比傳統(tǒng)的51單片機(jī)快7~12倍;3個(gè)可自動(dòng)重載的16位定時(shí)/計(jì)數(shù)器;兩個(gè)全雙工異步串行口(UART);3通道PWM/可騙程計(jì)數(shù)器陣列/捕獲/比較單元;60KB Flash程序存儲(chǔ)器,1KB Flash數(shù)據(jù)存儲(chǔ)器,2048字節(jié)的SRAM;8通信10位ADC;1個(gè)高速同步通信端口SPI;最多達(dá)42根I/O口線(看類型);可編程時(shí)鐘輸出功能;集成高可靠的硬件看門狗和上電復(fù)位電路;內(nèi)部集成高精度R/C電路,常溫工作時(shí)不需要外接晶振。STC15F2K60S2單片機(jī)為DIP-40封裝,和普通雙列直插的單片機(jī)一樣也是40個(gè)引腳,但引腳分布和傳統(tǒng)的51單片機(jī)不同,不能直接替換傳統(tǒng)的51單片機(jī),替代時(shí)需按引腳功能外圍重新布線。
74HC595是8位串行輸入,并行輸出的芯片,8位并行輸出為三態(tài)輸出,其傳遞延遲時(shí)間很短,支持高速串行連接。在串行輸入時(shí)鐘信號(hào)SCK上升延時(shí),數(shù)據(jù)從串行數(shù)據(jù)口輸入一位到內(nèi)部的八位位移緩存器,原來位移緩存器的最后一位由串行數(shù)據(jù)輸出端輸出,這樣設(shè)計(jì)可以很方便地實(shí)現(xiàn)級(jí)聯(lián);平行輸出緩存器的數(shù)據(jù)讀取時(shí)鐘信號(hào)LCK上升延時(shí),八位平行輸出緩存器會(huì)讀取八位位移緩存器上的數(shù)據(jù),從并行輸出端輸出。
74HC138是3線-8線譯碼器,輸入端數(shù)據(jù)從000—111變化,八輸出端中對(duì)應(yīng)輸出端低電平輸出,其余為高電平,完成變量譯碼。利用使能端兩片74HC138可構(gòu)成4線-16線譯碼器。D4953是驅(qū)動(dòng)芯片,內(nèi)部包括兩個(gè)獨(dú)立的、P溝道金屬氧化物場效應(yīng)管,具有超低的導(dǎo)通電阻,適合用LED顯示屏和LED顯示器驅(qū)動(dòng),也可用來做負(fù)載開關(guān)或者PWM開關(guān)。
4 16×64 LED點(diǎn)陣屏系統(tǒng)的設(shè)計(jì)
本文設(shè)計(jì)一個(gè)16×64 LED可移動(dòng)顯示的點(diǎn)陣屏。以STC15F2K60S2單片機(jī)為控制核心。16×64 LED點(diǎn)陣屏,需要行信號(hào)16個(gè),列信號(hào)64個(gè),顯然單片機(jī)滿足不了這個(gè)要求,必須對(duì)I/O口進(jìn)行擴(kuò)展。具體方法是,用兩片74HC138構(gòu)成4線-16線譯碼器作為行控制信號(hào),如圖所示,這樣行控制信號(hào)只需占用單片機(jī)4根I/O口線。如果同時(shí)點(diǎn)亮64個(gè)發(fā)光二極管,需要的電流還是比較大的,74H138的輸出顯然不能滿足要求,引入驅(qū)動(dòng)芯片D4953解決這一問題。列信號(hào)控制用74HC595串入并出芯片,每個(gè)芯片控制8列,64列需要8片74HC595芯片。前一個(gè)74HC595芯片的數(shù)據(jù)串行輸出信號(hào)作為下一個(gè)74HC595芯片的數(shù)據(jù)串行輸入信號(hào),第一個(gè)74HC595芯片的串行輸入信號(hào)由單片機(jī)提供,最后一芯片的串行輸出可供給下一個(gè)級(jí)聯(lián)用。所有的74HC595芯片串行輸入時(shí)鐘信號(hào)SCK連在一起,平行輸出緩存器的數(shù)據(jù)擷取時(shí)鐘信號(hào)LCK也都連在一起,均有單片機(jī)控制實(shí)現(xiàn)芯片同步動(dòng)作。如下圖引入八片74HC595芯片不考慮控制信號(hào)線時(shí),單片機(jī)用1根I/O口線就可送64列信號(hào)。
74HC595串接串入并出實(shí)現(xiàn)列控制
STC15F2K60S2單片機(jī)負(fù)責(zé)讀取字模(顯示字符所需要的代碼),字模通常有專用的軟件生成,也可人工編制,得到的字模后存放到單片機(jī)內(nèi)即可。要改變LED點(diǎn)陣顯示的內(nèi)容,只需改變單片機(jī)讀取到的字模就可以了。LED點(diǎn)陣屏工作原理過程前面已敘述過。單片機(jī)4根I/O口線通過兩片74HC138構(gòu)成的4線-16線譯碼器依次送行掃描信號(hào),經(jīng)驅(qū)動(dòng)芯片D4953加到點(diǎn)陣屏相應(yīng)的行上,選中某一行時(shí),單片機(jī)控制八片74HC595同時(shí)把對(duì)應(yīng)的64列信號(hào)并出,64位列信號(hào)在顯示上一行時(shí)由單片機(jī)控制依次串入。移動(dòng)顯示時(shí),單片機(jī)控制把前一時(shí)間段顯示的列信號(hào)內(nèi)容移位后再以同樣的方法送出。
本例設(shè)計(jì)的是16×64 LED點(diǎn)陣屏,硬件電路不改動(dòng)的情況下,兩個(gè)16×64 LED點(diǎn)陣屏級(jí)聯(lián)就可得到16×128 LED點(diǎn)陣屏。要改變只是單片機(jī)每次要串出128個(gè)列信號(hào)。理論上能級(jí)聯(lián)很多點(diǎn)陣屏,但實(shí)際級(jí)聯(lián)的點(diǎn)陣屏受單片機(jī)串出數(shù)據(jù)速度和串入并出芯片傳送速度影響。級(jí)聯(lián)多,單片機(jī)串出數(shù)據(jù)速度可能跟不上,這也是本例選擇STC15F2K60S2的原因,當(dāng)然也可選更好的處理器。改變變單片機(jī)字內(nèi)字??勺寙纹瑱C(jī)讀U盤、存儲(chǔ)卡,也可通過Wi-Fi和藍(lán)牙實(shí)現(xiàn)。這樣LED點(diǎn)陣屏顯示內(nèi)容更加豐富多彩,適用性更廣。[4]
5 結(jié) 論
LED點(diǎn)陣屏性價(jià)比高,市場廣闊,本設(shè)計(jì)性能可靠,通用性強(qiáng),實(shí)用價(jià)值高。研究內(nèi)容為研究LED全彩屏打了一個(gè)堅(jiān)實(shí)的基礎(chǔ)。
參考文獻(xiàn):
[1]陳亞男,田嘉欣,杜佳慧.基于單片機(jī)的LED電子顯示屏控制系統(tǒng)的設(shè)計(jì)[J].中國市場,2016(6):56-57.
[2]黃桂梅,劉永立.小型LED點(diǎn)陣屏實(shí)用軟件設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測量與控制,2011,19(12):3165-3168.
[3]劉成惠.基于STC12C5A60S2單片機(jī)的LED點(diǎn)陣屏設(shè)計(jì)[J].科技經(jīng)濟(jì)市場,2016,20(2):35-37.
[4]盧超,徐安娜,曹煜琪,等.基于藍(lán)牙技術(shù)的LED陣屏顯示系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].陜西理工學(xué)院學(xué):自然科學(xué)版,2015,31(1):31-36.