基于STC89C58單片機(jī)LED點(diǎn)陣書寫顯示屏的解決方案
掃描二維碼
隨時(shí)隨地手機(jī)看文章
0 引言
近年來,點(diǎn)陣LED顯示屏利用發(fā)光二極管構(gòu)成的點(diǎn)陣模塊或像素單元組成可變面積的顯示屏幕,以可靠性高、使用壽命長(zhǎng)、環(huán)境適應(yīng)能力強(qiáng)、性能價(jià)格比高、使用成本低等特點(diǎn),已成為眾多顯示媒體以及戶外作業(yè)顯示的電子工具,廣泛地應(yīng)用于車站、賓館、金融、證券、郵電、體育等廣告發(fā)布或交通運(yùn)輸?shù)刃袠I(yè)。目前LED顯示屏的設(shè)計(jì)已經(jīng)有多種方法可以實(shí)現(xiàn),本設(shè)計(jì)是基于STC89C58單片機(jī)利用自制的光筆中紅外光電三極管檢測(cè)光筆觸及位置處紅色LED燈的點(diǎn)亮,計(jì)算出光筆位置的行列坐標(biāo),并根據(jù)按鍵設(shè)置的不同工作模式控制LED顯示,從而實(shí)現(xiàn)點(diǎn)亮、劃亮、反顯、清屏、筆畫拖動(dòng)、輪流顯示等功能。
1 系統(tǒng)設(shè)計(jì)方案
用雙色LED點(diǎn)陣(紅色和綠色)模塊組合成32×32的LED點(diǎn)陣屏。其中紅色LED作微亮掃描檢測(cè)用,綠色LED作顯示用,用紅外光電三極管自制光筆。在檢測(cè)時(shí)依次點(diǎn)亮紅色LED,當(dāng)點(diǎn)亮到某個(gè)LED時(shí),如果此時(shí)光筆放在該LED時(shí),這時(shí)紅外光電三極管的阻值會(huì)發(fā)生變化,通過相應(yīng)的檢測(cè)電路可以得出一個(gè)高低電平的變化,單片機(jī)檢測(cè)到信號(hào)變化時(shí)就可以判斷光筆的當(dāng)前位置。
該方案簡(jiǎn)單易行,對(duì)光筆位置判斷的靈敏度較高,抗外界干擾能力強(qiáng)。采用雙色點(diǎn)陣和紅外光電三極管能夠有效地減少環(huán)境可見光和顯示LED(綠色)所發(fā)的光線對(duì)光筆中光電三極管的干擾。
2 系統(tǒng)結(jié)構(gòu)及單元模塊設(shè)計(jì)
2.1 系統(tǒng)總體框圖
系統(tǒng)主要由微處理器STC89C58,32×32雙色LED點(diǎn)陣顯示、光筆及檢測(cè)電路、外界光照強(qiáng)度檢測(cè)電路、按鍵輸入電路、液晶顯示模塊等幾個(gè)部分組成。系統(tǒng)硬件結(jié)構(gòu)框圖如圖1所示。
單片機(jī)STC89C58片內(nèi)有1 KB的片外RAM,能夠滿足保存四屏顯示信息要求,該單片機(jī)性價(jià)比很高。系統(tǒng)原理圖如圖2所示。
2.2 光筆及檢測(cè)電路
用紅外光電三極管自制光筆,光筆檢測(cè)電路如圖3所示。圖中Q2是用紅外光電三極管,用來完成對(duì)32×32點(diǎn)陣紅色LED燈點(diǎn)亮或熄滅的檢測(cè);R6,RP1用于對(duì)Q2進(jìn)行限流,另外還可以調(diào)節(jié)RP1來提高或減小輸出的電壓值;R7,R8是用于給U3A(比較器)的同相端提供基準(zhǔn)電壓值,通過它跟采集信息輸出來的電壓值進(jìn)行比較(U2>U3,U1=Umin),R12是U3A的輸出上拉電阻。工作原理如下:當(dāng)紅光照到紅外光電三極管上時(shí),紅外光電三極管的電阻變小,其射極電壓升高,此時(shí)2腳電壓比3腳電壓高,比較器1端輸出為低電平。當(dāng)電容C11充電一段時(shí)間之后,比較器2腳電壓比3腳電壓低,比較器1端輸出為高電平。由此,當(dāng)檢測(cè)到光信號(hào)時(shí),該電路將產(chǎn)生一個(gè)脈沖信號(hào)。由于在電路中加了耦合電容,可有效地防止環(huán)境對(duì)光筆的影響。
在本系統(tǒng)中,光筆是一個(gè)非常重要的一個(gè)環(huán)節(jié),為了更好的穩(wěn)定工作,必須添加適當(dāng)?shù)目垢蓴_措施。在信號(hào)傳輸方面采用屏蔽軟同軸銅線,在紅外光電三極管外圍套加黑色熱縮管,紅外光電三極管比單個(gè)LED燈的直徑小,以確保少受外界紅外線的干擾。
2.3 LED雙色點(diǎn)陣顯示與驅(qū)動(dòng)電路
LED雙色(紅、綠)點(diǎn)陣的型號(hào)有很多,其中最為常用的有4×4,8×8,16×16式模塊,本設(shè)計(jì)需要一個(gè)32×32的雙色顯示,其顯示亮度、體積由設(shè)計(jì)者自行定義。考慮到采購的因素,選擇由16塊8×8雙色點(diǎn)陣模塊組成32×32點(diǎn)陣顯示屏,利用由74HC154和74HC595芯片來驅(qū)動(dòng)顯示,由串行口工作在模式0(速度快)將顯示信息快速送入74HC595。
LED是一個(gè)非線性元器件,當(dāng)它兩端的電壓達(dá)到一定的值后,通過它本身的電流會(huì)急劇上升。考慮32×32點(diǎn)陣式由1 024個(gè)發(fā)光二極管組成,當(dāng)它們同時(shí)點(diǎn)亮?xí)r的電流很大,必須考慮電源供電能力。一般LED的電流值為5~20 mA,取最大值20 mA,同時(shí)點(diǎn)亮兩行,有:I=20×64= 1 280mA。
2.4 外界光照檢測(cè)電路
外界光照檢測(cè)電路如圖4所示。電路采用光敏電阻RP串聯(lián)一個(gè)固定電阻R9,將光照變化轉(zhuǎn)換為電壓變化,此電壓信號(hào)通過芯片AD833進(jìn)行模數(shù)轉(zhuǎn)換(A/D)后,由5腳送入單片機(jī)處理,以控制亮度的調(diào)節(jié)。
根據(jù)分壓原理,有:
可見選擇不同的R9的阻值可改變Vin的大小,使輸入信號(hào)在合適的范圍之內(nèi)。光敏電阻RP隨光照變化的阻值變化為3~4 kΩ,由上式可計(jì)算出R9為3~4 kΩ,取R9=4 kΩ。
2.5 超時(shí)低功耗設(shè)計(jì)
超時(shí)低功耗設(shè)計(jì)通過軟件實(shí)現(xiàn),利用按鍵設(shè)定時(shí)間常數(shù),當(dāng)在設(shè)定時(shí)間內(nèi)光筆未接觸顯示屏或按鍵未按下時(shí)關(guān)閉所有顯示,使系統(tǒng)進(jìn)入休眠狀態(tài),減少電能消耗,當(dāng)有按鍵按下時(shí)系統(tǒng)恢復(fù)運(yùn)行。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)的軟件采用C語言編程,軟件在KeilμV3編程環(huán)境中編寫和調(diào)試。為了編寫和調(diào)試的方便,程序使用模塊化設(shè)計(jì),根據(jù)按鍵、光筆掃描、LED點(diǎn)陣顯示、LCD液晶顯示、亮度調(diào)節(jié)等功能分別設(shè)計(jì)程序,大大簡(jiǎn)化了程序的設(shè)計(jì)和調(diào)試工作,節(jié)省設(shè)計(jì)周期。
系統(tǒng)主程序流程圖如圖5所示。主程序開始對(duì)內(nèi)部功能寄存器、端口、液晶顯示模塊等初始化,然后在主循環(huán)中進(jìn)行光筆位置掃描、LED顯示緩沖區(qū)數(shù)據(jù)更新、LED點(diǎn)陣輸出、液晶模塊輸出、可見光亮度檢測(cè)、低功耗判斷等功能。在定時(shí)器中斷子程序中進(jìn)行按鍵掃描,完成顯示模式的識(shí)別,相應(yīng)的顯示模式信息和光標(biāo)坐標(biāo)在液晶模塊上顯示。
4 系統(tǒng)測(cè)試
本設(shè)計(jì)的測(cè)試要求與結(jié)果見表1。
通過測(cè)試結(jié)果表明,系統(tǒng)能夠?qū)崿F(xiàn)該設(shè)計(jì)要求的點(diǎn)亮、劃亮、反顯、清屏、筆畫拖動(dòng)、輪流顯示、顯示亮度調(diào)節(jié)、休眠模式等主要功能。
5 結(jié)論
系統(tǒng)主要由微處理器STC89C58、32×32雙色LED點(diǎn)陣顯示、光筆及檢測(cè)電路、外界光照強(qiáng)度檢測(cè)電路、按鍵輸入電路、液晶顯示模塊等幾個(gè)部分組成。系統(tǒng)能夠?qū)崿F(xiàn)要求的點(diǎn)亮、劃亮、反顯、清屏、筆畫拖動(dòng)、輪流顯示、顯示亮度調(diào)節(jié)、休眠模式等主要功能。在系統(tǒng)的設(shè)計(jì)過程中,利用軟件和硬件相結(jié)合,充分發(fā)揮軟件編程的靈活性,并最大限度挖掘單片機(jī)的硬件資源。系統(tǒng)性價(jià)比高,運(yùn)行穩(wěn)定,能耗低,顯示效果好。