LED顯示屏由于其具有耗電少、使用壽命長(zhǎng),、成本低,、亮度高、故障少,、視角大,、可視距離遠(yuǎn)等特點(diǎn),已經(jīng)成為新一代的信息傳播媒體工具,。LED與LCD相比較最突出的特點(diǎn)是亮度高,、成本低且屏幕尺寸可根據(jù)現(xiàn)場(chǎng)情況用標(biāo)準(zhǔn)LED單元板拼制。按安裝位置可分為:室外,、半室外和室內(nèi),;按顏色可分為:?jiǎn)紊㈦p基色和彩色,;按發(fā)光二極管點(diǎn)距可分為:φ5.0,,φ3.75及φ3.0等。本文以市場(chǎng)上常見(jiàn)的室內(nèi)雙色LED單元板為控制對(duì)象,,說(shuō)明基于STC單片機(jī)的LED顯示屏控制系統(tǒng)工作原理以及數(shù)據(jù)組織方法,。
1 標(biāo)準(zhǔn)雙色LED單元板的硬件組成及工作原理
市場(chǎng)上常見(jiàn)的室內(nèi)雙色LED單元板電路框圖如圖1(a)所示。其中行掃描" title="掃描">掃描電路由2片74HC138(3-8譯碼" title="譯碼">譯碼器)構(gòu)成的4-16譯碼器加上多個(gè)4953(MOS管)組成的,,掃描方式為:1/16,。上下半屏分別由2組用74HC595串行" title="串行">串行移位寄存器實(shí)現(xiàn)紅色,、綠色顯示數(shù)據(jù)的列輸入,在圖1(a)所示的64×32標(biāo)準(zhǔn)LED單元板中每組串行移位寄存器中有8個(gè)74HC595級(jí)聯(lián),,4組共用了32個(gè)74HC595,。74HC595內(nèi)部電路框圖如圖1(c)所示。所有4組74HC595的控制信號(hào)" title="信號(hào)">信號(hào)RCK,,SCK,,EN全部接在一起,74HC595的控制信號(hào)和4組串行移位寄存器的輸入以及行掃描控制信號(hào)A,,B,,C,D構(gòu)成整個(gè)LED單元板的輸入,。74HC595的控制信號(hào)經(jīng)驅(qū)動(dòng)后和4組串行移位寄存器的輸出以及行經(jīng)過(guò)驅(qū)動(dòng)的掃描控制信號(hào)A,,B,C,,D構(gòu)成整個(gè)LED單元板的輸出,,用于級(jí)聯(lián)下一個(gè)LED單元板的輸入。雙色LED單元板等效電路框圖如圖1(b)所示,。
2 LED顯示控制系統(tǒng)的硬件組成及工作原理
LED顯示控制系統(tǒng)的硬件組成如圖2所示,。從表面上看是一個(gè)普通的單片機(jī)簡(jiǎn)單應(yīng)用,,實(shí)際上在設(shè)計(jì)此系統(tǒng)時(shí)已經(jīng)考慮了很多硬件,、軟件及硬軟件配合的因素。首先在使用51單片機(jī)的前提下,,用其串行口方式0似乎可以利用單片機(jī)發(fā)出的移位脈沖將8位數(shù)據(jù)送入74HC595中,,但要實(shí)現(xiàn)圖2中8位數(shù)據(jù)的同時(shí)輸入必須加入其他的輔助芯片,而且在減小數(shù)據(jù)傳輸時(shí)間上沒(méi)有什么好處,。其次,,采用FPGA,CPLD等可編程芯片設(shè)計(jì)成專(zhuān)用硬件電路與單片機(jī)接口可大幅度提高數(shù)據(jù)傳輸?shù)乃俣?,但成本也將同步大幅度提高?/p>
STC12C5410為IT高速低功耗單片機(jī),,其運(yùn)行速度為一般標(biāo)準(zhǔn)51系列單片機(jī)的8~12倍,并具有標(biāo)準(zhǔn)的SPI和RS 232串行口,。本文所述的LED顯示控制系統(tǒng)以其為核心控制芯片,。圖2為雙色LED顯示屏控制系統(tǒng)電路原理圖,在圖2所示的LED控制系統(tǒng)中,,SST25VF016B為16 Mb,,具有SPI接口的8PIN串行FLASH存儲(chǔ)器,由于SST25VF016B工作電壓為3 V,,故使用U3,,U4兩片74LVC245完成5 V到3 V和3 V到5 V的電平轉(zhuǎn)換,。SST25VF016B的SPI接口最大工作頻率為50 MHz,而STC12C5410 SPI接口最大工作頻率為晶振的1/4,,故不存在速度上不匹配的問(wèn)題,。行掃描信號(hào)A,B,,C,,D由P1.0~P1.3控制。圖1(a)中74HC595的控制信號(hào)RCK,,EN及SCK由P3.3~P3.5提供,。顯示數(shù)據(jù)從P2口輸出。
3 LED顯示控制系統(tǒng)的數(shù)據(jù)組織及軟件優(yōu)化
LED顯示控制系統(tǒng)的數(shù)據(jù)組織如圖3所示,。從圖2可以得到如圖3(a)所示的從正面看過(guò)去顯示行與顯示數(shù)據(jù)位以及顏色的對(duì)應(yīng)關(guān)系,。圖2所示的硬件結(jié)構(gòu)決定了每一行的數(shù)據(jù)可連續(xù)排列,同時(shí)為了提高數(shù)據(jù)的讀取速度,,將所有顯示數(shù)據(jù)均按掃描行,、掃描列進(jìn)行連續(xù)排列,可得到如圖3(b)表明的存儲(chǔ)單元與掃描行,、存儲(chǔ)單元數(shù)據(jù)位及顏色的關(guān)系,。
具體編程時(shí)可按下列步驟進(jìn)行:
(1)將準(zhǔn)備掃描的行地址送P1口的低4位中。
(2)初始化SST25VF016B將讀地址指針指向待顯示行相應(yīng)存儲(chǔ)單元的首地址,。
(3)啟動(dòng)SPI以順序讀方式連續(xù)讀顯示數(shù)據(jù),,并將顯示數(shù)據(jù)送P2口。
(4)每讀一個(gè)數(shù)據(jù)通過(guò)P3.5產(chǎn)生一個(gè)SCK脈沖(SST25VF016B在順序讀方式下地址自動(dòng)加1),,將P2口上的顯示數(shù)據(jù)移入74HC595串行移位寄存器,。
(5)重復(fù)(2),(3),,(4)直到一行數(shù)據(jù)顯示完畢,,通過(guò)P3.3產(chǎn)生RCK將通過(guò)移位寄存器移入的一行數(shù)據(jù)顯示。
(6)重復(fù)(2)~(5)直到16行數(shù)據(jù)全部顯示完畢,。
(7)重復(fù)(1)~(6)刷新顯示,。
源程序1和源程序2均為用C51編寫(xiě)的顯示一屏完整數(shù)據(jù)的顯示函數(shù)。不同之處在于源程序1的SPI讀寫(xiě)為一個(gè)單獨(dú)的函數(shù),,而源程序2為了進(jìn)一步提高數(shù)據(jù)讀取的速度將顯示時(shí)的讀顯示數(shù)據(jù)變成了一個(gè)循環(huán)體,。由于SST25VF016B串行大容量FLASH在給定讀地址后可連續(xù)的讀,其讀地址會(huì)自動(dòng)加1,,所以按圖2(b)所示的數(shù)據(jù)組織形式為一屏顯示數(shù)據(jù)在SST25VF016B中連續(xù)存放,,編程時(shí)連續(xù)讀一行數(shù)據(jù)后再改變掃描行直到16行全部顯示完成。編程的指導(dǎo)思想是盡量減少SPI接口的無(wú)效等待時(shí)間,,因此在源程序2第19行將讀取的顯示數(shù)據(jù)送P2口后第29行立刻啟動(dòng)下一次SPI讀,,而將SCK脈沖的發(fā)送指令放在SPI讀數(shù)據(jù)期間,,然后再來(lái)判斷SPI讀數(shù)據(jù)是否完成。源程序2第10行啟動(dòng)SPI讀是為一屏顯示最開(kāi)始預(yù)讀第1行第1個(gè)數(shù)據(jù)(與第11行至第24行的循環(huán)體配合),。為避免出現(xiàn)顯示拖尾在第25至第29行換行時(shí)關(guān)閉顯示,。實(shí)驗(yàn)結(jié)果表明:源程序1每幀的顯示時(shí)間在24MHz晶振的條件下達(dá)到25 ms,即40幀/s,,而源程序2在同樣晶振條件每幀的顯示時(shí)間為14 ms,,即70幀/s,源程序2的執(zhí)行速度遠(yuǎn)高于源程序1,。
為了便于控制,,所以要求顯示程序與LED屏的硬件結(jié)構(gòu)無(wú)關(guān),通過(guò)自定義8字節(jié)顯示指令條[命令(1個(gè)字節(jié))+參數(shù)表(7個(gè)字節(jié))],,將各種不同顯示效果所需的參數(shù)(如:LED顯示屏的硬件信息,、起始地址、結(jié)束地址,、每行長(zhǎng)度,、顯示時(shí)間等)指定存放在指令參數(shù)表中。顯示指令表存放在顯示數(shù)據(jù)的最前面,,而指令表的長(zhǎng)度亦用指令的方式加以描述,,底層單片機(jī)運(yùn)行時(shí)根據(jù)顯示指令可實(shí)現(xiàn)不同的顯示效果,如:畫(huà)面的切換,、定時(shí),、水平移動(dòng)、垂直移動(dòng)以及特殊顯示效果,。
4 控制系統(tǒng)單片機(jī)的選型及PC機(jī)軟件編程
單片機(jī)的運(yùn)行速度直接決定了顯示速度的快慢,,而單片機(jī)的運(yùn)行速度又與單片機(jī)的時(shí)鐘,、(晶振)頻率和單片機(jī)的結(jié)構(gòu)有關(guān),,在時(shí)鐘頻率確定的情況下,單片機(jī)的硬件結(jié)構(gòu)直接決定單片機(jī)的運(yùn)行速度,。目前主流單片機(jī)主要采用以下兩種方式:
(2)利用硬件提高某些指令,,如:MOVX指令的運(yùn)行速度,采用雙DPTR模式,,甚至在執(zhí)行MOVX指令后DPTR可自動(dòng)加減1,。
本文中使用的STC單片機(jī)號(hào)稱(chēng)為1T單片機(jī),并非所有指令均為1T,,但幾乎所有指令都在標(biāo)準(zhǔn)單片機(jī)指令運(yùn)行速度上大幅度提高,。其速度綜合約為標(biāo)準(zhǔn)51單片機(jī)的8倍,,可以滿(mǎn)足顯示控制系統(tǒng)對(duì)單片機(jī)運(yùn)行速度的要求。
PC機(jī)軟件編程采用VB編程,,該程序可完成各種字體,、字型點(diǎn)陣的提取、顯示數(shù)據(jù)的組織,、顯示效果的模擬演示,、顯示信息的管理等功能。底層單片機(jī)運(yùn)行時(shí)根據(jù)顯示指令可實(shí)現(xiàn)不同的顯示效果,,如:畫(huà)面的切換,、定時(shí)、水平移動(dòng),、垂直移動(dòng)以及其他特殊顯示效果,。
本控制系統(tǒng)通過(guò)大量的實(shí)驗(yàn)檢驗(yàn)是非常可靠的,,利用該控制系統(tǒng)制作的小型LED顯示屏與一般用51單片機(jī)為控制核心的LED顯示控制系統(tǒng)相比,,屏幕的刷新速度大幅度提高,在研制運(yùn)行過(guò)程中也對(duì)該控制系統(tǒng)做了多方面的改進(jìn),。如為了進(jìn)一步提顯示速度可對(duì)編譯后的程序做匯編級(jí)的優(yōu)化,,利用有些51單片機(jī)如DS89C450具有DPTR自動(dòng)加1的功能,外加用CPLD制成的硬件地址發(fā)生器等,。但所有改進(jìn)的措施都是以增加外部輔助電路或成本為代價(jià)的,。本控制系統(tǒng)的價(jià)格按市價(jià)不超過(guò)50元,因此其在小型LED顯示控制系統(tǒng)中有著廣泛的應(yīng)用前景,。