液晶顯示(LCD)大體分為筆段型、字符型、點陣圖形型等幾大類,字符型液晶顯示模塊是一類專門用于顯示字母、數(shù)字、符號等的點陣型液晶顯示模塊,它是由若干個5×7或5×11等點陣字符組成。每一個點陣字符位都可以顯示一個字符,點陣字符位之間的一個點距的間隔起字符間距和行距的作用。目前市面上常用的有16字×1行、16字×2行、20字×2行和40字×2行等字符模型,這些LCD雖然顯示的字數(shù)各不相同,但是都具有相同的輸入輸出界面。本文介紹的TC1602A是一種16字×2行的字符型液晶顯示模塊,其顯示面積為64.5×13.8mm2。
1 TC1602A的引腳功能和內(nèi)部結(jié)構
1.1 TC1602A的引腳功能
TC1602A的引腳排列如圖1所示,它有16個引腳可與外界相連,各引腳功能如下:
1腳VSS:接地;
2腳Vdd:接+5V電源;
3腳VO:對比度調(diào)整端,LCD驅(qū)動電壓范圍為Vdd~VO。當VO接地時,對比度最強;
4腳RS:寄存器選擇端,RS為0時,選擇命令寄存器IR;RS為1時,選擇數(shù)據(jù)寄存器DR;
5腳:讀寫控制端,為1時,選擇讀出;為0時,則選擇寫入;
6腳Enable:使能控制端,Enable為1時,使能;Enable為0,禁止;
7腳~14腳D0~D7:數(shù)據(jù)總線;
15腳LED+:背景光源,接+5V;
16腳LED-:背景光源,接地。
1.2 TC1602A的內(nèi)部結(jié)構
TC1602A的內(nèi)部結(jié)構如圖2所示,它主要由DDRAM、CGROM、CGRAM、IR、DR、BF、AC等大規(guī)模集成電路組成。
DDRAM為數(shù)據(jù)顯示用的RAM(Data DisplayRAM,簡稱DDRAM),用以存放要LCD顯示的數(shù)據(jù),只要將標準的ASCII碼放入DDRAM,內(nèi)部控制線路就會自動將數(shù)據(jù)傳送到顯示器上,并顯示出該ASCII碼對應的字符;
CGROM為字符產(chǎn)生器ROM(Character GeneratorROM,簡稱CGORM),它存儲了192個5×7的點陣字型,但只能讀出不能寫入;
CGRAM為字型、字符產(chǎn)生器的RAM(CharacterGenerator RAM,簡稱CGRAM),可供使用者存儲特殊造型的造型碼,CGRAM最多可存8個造型;
IR為指令寄存器(Instruction Register,簡稱IR),負責存儲MCU要寫給LCD的指令碼,當RS及R/W引腳信號為0且Enable引腳信號由1變?yōu)?時,D0~D7引腳上的數(shù)據(jù)便會存入到IR寄存器中;
DR為數(shù)據(jù)寄存器(Data Register,簡稱DR),它們負責存儲微機要寫到CGRAM或DDRAM的數(shù)據(jù),或者存儲MCU要從CGRAM或DDRAM讀出的數(shù)據(jù)。因此,可將DR視為一個數(shù)據(jù)緩沖區(qū),當RS及R/W引腳信號為1且Enable引腳信號由1變?yōu)?時,讀取數(shù)據(jù);當RS引腳信號為1,R/W引腳信號為0且Enable引腳信號由1變?yōu)?時,存入數(shù)據(jù);
BF為忙碌信號(Busy Flag,簡稱BF),當BF為1時,不接收微機送來的數(shù)據(jù)或指令;當BR為0時,接收外部數(shù)據(jù)或指令,所以,在寫數(shù)據(jù)或指令到LCD之前,必須查看BF是否為0;
AC為地址計數(shù)器(Address Counter,簡稱AC),負責計數(shù)寫入/讀出CGRAM或DDRAM的數(shù)據(jù)地址,AC依照MCU對LCD的設置值而自動修改它本身的內(nèi)容。
TC1602A可分2行共顯示32個字符,每行顯示16個字符。
2 TC1602A的控制指令
TC1602A的控制指令共11條,其中9條是針對命令寄存器IR的,另外2條是針對數(shù)據(jù)寄存器DR的,具體指令如表1所列。需要說明的是:表中*表示可以為0或1,表中的相關命令字設置如下:
3 TC1602A相關的子程序
TC1602A與單片機AT89C51的接口電路如圖3所示,下面是TC1602A相關的子程序:
(1)查看忙碌信號子程序
(4)清TC1604A顯示器子程序
LCR:
MOVA,#00000001B
CALLWtoiR
RET
(5)啟動TC1602A子程序
當供電電源符合一定要求時,TC1602A通電后能自啟動,并進入默認置。TC1602A自啟動后,單片機(MCU)只要依照系統(tǒng)所需的功能重新對其下達功能設定指令、顯示器開/關控制指令及進入模式設定指令即可。通過下面的子程序可以讓TC1602A5×7的字型顯示器顯示2行8bit數(shù)據(jù),同時顯示光標但不閃爍,且可在每一次資料輸入DDRAM后光標向右移動一格。
4實用實例
下面的應用程序?qū)嵗稍赥C1602A的液晶顯示屏上顯示2行字符,它們分別是“Testing TC1602A.”和“Easy Learning it”。另外,該程序還能使AT89C51的P0口所控制的8個發(fā)光二極管每隔1秒鐘從左至右點亮一個,在任一時刻只有一個發(fā)光二極管是被點亮的。具體應用程序如下: