C8051F340控制的LED點陣顯示屏系統(tǒng)設(shè)計
1 引言
隨著計算機及相關(guān)的微電子、光電子技術(shù)的迅猛發(fā)展。LED顯示屏以其可靠性高、使用壽命長、環(huán)境適應能力強、性價比高的特點,迅速成長為平板顯示的主流產(chǎn)品。它利用發(fā)光二極管構(gòu)成的點陣模塊或像素單元組成可變面積的顯示屏幕,LED電子顯示屏雖不如LCD顯示屏的界面友好直觀,但由于其具有顯示信息量大、操作方便靈活、用戶可隨時自行修改顯示內(nèi)容和顯示屏幕的大小、顯示方式圖文并茂等優(yōu)點,被廣泛應用于公共場所。
這里介紹一種24×40的顯示屏控制系統(tǒng),該系統(tǒng)可同時顯示4個14×10的漢字和8個7×5的字符或數(shù)字,以C8051F340單片機為控制器,以74HC595作為行列驅(qū)動器。
2 系統(tǒng)硬件設(shè)計
2.1 總體設(shè)計
該系統(tǒng)由顯示屏控制器、行驅(qū)動器、列驅(qū)動器、LED點陣顯示屏、與PC機的串口通信,品振電路和存儲器模塊等構(gòu)成??傮w設(shè)計框圖如圖1所示。
2.2 顯示屏控制器
顯示屏控制器選用C8051F340單片機,它是完全集成的混合信號系統(tǒng)級芯片(SoC),具有與8051兼容的高速CIP-51內(nèi)核,與MCS-51指令集完全兼容,片內(nèi)集成數(shù)據(jù)采集和控制系統(tǒng)中常用的模擬、數(shù)字外設(shè)及其他功能部件:內(nèi)置Flash程序存儲器、內(nèi)部RAM,大部分器件內(nèi)部還有位于外部數(shù)據(jù)存儲器空間的RAM,即XRAM。
2.3 行驅(qū)動器
設(shè)計中使用3塊74HE595和3個相對應的三態(tài)門2803作為行驅(qū)動器。2803是常用的達林頓驅(qū)動器。達林頓管又稱復合管,將兩只三極管適當?shù)倪B接在一起,組成一只等效的三極管。新的三極管的放大倍數(shù)是二者之積。在電子電路設(shè)計中,達林頓接法常用于功率放大器和穩(wěn)壓電源中。
這類器件的COM端(的引腳IO)主要有兩種作用:
(1)試驗用時接地輸出端都接發(fā)光二極管,只要將COM端接地,則所有發(fā)光二極管都點亮,否則,可能是二極管毀壞或其他毀壞。
(2)保護用時接電源正極該器件是接繼電器或針式打印頭,因為電感作用,會在開關(guān)過程中產(chǎn)生低于地電位和高于電源電位的反電動勢,這樣,很容易擊穿器件。為防止這種現(xiàn)象的發(fā)生,可將COM端接到電源正極.來削弱沖擊電壓低到二極管壓降和電源電壓的幅度,這樣可使內(nèi)部的三極管受到最小的正電壓沖擊。
2.4 列驅(qū)動器
設(shè)計中使用5塊74HC595作為列驅(qū)動。74HC595是內(nèi)含8位串入、8位串入并出的移位寄存器和8位三態(tài)輸出鎖存器的結(jié)構(gòu),且移位寄存器和輸出鎖存器分別有各自的時鐘輸入,控制各自獨立,這使列數(shù)據(jù)的準備和列數(shù)據(jù)的顯示可同時進行。74HC595通過串行級聯(lián)方式傳輸。系統(tǒng)擴展容易。圖2為其內(nèi)部結(jié)構(gòu)。
2.5 LED點陣顯示屏
圖3為LED點陣顯示屏電路圖。點陣顯示屏由15個8×8的點陣LED顯示模塊構(gòu)成,圖3a為顯示模塊,圖3b為行驅(qū)動模塊中的一個行驅(qū)動單元,圖3c為C8051F340的引腳配置圖,圖3d為列驅(qū)動模塊中的一個列驅(qū)動單元。
2.6 串口通信接口
MAX232實現(xiàn)RS232與TTL電平的轉(zhuǎn)換,使PC機與單片機傳輸信息。如果傳輸距離超過RS232要求的距離,可在兩者之間增加RS232/RS485轉(zhuǎn)換模塊,則達到RS485的傳輸要求。
3 系統(tǒng)軟件設(shè)計
整個軟件設(shè)計分為顯示和通信兩部分。軟件設(shè)計語言采用匯編語言和Keil C51語言。在C8051F系列自帶的IDE編程環(huán)境結(jié)合Keil環(huán)境實現(xiàn)顯示功能。通信部分上位機部分則直接在PC機VC++環(huán)境下實現(xiàn)。
3.1 顯示部分
顯示部分采用動態(tài)掃描方式,實現(xiàn)漢字、圖像、數(shù)字字符等數(shù)據(jù)信息的控制以及顯示等功能。采用行掃描方式,當選通第1行LED點陣時,對應列數(shù)據(jù),由于74HC595器件的特殊性,通過將每個器件的串行數(shù)據(jù)輸入引腳14(SER)與下一個器件的串行數(shù)據(jù)輸出引腳9(Q'H)級聯(lián),可以把需要顯示的數(shù)據(jù)信息依次存入74HC595器件內(nèi),通過其鎖存器功能將數(shù)據(jù)鎖存,待40列數(shù)據(jù)都存入74HC595器件內(nèi)時,把輸出有效引腳13(OE)置為低電平,則40列數(shù)據(jù)一起輸出,達到一行顯示的效果。依次類推,實現(xiàn)整個顯示屏的顯示功能。
顯示部分的設(shè)計還要考慮最示方式和顯示狀態(tài)等。顯示方式有上移、下移、左移、右移等,其實現(xiàn)取決于從數(shù)據(jù)存儲區(qū)中取出數(shù)據(jù)放入顯示緩沖區(qū)時取數(shù)的順序,左右移每次取出中位數(shù)據(jù),上下移則每次取出1行數(shù)據(jù)。顯示狀態(tài)則要考慮到顯示數(shù)字的移動速度和停留時間等。
一般程序中將數(shù)據(jù)存儲器分為顯示緩沖區(qū)、數(shù)據(jù)存儲區(qū)和接收緩沖區(qū)3部分。接收緩沖區(qū)存放PC機傳給單片機要顯示的數(shù)據(jù);經(jīng)處理后按一定規(guī)律存儲在數(shù)據(jù)存儲區(qū);再根據(jù)顯示方式依次從數(shù)據(jù)存儲區(qū)中取出數(shù)據(jù)放入顯示緩沖區(qū)中顯示。圖為4為顯示部分程序流程。
3.2 通信部分
C8051F340有2個UART,將一個UART的TXD和RXD分別與MAX232的T1IN和R1OUT相連,MAX232的T1OUT和R1IN分別與PC機的串行接口COM1或COM2相連。注意通信協(xié)議和波特率要相一致。
通信部分上位機軟件采用Visual C++編程。應用其開發(fā)串行通信方法有:(1)利用Windows API通信函數(shù);(2)利用其標準通信函數(shù)inp、inpw、inpd、outp、outpw、outp等直接對串口操作;(3)使用Visual C++的通用控件(MSComm);(4)利用第三方編寫的通信類程序。綜合考慮,上述各種方法的性能,這里采用第3種方法,即采用MSComm控件。
MSComm控件通過串行端口傳輸和接收數(shù)據(jù),為應用程序提供串行通訊功能。MSComm控件在串口編程時非常方便,程序員不必了解較為復雜的API函數(shù),而且在VC、VB、Delphi等語言中均可使用。表1為MSComm控件較為重要和常用屬性。
4 結(jié)束語
LED點陣顯示屏控制系統(tǒng)以C8051F340單片機為基礎(chǔ),采用其自身的RAM和Flash存儲器作為數(shù)據(jù)存儲器,利用MAX232作為RS232和單片機的接口轉(zhuǎn)換模塊,實現(xiàn)與PC機的數(shù)據(jù)傳輸,也可以隨時更新顯示內(nèi)容。采用C和匯編語言混合編程,其中顯示模塊的關(guān)鍵部分代碼采用匯編語言編寫,因該系統(tǒng)采用基于Keil C51的編程,故具有較好移植性。
評論