雷建龍 邱 磊
(武漢船舶職業(yè)技術(shù)學(xué)院,湖北武漢 430050)
?
基于快速單片機(jī)的LED屏顯示控制器的設(shè)計及應(yīng)用
雷建龍邱磊
(武漢船舶職業(yè)技術(shù)學(xué)院,湖北武漢430050)
摘要設(shè)計了一種用于小型場合,內(nèi)容不需要經(jīng)常更新的LED屏控制器,解析了LED屏單元板的結(jié)構(gòu),分析了它的主要內(nèi)部電路及單元板的輸入輸出接口,由單元板構(gòu)建了一個LED屏,在對單元板接口信號分析的基礎(chǔ)上設(shè)計了LED屏控制器。介紹了控制器硬件電路的組成,對關(guān)鍵信號進(jìn)行了分析。分析了LED屏掃描顯示方式,并據(jù)此選擇了快速單片機(jī),設(shè)計了控制器的顯示驅(qū)動程序。實(shí)踐證明,此控制器簡單、實(shí)用、穩(wěn)定性強(qiáng),且擴(kuò)展性強(qiáng)。
關(guān)鍵詞單元板;LED屏;控制器;單片機(jī)
LED 顯示屏作為一種高科技產(chǎn)品廣泛應(yīng)用于諸多領(lǐng)域,日益引起人們的重視。盡管目前 LED 顯示屏的應(yīng)用范圍越來越廣,但是在應(yīng)用中也暴露出一些新的問題,如有些 LED 文字顯示屏需要一臺計算機(jī)控制等。為滿足顯示區(qū)域較大、顯示內(nèi)容切換頻繁等相對較復(fù)雜的應(yīng)用場合,目前以FPGA為核心的LED屏控制系統(tǒng)和以32位微處理器為核心的LED顯示屏控制系統(tǒng)已經(jīng)應(yīng)用于大屏LED控制,但是以FPGA為核心的LED顯示屏控制系統(tǒng)設(shè)計實(shí)現(xiàn)起來比較復(fù)雜,并且需要以高性能的FPGA芯片作為基礎(chǔ)。而以32位微處理器為核心的LED顯示屏控制系統(tǒng)不夠靈活,在改變LED屏幕顯示尺寸時,需要大幅修改系統(tǒng)設(shè)計[1-2]。從 LED 顯示屏需求上,市場上不僅需要像大屏幕這樣大型的顯示屏,也需要根據(jù)不同場地配置不同規(guī)格的小型顯示屏以及相對簡單的文字顯示屏。本文針對LED顯示系統(tǒng)存在的問題,結(jié)合當(dāng)今先進(jìn)的微控制器產(chǎn)品,設(shè)計了高性能、低成本、低功耗的 LED 顯示屏控制系統(tǒng)。
1LED屏分析
LED屏由一塊塊單元板拼接而成,每一塊單元板的結(jié)構(gòu)是完全一樣的[3-6]。單元板內(nèi)由LED組成8×8的矩陣,由4個這樣的矩陣可組成1個16×16的LED點(diǎn)陣,可顯示一個全角漢字。通過行驅(qū)動及控制、列驅(qū)動及控制電路控制每一LED的斷通過情況,從而可顯示文字或圖形[4-9]。如圖1所示為列驅(qū)動所使用的移位寄存器74HC595的引腳圖,串行數(shù)據(jù)從引腳SER外串行輸入,SRCLK為移位脈沖的輸入端,RCLK為鎖存控制端(高電平鎖存),8位數(shù)據(jù)(O0-O7)分別與相應(yīng)的8列LED相連,9號引腳為串行數(shù)據(jù)移出端,與橫向的下一個控制8列的LED的74HC595相連。單元板有2排16×16的結(jié)構(gòu),下一排的列控制與上一排完全相同,也有串行數(shù)據(jù)輸入、輸出端,故單元板需要輸入2路數(shù)據(jù),分別控制2排16×16點(diǎn)陣。如圖2為單元板內(nèi)行驅(qū)動與控制電路圖。單元板內(nèi)的2排16×16陣列的每一行是相連的,故一共只有16行需要控制。通過2片74LS138組成一個4-16的數(shù)據(jù)分配器, LA1、LB1、LC1、LD1為4位行地址線,數(shù)據(jù)從EN1A處輸入,根據(jù)地址的不同分配到16個輸出端,每一輸出端連接一只場效應(yīng)管4953的柵極,場效應(yīng)管處于開關(guān)狀態(tài),它的漏極控制著LED點(diǎn)陣的一行的陽級。場效應(yīng)管導(dǎo)通時,相應(yīng)的行才可能點(diǎn)亮,關(guān)斷時,相應(yīng)的行不亮。
圖1 列數(shù)據(jù)移位鎖存器74HC595的引腳及信號
圖2 行數(shù)據(jù)分配器及驅(qū)動電路圖
如圖3所示為雙色(紅、綠)單元板的輸入及輸出接口。這種單元板可顯示2行16×16的漢字,每行4個漢字,共8個漢字。輸入接口中R1、R2為紅色LED的串行輸入信號,分別對應(yīng)于2行漢字,用于控制列的狀態(tài),通過驅(qū)動后與74HC595的串行數(shù)據(jù)輸入端SER相連;G1、G2為綠色LED的串行輸入信號,在單色顯示中可不用。LA、LB、LC、LD為行地址信號,通過驅(qū)動后與單元板內(nèi)的LA1、LB1、LC1、LD1相連,在單元板內(nèi)通過譯碼用于掃描LED陣列的16行。LT為單元板內(nèi)鎖存驅(qū)動器的鎖存信號,與74HC595的鎖存端RCLK相連;SK為串行移位的時鐘信號與74HC595的串行移位時鐘端SRCLK相連;EN與行控制的EN端相連(如圖3所示的最左端),可以控制數(shù)據(jù)分配器的工作狀態(tài),為1時允許數(shù)據(jù)分配器工作。輸出接口中的各控制信號的功能與輸入接口完全相同,只是各輸出信號要聯(lián)接到下一塊單元板的輸入接口,以實(shí)現(xiàn)多塊單元板的級聯(lián),從而構(gòu)成更大的LED屏。
圖3 單元板的輸入輸出接口
本設(shè)計控制的為一個4×4(即由橫向4塊單元板串聯(lián),縱向4塊單元板拼接。)共16個單元板組成的LED屏。LED屏的所有相應(yīng)行地址線是相聯(lián)的,以此地址譯碼出來的16行的對應(yīng)行也是相聯(lián)的。有兩個串行輸入信號, 16行LED的對應(yīng)每個行連在一起,只是通過串行輸入的信號(驅(qū)動LED點(diǎn)陣的列)不同來實(shí)現(xiàn)顯示不同的行。R1用于串行輸入顯示信息到第一個16行點(diǎn)陣的相應(yīng)列,而R2則輸入到第二個16行點(diǎn)陣的相應(yīng)列。
2控制器的設(shè)計
2.1控制器的硬件設(shè)計
現(xiàn)以4×4單元板組成的LED屏為例來說明由單片機(jī)控制的LED屏的電路設(shè)計及程序設(shè)計。根據(jù)以上對單元板內(nèi)部結(jié)構(gòu)及接口的分析可知,橫向的4塊單元板只要將每塊單元板的輸出與下一塊的輸入相聯(lián)即可。由于縱向有4塊相互獨(dú)立的單元板,每一單元板有2個串行輸入端,故一共有8個串行輸入端。串行輸入端與單片機(jī)的串行口相接,但單片機(jī)的串行輸出數(shù)據(jù)在一個時刻只能輸入到一個串行輸入端,故必須輪流給8個串行輸入端傳送數(shù)據(jù)。為實(shí)現(xiàn)單片機(jī)的一個數(shù)據(jù)輸出能分配到縱向8個串行輸入端,在單片機(jī)外圍用74LS138設(shè)計了一個數(shù)據(jù)分配器,如圖4所示。
圖4 基于單片機(jī)的LED屏控制器
74LS138接成數(shù)據(jù)分配器,即E1作為數(shù)據(jù)的輸入端,Y0~Y7作為數(shù)據(jù)的輸出端,C、B、A作為數(shù)據(jù)分配的地址選擇端。單片機(jī)的P2.0、P2.1、P2.2 分別與74LS138的A、B、C相聯(lián),作為3位地址;而單片機(jī)的數(shù)據(jù)輸出端RXD與74LS138的E1相接,輸入數(shù)據(jù)。Y0~Y7分別接到縱向4個單元板的串行輸入端。單片機(jī)串行口工作在方式0,即移位寄存器方式,RXD為數(shù)據(jù)的輸出端;TXD為串行時鐘的輸出端。這樣,只要單片機(jī)每次從P2.0、P2.1、P2.2 輸出不同的地址,則從RXD輸出的數(shù)據(jù)就被分配到不同的串行輸入端口。電路中,單片機(jī)輸出的串行移位信號TXD與單元板輸入接口的串行時鐘輸入端SK相聯(lián),各單元板的SK都是相聯(lián)的,工作在同步狀態(tài)。P1.0、P1.1、P1.2、P1.3分別與單元板的行地址端LA、LB、LC、LD相聯(lián),從它們輸出共有16種地址組合,通過單元板內(nèi)部的4-16行數(shù)據(jù)分配器來選通相應(yīng)的行。P0.0與單元板的鎖存信號端LT相聯(lián),LT在單元板內(nèi)部用于打開和關(guān)閉接收數(shù)據(jù)的鎖存器74HC595,在每行數(shù)據(jù)輸入時打開,輸出完后關(guān)閉。
單片機(jī)的選擇也是這一控制器的關(guān)鍵所在。掃屏一次,單片機(jī)輸出串行數(shù)據(jù),LED屏接收數(shù)據(jù),如圖5所示。整個屏掃描一次所需時間為:
16(行)*8(8路數(shù)據(jù))*16(每字16位)*4(單元板每行字的個數(shù))*4(每行單元板個數(shù))*T機(jī)=32768 T機(jī),其中T機(jī)為單片機(jī)的一個機(jī)器周期時間。
圖5 LED屏輸入數(shù)據(jù)掃描方式分析圖
由于掃描用時與單片機(jī)的機(jī)器周期時間密切相關(guān),為了不產(chǎn)生閃爍感,要選擇高速單片機(jī)。很多公司推出了各種性能的高速單片機(jī),如宏晶公司的STC15系列等,這里選擇宏晶公司的高速單片機(jī)STC12C5A60S2,它可通過設(shè)置控制輔助寄存器AUXR工作在6倍速狀態(tài),AUXR的地址為0x8e,具體操作是給它賦一個值“0x20”即可,這時它的機(jī)器周期只為普通51系列單片機(jī)的六分之一。且它的最高晶振頻率可達(dá)48MHz,一個機(jī)器周期為T機(jī)=1/6*12/fosc=1/2*12*1/48 MHz=0.0417μs。掃描一次的時間為:32768 T機(jī)=1.365ms,小于人眼的滯留時間41.7ms(1/24秒),不會產(chǎn)生閃爍感。
2.2控制器控制程序設(shè)計舉例
現(xiàn)以上述4×4結(jié)構(gòu)的顯示屏實(shí)現(xiàn)漢字顯示為例,來說明顯示控制程序的設(shè)計。從以上對單元板電路的分析及基于單片機(jī)的控制器的硬件設(shè)計可見,用掃描的方式能實(shí)現(xiàn)漢字的顯示。如圖5所示,不斷掃描16行,對16行的選擇是通過控制4位行地址LA、LB、LC、LD實(shí)現(xiàn)。在每行掃描時,又要分別掃描四排單元元板,每一排單元板有2路,故要分8路掃描,即通過數(shù)據(jù)選擇器的地址C、B、A的不同組合實(shí)現(xiàn)。由于橫向4個單元板串聯(lián),而每個單元板在橫向能顯示4個漢字,故每掃描一行輸入字節(jié)數(shù)應(yīng)為:4(每排橫向單元板數(shù)目)*4(每一單元板橫向漢字個數(shù))*2(每一漢字每行字節(jié)數(shù))=32字節(jié)。
通過字符圖形轉(zhuǎn)換工具將LED屏要顯示的內(nèi)容導(dǎo)入,并轉(zhuǎn)換為用于掃描的字節(jié),存儲于單片機(jī)的程序存儲器中??刂瞥绦蛄鞒虉D如圖6所示。
圖6 控制程序流程圖
關(guān)鍵程序代碼如下:
#include
sbit LT=P0^0;//鎖存信號
sfr AUXR=0x8e;//STC單片機(jī)的雙倍速控制寄存器。
unsigned char code tab[128][32]=
{{...}}; //128個漢字的字模編碼,每一漢字占32字節(jié)。
void main()
{
SCON=0x00;//串行口工作于方式0,即移位寄存器方式。
AUXR=0x20;//對STC單片機(jī)的雙倍速進(jìn)行設(shè)置。
…
while(1)
{
…
}}
tab[128][32]為存放于程序存儲器的128個漢字的對應(yīng)于16*16點(diǎn)陣的數(shù)據(jù)。由于每個單元板能顯示4*2=8個漢字,故由4*4個單元板組成的LED屏最多可顯示4*4*8=128個漢字。
3應(yīng)用
據(jù)此設(shè)計而制作的實(shí)物時,具體要顯示的內(nèi)容可通過串行口連接電腦來更新,即更新tab[128~32]中的內(nèi)容,還可以通過加裝無線收發(fā)器來更新顯示內(nèi)容。且理論上可擴(kuò)大到現(xiàn)有顯示屏的30倍(41.7ms(最大允許掃屏?xí)r間)/1.365ms(現(xiàn)一次掃屏?xí)r間)>30),擴(kuò)展顯示屏的空間也較大。而且現(xiàn)在,單片機(jī)的速度越來越快,可適應(yīng)掃描大屏的需要。實(shí)踐證明采用此方法控制的LED屏顯示的內(nèi)容穩(wěn)定,如圖7。此顯示屏不僅可顯示文字,還可的顯示簡單圖形等信息,在辦公室等公共場所發(fā)布諸如通知及各種信息靈活方便。
圖7 LED屏的顯示效果圖
而一般對LED的控制器復(fù)雜,控制器需采用專用芯片,開發(fā)人力成本高,在諸如辦公室等小型場合發(fā)布信息并不實(shí)用[10-15]。對于不經(jīng)常更新信息的場合,可采用快速單片機(jī)對其進(jìn)行簡單的控制。單片機(jī)具有易學(xué)易用,且開發(fā)群體龐大的特點(diǎn),可大提高開發(fā)成本及使用成本。
參考文獻(xiàn)
1張玉杰.基于ARM和FPGA的LED顯示屏控制系統(tǒng)的設(shè)計[J]. 計算機(jī)測量與控制,2009,17(12): 2429-2431
2劉晉.基于 STC12C5A60S2 單片機(jī)的 LED 顯示屏硬件設(shè)計[J]. 微型機(jī)與應(yīng)用, 2011, 30(22):24-27
3鄭爭兵.基于FPGA的圖形點(diǎn)陣液晶顯示系統(tǒng)設(shè)計與實(shí)現(xiàn)[J].液晶與顯示,2013,28(3):403-407
4雷建龍.單片機(jī)C語言實(shí)踐教程[M].北京:電子工業(yè)出版社,2012:194-195
5熊再榮,雷建龍. 數(shù)碼管動態(tài)顯示亂碼現(xiàn)象分析[J].液晶與顯示,2009,24(5):704-707
6尤衛(wèi)衛(wèi),冒建亮,葉樺.基于STM32和CPLD的TFT-LCD顯示控制器設(shè)計[J].液晶與顯示,2015,30(3):444-450
7郭柯娓,李淑琴.基于STC89C54RD+單片機(jī)的點(diǎn)陣LED顯示屏的設(shè)計[J].遼寧大學(xué)學(xué)報(自然科學(xué)版), 2008,35(1):28-31
8吳迪,李丙玉,王曉東.基于ARM+FPGA的影像交互與顯示系統(tǒng)設(shè)計[J].液晶與顯示, 2015,30(6):979-986
9王軍.基于STM32的R61581驅(qū)動液晶屏顯示方法研究[J].液晶與顯示,2016,31(1):93-96
10夏建雄,陳海燕.基于FPGA的LED屏控制器設(shè)計[J].液晶與顯示,2015,30(5):838-843
11王軍.基于FPGA的高精度守時方法研究[J].液晶與顯示, 2015,30(6):1052-1056
12馮道寧,王念春.地鐵列車LED顯示屏的設(shè)計[J]. 液晶與顯示, 2007,22(1):99-103
13梁光勝.旋轉(zhuǎn)彩色LED顯示屏設(shè)計與實(shí)現(xiàn)[J].液晶與顯示,2014,29(5):850-855
14張傳勝.基于RFID技術(shù)的智能監(jiān)控平臺的設(shè)計[J]. 液晶與顯示,2015,30(5):825-831
15簡獻(xiàn)忠.基于80C51和KEIL C51的LED點(diǎn)陣顯示系統(tǒng)[J].儀器儀表學(xué)報,2005,26(8):315-316
(責(zé)任編輯:譚銀元)
The Designing and Applying of a LED Screen Display Controller Based on the MCU
LEI Jian-long,Qiu Lei
(Wuhan Institute of Shipbuilding Technology, Wuhan 430050, China)
Abstract:This essay designs a LED screen display controller which doesn't need updating regularly and can be used in small occasions. The structure of the LED panel as well as its main internal circuit is introduced, and the input-output interface of the panel is also analyzed. A screen is constructed using the panel. The LED screen display controller is designed through analyzing the signals of the panel interface. The hardware circuit of the controller is explained, and the key signals are analyzed. LED screen display mode is analyzed in detail, based on which the high-speed MCU is chosen. The display program is designed and implemented, which proves that the controller is user-friendly, practical, reliable and expandable.
Key words:the panel; LED screen;controller; MCU
基金項(xiàng)目:湖北省中高職人才培養(yǎng)一體化改革的研究(項(xiàng)目編號:15D138),2015年度湖北省教育廳人文社會科學(xué)研究項(xiàng)目。
收稿日期:2016-02-17
作者簡介:雷建龍,男,教授,主要從事應(yīng)用電子技術(shù)方面的教學(xué)和科研工作。
中圖分類號TN710
文獻(xiàn)標(biāo)志碼A
文章編號1671-8100(2016)02-0020-05