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