邊增遠(yuǎn) 曾碧 鞠儀靜 李雷
摘要:本文介紹了一種通用的LCD顯示電路,并以PIC16F873芯片設(shè)計(jì)出了結(jié)合硬件的較為通用的驅(qū)動(dòng)程序。
LCD顯示屏具有體積小、重量輕、耗電低、顯示內(nèi)容豐富、易于定制、使用壽命長(zhǎng)等優(yōu)點(diǎn),被廣泛用于儀器儀表、家電、控制產(chǎn)品等諸多領(lǐng)域。根據(jù)不同的LCD顯示屏其驅(qū)動(dòng)程序分為靜態(tài)驅(qū)動(dòng)和動(dòng)態(tài)驅(qū)動(dòng)。因?yàn)閯?dòng)態(tài)驅(qū)動(dòng)比靜態(tài)驅(qū)動(dòng)占用的芯片硬件資源少、驅(qū)動(dòng)電路簡(jiǎn)單等特點(diǎn)而成為L(zhǎng)CD驅(qū)動(dòng)的主流。本文正是采用動(dòng)態(tài)驅(qū)動(dòng)方式,以Microchip公司的PIC16F873芯片,設(shè)計(jì)出一種較為通用的LCD顯示電路及其LCD顯示的相應(yīng)驅(qū)動(dòng)程序,目的在于減少研發(fā)人員的工作量,避免不必要的重復(fù)性工作。
1.LCD顯示的硬件電路
為了達(dá)到動(dòng)態(tài)顯示的目的,在電路中使用了三個(gè)移位計(jì)數(shù)器,其中兩個(gè)用于LCD顯示,一個(gè)用于控制LED雙色燈顯示,顯示部分共占用PIC16F873芯片6個(gè)I/O口,分別為RC0、RC1、RC2、RC3、RC4、RC5??梢詫?shí)現(xiàn)控制的顯示筆劃位數(shù)達(dá)48個(gè),如圖1所示。其中RC3、RC5配合產(chǎn)生移位輸入信號(hào), RC0、RC1、RC2、RC4配合控制背電極(COM0、COM1、COM2)。當(dāng)背電極COM0、COM1、COM2與筆畫電極(由移位計(jì)數(shù)器輸出)之間的電勢(shì)差達(dá)到5V時(shí),對(duì)應(yīng)的筆畫就顯示,否則不顯示。為了延長(zhǎng)液晶顯示屏的壽命,通常間隔交換背電極與筆畫電極的電位。例如,當(dāng)要COM0顯示的時(shí)候可以使得RC0、RC1為5V,RC2、RC4為0V,這樣COM0電壓為5V,COM1、COM2電壓為2.5V,然后RC0、RC1為0V,RC2、RC4為5V,這樣COM0電壓為0V,COM1、COM2電壓為2.5V。達(dá)到顯示目的。
2.驅(qū)動(dòng)波形
在電路中使用RC3為時(shí)鐘輸入端,RC5作為數(shù)據(jù)輸入端進(jìn)行主同步串行。當(dāng)要輸入COM0行上的數(shù)據(jù)是1000 1010 1100 0100時(shí),其驅(qū)動(dòng)波形如圖2所示。在正向輸出(COM0端為低電平)結(jié)束后,進(jìn)行反向輸出(COM0端為高電平)。圖3為一個(gè)完整顯示周期內(nèi)COM0、COM1、COM2的波形變化。
3.LCD軟件顯示程序
本文以PIC16F873為芯片,采用PIC匯編語言,在MAPLAB-ICD開發(fā)器上實(shí)現(xiàn)。程序包括移位輸入數(shù)據(jù)子程序、顯示矩陣校正程序、LCD顯示輸出程序,具體流程如圖4。其中顯示校正程序是將自己定義的單元值與LCD顯示矩陣的值對(duì)應(yīng);移位輸入數(shù)據(jù)子程序是將校正好的數(shù)據(jù)移位輸入到LCD的筆畫電極;LCD顯示輸出程序則調(diào)用移位計(jì)數(shù)器把數(shù)據(jù)轉(zhuǎn)換成正確的顯示結(jié)果。在本刊的網(wǎng)站上給出了源程序,其中,移位輸入數(shù)據(jù)子程序請(qǐng)參照源代碼(a) ;顯示矩陣校正程序請(qǐng)參照源代碼(b) ;LCD顯示輸出程序請(qǐng)參照源代碼(c)。
4.結(jié)語
如果LCD顯示屏的顯示矩陣很規(guī)則,在設(shè)計(jì)程序的時(shí)候就可以省去矩陣校正子程序部分。本文針對(duì)沒有規(guī)律的顯示矩陣排列設(shè)計(jì)了軟件驅(qū)動(dòng)程序,巧妙采用了移位計(jì)數(shù)器和PIC16F873上面的串行數(shù)據(jù)輸出功能,達(dá)到了通用顯示的目的,本文的方法已經(jīng)在智能充電器的LCD顯示部分得到了很好的應(yīng)用,并且顯示效果相當(dāng)令人滿意。所提供的源程序均為調(diào)試過的程序,可以直接使用。◆