邢 磊,徐道連,鄧?yán)^坤,余 建
(重慶大學(xué) 光電技術(shù)及系統(tǒng)教育部重點實驗室,重慶 400030)
LED具有發(fā)光亮度強(qiáng)、工作壽命長和耗電低的特點,在可視距離內(nèi)就算是陽光直射屏幕表面,顯示內(nèi)容也清晰可見。它的亮度可以通過調(diào)節(jié)工作電流和調(diào)節(jié)驅(qū)動電流的占空比來實現(xiàn),并且具有超級的灰度調(diào)節(jié)。交通誘導(dǎo)屏通過顯示單元發(fā)出紅、綠、黃3種不同顏色的光來表示該路段的交通狀況,其中紅色表示擁堵或事故,綠色表示暢通,黃色表示交通狀況一般。本文提出了一種基于兩片ATmega8單片機(jī)的LED顯示單元控制方案,其中單片機(jī)A用于接收主控制板的數(shù)據(jù)并解析,然后通過I/O口發(fā)送給單片機(jī)B來控制LED顯示和亮度的調(diào)節(jié)。該方案可以實現(xiàn)8級亮度顯示,其亮度可以根據(jù)光線的強(qiáng)弱自動調(diào)節(jié)LED的亮度,主要應(yīng)用于室外交通誘導(dǎo)屏[1-2]。
VMS顯示單元控制系統(tǒng)采用兩片ATmega8單片機(jī)的處理方案,其總體設(shè)計方案如圖1所示。主控制板發(fā)送指令和數(shù)據(jù),通過RS-485將數(shù)據(jù)傳輸?shù)絾纹瑱C(jī)A。單片機(jī)A把接收到的數(shù)據(jù)發(fā)送到I/O口同時把數(shù)據(jù)存儲到外部的EEPROM,并通過外部中斷的方式通知單片機(jī)B讀取數(shù)據(jù)。外部EEPROM用于存儲本機(jī)RS-485通信地址和接收到的數(shù)據(jù),單片機(jī)A每次都要把接收的數(shù)據(jù)存儲在EEPROM的指定位置以免斷電數(shù)據(jù)丟失。單片機(jī)B把接收到的數(shù)據(jù)串行發(fā)送到74HC595轉(zhuǎn)換成并行的數(shù)據(jù)輸出。單片機(jī)B通過不斷刷新74HC595的輸出數(shù)據(jù)調(diào)節(jié)LED驅(qū)動電流的占空比以調(diào)節(jié)其亮度。
圖1 系統(tǒng)整體方框圖
通信模塊采用ATmega8作為控制芯片,采用內(nèi)部8 MHz晶振,其電路連接圖如圖2所示。AT24C01A的SCL和SDA分別與ATmega8中的TWI接口相連接,SCL和SDA引腳要接上拉電阻,把不確定信號鉗位在高電平,從而提高芯片輸入信號的噪聲容限增強(qiáng)抗干擾能力。SIN0~SIN11引腳作為兩個單片機(jī)直接的數(shù)據(jù)通信口,L0~L2作為光強(qiáng)的數(shù)據(jù)傳輸口,這 15個I/O口都要接下拉電阻。RS-485通信芯片采用的是SN75176,其引腳R和D都接到單片機(jī)的PD5。
圖2 通信和數(shù)據(jù)處理模塊
顯示控制模塊由ATmega8和兩片74HC595組成,其連接電路圖如圖3所示。74HC595的串行輸入腳SER和移位控制引腳SRCLK分別連接到單片機(jī)SPI接口的MOSI和SCK引腳。
圖3 顯示控制模塊
開關(guān)電路模塊由5551三極管和4953組成,其連接圖如圖4所示。74HC595的輸出接到5551三極管的基極,5551的集電極采用+24 V電壓供電。LED一般采用24 V電壓供電,故紅色和黃色與LED可以串聯(lián)9個并串聯(lián)一個100 Ω的電阻與4953連接,綠色LED可以串聯(lián)6個并串聯(lián)一個 200 Ω電阻連接到 4953。5551三極管的作用是把74HC595的5 V輸出電平轉(zhuǎn)換成開關(guān)4953需要的24 V電平。4953可以承載LED點亮所需要的電流。
圖4 LED開關(guān)電路圖
圖5 數(shù)據(jù)處理程序和RS-485通信程序
系統(tǒng)軟件設(shè)計包括通信和數(shù)據(jù)處理模塊以及顯示控制模塊的兩部分。
單片機(jī)A完成數(shù)據(jù)的處理和RS-485通信,其程序由數(shù)據(jù)處理程序和RS-485通信程序兩部分組成,如圖5所示。
顯示控制模塊程序由顯示主程序和中斷服務(wù)程序組成。顯示子程序控制LED的顯示和亮度,中斷服務(wù)程序用來接收單片機(jī)A發(fā)出的數(shù)據(jù)。顯示主程序的流程圖如圖6所示,中斷服務(wù)程序的流程圖如圖7所示。顯示子模塊部分程序代碼如下:
SPI初始化函數(shù)代碼如下:
SPI向74HC595發(fā)送數(shù)據(jù)函數(shù)代碼如下:
圖6 顯示主程序
圖7 中斷服務(wù)程序
用脈沖寬度調(diào)制來控制LED顯示和亮度的控制程序如下所示。其中,變量brt中存儲的是LED的亮度控制字,data1和data2存儲的是紅綠黃LED燈的控制字。
本文以ATmega8單片機(jī)為硬件基礎(chǔ),設(shè)計了VMS顯示單元控制系統(tǒng)的硬件電路和軟件,實現(xiàn)了LED的亮度隨室外光線的變換而變化。本設(shè)計具有很強(qiáng)的擴(kuò)展性,并且采用了ISP功能,為電路板的調(diào)試和系統(tǒng)的維護(hù)帶來了很大的方便。實驗證明,本控制系統(tǒng)可以很好地控制LED的亮度,保證LED點陣顯示屏清晰、不刺眼,有很好的應(yīng)用價值。
[1]王浩然,秦會斌.LED點陣屏顯示單元的設(shè)計與驅(qū)動控制[J].電子器件,2010,33(5):550-552.
[2]廖繼海,梁志明,羅廣君,等.基于 AVR單片機(jī)的 LED顯示屏的灰度設(shè)計與實現(xiàn) [J].現(xiàn)代電子技術(shù),2007,30(3):189-191.