摘要:LED多功能顯示屏系統(tǒng)采用動態(tài)掃描的方法,以STC89C58RD+單片機作為主控芯片,利用自制的紅外遙控器無線下載信息到主機顯示。顯示屏由1 024只高亮發(fā)紅光二極管構(gòu)成的16x64點陣組成,行掃描電路采用74HC154譯碼器芯片驅(qū)動,列掃描電路用8塊74HC595驅(qū)動,紅外遙控發(fā)射頭采用一體化紅外收發(fā)器。系統(tǒng)實現(xiàn)數(shù)字、字母、漢字等信息的動靜態(tài)顯示,和PC機串口通信來更新顯示信息,系統(tǒng)還可通過遙控器鍵盤遠距離進行信息的上下左右移動及顯示內(nèi)容的更新。
關鍵詞:STC89C58RD+單片機;LED顯示屏;紅外遙控;串行通信;行列掃描
0 引言
隨著計算機及相關的微電子、光電子技術(shù)的迅猛發(fā)展,LED顯示屏以其可靠性高、使用壽命長、環(huán)境適應能力強、性價比高的特點,迅速成長為平板顯示的主流產(chǎn)品。
目前大多數(shù)的LED點陣顯示系統(tǒng)自帶字庫,顯示和動態(tài)效果(主要是顯示內(nèi)容的滾動)的實現(xiàn)依靠硬件掃描驅(qū)動,該方法雖然比較方便,但顯示內(nèi)容不易及時更新,而且當LED顯示屏安裝到戶外時,不能對其進行有效的控制。室內(nèi)顯示屏通過數(shù)據(jù)線控制,很不方便。
設計圍繞多功能LED顯示屏進行,顯示方式有上下左右移動,利用PC機進行顯示內(nèi)容的實時控制更新。系統(tǒng)使用紅外發(fā)射、接收器構(gòu)成的遙控電路,遙控接收器通過對紅外光接收并識別,判斷控制操作,來完成整個紅外遙控發(fā)射、接收過程,可以方便地更新顯示內(nèi)容,更換顯示方式,使設計更具實用性和操作控制的方便性。
1 總體設計方案
LED顯示屏多采用動態(tài)掃描顯示方式。掃描顯示的原理是基于人眼的視覺暫留現(xiàn)象,各顯示行(列)輪流顯示,只要刷新頻率不小于24 f/s,人眼感覺到的將是完整連續(xù)的圖像。
紅外遙控是以紅外線作為載體來傳送控制信息的,紅外線發(fā)射頭采用紅外發(fā)光二極管,這樣遙控發(fā)射器易于小型化且價格低廉。采用數(shù)字信號編碼和二次調(diào)制方式,不僅可以實現(xiàn)多路信息的控制,增加遙控功能,提高信號傳輸?shù)目垢蓴_性,減少誤動作,而且功耗低,不會產(chǎn)生信號串擾,反應速度快,傳輸效率高,工作穩(wěn)定可靠等。單片機采用STC89C58RD+,儲存數(shù)據(jù)量比STC89C52大,晶振用22.114 8 MHz,以提高刷新的頻率使顯示更穩(wěn)定。P0口輸出行信號經(jīng)74HC154譯碼后,產(chǎn)生行選通信號送入顯示屏的行進行輪流顯示。單片機P2口與8位移位寄存器74HC595相連。系統(tǒng)總體結(jié)構(gòu)圖如圖1所示。
2 硬件電路設計
2.1 16x64 LED點陣屏
系統(tǒng)顯示屏用16行、64列的高亮白5 mm LED發(fā)紅光二極管搭建成。每行64個LED的陽極相連成行線并引出,16行16個接口作為共陽行線接口端,方便與行驅(qū)動模塊連接,實現(xiàn)行的定位和掃描;每列16個LED的陰極相連并引出,每8條列線組成一個接口,方便與列驅(qū)動模塊相接,實現(xiàn)寄存器數(shù)據(jù)的存儲與掃描,從而搭建成顯示屏系統(tǒng)。部分點陣屏電路如圖2所示。
2.2 主控與掃描驅(qū)動電路
主控電路以STC89C58RD+芯片為核心,外接復位電路、時鐘電路及串口下載線接口電路(RS 232通信接口),用于LED顯示系統(tǒng)和電腦的通信,通信方式為10位的異步通信,在線下載便于程序更新,有利于系統(tǒng)的維護。
掃描驅(qū)動電路由行和列驅(qū)動組成。LED顯示屏一共16行,用一片74HC154對16行LED進行譯碼選擇,經(jīng)過TIP127放大并轉(zhuǎn)換成高電平,從而選通行線。
列掃描驅(qū)動采用并行數(shù)據(jù)串行傳輸?shù)姆桨福瑪?shù)據(jù)鎖存器用74HC595。64列用8塊74HC595芯片來驅(qū)動,8塊74HC595是首尾相連,前面一塊74HC595的移位輸出連接到下一塊74HC595輸入,第一塊74HC595的串行數(shù)據(jù)輸入端與單片機數(shù)據(jù)輸出端相連接,其中前2塊74HC595連接如圖3所示。
2.3 紅外收發(fā)遙控電路
紅外發(fā)射接收原理是:發(fā)射端輸入信號經(jīng)放大后送入紅外發(fā)射管發(fā)射,在接收端,接收管收到紅外信號后,由放大器放大處理還原成控制信號。按下某一個按鍵,單片機識別出該按鍵,同時單片機向接有紅外發(fā)射管的端口發(fā)射一定頻率的脈沖。該脈沖與38 kHz左右的載波脈沖進行調(diào)制,然后將已調(diào)制的脈沖進行緩沖放大,激勵紅外發(fā)光二極管將電能轉(zhuǎn)化為光能,使得紅外發(fā)光二極管發(fā)射出一定頻率的紅外線。當接收控制系統(tǒng)接收到該紅外光后,由單片機內(nèi)定時/計數(shù)器得到該紅外光的頻率,然后將該頻率送往CPU,由CPU對該信號進行解碼,識別出控制信號,從而對控制電路實施控制功能,完成整個遙控功能。
系統(tǒng)采用一體化紅外接收頭HS0038,如圖4所示,1腳GND接電源地,2腳VCC接+5 V,3腳OUT為數(shù)據(jù)輸出端(TTL電平,反相輸出),可直接與單片機相連。SE303是紅外發(fā)射二極管,當P2.0=1時,三極管9013導通,SE303通電發(fā)射紅外線,實際上發(fā)射的是頻率為38 kHz的脈沖串。電路連接如圖4所示。
3 軟件系統(tǒng)設計
3.1 總體程序流程設計
單片機開外部中斷,不斷查詢是否有紅外信號發(fā)射過來,若沒有接收到信號,單片機按照原來的預編入內(nèi)容進行掃描,送給顯示屏顯示。否則,單片機接收數(shù)據(jù),辨認顯示方式,接收完畢后,更新顯示內(nèi)容。同理按照這種方式接收PC機的數(shù)據(jù),進行更新顯示。總體程序
如圖5所示。
3.2 串行通信程序
每當向PC機客戶程序里輸入新顯示內(nèi)容并發(fā)送給單片機時,單片機就產(chǎn)生串行中斷,接受待顯示信息的機內(nèi)碼,然后再利用點陣字模信息提取程序得到點陣數(shù)據(jù)送到LED顯示屏顯示。單片機接受數(shù)據(jù)采用中斷的方式。串行中斷程序流程圖如圖6所示。
3.3 LED顯示程序
LED顯示屏的顯示方式有靜止、上下滾屏、左右滾屏等多種方式,其程序流程如圖7所示。其中上下滾屏顯示程序類似,左右滾屏顯示程序類似,其他多花樣的顯示方式程序都是在此基礎上進行改動而來的。
3.4 PC機客戶程序
系統(tǒng)的PC機客戶程序用Visual Basic6.0進行開發(fā),主要利用其串行通信控件MSComm,其主要流程圖見圖8所示。
3.5 紅外遙控程序
3.5.1 發(fā)射程序設計
因HS0038的紅外接收頻率為38 kHz,所以載波信號采用38 kHz方波。載波信號由子程序產(chǎn)生,方波周期t=26μs。該程序基于字節(jié)傳輸?shù)募t外遙控數(shù)據(jù)格式,在發(fā)送字節(jié)的開始先通過單片機發(fā)送20個脈沖寬度(每個脈沖周期26μs)的高電平作為傳輸開始,接著發(fā)送8位數(shù)據(jù)(字節(jié)高位在前,低位在后),最后發(fā)送10個脈沖寬度的低電平作為傳輸結(jié)束。其程序流程圖如圖9所示。
3.5.2 接收程序設計
HS0038輸出的信號是解調(diào)后的反向信號,所以接收到的信號解碼時也要經(jīng)過反向才能與發(fā)送信號編碼一致。當接收到同步幀后,進入解碼部分,接收完一幀后,處理收到的數(shù)據(jù)并進入下一次接收。解碼采用軟件抽樣判決,以15個脈沖為判決門限,在門限時刻讀得低電平時,即可判定為編碼‘1’;在門限時刻讀得高電平時,即可判定為編碼‘0’。解碼一位后,需等到下一位的高電平到來,再計數(shù)15個脈沖后,判斷讀得的電平是高還是低,進行解碼。程序流程如圖10所示。
4 結(jié)語
基于STC89C58RD+單片機控制的遙控LED點陣顯示屏設計,能很好地完成多功能顯示,通過紅外遙控對顯示內(nèi)容和顯示效果進行實時無線遠距離的操作控制,能夠?qū)崿F(xiàn)數(shù)字、字母、漢字等信息的動靜態(tài)顯示,還可以和PC機通信,通過PC機串口對顯示信息進行更新,傳輸給遙控器儲存,然后用遙控器可以方便地對顯示內(nèi)容進行更新和變換顯示模式。