1 引言
LED 顯示屏是八十年代后期在全球迅速發(fā)展起來(lái)的新型信息傳播媒體,,是集微電子技術(shù)、光電子技術(shù)、計(jì)算機(jī)技術(shù)、信息處理技術(shù)于一體的大型顯示系統(tǒng),。它以其色彩鮮艷、動(dòng)態(tài)范圍廣,、亮度高,、壽命長(zhǎng)、工作性能穩(wěn)定而日漸成為顯示媒體中的佼佼者,,廣泛應(yīng)用于廣告,、證券、信息傳播,、新聞發(fā)布等方面,, 是目前國(guó)際上較為先進(jìn)的宣傳顯示媒體[1].本文提出了一種主從式單片機(jī)的LED 顯示屏解決方案, 該設(shè)計(jì)方案利用AVR單片機(jī)自身的FLASH ROM 和RAM,外部無(wú)需任何存儲(chǔ)電路,,電路結(jié)構(gòu)簡(jiǎn)單,。
2 系統(tǒng)的工作原理及總體方案設(shè)計(jì)
2. 1 AVR 單片機(jī)
AVR 單片機(jī)是增強(qiáng)型內(nèi)置Flash 的RISC(ReducedInstruction Set CPU) 精簡(jiǎn)指令集高速8 位單片機(jī),硬件采用哈佛(Harward) 結(jié)構(gòu),,達(dá)到一個(gè)時(shí)鐘周期可以執(zhí)行一條指令,,絕大部分指令都為單周期指令。支持在系統(tǒng)編程ISP,其中MEGA 系列還支持在應(yīng)用編程IAP.內(nèi)置的FLASH 程序存儲(chǔ)器可擦寫(xiě)1000 次以上,,給用戶的開(kāi)發(fā)生產(chǎn)和維護(hù)帶來(lái)方便,。可擦寫(xiě)10 萬(wàn)次E PROM,為掉電后數(shù)據(jù)的保存帶來(lái)方便,。AVR 單片機(jī)有豐富的片內(nèi)資源,,如RTC、WATCHDOG,、A /D 轉(zhuǎn)換器,、PWM 、USART,、SPI,、TWI 接口等,I / O 口功能強(qiáng),、驅(qū)動(dòng)能力強(qiáng),。
2. 2 系統(tǒng)的工作原理
本設(shè)計(jì)采用AVR 系列單片機(jī)ATMEGA16 作為主控制器,以DS1302 時(shí)鐘芯片和16M 的外置晶振提供準(zhǔn)確時(shí)間標(biāo)準(zhǔn),、很方便的現(xiàn)實(shí)和校準(zhǔn)時(shí)間,。
Atmega32 的內(nèi)核具有豐富的指令集和32 個(gè)通用工作寄存器。所有的寄存器都直接與算邏單元(ALU) 相連接,,使得一條指令可以在一個(gè)時(shí)鐘周期內(nèi)同時(shí)訪問(wèn)兩個(gè)獨(dú)立的寄存器,。采用74HC245 存儲(chǔ)器作為信號(hào)功率放大。通過(guò)2 片74HC595 移位寄存器實(shí)現(xiàn)對(duì)數(shù)據(jù)的播放格式,,ATMEGA32 卡內(nèi)帶32MFLASH,用戶可用專用上位機(jī)軟件對(duì)要顯示的內(nèi)容按照預(yù)定的顯示格式進(jìn)行編輯后,,通過(guò)RS485或RS232 接口,向顯示屏控制卡發(fā)送,。發(fā)送結(jié)束后,,控制卡可以脫開(kāi)計(jì)算機(jī),自動(dòng)按照用戶設(shè)定的模式顯示所輸入的內(nèi)容,,從而通過(guò)LED 顯示屏來(lái)顯示你所需要的內(nèi)容,。直到下一次數(shù)據(jù)更新,所顯示的內(nèi)容一直保持,。
2. 3 系統(tǒng)的總體方案設(shè)計(jì)
LED 點(diǎn)陣顯示系統(tǒng)由計(jì)算機(jī),、RS-232 通訊電路,、控制電路和LED 點(diǎn)陣顯示電路構(gòu)成,結(jié)構(gòu)框圖如圖1 所示,。
圖1 系統(tǒng)結(jié)構(gòu)框圖
上位機(jī)完成把圖像和文字轉(zhuǎn)換成為顯示屏的顯示碼,,并且把顯示信息發(fā)通過(guò)RS232 送到控制電路上??刂齐娐愤x用具有32KB 片內(nèi)FLASH ROM 和2KB 片內(nèi)RAM 的AT2mega32 單片機(jī),,沒(méi)有外掛存儲(chǔ)器。如果要存儲(chǔ)更多的顯示信息,,可以選用具有64KB 片內(nèi)FLASH ROM 的AT2mega64 或者具有128kB 片內(nèi)FLASH ROM 的AT2mega128,也可以外掛存儲(chǔ)器來(lái)增大存儲(chǔ)能力,。控制電路主要完成對(duì)顯示數(shù)據(jù)的滾動(dòng)和分割處理,,然后通過(guò)異步串行口發(fā)送到每個(gè)單元板中,。每塊單元板用16 × 32 單色點(diǎn)陣塊拼成的點(diǎn)陣屏,控制電路更新顯示單元板的顯示內(nèi)容時(shí),,對(duì)所有單元板按地址逐個(gè)發(fā)送顯示數(shù)據(jù),,更新完所有子模塊數(shù)據(jù)后,再發(fā)送一個(gè)特殊的地址字0xFF 作為控制字,,使所單元板同時(shí)更新顯示數(shù)據(jù),,這樣可以避免當(dāng)屏幕較大,單元板數(shù)量較多時(shí)各子模塊畫(huà)面更新不同步的問(wèn)題,。對(duì)本設(shè)計(jì)中完成的2 × 10 個(gè)單元板而言,, 由于通訊速率限制,畫(huà)面更新速度最高可達(dá)56800 / ( 129 × 24 + 1 ) =18134 幀/ s,由于主控制電路還要完成全屏數(shù)據(jù)的分割和顯示內(nèi)容的移動(dòng)控制,, 所以其實(shí)際幀數(shù)低于上述值,,不過(guò)用于普通的圖片顯示已經(jīng)可以達(dá)到要求。
3 系統(tǒng)硬件設(shè)計(jì)
3. 1 主控制器的選擇
Atmega32 是基于增強(qiáng)的AVR RISC 結(jié)構(gòu)的低功耗8 位CMOS 微控制器,。由于其先進(jìn)的指令集以及單時(shí)鐘周期指令執(zhí)行時(shí)間,,Atmega32 的數(shù)據(jù)吞吐率高達(dá)1 MIPS /MHz,從而可以緩減系統(tǒng)在功耗和處理速度之間的矛盾。
Atmega32 有32K 字節(jié)的系統(tǒng)內(nèi)可編程Flash( 具有同時(shí)讀寫(xiě)的能力,, 即RWW ) , 512 字節(jié)EEPROM,1K 字節(jié)SRAM,32 個(gè)通用I /O 口線,,32個(gè)通用工作寄存器,用于邊界掃描的JTAG 接口,,支持片內(nèi)調(diào)試與編程,,三個(gè)具有比較模式的靈活的定時(shí)器/ 計(jì)數(shù)器( T /C) ,片內(nèi)/ 外中斷, 可編程串行USART,有起始條件檢測(cè)器的通用串行接口,,具有片內(nèi)振蕩器的可編程看門(mén)狗定時(shí)器,,一個(gè)SPI 串行端口,以及六個(gè)可以通過(guò)軟件進(jìn)行選擇的省電模式。
3. 2 單元板顯示電路單元
顯示驅(qū)動(dòng)電路由RS232 轉(zhuǎn)換電路,、子模塊地址標(biāo)識(shí)電路和點(diǎn)陣驅(qū)動(dòng)電路組成,。RS232 轉(zhuǎn)換電路和主機(jī)板中一樣, 同樣采用MAX485 作電平轉(zhuǎn)換,。由于采用單片機(jī)的異步串行口進(jìn)行多機(jī)通信進(jìn)行數(shù)據(jù)傳輸,,單元模塊應(yīng)該有和其位置相對(duì)應(yīng)的地址標(biāo)識(shí)地址標(biāo)識(shí)電路采用8 位并進(jìn)串出芯片74HC595 和8 位撥碼開(kāi)關(guān)組成,因此本系統(tǒng)最多可以容納255 個(gè)子模塊( 地址0xFF 作為更新子模塊顯示的控制字),。
LED 點(diǎn)陣采用動(dòng)態(tài)掃描法進(jìn)行驅(qū)動(dòng),并且實(shí)現(xiàn)16 階灰度顯示,,為了節(jié)省單片機(jī)程序中掃描程序的時(shí)間消耗,,提高掃描速度,顯示數(shù)據(jù)采用并行輸出的方法,。驅(qū)動(dòng)電路采用譯碼器74HC138 和74HC245,分別實(shí)現(xiàn)行選和位選,。4 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)包括上位機(jī)軟件的設(shè)計(jì)、下位機(jī)程序設(shè)計(jì)兩部分,。
上位機(jī)軟件完成圖像和文字的編輯,,通過(guò)計(jì)算機(jī)串行接口把顯示數(shù)據(jù)傳送到控制卡上??刂瓶ń邮丈衔粰C(jī)的數(shù)據(jù)并通過(guò)內(nèi)部Boot Loader 區(qū)的程序進(jìn)行FLASH ROM 內(nèi)顯示數(shù)據(jù)的自更新,。控制卡把顯示數(shù)據(jù)進(jìn)行分割處理后發(fā)送給每個(gè)單元板,,并且完成顯示數(shù)據(jù)不同方式處理,。
4. 1 下位機(jī)程序設(shè)計(jì)
下位機(jī)軟件設(shè)計(jì)分為兩大功能塊: 顯示部分和通信部分。顯示部分采用動(dòng)態(tài)掃描的方式,,實(shí)現(xiàn)對(duì)顯示屏要顯示的漢字,、圖象、字符等數(shù)據(jù)信息進(jìn)行傳輸控制以及顯示等功能,。與PC 機(jī)的實(shí)時(shí)通信部分主要是利用單片機(jī)串口中斷接收和發(fā)送數(shù)據(jù)信息,,實(shí)現(xiàn)與計(jì)算機(jī)的實(shí)時(shí)數(shù)據(jù)信息傳輸。程序可以實(shí)現(xiàn)與計(jì)算機(jī)的通信,,可非常方便地任意修改所要顯示的漢字,、圖像等; 并使顯示屏可按你選擇顯示方式進(jìn)行漢字或表格顯示,。設(shè)計(jì)程序的流程圖如圖2 所示,。
圖2 系統(tǒng)程序流程圖
軟件系統(tǒng)采用模塊化結(jié)構(gòu),包括主程序,、顯示子程序和串口中斷服務(wù)程序,。主程序?yàn)轫樞蚪Y(jié)構(gòu),完成堆棧,、中斷,、串口的初始化設(shè)置后,,循環(huán)調(diào)用顯示子程序,以及響應(yīng)串行接收或發(fā)送中斷指令,;顯示子程序從顯示緩沖區(qū)取出字模,,輸出行選通信號(hào)至P0 口并通過(guò)一個(gè)通用邏輯陣列74HC00D 輸出,配合列掃描信號(hào),,進(jìn)行動(dòng)態(tài)掃描顯示,; 中斷服務(wù)程序串口接收PC 機(jī)發(fā)送的漢字機(jī)內(nèi)碼數(shù)據(jù),實(shí)現(xiàn)與計(jì)算機(jī)實(shí)時(shí)通信,。程序各部分的功能,, 由各個(gè)模塊分別實(shí)現(xiàn)。程序模塊有: 串口初始化模塊,、數(shù)據(jù)輸入模塊,、漢字首地址計(jì)算模塊、取字模塊,、顯示模塊和移動(dòng)模塊,。系統(tǒng)顯示流程圖如圖3 所示。
圖3 系統(tǒng)顯示流程圖
4. 2 人機(jī)交互界面的設(shè)計(jì)
上位機(jī)軟件使用可視化編程工具Visual Basic.NET 開(kāi)發(fā),,主要完成圖像的取點(diǎn),、線性補(bǔ)償和點(diǎn)陣數(shù)據(jù)生成。首先將圖像文件轉(zhuǎn)換為96 × 64 分辨率,、256 階色深的單色灰度圖像,,由于使用占空比驅(qū)動(dòng)的LED 其占空比/ 亮度為對(duì)數(shù)特性,所以需加入指數(shù)特性調(diào)整為線性之后才能交付顯示系統(tǒng)進(jìn)行顯示,。
通過(guò)MSComm 控件實(shí)現(xiàn)PC 機(jī)與單元板的通信,。系統(tǒng)主界面如圖4 所示。
圖4 上位機(jī)主界面
5 結(jié)論
本系統(tǒng)設(shè)計(jì)著重于對(duì)單色屏的研究,,對(duì)于灰度不同的真彩色LED 顯示屏的設(shè)計(jì)以及設(shè)備的驅(qū)動(dòng),,有待于進(jìn)一步的學(xué)習(xí)探討。而且本設(shè)計(jì)所用的控制卡只能控制顯示屏的單色顯示,,如果能顯示雙色,,甚至三色那就更方便了。LED 顯示屏可以顯示變化的數(shù)字,、文字,、圖形圖像,不僅可以用于室內(nèi)環(huán)境還可以用于室外環(huán)境,,具有投影儀,、電視墻、液晶顯示屏無(wú)法比擬的優(yōu)點(diǎn)。LED 甚至可以在信息指示燈,、大屏幕顯示,、液晶顯示(LCD) 的背照明等新技術(shù)中應(yīng)用。它是未來(lái)智能交通系統(tǒng)的顯示手段之一,。
由于LED 顯示屏的分析,、設(shè)計(jì)與實(shí)際應(yīng)用環(huán)境及應(yīng)用目的有很大關(guān)系,所以對(duì)其控制系統(tǒng)的要求也是不同的,。如果顯示屏的面積要求很大,,屏幕顯示的信息量超大,那么要傳輸?shù)臄?shù)據(jù)量也隨之增大,,如何設(shè)計(jì)出更理想的字模保存方法以及數(shù)據(jù)傳輸時(shí)的壓縮算法需要進(jìn)一步的研究和探討,。