




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 液晶顯示器液晶顯示器(LCDLCD)具有體積小、重量輕、功耗低、)具有體積小、重量輕、功耗低、可以顯示圖形圖像、便于用集成電路直接驅(qū)動(dòng)、易于可以顯示圖形圖像、便于用集成電路直接驅(qū)動(dòng)、易于實(shí)現(xiàn)全彩色等特點(diǎn),因此在儀器儀表、便攜工具、監(jiān)實(shí)現(xiàn)全彩色等特點(diǎn),因此在儀器儀表、便攜工具、監(jiān)控系統(tǒng)及消費(fèi)電子等領(lǐng)域有著廣泛的應(yīng)用。控系統(tǒng)及消費(fèi)電子等領(lǐng)域有著廣泛的應(yīng)用。 液晶顯示器分為液晶顯示器分為段式、字符式、點(diǎn)陣式段式、字符式、點(diǎn)陣式等。段式只能等。段式只能顯示固定的一些符號(hào)或字符,價(jià)格低廉;顯示固定的一些符號(hào)或字符,價(jià)格低廉;字符式字符式可以可以顯示數(shù)字和字符,驅(qū)動(dòng)方便,但無法顯示漢字。顯示數(shù)字和字符,
2、驅(qū)動(dòng)方便,但無法顯示漢字。點(diǎn)陣點(diǎn)陣式式可以顯示漢字,但價(jià)格較高。漢字液晶顯示器又分可以顯示漢字,但價(jià)格較高。漢字液晶顯示器又分為為帶字庫(kù)和不帶字庫(kù)帶字庫(kù)和不帶字庫(kù)的兩種。的兩種。9.1 液晶顯示模塊的原理液晶顯示模塊的原理圖圖9-19-1是字符型液晶顯示器(不能顯示漢字)原理,字框中顯示是字符型液晶顯示器(不能顯示漢字)原理,字框中顯示了字碼了字碼ABCABC;我們現(xiàn)在看到的圖形和實(shí)際見到的有些相似,但;我們現(xiàn)在看到的圖形和實(shí)際見到的有些相似,但是有很大的差別,這些字碼的顯示是通過在方格中依次連接所是有很大的差別,這些字碼的顯示是通過在方格中依次連接所得,拼湊成一個(gè)個(gè)字符;液晶顯示屏的原理和數(shù)
3、碼管的相同,得,拼湊成一個(gè)個(gè)字符;液晶顯示屏的原理和數(shù)碼管的相同,即即這些方格在這里的作用相當(dāng)于一個(gè)個(gè)這些方格在這里的作用相當(dāng)于一個(gè)個(gè)LEDLED燈相互擁簇在一起燈相互擁簇在一起;在這里可以稱方格為在這里可以稱方格為“數(shù)碼管數(shù)碼管”;通過控制;通過控制“數(shù)碼管數(shù)碼管”的通斷的通斷就可以顯示出不同的字符或數(shù)字。每個(gè)字符占據(jù)就可以顯示出不同的字符或數(shù)字。每個(gè)字符占據(jù)8 8個(gè)方格的寬個(gè)方格的寬度度,1111個(gè)方格的高度,即個(gè)方格的高度,即1111行行8 8列列,但并不是顯示一個(gè)字符一定,但并不是顯示一個(gè)字符一定要用要用1111行行8 8列,也可以是列,也可以是7 7行行5 5列等。當(dāng)然,數(shù)字液晶屏不
4、能夠顯列等。當(dāng)然,數(shù)字液晶屏不能夠顯示漢字,因?yàn)樗紦?jù)的位數(shù)不同。示漢字,因?yàn)樗紦?jù)的位數(shù)不同。圖圖9-1 字符液晶顯示器原理字符液晶顯示器原理 漢字液晶屏的顯示原理也是如此,如圖漢字液晶屏的顯示原理也是如此,如圖9-29-2的的“大大”字所示。大部分漢字液晶屏的驅(qū)動(dòng)芯片是與液晶屏集字所示。大部分漢字液晶屏的驅(qū)動(dòng)芯片是與液晶屏集成在一起的,統(tǒng)稱為液晶模塊,無須外加驅(qū)動(dòng),但不成在一起的,統(tǒng)稱為液晶模塊,無須外加驅(qū)動(dòng),但不同的驅(qū)動(dòng)芯片,其驅(qū)動(dòng)方式和程序也不同,所以在使同的驅(qū)動(dòng)芯片,其驅(qū)動(dòng)方式和程序也不同,所以在使用液晶模塊之前首先要了解其驅(qū)動(dòng)模式。用液晶模塊之前首先要了解其驅(qū)動(dòng)模式。 通常漢字顯示
5、屏要比數(shù)字顯示屏占據(jù)的空間大,每個(gè)通常漢字顯示屏要比數(shù)字顯示屏占據(jù)的空間大,每個(gè)漢字的顯示由漢字的顯示由1616行行1616列組成列組成。以漢字液晶顯示器為例,。以漢字液晶顯示器為例,描述一個(gè)漢字的點(diǎn)陣數(shù)據(jù)需要描述一個(gè)漢字的點(diǎn)陣數(shù)據(jù)需要3232個(gè)字節(jié),因?yàn)橐粋€(gè)字個(gè)字節(jié),因?yàn)橐粋€(gè)字節(jié)占節(jié)占8 8個(gè)位,所以一個(gè)位正好描述液晶屏上一個(gè)點(diǎn)是個(gè)位,所以一個(gè)位正好描述液晶屏上一個(gè)點(diǎn)是否點(diǎn)亮。例如,否點(diǎn)亮。例如,假設(shè)假設(shè)“1 1”表示某個(gè)點(diǎn)是亮的,表示某個(gè)點(diǎn)是亮的,“0 0”表示某個(gè)點(diǎn)是不亮的,表示某個(gè)點(diǎn)是不亮的,那么下圖中那么下圖中“大大”字的第一行字的第一行可以用二進(jìn)制表示為:可以用二進(jìn)制表示為:000
6、00000,00010001,00000000,00000000,即,即0 x010 x01和和0 x000 x00兩個(gè)字節(jié)。同理,可以推出兩個(gè)字節(jié)。同理,可以推出“大大”字其他字其他行的二進(jìn)制表示。明顯,如果顯示一個(gè)漢字,則需要行的二進(jìn)制表示。明顯,如果顯示一個(gè)漢字,則需要用用3232個(gè)字節(jié)的數(shù)據(jù)來描述。個(gè)字節(jié)的數(shù)據(jù)來描述。漢字液晶又分為漢字液晶又分為點(diǎn)陣型和字庫(kù)型點(diǎn)陣型和字庫(kù)型,點(diǎn)陣型既可以顯示漢字、又,點(diǎn)陣型既可以顯示漢字、又可以顯示圖形,而字庫(kù)型只能顯示漢字及字符,無法顯示圖形,可以顯示圖形,而字庫(kù)型只能顯示漢字及字符,無法顯示圖形,但驅(qū)動(dòng)方便。液晶屏的大小也有很大差異,典型的漢字液晶
7、一但驅(qū)動(dòng)方便。液晶屏的大小也有很大差異,典型的漢字液晶一般有般有1223212232、1286412864、1926419264和和240128240128等。在實(shí)際應(yīng)用中,要根據(jù)等。在實(shí)際應(yīng)用中,要根據(jù)所要顯示的內(nèi)容、成本及信息的多少來選擇液晶顯示器。所要顯示的內(nèi)容、成本及信息的多少來選擇液晶顯示器。圖圖9-2 漢字液晶屏顯示原理漢字液晶屏顯示原理9.2 字符型液晶顯示器字符型液晶顯示器RT1602C 字符型液晶顯示器是一種用字符型液晶顯示器是一種用5 57 7點(diǎn)陣圖形點(diǎn)陣圖形來顯示字符的液晶顯示器,根據(jù)顯示的容來顯示字符的液晶顯示器,根據(jù)顯示的容量可以分為量可以分為1 1行行1616個(gè)字、
8、個(gè)字、2 2行行1616個(gè)字、個(gè)字、2 2行行2020個(gè)字等,最常用的為個(gè)字等,最常用的為2 2行行1616個(gè)字個(gè)字,RT1602CRT1602C液晶模塊就屬于此類型。液晶模塊就屬于此類型。一字符型液晶顯示模塊RT-1602C的外觀與引腳顯示容量:162個(gè)字符字符;工作電流2.0mA(5.0V);字符尺寸:2.954.35mm。RT-1602C采用標(biāo)準(zhǔn)的16腳接口,各引腳情況如下:第1腳:VSS為電源地第2腳:VDD為+5V電源第3腳:VL為液晶顯示偏壓信號(hào)第4腳:RS為數(shù)據(jù)/命令選擇端,高電平高電平時(shí)選擇數(shù)據(jù)寄存數(shù)據(jù)寄存器器、低電平低電平時(shí)選擇指令寄存器指令寄存器。第5腳: 為讀/寫選擇端,
9、高電平高電平時(shí)進(jìn)行讀操作讀操作,低低電平電平時(shí)進(jìn)行寫操作寫操作。當(dāng)RS和和 共同為低電平共同為低電平時(shí)可以寫入指令寫入指令【或者顯示地址或者顯示地址】,當(dāng)RS為低電平, 為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平, 為低電平時(shí)可以寫入數(shù)據(jù)。/R W/R W/R W/R W 第第6腳:腳:E端為使能端端為使能端,當(dāng),當(dāng)E端由高電平跳變成低電平時(shí)端由高電平跳變成低電平時(shí)(負(fù)跳變),液晶模塊執(zhí)行命令。(負(fù)跳變),液晶模塊執(zhí)行命令。 第第714腳:腳:D0D7,為,為8位雙向數(shù)據(jù)總線,與單片機(jī)位雙向數(shù)據(jù)總線,與單片機(jī)的數(shù)據(jù)總線相連,三態(tài)。的數(shù)據(jù)總線相連,三態(tài)。 第第15腳:腳:BLA,背光電源,通常為,背
10、光電源,通常為5V,并聯(lián)一個(gè)電,并聯(lián)一個(gè)電位器,調(diào)節(jié)背光亮度。位器,調(diào)節(jié)背光亮度。 第第16腳:腳:BLK,背光電源地。,背光電源地。/R WRS寄存器及操作寄存器及操作00指令寄存器指令寄存器寫入寫入01忙信號(hào)和地址計(jì)數(shù)器忙信號(hào)和地址計(jì)數(shù)器讀出讀出10數(shù)據(jù)寄存器數(shù)據(jù)寄存器寫入寫入11數(shù)據(jù)寄存器數(shù)據(jù)寄存器讀出讀出二字符型液晶顯示模塊二字符型液晶顯示模塊RT-1602C的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu) 液晶顯示模塊液晶顯示模塊RT-C1602C的內(nèi)部結(jié)構(gòu)可以分成三部分:的內(nèi)部結(jié)構(gòu)可以分成三部分:一為一為L(zhǎng)CD控制器,二為控制器,二為L(zhǎng)CD驅(qū)動(dòng)器,三為驅(qū)動(dòng)器,三為L(zhǎng)CD顯示裝顯示裝置,如圖所示:置,如圖所示:
11、 控制器采用控制器采用HD44780,驅(qū)動(dòng)器采用,驅(qū)動(dòng)器采用HD44100。HD44780是是集控制器,驅(qū)動(dòng)器于一體集控制器,驅(qū)動(dòng)器于一體,專用于字符顯示控,專用于字符顯示控制驅(qū)動(dòng)集成電路。制驅(qū)動(dòng)集成電路。HD44100是作是作擴(kuò)展顯示字符位擴(kuò)展顯示字符位的。的。HD44780是字符型液晶顯示控制器是字符型液晶顯示控制器的代表電路。的代表電路。 HD44780集成電路的特點(diǎn):集成電路的特點(diǎn): 1、可選擇、可選擇57或或510點(diǎn)字符。點(diǎn)字符。 2、HD44780不僅作為控制器而且還具有驅(qū)動(dòng)不僅作為控制器而且還具有驅(qū)動(dòng)4016點(diǎn)陣點(diǎn)陣液晶像素的能力,并且液晶像素的能力,并且HD44780的驅(qū)動(dòng)能力
12、可通過外接驅(qū)的驅(qū)動(dòng)能力可通過外接驅(qū)動(dòng)器擴(kuò)展動(dòng)器擴(kuò)展360列驅(qū)動(dòng)。列驅(qū)動(dòng)。 HD44780可控制的字符高達(dá)每行可控制的字符高達(dá)每行80個(gè)字,也就是個(gè)字,也就是5X80=400點(diǎn),點(diǎn),HD44780內(nèi)藏有內(nèi)藏有16路行驅(qū)動(dòng)器和路行驅(qū)動(dòng)器和40路列驅(qū)路列驅(qū)動(dòng)器,所以動(dòng)器,所以HD44780本身就具驅(qū)動(dòng)有本身就具驅(qū)動(dòng)有1640點(diǎn)陣點(diǎn)陣LCD的能的能力(力(即單行即單行16個(gè)字符或兩行個(gè)字符或兩行8個(gè)字符個(gè)字符)。如果在外部加一)。如果在外部加一HD44100外擴(kuò)展多外擴(kuò)展多40路路/列驅(qū)動(dòng),則可驅(qū)動(dòng)列驅(qū)動(dòng),則可驅(qū)動(dòng)162LCD 3、HD44780的顯示緩沖區(qū)的顯示緩沖區(qū)DDRAM、字符發(fā)生存儲(chǔ)、字符發(fā)
13、生存儲(chǔ)器(器(ROM)及用戶自定義的字符發(fā)生器)及用戶自定義的字符發(fā)生器CGRAM全部?jī)?nèi)藏在芯片內(nèi)。全部?jī)?nèi)藏在芯片內(nèi)。 HD44780有有80個(gè)字節(jié)的顯示緩沖區(qū),分兩行,地個(gè)字節(jié)的顯示緩沖區(qū),分兩行,地址分別為址分別為00H27H,40H67H,它下實(shí)際顯示位,它下實(shí)際顯示位置的排列順序跟置的排列順序跟LCD的型號(hào)有關(guān),液晶顯示模塊的型號(hào)有關(guān),液晶顯示模塊RT-1602C的顯示地址與實(shí)際顯示位置的關(guān)系如圖的顯示地址與實(shí)際顯示位置的關(guān)系如圖所示。所示。4、HD44780具有具有8位數(shù)據(jù)和位數(shù)據(jù)和4位數(shù)據(jù)位數(shù)據(jù)傳輸兩種方式,傳輸兩種方式,可與可與4/8位位CPU相連。相連。5、HD44780具有簡(jiǎn)
14、單而功能較強(qiáng)的指令集,可實(shí)現(xiàn)具有簡(jiǎn)單而功能較強(qiáng)的指令集,可實(shí)現(xiàn)字符移動(dòng),閃爍等顯示功能。字符移動(dòng),閃爍等顯示功能。 HD44780內(nèi)部的字符發(fā)生存儲(chǔ)器(內(nèi)部的字符發(fā)生存儲(chǔ)器(ROM)已經(jīng)存儲(chǔ)了)已經(jīng)存儲(chǔ)了160個(gè)個(gè)不同的點(diǎn)陣字符圖形,如圖所示:不同的點(diǎn)陣字符圖形,如圖所示: 這些這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號(hào)、字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號(hào)、和日文假名等和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼。比如數(shù)字,每一個(gè)字符都有一個(gè)固定的代碼。比如數(shù)字“1”的代碼是的代碼是00110001B(31H),又如大寫的英文字母),又如大寫的英文字母“A”的代碼是的代碼
15、是01000001B(41H),可以看出英文字母的代碼與),可以看出英文字母的代碼與ASCII編碼相同。要顯示編碼相同。要顯示“1”時(shí),只需將時(shí),只需將ASCII碼碼31H存入存入DDRAM指定位置,顯示模塊將在相應(yīng)的位置把數(shù)字指定位置,顯示模塊將在相應(yīng)的位置把數(shù)字“1”的的點(diǎn)陣字符圖形顯示出來,點(diǎn)陣字符圖形顯示出來,就可以看到數(shù)字就可以看到數(shù)字“1”。三指令格式與指令功能三指令格式與指令功能LCD控制器控制器HD44780內(nèi)有多個(gè)寄存器,通過內(nèi)有多個(gè)寄存器,通過RS和和R/W引腳共同決定選擇哪一個(gè)寄存器,選擇情況引腳共同決定選擇哪一個(gè)寄存器,選擇情況如表:如表:/R WRS寄存器及操作寄存器
16、及操作00指令寄存器寫指令寄存器寫入入01忙標(biāo)志和地址忙標(biāo)志和地址計(jì)數(shù)器讀出計(jì)數(shù)器讀出10數(shù)據(jù)寄存器寫數(shù)據(jù)寄存器寫入入11數(shù)據(jù)寄存器讀數(shù)據(jù)寄存器讀出出總共有總共有11條指令,它們的格式和功能如下:條指令,它們的格式和功能如下:RS和和 引腳上的電平?jīng)Q定對(duì)寄存器的選擇和讀引腳上的電平?jīng)Q定對(duì)寄存器的選擇和讀/寫,寫,DB7DB0決定命令功能。決定命令功能。/R W9.2.3 RT1602C與單片機(jī)接口及程序與單片機(jī)接口及程序圖9-3是RT1602C與單片機(jī)接口的具體連接方式,RT1602C液晶連接插槽位JP4。在使用液晶時(shí),在第三引腳連接了一個(gè)10K的電位器用來調(diào)整對(duì)比度,若程序運(yùn)行后液晶無顯示,
17、則可調(diào)整此電位器。圖圖9-3 16029-3 1602與單片機(jī)接口與單片機(jī)接口 1602液晶模塊的驅(qū)動(dòng)程序編制如下:(功能為:用定時(shí)器實(shí)現(xiàn)一個(gè)時(shí)鐘,并用1602液晶模塊顯示時(shí)間及提示信息,從中讀者可以體會(huì)液晶驅(qū)動(dòng)程序的編制方法).#include#define uchar unsigned char#define uint unsigned int sbit rs = P36 ; /定義寄存器選擇位sbit rw = P37 ; /定義讀寫控制線sbit ep = P27 ; /定義使能端code uchar mayuan =0,1,2,3,4,5,6,7,8,9;code uchar aa
18、=The total times is: ;uchar i,hour,minute,second,k=0;void putchar(uchar weizhi,uchar da);/顯示一個(gè)字符的函數(shù)void delay(uchar) ; /延時(shí)函數(shù)void lcd_wcmd(uchar) ; / 寫入指令數(shù)據(jù)到LCDbit lcd_bz(void) ; / 測(cè)試LCD忙碌狀態(tài)void lcd_pos(uchar) ; /設(shè)定顯示位置void lcd_wdat(uchar) ; /寫入字符顯示數(shù)據(jù)到LCDvoid display(uchar,uchar *) ; /顯示一個(gè)字符串的函數(shù)void
19、lcd_init(void); /液晶初始化函數(shù)void showtime(uchar,uchar,uchar);/顯示時(shí)間函數(shù)void time_init(void); /定時(shí)時(shí)間初始化函數(shù)main() delay(10) ; lcd_init() ; / 初始化LCD time_init(); /定時(shí)器初始化display(0 x00,aa); /第一行顯示The total times is: while(1) if(k!=second) /控制每一秒顯示一次 k=second;showtime(hour,minute,second); void delay(uchar ms) / 延時(shí)
20、子程序 uchar i ; while(ms-) for(i = 0 ; i250;i+) ; bit lcd_bz() / 測(cè)試LCD忙碌狀態(tài) bit result ; rs = 0 ; rw = 1 ; ep = 1 ; result = (bit)(P0 & 0 x80) ;ep = 0 ; return result ; void lcd_wcmd(uchar cmd) / 寫入指令數(shù)據(jù)到LCD while(lcd_bz() ; /等待液晶空閑rs = 0 ;rw = 0 ;ep = 0 ;P0 = cmd ;ep = 1 ;ep = 0 ; void lcd_pos(ucha
21、r pos) /設(shè)定顯示位置 lcd_wcmd(pos | 0 x80) ;void lcd_wdat(uchar dat) /寫入字符顯示數(shù)據(jù)到LCD while(lcd_bz() ; /等待液晶空閑rs = 1 ; rw = 0 ; ep = 0 ; P0 = dat ; ep = 1 ; ep = 0 ; void lcd_init() /LCD初始化設(shè)定 lcd_wcmd(0 x38) ; /功能設(shè)置:4位總線,雙行顯示,5x7的點(diǎn)陣字符(參指令6) delay(1) ; lcd_wcmd(0 x01) ; /清除LCD的顯示內(nèi)容(參指令1) delay(1) ; lcd_wcmd(0
22、 x06) ; /入口模式設(shè)置:光標(biāo)右移,文字不移(參指令3) delay(1) ; lcd_wcmd(0 x0c) ; /入口模式設(shè)置:開顯示,無光標(biāo),光標(biāo)不閃爍(參指令4) delay(1) ;/*以下是在LCD上顯示數(shù)組數(shù)據(jù)的函數(shù)。先寫顯示地址,后寫顯示數(shù)據(jù)。其中pos 為寫入的位置,q指向要寫入的數(shù)據(jù)所在的數(shù)組*/void display(uchar pos, uchar *q) uchar i ; lcd_pos(pos) ; for(i=0 ;i16;i+) lcd_wdat(*q) ; q+ ; void putchar(uchar weizhi,uchar da) /在weiz
23、hi處顯示字符dadelay(1);lcd_pos(weizhi);lcd_wdat(da);void showtime(uchar h,uchar m,uchar s)/顯示時(shí)間(h:小時(shí),m:分,s:秒) putchar(0 x40,mayuanh/10); /在位置0 x40顯示小時(shí)的高位 putchar(0 x41,mayuanh%10); /在位置0 x41顯示小時(shí)的低位 putchar(0 x42,:); /在位置0 x42顯示“:” putchar(0 x43,mayuanm/10); /在位置0 x43顯示分的高位 putchar(0 x44,mayuanm%10); /在位置
24、0 x44顯示分的低位 putchar(0 x45,:); /在位置0 x45顯示“:” putchar(0 x46,mayuans/10); /在位置0 x46顯示秒的高位 putchar(0 x47,mayuans%10); /在位置0 x47顯示秒的低位void time_init(void) /定時(shí)器初始化函數(shù) i=0;hour=12;minute=34;second=56; /時(shí)間初值為12時(shí)34分56秒TMOD=0 x01;TL0=0 xb0; /賦初值,定時(shí)50msTH0=0 x3c;TR0=1; /啟動(dòng)定時(shí)器EA=1; ET0=1; /相關(guān)開中斷 void time0() in
25、terrupt 1 using 2 /定時(shí)器0中斷函數(shù),實(shí)現(xiàn)定時(shí)1秒及時(shí)間的計(jì)算 TL0=0 xb0; /重新賦初值 TH0=0 x3c; i+; if(i=20) /1秒鐘到 second+;i=0; if(second=60) second=0; minute+; if(minute=60) minute=0; hour+; if(hour=24) hour=0;9.1.2 LCD顯示器與單片機(jī)的接口與應(yīng)用顯示器與單片機(jī)的接口與應(yīng)用 下圖是下圖是LCD顯示器與顯示器與8051單片機(jī)的接口圖,圖中單片機(jī)的接口圖,圖中RT-1602C的數(shù)據(jù)線與的數(shù)據(jù)線與8051的的P1口相連,口相連,RS與與
26、8051的的P2.0相連,相連,與與8051的的P2.1相連,相連,E端與端與8051的的P2.2相連。編程在相連。編程在LCD顯示器的第一行、第一列開始顯示顯示器的第一行、第一列開始顯示“GOOD”,第二行、,第二行、第第6列開始顯示列開始顯示“BYE”。 #include sbit RS=P20; sbit RW=P21; sbit E=P22; void delay(void); void init(void); void wcmd(unsigned char); void wdat(unsigned char); void fbusy(void); void main( ) /主函數(shù)主
27、函數(shù) SP=0 x50; init( ); wcmd(0 x80); /寫入顯示緩沖區(qū)起始地址為第寫入顯示緩沖區(qū)起始地址為第1行第行第1列列 wdta(0 x44); /第第1行第行第1列顯示字母列顯示字母“G” wdat(0 x4f); /第第1行第行第2列顯示字母列顯示字母“O” wdat(0 x4f); /第第1行第行第3列顯示字母列顯示字母“O” wdat(0 x47); /第第1行第行第4列顯示字母列顯示字母“D” 【80H45HC5H】 wcmd(0 xc5); /寫入顯示緩沖區(qū)起始地址為第寫入顯示緩沖區(qū)起始地址為第2行第行第6列列 wdat (0 x42); /第第2行第行第6列
28、顯示字母列顯示字母“B” wdat (0 x59); /第第2行第行第7列顯示字母列顯示字母“Y” wdat (0 x45); /第第2行第行第8列顯示字母列顯示字母“E” while(1); void init() / 初始化函數(shù),主要寫命令初始化函數(shù),主要寫命令wcmd(0 x01); /01H=0000 0001,清屏,清屏wcmd(0 x38); /38H=0011 1000,使用,使用8位,顯示兩行,用位,顯示兩行,用5*7的字型的字型wcmd(0 x0e); /0eH0000 1110,顯示器開,光標(biāo)開,字符不閃爍,顯示器開,光標(biāo)開,字符不閃爍wcmd(0 x06); /06H00
29、00 0110,字符不動(dòng),光標(biāo)自動(dòng)右移一格,字符不動(dòng),光標(biāo)自動(dòng)右移一格/R WRS寄存器及操作00指令寄存器寫入寫入01忙信號(hào)和地址計(jì)數(shù)器讀讀出出10數(shù)據(jù)寄存器寫入寫入void fbusy( ) /檢查忙函數(shù)檢查忙函數(shù)RS=0;RW=1; /RS=0,RW=1,讀忙信號(hào),讀忙信號(hào)E=1;E=0; / E端由高電平到低電平跳變,液晶模塊執(zhí)行命令端由高電平到低電平跳變,液晶模塊執(zhí)行命令while (P1&0 x80); /如果忙,則等待。參見忙指令格式如果忙,則等待。參見忙指令格式delay( ); / 延時(shí)大約延時(shí)大約2ms由于由于LCD是一慢速顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)
30、是一慢速顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)LCD的忙標(biāo)的忙標(biāo)志為志為0,即非忙狀態(tài),否則該命令將失效。,即非忙狀態(tài),否則該命令將失效。void wcmd(unsigned char cmd) /寫命令函數(shù)寫命令函數(shù), RS=0;RW=0fbusy( ); / 寫命令前,先檢查設(shè)備是否忙?寫命令前,先檢查設(shè)備是否忙?E=0;RS=0;RW=0; / 指令寄存器寫入指令寄存器寫入E=1; / E由高電平到低電平跳變,液晶模塊執(zhí)行命令由高電平到低電平跳變,液晶模塊執(zhí)行命令P1=cmd; / 命令由命令由P1口送入口送入LCDE=0;delay( );void wdat(unsigned ch
31、ar dat) /寫數(shù)據(jù)函數(shù)寫數(shù)據(jù)函數(shù), RS=1;RW=0 fbusy( ); / 寫數(shù)據(jù)前,先檢查設(shè)備是否忙? E=0;RS=1;RW=0; E=1; / E由高電平到低電平跳變,液晶模塊執(zhí)行命令 P1=dat; / 數(shù)據(jù)由P1口送入LCD E=0; delay( ); / 延時(shí)大約2msvoid delay( ) /延時(shí)函數(shù)延時(shí)函數(shù) unsigned char y; for (y=0;y255;y+); / 【大約2ms多一點(diǎn)】 #include #include #define uchar unsigned char #define uint unsigned int sbit RS
32、= P20; sbit RW = P21; sbit EN = P22; void Delayms(uint ms) / 延時(shí)延時(shí)“ms”毫秒毫秒 unsigned char i;while(ms-)for(i=0;i120;i+); uchar Busy_Check()unsigned char LCD_Status;RS = 0;RW = 1; / 讀忙狀態(tài)讀忙狀態(tài), RS=0;RW=1EN = 1;Delayms(1); / 延時(shí)1msLCD_Status = P0;EN = 0; / EN由高電平到低電平跳變,液晶模塊執(zhí)行命令return LCD_Status;void Write_L
33、CD_Command(uchar cmd) while(Busy_Check()&0 x80)= =0 x80);RS = 0; RW = 0; /寫命令寫命令, RS=0;RW=0EN = 0;P0 = cmd;EN = 1;Delayms(1);EN = 0;void Write_LCD_Data(uchar dat) while(Busy_Check()&0 x80)=0 x80);RS = 1;RW = 0; /寫數(shù)據(jù)寫數(shù)據(jù), RS=1;RW=0EN = 0;P0 = dat;EN = 1;Delayms(1);EN = 0;void Initialize_LCD()
34、Write_LCD_Command(0 x38); / 0011 1000,8位,顯示兩行,用5*7的字型Delayms(1);Write_LCD_Command(0 x01); /00000001,清屏Delayms(1);Write_LCD_Command(0 x06); /0000 0110,字符不動(dòng),光標(biāo)自動(dòng)右移一格Delayms(1);Write_LCD_Command(0 x0c); / 0000 1100,開顯示,無光標(biāo),字符不閃爍Delayms(1);void ShowString(uchar x,uchar y,uchar *str) uchar i = 0;if(y = 0
35、)Write_LCD_Command(0 x80 | x);if(y = 1)Write_LCD_Command(0 xc0 | x);for(i=0;i16;i+) Write_LCD_Data(stri); /* writer:shopping.w */ #include #include #define uchar unsigned char #define uint unsigned int void Initialize_LCD(); void ShowString(uchar,uchar,uchar *); sbit K1 = P30; sbit K2 = P31; sbit K3
36、 = P32; uchar code Prompt=PRESS K1-K4 TO START DEMO PROG; uchar const Line_Count = 6; uchar code Msg80= Many CAD users dismiss,process of creating PCB,of view.with PCB layout,placement and track routing,can often be the most time,And if you use circuit simulation,you are going to spend even more ; uchar Disp_Buffer3
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 旅游行業(yè)旅游品牌建設(shè)方案
- 工業(yè)工程與制造自動(dòng)化作業(yè)指導(dǎo)書
- 建筑業(yè)BIM技術(shù)應(yīng)用推廣方案
- 馬鞍山2025年安徽馬鞍山和縣事業(yè)單位招聘41人筆試歷年參考題庫(kù)附帶答案詳解
- 產(chǎn)品質(zhì)量管理與品牌形象塑造的策略研究
- 銅仁2025年貴州銅仁市玉屏縣事業(yè)單位招聘40人筆試歷年參考題庫(kù)附帶答案詳解
- 通化2025年吉林通化市事業(yè)單位招聘應(yīng)征入伍高校畢業(yè)生24人筆試歷年參考題庫(kù)附帶答案詳解
- 淄博2025年山東淄博市博山區(qū)事業(yè)單位招聘綜合類崗位18人筆試歷年參考題庫(kù)附帶答案詳解
- 2025年二級(jí)建造師考試《機(jī)電工程管理與實(shí)務(wù)》全真模擬卷
- 五四運(yùn)動(dòng)測(cè)試題及答案
- 傳統(tǒng)經(jīng)典車要求 編制說明
- 工程項(xiàng)目管理智慧樹知到期末考試答案章節(jié)答案2024年武昌工學(xué)院
- 奔馳訂車合同范本
- 對(duì)直播帶貨稅收征管問題研究與探索
- 意識(shí)障礙的判斷及護(hù)理
- (高清版)JTGT 3650-01-2022 公路橋梁施工監(jiān)控技術(shù)規(guī)程
- DZ∕T 0213-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 石灰?guī)r、水泥配料類(正式版)
- MH 5006-2015民用機(jī)場(chǎng)水泥混凝土面層施工技術(shù)規(guī)范
- 江蘇省裝備制造業(yè)可持續(xù)發(fā)展對(duì)策研究
- 第十一屆大唐杯5G知識(shí)考試題庫(kù)300題(含答案)
- MOOC 跨文化交際通識(shí)通論-揚(yáng)州大學(xué) 中國(guó)大學(xué)慕課答案
評(píng)論
0/150
提交評(píng)論