單片機(jī)與液晶顯示器的接口及應(yīng)用_第1頁
單片機(jī)與液晶顯示器的接口及應(yīng)用_第2頁
單片機(jī)與液晶顯示器的接口及應(yīng)用_第3頁
單片機(jī)與液晶顯示器的接口及應(yīng)用_第4頁
單片機(jī)與液晶顯示器的接口及應(yīng)用_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、單片機(jī)與液晶顯示器的接口及應(yīng)用(圖)作者:中南大學(xué) 傅勤毅 李海浪 日期:2005-6-1 來源:本網(wǎng) The interface and application of MCU and LCD 摘 要:在介紹圖形點(diǎn)陣式液晶顯示模塊GTG240128的結(jié)構(gòu)和功能的基礎(chǔ)上,討論了其與AT89C55單片機(jī)的硬件接口電路和接口軟件編程方法,并給出了寫指令、寫數(shù)據(jù)、初始化和漢字顯示等通用程序。關(guān)鍵詞:液晶顯示模塊;接口技術(shù);AT89C55;T6963C 引言-液晶顯示器(LCD)具有工作電壓低、微功耗、顯示信息量大和接口方便等優(yōu)點(diǎn),現(xiàn)在已被廣泛應(yīng)用于計(jì)算機(jī)和數(shù)字式儀表等領(lǐng)域,成為測(cè)量結(jié)果顯示和

2、人機(jī)對(duì)話的重要工具。液晶顯示器按其功能可分為三類:筆段式液晶顯示器、字符點(diǎn)陣式液晶顯示器和圖形點(diǎn)陣式液晶顯示器。前兩種可顯示數(shù)字、字符和符號(hào)等,而圖形點(diǎn)陣式液晶顯示器還可以顯示漢字和任意圖形,達(dá)到圖文并茂的效果,其應(yīng)用越來越廣泛。本文在介紹以T6963C為控制器的GTG240128液晶顯示模塊的結(jié)構(gòu)和功能的基礎(chǔ)上,討論了其與AT89C55單片機(jī)的硬件接口電路及接口軟件編程方法。 GTG240128液晶顯示模塊-1 模塊特點(diǎn)-GTG240128圖形點(diǎn)陣式液晶顯示器的點(diǎn)陣的大小為240×128,帶背光功能。內(nèi)置1片T6963C液晶顯示控制器和5片KS0086驅(qū)動(dòng)器。該液晶顯示模塊具有如下

3、特點(diǎn)。- 8位并行總線接口,能直接與80系列的微處理器相連;- 可以顯示數(shù)字、字母、漢字和圖形等;- 具有128種5×8點(diǎn)陣的ASCI字符字模庫CGROM;- 具有64kb的顯示存儲(chǔ)器(可被劃分為文本顯示區(qū)、圖形顯示區(qū)、文本屬性區(qū)和自定義字符庫區(qū)),并允許MCU隨時(shí)訪問;- 可用圖形方式、文本方式以及圖形和文本合成方式顯示。-2 模塊接口引腳功能-GTG240128液晶顯示模塊與微處理器的接口共有21個(gè)引腳,各引腳功能如表1所示。-3 模塊指令集簡(jiǎn)介-GTG240128液晶顯示模塊使用了硬件初始化設(shè)置,使得其指令功能集中于顯示功能的設(shè)置上,從而加強(qiáng)了顯示能力。該模塊的指令可帶一個(gè)或兩

4、個(gè)參數(shù),也可不帶參數(shù)。若指令中含有參數(shù),則參數(shù)必須在指令之前輸入。在每次數(shù)據(jù)或指令的寫入操作和數(shù)據(jù)的讀取操作之前都要進(jìn)行狀態(tài)字檢測(cè),只有在不“忙”的狀態(tài)下,MCU對(duì)模塊的操作才有效。其狀態(tài)位由低位到高位的含義如表2所示。-在MCU寫指令或一次讀/寫數(shù)據(jù)時(shí),S0和S1要同時(shí)有效;當(dāng)MCU使用自動(dòng)讀/寫功能時(shí),S2和S3將取代S0和S1作為忙標(biāo)志位,此時(shí)MCU就要判別它是否有效;S6是考察T6963C屏讀或屏拷貝指令執(zhí)行情況的標(biāo)志位;S5和S7表示模塊內(nèi)部的運(yùn)行狀態(tài),一般不用。與AT89C55的接口電路-GTG240128與AT89C55的接口有直接訪問和間接訪問兩種方式。直接訪問方式就是把顯示器

5、模塊作為存儲(chǔ)器或I/O設(shè)備直接掛在單片機(jī)總線上;間接訪問方式就是把顯示器模塊與單片機(jī)的某個(gè)I/O接口連接,單片機(jī)通過對(duì)該I/O口的操作間接實(shí)現(xiàn)對(duì)模塊的控制。本文采用直接訪問方式,硬件連接電路如圖1所示。-如圖1所示,液晶顯示器模塊的數(shù)據(jù)線接在AT89C55的數(shù)據(jù)總線上,片選信號(hào)由地址線A7和A0提供,寄存器選擇信號(hào)由地址線A7和A1提供(指令通道地址為0xf1,數(shù)據(jù)通道地址為0xf3),讀和寫操作由AT89C55的讀寫操作信號(hào)控制;模塊Vo端所接的電位器用來調(diào)節(jié)液晶顯示器的對(duì)比度。軟件設(shè)計(jì)-軟件采用Keil C51語言開發(fā),主要包括三個(gè)部分:第一部分是寫指令和寫數(shù)據(jù)等面向液晶顯示模塊硬件的驅(qū)動(dòng)

6、程序;第二部分包括液晶顯示模塊初始化和清屏等通用子程序;第三部分是漢字、字符和圖形的顯示程序。1 寫指令、寫數(shù)據(jù)子程序-這部分是液晶顯示模塊的驅(qū)動(dòng)程序,所有對(duì)液晶顯示模塊的操作都是通過調(diào)用這部分程序?qū)崿F(xiàn)的。液晶顯示模塊的指令通道地址為0xf1,數(shù)據(jù)通道的地址為0xf3,具體驅(qū)動(dòng)程序如下。#define LCD_Cmd 0xf1 /模塊指令通道地址#define LCD_Data 0xf3 /模塊數(shù)據(jù)通道地址/寫指令子程序void Write_LCD_Cmd(unsigned char cmd)while (PBYTELCD_Cmd&3)!=3);PBYTELCD_Cmd=cmd;/寫數(shù)

7、據(jù)子程序void Write_LCD_Data(unsigned char dat) while (PBYTELCD_Cmd&3)!=3);PBYTELCD_Data=dat;2 初始化子程序-這部分程序是液晶顯示模塊進(jìn)行顯示之前的必要工作,包括設(shè)置文本頁首地址、圖形頁首地址、文本頁地址、圖形頁地址、初始化和清屏等子程序。本文中把液晶顯示模塊的顯示存儲(chǔ)器分為16個(gè)文本頁和6個(gè)圖形頁。文本頁的起止地址為0x00000x1fff;圖形頁的起止地址為0x20000x7fff。 /設(shè)定文本頁首地址子程序void Text_Home_Address(unsigned char tpage) Wr

8、ite_LCD_Data(0);Write_LCD_Data(tpage*0x02);Write_LCD_Cmd(0x40); /設(shè)定圖形頁首地址子程序void Graph_Home_Address(unsigned char gpage) gpage+= 2;Write_LCD_Data(0);Write_LCD_Data(gpage*0x10);Write_LCD_Cmd(0x42); /設(shè)定文本頁地址子程序void Text_Address(unsigned char x, unsigned char y) extern unsigned char textpage;unsigned i

9、nt xy;xy=y*32+x+textpage*0x0200;Write_LCD_Data(xy&0xff);Write_LCD_Data(xy/256);Write_LCD_Cmd(0x24);/設(shè)定圖形頁地址子程序void Graph_Address(unsigned char x,unsigned char y)extern unsigned char graphpage; unsigned int xy;graphpage+=2;xy=y*32+x+graphpage*0x1000;Write_LCD_Data(xy&0xff);Write_LCD_Data(xy/2

10、56);Write_LCD_Cmd(0x24);/初始化子程序void Init_LCD(void)Write_LCD_Cmd(0x90);Write_LCD_Data(0x20);Write_LCD_Data(0x00);Write_LCD_Cmd(0x41);Write_LCD_Data(0x20);Write_LCD_Data(0x00);Write_LCD_Cmd(0x43);Write_LCD_Cmd(0x89);Write_LCD_Cmd(0xa1);Write_LCD_Data(0x0F);Write_LCD_Data(0x00);Write_LCD_Cmd(0x22);Writ

11、e_LCD_Cmd(0x9c);3 漢字、字符和圖形的顯示程序-通過調(diào)用前面編寫的驅(qū)動(dòng)、初始化和清屏程序就可以方便的實(shí)現(xiàn)漢字、字符和圖形的顯示。本文以漢字顯示為例介紹顯示程序的編制。漢字既可以以文本方式顯示也可以以圖形方式顯示。以文本方式顯示時(shí),每次開機(jī)都要先把漢字字模寫進(jìn)液晶顯示模塊的CGRAM,浪費(fèi)了時(shí)間,而且由于CGRAM的容量只有2kb,顯示的漢字有限,所以一般用圖形方式顯示漢字。以圖形方式顯示時(shí)先把漢字字模寫在Flash存儲(chǔ)器中,顯示時(shí)再從Flash存儲(chǔ)器中取出來,這樣不用每次開機(jī)時(shí)都寫漢字字模,節(jié)約時(shí)間,而且顯示的漢字?jǐn)?shù)量多。下面給出以圖形方式顯示漢字的通用子程序。漢字字模存儲(chǔ)在F

12、lash存儲(chǔ)器中。void put_hanzi (char c) unsigned char kk=c;unsigned int order;unsigned int aaa;static unsigned char previous=0x00;if(previous=0) previous=c;elseorder=(unsigned int)(previous-0xa1)*94+kk-0xa1);previous=order%8;aaa=32*previous;order=order/8;SCON=0;SBUF=concode0x52;kk=order/128;while(!TI);SCON

13、=0;SBUF=concodekk; kk=order%128;kk<<=1;while(!TI);SCON=0;SBUF=concodekk; kk=aaa%256;while(!TI);SCON=0;SBUF=concodekk; for(kk=0;kk<4;kk+)while(!TI);SCON=0;SBUF=concode0xff; while(!TI);SCON=0x10;for (kk=0;kk<16;kk+)Graph_Address(x,y*8+kk);while(!RI);previous=SBUF;SCON=0x10;write_lcd(concodeprevious);ctrl(0xc0);while(!RI);previous=SBUF;SCON=0x10;write_lcd(concodeprevious);ctrl(0xc0);previous=0x00;結(jié)束語-隨著

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論