引言
LED顯示屏具有成本低,、壽命長(zhǎng),、功耗小、工作溫度范圍寬等優(yōu)點(diǎn),,廣泛應(yīng)用于文字及圖像信息的顯示,。整個(gè)系統(tǒng)一般分為3個(gè)部分:上位機(jī),顯示屏控制電路和LED陣列及其驅(qū)動(dòng),。
其中顯示屏控制電路的設(shè)計(jì)廣泛采用兩類器件作為其控制核心來實(shí)現(xiàn),,一類是單片機(jī)控制系統(tǒng),另一類是可編程邏輯器件,。該設(shè)計(jì)采用基于單片機(jī)的控制方案,,如圖1所示,一臺(tái)PC機(jī)通過RS485總線與多塊控制器相連,,每塊控制器擴(kuò)展了溫度傳感器,、實(shí)時(shí)時(shí)鐘和其他外圍器件,控制LED屏的顯示,。
采用單片機(jī)的控制方案,,結(jié)構(gòu)簡(jiǎn)單,應(yīng)用靈活,,并且易于擴(kuò)展,。
1 系統(tǒng)的硬件設(shè)計(jì)
系統(tǒng)硬件框圖如圖2所示,上位PC機(jī)用專門的軟件編輯將要顯示的信息,,通過串口發(fā)給單片機(jī),,存儲(chǔ)在Flash內(nèi),單片機(jī)再驅(qū)動(dòng)電路將字符的編碼通過LED點(diǎn)陣的形式顯示出來,。
LED點(diǎn)陣為雙基色屏,,能顯示紅,綠,,黃3種顏色,。控制器的核心選用STC89LE516單片機(jī),,擴(kuò)展32KSRAM作為顯示緩存區(qū),,512KFlash用于存儲(chǔ)顯示的點(diǎn)陣信息和一些必要的參數(shù)。
撥碼開關(guān)選擇本屏的物理地址,??刂破鬟€擴(kuò)展了1片溫度傳感器采集溫度數(shù)據(jù),,1片時(shí)鐘芯片進(jìn)行實(shí)時(shí)時(shí)間的讀寫。
1.1 存儲(chǔ)器擴(kuò)展電路
STC89LE516是一款強(qiáng)抗干擾,,高速,,低功耗的單片機(jī),增強(qiáng)型51內(nèi)核,,集成了看門狗電路,內(nèi)含64K字節(jié)Flash存儲(chǔ)器,,512字節(jié)RAM,可在線編程,,可遠(yuǎn)程升級(jí),價(jià)格便宜,。
為了提高響應(yīng)速度,,系統(tǒng)擴(kuò)展了32KSRAMIS61LV256作為顯示緩存區(qū),用于保存當(dāng)前正在顯示的一幀數(shù)據(jù)和一些特技處理數(shù)據(jù),,和單片機(jī)的接口如圖3所示,,SRAM的最高位地址線A14由單片機(jī)的P3.2單獨(dú)控制,以便于將紅色和綠色LED點(diǎn)陣的數(shù)據(jù)分塊存放,,當(dāng)P3.2輸出為0時(shí),,選中RAM地址0x0000~0x3fff,為紅色LED的數(shù)據(jù)區(qū);當(dāng)P3.2輸出為1時(shí),,選中RAM地址0x4000~0x7fff,為綠色LED的數(shù)據(jù)區(qū),。
Flash用于存儲(chǔ)代碼,顯示的數(shù)據(jù)信息和字庫(kù),??刹捎貌楸淼姆绞秸{(diào)用需要顯示的漢字和英文點(diǎn)陣數(shù)據(jù)。用64K字節(jié)的存儲(chǔ)空間存儲(chǔ)16×16點(diǎn)陣的漢字,,可以顯示2048個(gè),,512K的Flash可滿足常用字不同字體的存儲(chǔ)需求。SST39VF040的地址線有19位,,單片機(jī)用P1口來擴(kuò)充高三位地址線,。
系統(tǒng)中單片機(jī),SRAM,Flash要求313V供電,,而系統(tǒng)接入電源為5V,可通過LM1117-3.3為芯片提供3.3V穩(wěn)壓電源,。
低壓差電源芯片LM1117輸出電流可達(dá)800mA,輸出電壓精度在±1%以內(nèi),還具有電流限制和熱保護(hù)功能,。
1.2 串行接口電路
控制器接收數(shù)據(jù)采用單片機(jī)內(nèi)部全雙工的通用異步收發(fā)器(UART),。在傳輸距離小于20m時(shí)采用非平衡的RS-232,在傳輸距離為幾十m到上km時(shí)采用RS-485。RS-485采用平衡發(fā)送和差分接收,,因此具有抑制共模干擾的能力,,可以聯(lián)網(wǎng)構(gòu)成分布式系統(tǒng)。由于顯示屏的位置是分散的,彼此相距幾十甚至幾百m,所以控制器用MAX232和SN75176分別做電平轉(zhuǎn)換,,用跳線進(jìn)行RS-232和RS-485之間的切換選擇,,從而實(shí)現(xiàn)和PC的通信,完成數(shù)據(jù)的存儲(chǔ)和更新,。
1.3 實(shí)時(shí)時(shí)鐘電路
單片機(jī)與HT1381低功耗實(shí)時(shí)時(shí)鐘芯片接口采用串行傳輸方式,,如圖4所示只需3根線就可以讀寫年、月,、日,、星期、時(shí),、分,、秒,在需要時(shí)顯示到LED屏幕上,。HT1381所需時(shí)鐘獨(dú)立于單片機(jī),,外接321768kHz晶振就可以工作。配備3V充電電池,,系統(tǒng)采用外部供電時(shí),,二極管導(dǎo)通,外部電源一方面向芯片供電,,另一方面對(duì)充電電池進(jìn)行充電,。當(dāng)系統(tǒng)電源停止供電時(shí),二極管截至,,芯片由電池來供電,。
1.4 溫度傳感器電路
溫度傳感器選用單總線數(shù)字溫度傳感器DS18B20,該器件將溫度傳感器、溫度報(bào)警觸發(fā)器,、ROM等集成在一個(gè)很小的芯片上,,傳感器直接輸出的就是溫度信號(hào)的數(shù)字值。DS18B20以9位數(shù)字的方式反映溫度值,,讀出或?qū)懭霐?shù)據(jù)僅需要一根信號(hào)線,。
1.5 掃描控制電路和LED陣列
目前大多數(shù)LED顯示屏的屏幕設(shè)計(jì)采用的是模塊化的結(jié)構(gòu),其基本單元是LED顯示單元模塊,,屏幕大小和形狀可靈活改變,,顯示屏的安裝和維護(hù)也十分方便。LED顯示單元模塊分為L(zhǎng)ED點(diǎn)陣和驅(qū)動(dòng)電路2部分,。
該LED點(diǎn)陣選用紅綠雙基色屏,,可顯示紅、綠,、黃3種顏色,,價(jià)格適中,。每個(gè)模塊是16×64像素,由16塊8×8像素共陽(yáng)極LED點(diǎn)陣組成,。16行LED共用一列數(shù)據(jù),,每行LED的顯示時(shí)間占一個(gè)掃描周期的1/16。根據(jù)人眼的視覺暫留效應(yīng),,只要整屏的刷新頻率大于60Hz,即可形成一幅穩(wěn)定的畫面,。每個(gè)LED顯示單元有8個(gè)紅色數(shù)據(jù)輸入端、8個(gè)綠色數(shù)據(jù)輸入端和8個(gè)行控制信號(hào)輸入端,。
驅(qū)動(dòng)電路分為行驅(qū)動(dòng)和列驅(qū)動(dòng),。
行驅(qū)動(dòng)電路由2片3-8譯碼器74HC138組成。一個(gè)行選信號(hào)同時(shí)控制著一行中所有LED的通斷,,所以它需要較大的驅(qū)動(dòng)電流,,為此選用4953,。4953內(nèi)含2個(gè)P溝道的MOSFET管,,漏極電流最大可達(dá)419A,保證了行驅(qū)動(dòng)能力,16×64點(diǎn)陣需要8片4953,。2片138的16路輸出分別通過4953的驅(qū)動(dòng)用于選通相應(yīng)的行,,實(shí)現(xiàn)對(duì)行的控制。
列驅(qū)動(dòng)采用74HC595,內(nèi)含移位寄存器和三態(tài)輸出鎖存器,,可以把串行輸入的8bit數(shù)據(jù)并行輸出,。分別用8個(gè)74HC595鎖存紅色、綠色數(shù)據(jù),。單片機(jī)2路控制信號(hào)與所有595的時(shí)鐘輸入SRCLK,鎖存信號(hào)RCLK相連,。第1片595的串行輸出接到第2片595的串行輸入端,同理,,其他引腳的連接方式一樣,,通過這種級(jí)聯(lián)的方式,把8個(gè)595芯片連在一起,,同時(shí)每個(gè)595芯片的并行輸出連接8個(gè)LED的列,。
顯示過程為:
(1)把顯示緩存區(qū)中的第1行紅色數(shù)據(jù)和綠色數(shù)據(jù)分別送入595鎖存,;
?。?)送行掃描信號(hào),選通LED陣列的第一行并延時(shí),;
?。?)行消隱,行掃描信號(hào)下移一行并重復(fù)上述過程直至完成第16行的顯示,。如此循環(huán),。
每個(gè)LED顯示單元模塊有2個(gè)接口,,可根據(jù)顯示長(zhǎng)度的不同需求靈活擴(kuò)展LED單元,控制器保持不變,。如需高度上擴(kuò)展,,可通過擴(kuò)展CPLD/FPGA控制行掃描信號(hào)的同步來實(shí)現(xiàn),在顯示和控制原理上并無差別,。
2 系統(tǒng)的軟件設(shè)計(jì)
系統(tǒng)軟件包括上位機(jī)軟件和下位機(jī)軟件,。上位機(jī)軟件用VC編寫,與下位機(jī)通過異步串口進(jìn)行通信,。上位機(jī)軟件的任務(wù)是校準(zhǔn)時(shí)鐘,,編輯顯示的內(nèi)容、顏色和顯示效果等并把數(shù)據(jù)廣播發(fā)送到LED顯示控制器,。通信的數(shù)據(jù)格式如表1所示,。
下位機(jī)開機(jī)進(jìn)行中斷、串口初始化后,,按照指令執(zhí)行顯示子程序,,定時(shí)進(jìn)行溫度采樣和時(shí)鐘數(shù)據(jù)的讀取。下位機(jī)始終處于監(jiān)聽狀態(tài),,當(dāng)有串口中斷時(shí),,和上位機(jī)通信,上位機(jī)發(fā)1字節(jié)地址符,,下位機(jī)接收后與本屏地址進(jìn)行比較,,本屏地址由控制器的撥碼開關(guān)設(shè)定。如果地址相同則接收數(shù)據(jù),,否則中斷返回,,由此實(shí)現(xiàn)LED屏的分布式控制。接收完全部數(shù)據(jù)后,,進(jìn)行校驗(yàn),,如出錯(cuò)則要求重發(fā),校驗(yàn)正確則發(fā)送接受成功標(biāo)志給上位機(jī),,結(jié)束中斷,。串口中斷程序和定時(shí)器中斷程序流程見圖5。
控制器接收到數(shù)據(jù)后存于Flash中,,根據(jù)數(shù)據(jù)中的命令字,,執(zhí)行相應(yīng)的操作,操作判斷流程如圖6所示,。
顯示子程序根據(jù)漢字內(nèi)碼從字庫(kù)中查找出字模,,送至顯示緩存區(qū),通過數(shù)據(jù)處理后輸出至列選通信號(hào),,配合行掃描信號(hào),,進(jìn)行動(dòng)態(tài)掃描顯示,。其中數(shù)據(jù)處理功能主要完成字幕左移、右移,、百葉窗,、變色、閃爍等,。
3 結(jié)語(yǔ)
本文選用了STC89LE516單片機(jī),,在保證功能和穩(wěn)定的前提下,降低了成本,,擴(kuò)展了大容量Flash數(shù)據(jù)存儲(chǔ)器,,上位機(jī)只需傳送漢字內(nèi)碼即可顯示,減少了數(shù)據(jù)傳送量,,提高了響應(yīng)速度,。LED顯示單元可靈活擴(kuò)展,滿足不同需求,。經(jīng)實(shí)驗(yàn)驗(yàn)證,,該系統(tǒng)顯示穩(wěn)定可靠,支持溫度,、日歷,、漢字和各種特效等,,可運(yùn)用于工業(yè)生產(chǎn)線,、樓宇安防、停車場(chǎng)等的分布式LED顯示,。