盧方杰
?
16*16 LED顯示屏控制系統(tǒng)的設(shè)計研究
盧方杰
(漳州電視臺 技術(shù)制作部,福建 漳州 363000)
基于串行通信的16*16 LED顯示屏控制系統(tǒng)的設(shè)計,利用Visual Basic提供的MSComm控件建立PC機與單片機的串行通信,設(shè)計友好的操作界面,實現(xiàn)控制LED顯示屏。上位機采用VB編程,通過按鍵向單片機輸送控制信號,控制顯示屏的循環(huán)次數(shù)、顯示方式。單片機采用MCS-51單片機指令系統(tǒng)進行編程實現(xiàn)串口數(shù)據(jù)接收,并控制驅(qū)動16*16 LED顯示屏做出相應(yīng)的顯示。經(jīng)測試該系統(tǒng)能實現(xiàn)良好的自動控制,功能滿意。
16*16LED顯示屏;電平轉(zhuǎn)換;AT89C51單片機;MSComm控件;串行通信
LED(發(fā)光二極管的英文Light Emitting Diode縮寫)憑借其亮度高、工作電壓低、功耗小等優(yōu)點已廣泛應(yīng)用于商場、車站、銀行以及各類辦事窗口等其它公共場所。隨著信息產(chǎn)業(yè)的高速發(fā)展,LED的顯示控制方式也變得多樣化。
在本設(shè)計系統(tǒng)中,上位機采用一臺標(biāo)配的計算機,下位機由AT89C51單片機及其外圍電路組成,通過RS-232C串行通信方式交換上位機下發(fā)的控制命令,并返回下位機的工作狀態(tài)。因RS-232信號電平與單片機的串口TTL電平不一樣,所以PC機與單片機之間的通信接口電路必須經(jīng)過電平轉(zhuǎn)換,芯片MAX232正好可以完成這個功能。同時單片機要對接收到的控制信號進行檢測,然后再通過驅(qū)動電路對點陣的行、列進行驅(qū)動,繼而控制點陣顯示屏做出相應(yīng)的顯示。
2.2.1行驅(qū)動電路模塊
行驅(qū)動電路如圖1所示,由單片機的輸入輸出口生成數(shù)據(jù)信號,而51單片機的灌電流(1.6mA左右)和拉電流(-10mA)很小無法直接驅(qū)動二極管,所以必須經(jīng)過驅(qū)動器才能驅(qū)動點陣二極管。由于系統(tǒng)是16*16點陣顯示屏,因此剛好可以利用P0和P2口共16個輸入輸出口來生成數(shù)據(jù)信號,再經(jīng)過16個驅(qū)動器三極管并列分別驅(qū)動16*16點陣顯示屏的16行線。
2.2.2參數(shù)計算選擇
一條行線上有16個LED,因采用的是動態(tài)掃描方式進行顯示,每一個LED以7.5mA電流計算,那么瞬時流經(jīng)電路的電流為16x7.5mA=120mA,驅(qū)動管選用9012可滿足要求。由于VCC接+5V,而三極管處于開關(guān)狀態(tài)下其集電極與發(fā)射極之間的壓降約為0.3V,又發(fā)光二極管的壓降為0.7V,從而集電極電阻的阻值選用(5V-0.3V-0.7V)/0.12A=33Ω。因51單片機灌電流約為1.6mA,同時為了使三極管工作在開關(guān)狀態(tài)下,所以在此電路中I/O口輸出必須接4.7K的限流電阻。
2.2.3列選通電路模塊
列選通電路由集成電路74HC154構(gòu)成,74HC154是4線-16線高性能存儲器的譯碼器。當(dāng)兩個選通輸入G1和G2為低時, 它可將4個二進制編碼的輸入譯成16個互相獨立的輸出之一。本設(shè)計的行選通電路用51單片機P1口的P1.1-P1.4位輸出的二進制編碼經(jīng)4/16線譯碼器74LS154譯碼后生成16條列選通信號線,再經(jīng)過驅(qū)動對應(yīng)的列線。
每一個字均由16行16列的點陣組成顯示。一般我們把它拆分為上部和下部,上部由8*16點陣組成,下部也由8*16點陣組成。其原理如圖3所示,單片機首先顯示的是左上角的第一列的上半部分,即第0列的p00-p07口。方向為p00到p07,顯示漢字“大”時,p05點亮,由上往下排列,為p0.0滅,p0.1滅,p0.2滅,p0.3滅,p0.4滅,p0.5 亮,p0.6滅,p0.7滅。即二進制00000100,轉(zhuǎn)換為16進制為04h。
上半部第一列完成后,繼續(xù)掃描下半部的第一列,為了接線的方便,我們?nèi)栽O(shè)計成由上往下掃描,即從p27向p20方向掃描,從圖可以看到,這一列全部為不亮,即為00000000,16進制則為00h。然后單片機轉(zhuǎn)向上半部第二列,仍為p05點亮,為00000100,即16進制04h。這一列完成后繼續(xù)進行下半部分的掃描,p21點亮,為二進制00000010,即16進制02h。由這個原理可以看出,無論顯示何種字體或圖像,都可以用這個方法來分析出它的掃描代碼從而顯示在屏幕上。
本設(shè)計的處理系統(tǒng)采用AT89C51單片機匯編語言編寫。采用12M晶振,串行口定義為8 位異步串行通信口,波特率由定時器T1所確定,為9600。主程序部分主要進行T1定時器初值設(shè)置,還有串口中斷控制字的設(shè)置和各個存儲器的初始化等。子程序部分實現(xiàn)的功能是:接收計算機串口發(fā)送過來的數(shù)據(jù);單片機對接收到的按鍵標(biāo)志位進行掃描;單片機根據(jù)相應(yīng)的按鍵情況轉(zhuǎn)向相應(yīng)的分支進行處理。各個功能模塊分別為串口中斷、停止?fàn)顟B(tài)、移動顯示模塊、逐字顯示模塊。
VB控制界面如圖4所示。其界面主要是依據(jù)本系統(tǒng)的具體控制要求,本著控制簡單、快捷,一目了然等特點來設(shè)計的。VB界面設(shè)計由一些按鈕、菜單、標(biāo)簽和文本框經(jīng)過合理的布局構(gòu)成。同時附加文字說明,這樣有利于提高系統(tǒng)的交互性。
CommPort屬性:該屬性設(shè)置并返回通信連接的串行端口號,Windows將會利用該串口和外界通信,默認(rèn)值為1。但是如果用PortOpen屬性打開一個并不存在的端口時,MSComm控件會產(chǎn)生錯誤。
Settings屬性:該屬性用于設(shè)置并返回數(shù)據(jù)傳輸速率、奇偶校驗、數(shù)據(jù)比特、停止比特參數(shù)。
RThreshold屬性:該屬性為一閾值,它確定當(dāng)接收緩沖區(qū)內(nèi)的字節(jié)個數(shù)達到或超過該值后就產(chǎn)生代碼為ComEvReceive的OnComm事件。若RThreshold屬性設(shè)置為0,則不會產(chǎn)生OnComm事件。
SThreshold屬性:該屬性為一閾值,當(dāng)發(fā)送緩沖區(qū)內(nèi)字節(jié)個數(shù)達到或超過該值后就產(chǎn)生代碼為ComEvSend的OnComm事件。若SThreshold屬性設(shè)置為0,則不會產(chǎn)生OnComm事件。
PortOpen屬性:PortOpen屬性用于打開或者關(guān)閉端口。一般情況下在程序開始時打開端口,在程序結(jié)束時關(guān)閉端口。當(dāng)應(yīng)用程序終止時,MSComm控件將自動關(guān)閉串口。
CommEvent屬性:這是一個非常重要的屬性。一旦串口發(fā)生通信事件或產(chǎn)生錯誤,依據(jù)產(chǎn)生的事件和錯誤,MSComm控件為CommEvent屬性賦不同的代碼,同時產(chǎn)生OnComm事件。用戶程序就可在OnComm事件處理程序中針對不同的代碼,進行相應(yīng)的處理。
本設(shè)計操作簡單便捷、交互性強,在利用開發(fā)的控制平臺上輸入控制數(shù)據(jù),使用事先約定好的握手協(xié)議實現(xiàn)LED點陣顯示屏按設(shè)定的循環(huán)次數(shù)和顯示方式進行顯示。此外,VB還設(shè)計有滾動字幕、實時時鐘、菜單等功能進一步充實美化界面。
[1]鬲淑芳.模擬電子技術(shù)基礎(chǔ)[M].西安:陜西師范大學(xué)出版社,1997,第2版.
[2]張俊謨.單片機中級教程[M].北京:北京航空航天大學(xué)出版社,2002,第2版.
[3]胡輝.單片機原理及應(yīng)用設(shè)計[M].北京:中國水利水電出版社,2005.
[4]《電腦編程技巧與維護》雜志社.Visual Basic編程技巧典型案例解析[M].北京:中國電力出版社,2005.
[5]范逸之.陳文元.Visual Basic與RS-232串行通信控制[M].北京:清華大學(xué)出版社,2002.
[6]崔武子.界面設(shè)計與Visual Basic實訓(xùn)百例[M].北京:清華大學(xué)出版社,2006.
圖1 行驅(qū)動電路模塊
圖2 單片機接口電路
圖3 漢字的點陣顯示原理
圖4 VB控制界面
Research on the Design of 16*16 LED Display Control System
LU Fang-jie
(Technology Department of Zhangzhou Television Station, Zhangzhou 363000,China)
The design of 16*16 LED display control system makes use of the MSComm control widget provided by Visual Basic to establish the serial communication between PC and MCU, and to create friendly interface, in order to realize the control of the LED display. Serial procedures programmed by Visual Basic control the cycle and the mode of the LED display by pressing the key on the interface to send control signals to MCU. The MCS-51 code system is adopted to program to receive the serial data.The driver circuit is used for controlling and driving the dispaly of the LED display by the assembler codes. After being tested, the system can carry out automatic control satisfiably.
16*16 LED Display; Electrical level transform; AT89C51MCU; MSComm control widget; serial communication
2010-05-15
盧方杰(1982-),男,福建南靖人,助理工程師,學(xué)士,研究方向:電子圖形圖像多媒體。
TN141
A
1673-1417(2010)03-0004-04