1 引言
在車站,、商場,、學(xué)校等一些需要發(fā)布多變的實時信息或進(jìn)行廣告宣傳的場所,黑板,、紙張或是霓虹燈廣告牌這些傳統(tǒng)的媒介手段,,不論是在顯示效果還是可修改性上都已無法滿足當(dāng)前的需求,。而 LED點陣顯示屏具有耗電省、成本低,、壽命長,、占用空間小以及能夠?qū)崟r顯示等特點,而且顯示內(nèi)容的信息量大,,用戶可隨時任意自行編輯修改顯示內(nèi)容,,因此,近年來已得到了廣泛應(yīng)用,。
2 總體設(shè)計
系統(tǒng)采用了上位機——下位機的結(jié)構(gòu)構(gòu)建,,上位機為 PC機,通過串行通信接口與下位機顯示系統(tǒng)進(jìn)行通信[1],,以實現(xiàn)對顯示內(nèi)容的實時擦除,、更新等操作;下位機系統(tǒng)主要包括單片機控制電路和顯示電路兩部分,,漢字顯示采用 16x16點陣模式,,通過單片機的控制,,實現(xiàn)字符從右往左滾動的動態(tài)顯示效果,。基本框圖如圖 1所示,。
3 系統(tǒng)的硬件結(jié)構(gòu)
3.1 MCU的選擇
MCU是整個下位機系統(tǒng)的核心部件,,其性能和片內(nèi)資源很大程度上決定了該系統(tǒng)工作的靈活性、先進(jìn)性和穩(wěn)定性,?;诖耍鞠到y(tǒng)選用了 STC公司生產(chǎn)的 STC89C55RD+增強型 51單片機,。
STC89C55RD+單片機的指令系統(tǒng),、硬件結(jié)構(gòu)以及片內(nèi)資源與標(biāo)準(zhǔn)8052單片機完全兼容,采用DIP40封裝形式,;支持的最高時鐘頻率為80M,,能最大限度地提高M(jìn)CU的運行速度;片內(nèi)包含大容量的20KBFlash程序存儲器和1KB的數(shù)據(jù)存儲器,,其內(nèi)部可用Data Flash達(dá)58個扇區(qū)共29KB,;具有在系統(tǒng)可編程(ISP)功能和在應(yīng)用可編程(IAP)功能,可實現(xiàn)遠(yuǎn)程軟件升級,,無需編程器,,從而大大縮短開發(fā)復(fù)雜度,同時可節(jié)省購買編程器的額外投入,。
3.2 串行通信
系統(tǒng)上位機和下位機通過串行通信接口進(jìn)行聯(lián)系,。 STC89C55RD+單片機內(nèi)部含有一個可編程的全雙工串行通信接口,,即 RXD(P3.0)和TXD(P3.1),具有 UART的全部功能,,該接口電路能同時進(jìn)行數(shù)據(jù)發(fā)送和接收,。一般情況下只要通過RXD、TXD和GND三根線就可以實現(xiàn)與上位機PC的串行通信,,根據(jù)通信距離的遠(yuǎn)近,,可以選擇RS232或RS485通信方式,由于本系統(tǒng)中顯示屏控制電路與上位機PC的距離較近,,故選用了RS-232標(biāo)準(zhǔn)總線接口,。具體電路圖如圖2所示。
3.3 驅(qū)動及掃描電路
LED點陣選用8x8模塊,,每 4塊排列成一個16x16的點陣,,用于顯示一個漢字。點陣每一行的所有LED共陰極,,每一列的所有LED共陽極,。
因為單片機I/O口的驅(qū)動能力有限,所以每一行LED陰極通過一個三極管8550與電源相連,,I/O口僅需要提供幾個毫安的灌入電流即可控制其通斷,。考慮到本系統(tǒng)可以同時顯示六個漢字,,故每一列 LED的陽極都通過一個限流電阻和一個三極管8550與電源相連,,當(dāng)六個漢字的同一行漢字字模(即12個字節(jié))通過鎖存器74HC377并行送出后,由移位寄存器 74HC595輸出行選通信號,,來點亮該行的LED,,接著再送下一行數(shù)據(jù),再選中下一行有效,,直到16行全被掃描過一遍,。至此,一幅完整的文字信息就顯現(xiàn)出來,,然后按這種方式反復(fù)掃描,,借助于程序的控制,即可實現(xiàn)信息從右至左的動態(tài)顯示了,。具體電路圖如圖3所示,。
該系統(tǒng)的軟件主要實現(xiàn)的功能包括:上位機信息(或命令)的發(fā)送和下位機點陣顯示內(nèi)容及方式的控制兩部分。
4.1上位機軟件
上位機信息(或命令)的發(fā)送使用普通的字模提取軟件和串口調(diào)試軟件即可,,在與下位機進(jìn)行通信時,,須保證雙方具有相同的數(shù)據(jù)格式和波特率,本設(shè)計采用 RS232通信,,波特率為9600bit/s,。同時,,制定了上下位機之間的通信協(xié)議,信息包格式如圖4所示,。
4.2下位機軟件
LED點陣的顯示內(nèi)容及方式主要由單片機的程序進(jìn)行控制,。程序采用模塊化結(jié)構(gòu),主要包括有主程序,、串口中斷服務(wù)子程序以及掃描顯示子程序等,。
(1)主程序為順序結(jié)構(gòu),主要完成系統(tǒng)對 I/O口和一些變量的初始化,,定時器初始值,、串行通信工作方式、以及波特率的設(shè)置[2],,然后循環(huán)調(diào)用掃描顯示子程序,,顯示原來Data Flash區(qū)中已存在的漢字信息。
(2)串口中斷服務(wù)子程序采用接收中斷啟動[3],,主要負(fù)責(zé)接收來自上位機 PC發(fā)送的信息,,包括欲顯示的內(nèi)容以及命令字節(jié),并根據(jù)命令完成相應(yīng)的信息寫入,、擦除等操作,,最后開中斷返回主程序。其流程圖入圖5所示,。
其中信息的寫入,、擦除等操作主要由單片機的IAP功能來完成,。 IAP,,即在應(yīng)用可編程,是指在程序運行時程序存儲器可由程序自身進(jìn)行擦寫,。通過IAP功能的相關(guān)指令,,既可以將 欲顯示的數(shù)據(jù)寫入到程序存儲器指定的扇區(qū)中,也可以根據(jù)需要擦除相應(yīng)扇區(qū)中的數(shù)據(jù),。這樣,,數(shù)據(jù)就如同燒入的程序一樣,掉電不會丟失,。當(dāng)然寫入數(shù)據(jù)的區(qū)域與程序存儲區(qū)是分開的,,以使程序不會遭到破壞。
(3)掃描顯示子程序則負(fù)責(zé)從顯示緩沖區(qū)取出字模,,輸出行選通信號和列掃描信號,,進(jìn)行動態(tài)掃描顯示。
5 結(jié)束語
本點陣顯示系統(tǒng)無需外擴程序存儲器和數(shù)據(jù)存儲器,,通過STC89C55RD+單片機的IAP功能實現(xiàn)信息的實時發(fā)布和更新,。該系統(tǒng)外形美觀,、工作穩(wěn)定、字符清晰且字體可自由設(shè)定,,現(xiàn)已實際應(yīng)用于我院作為信息發(fā)布的主要平臺,。另外,可對系統(tǒng)稍加改進(jìn),,便可實現(xiàn)通過一臺計算機來控制多塊顯示屏,,以適應(yīng)不同場所、不同時間顯示不同信息的需要,。如果在該系統(tǒng)的基礎(chǔ)上添加無線通訊模塊[4],,就可以開發(fā)出基于無線數(shù)據(jù)傳輸?shù)?LED顯示系統(tǒng)。
本文作者創(chuàng)新點:該系統(tǒng)電路結(jié)構(gòu)簡單,,沒有外擴程序存儲器和數(shù)據(jù)存儲器,,充分發(fā)揮了STC89C55RD+單片機的IAP功能,利用軟件實現(xiàn)了信息的隨時發(fā)布和更新,。