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