版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、LCD1602液晶中文資料大全- Page 1- 液晶 L C D1 6 0 2 (中文資料) 1 6 3 0 0 5 8 4 6 l l a b / m o c u. d i a b i. h / / : p t t h 共 17 頁(yè) 第 1 頁(yè) - Page 2- 目錄 1. 指令介紹 2. 顯示字符 3. 顯示自定義字符 4. 使用4 線數(shù)據(jù)傳輸 1.指令介紹 1 6 LCD1602 已很普遍了,具體介紹我就不多說(shuō)了,市面上字符液晶絕大多數(shù)是 3 基于HD44780 液晶芯片的,控制原理是完全相同的,因此HD44780 寫的控制程序 0 0 可以很方便地應(yīng)用于市面上大部分的字符型液晶。字
2、符型LCD 通常有 14 條引腳 5 線或16條引腳線的LCD,多出來(lái)的2 條線是背光電源線VCC(15 腳)和地線GND(16 8 4 腳),其控制原理與14腳的LCD 完全一樣,定義如下表所示: 6 l l a 字符型LCD 的引腳定義 b / m o c u. d i a b i. h / / : p t t h 共 17 頁(yè) 第 2 頁(yè) - Page 3- HD44780 內(nèi)置了DDRAM、CGROM 和CGRAM。 這里的RAM 與ROM 不懂得話,可以看看我整理的另一篇 150.html DDRAM 就是顯示數(shù)據(jù)RAM,用來(lái)寄存待顯示的字符代碼。共80 個(gè)字節(jié),其地 址和屏幕的對(duì)應(yīng)
3、關(guān)系如下表: 1 6 3 0 0 也就是說(shuō)想要在LCD1602 屏幕的第一行第一列顯示一個(gè)"A"字,就要向DDRAM 5 的00H 地址寫入“A”字的代碼就行了。但具體的寫入是要按LCD 模塊的指令格 8 4 式來(lái)進(jìn)行的,后面我會(huì)說(shuō)到的。那么一行可有40 個(gè)地址呀?是的,在1602 中我 6 l 們就用前16 個(gè)就行了。第二行也一樣用前16 個(gè)地址。對(duì)應(yīng)如下: l a b DDRAM 地址與顯示位置的對(duì)應(yīng)關(guān)系 / m o c u. d i a b i. h / / : 我們知道文本文件中每一個(gè)字符都是用一個(gè)字節(jié)的代碼記錄的。一個(gè)漢字是 p t t 用兩個(gè)字節(jié)的代碼記錄。在P
4、C 上我們只要打開文本文件就能在屏幕上看到對(duì)應(yīng) h 的字符是因?yàn)樵诓僮飨到y(tǒng)里和BIOS 里都固化有字符字模。什么是字模?就代表 了是在點(diǎn)陣屏幕上點(diǎn)亮和熄滅的信息數(shù)據(jù)。例如 “A” 字的字模: 01110 10001 10001 10001 11111 共 17 頁(yè) 第 3 頁(yè) - Page 4- 10001 10001 上圖左邊的數(shù)據(jù)就是字模數(shù)據(jù),右邊就是將左邊數(shù)據(jù)用 “”代表 0,用 “”代表 1??闯鍪莻€(gè)“A”字了嗎?在文本文件中“A”字的代碼是41H,PC 收到41H 的代碼后就去字模文件中將代表A 字的這一組數(shù)據(jù)送到顯卡去點(diǎn)亮屏幕 上相應(yīng)的點(diǎn),你就看到“A”這個(gè)字了。 剛才我說(shuō)了想要在
5、 LCD1602 屏幕的第一行第一列顯示一個(gè)"A"字,就要向 DDRAM 的00H 地址寫入“A”字的代碼41H 就行了,可41H 這一個(gè)字節(jié)的代碼如 何才能讓LCD 模塊在屏幕的陣點(diǎn)上顯示 “A”字呢?同樣,在LCD 模塊上也固化 了字模存儲(chǔ)器,這就是CGROM 和CGRAM。HD44780 內(nèi)置了192 個(gè)常用字符的字模, 存于字符產(chǎn)生器 CGROM(Character Generator ROM)中,另外還有 8 個(gè)允許用戶 自定義的字符產(chǎn)生 RAM,稱為 CGRAM(Character Generator RAM)。下圖說(shuō)明了 1 CGROM 和CGRAM 與字符的
6、對(duì)應(yīng)關(guān)系。 6 3 0 0 5 8 4 6 l l a b / m o c u. d i a b i. h / / : p t t h 共 17 頁(yè) 第 4 頁(yè) - Page 5- 從上圖可以看出, “A”字的對(duì)應(yīng)上面高位代碼為0100,對(duì)應(yīng)左邊低位代碼 為0001,合起來(lái)就是01000001,也就是41H??梢娝拇a與我們PC 中的字符 代碼是基本一致的。因此我們?cè)谙駾DRAM 寫C51 字符代碼程序時(shí)甚至可以直接用 P1 'A'這樣的方法。PC 在編譯時(shí)就把 “A”先轉(zhuǎn)為41H 代碼了。 字符代碼0x00 0x0F 為用戶自定義的字符圖形RAM(對(duì)于5X8 點(diǎn)陣的字符,
7、可以存放8 組,5X10 點(diǎn)陣的字符,存放4 組),就是CGRAM 了。后面我會(huì)詳細(xì)說(shuō) 的。 0x20 0x7F 為標(biāo)準(zhǔn)的ASCII 碼,0xA0 0xFF 為日文字符和希臘文字符,其 余字符碼(0x100x1F 及0x80 0x9F)沒(méi)有定義。 那么如何對(duì)DDRAM 的內(nèi)容和地址進(jìn)行具體操作呢,下面先說(shuō)說(shuō)HD44780 的指 令集及其設(shè)置說(shuō)明,請(qǐng)瀏覽該指令集,并找出對(duì)DDRAM 的內(nèi)容和地址進(jìn)行操作的 指令。 1 6 3 共11 條指令: 0 0 5 1.清屏指令 8 4 6 l l a b / m o c u. d 功能:<1> 清除液晶顯示器,即將 DDRAM 的內(nèi)容全部填入
8、"空白"的 ASCII i a 碼20H; b i. h / <2> 光標(biāo)歸位,即將光標(biāo)撤回液晶顯示屏的左上方; / : p t <3> 將地址計(jì)數(shù)器(AC)的值設(shè)為0。 t h 2.光標(biāo)歸位指令 功能:<1> 把光標(biāo)撤回到顯示器的左上方; <2> 把地址計(jì)數(shù)器(AC)的值設(shè)置為0; <3> 保持DDRAM 的內(nèi)容不變。 共 17 頁(yè) 第 5 頁(yè) - Page 6- 3.進(jìn)入模式設(shè)置指令 功能:設(shè)定每次定入1位數(shù)據(jù)后光標(biāo)的移位方向,并且設(shè)定每次寫入的一個(gè) 字符是否移動(dòng)。參數(shù)設(shè)定的 情況如下所示: 位名 設(shè)置 1 6
9、 I/D 0=寫入新數(shù)據(jù)后光標(biāo)左移 1=寫入新數(shù)據(jù)后光標(biāo)右移 3 0 S 0=寫入新數(shù)據(jù)后顯示屏不移動(dòng) 1=寫入新數(shù)據(jù)后顯示屏整體右 0 5 移1 個(gè)字符 8 4 4.顯示開關(guān)控制指令 6 l l a b / m o c u. d i a b . 功能:控制顯示器開/關(guān)、光標(biāo)顯示/關(guān)閉以及光標(biāo)是否閃爍。參數(shù)設(shè)定的情 i 況如下: h / / : p t 位名 設(shè)置 t h D 0=顯示功能關(guān) 1=顯示功能開 C 0=無(wú)光標(biāo) 1=有光標(biāo) B 0=光標(biāo)閃爍 1=光標(biāo)不閃爍 5.設(shè)定顯示屏或光標(biāo)移動(dòng)方向指令 共 17 頁(yè) 第 6 頁(yè) - Page 7- 2010-5-13 PM 14:19:47 b
10、all整理 功能:使光標(biāo)移位或使整個(gè)顯示屏幕移位。參數(shù)設(shè)定的情況如下: S/C R/L 設(shè)定情況 0 0 光標(biāo)左移1格,且AC 值減1 0 1 光標(biāo)右移1格,且AC 值加1 1 0 顯示器上字符全部左移一格,但光標(biāo)不動(dòng) 1 1 顯示器上字符全部右移一格,但光標(biāo)不動(dòng) 6.功能設(shè)定指令 1 6 3 0 0 5 8 4 6 功能:設(shè)定數(shù)據(jù)總線位數(shù)、顯示的行數(shù)及字型。參數(shù)設(shè)定的情況如下: l l a 位名 設(shè)置 b / m o DL 0=數(shù)據(jù)總線為4 位 1=數(shù)據(jù)總線為8 位 c u. N 0=顯示1 行 1=顯示2 行 d i a b F 0=5 ×7 點(diǎn)陣/每字符 1=5 ×1
11、0 點(diǎn)陣/每字符 i. h / / 7.設(shè)定CGRAM 地址指令 : p t t h 功能:設(shè)定下一個(gè)要存入數(shù)據(jù)的CGRAM 的地址。 DB5DB4DB3 為字符號(hào),也就是你將來(lái)要顯示該字符時(shí)要用到的字符 地址。(000111) (能定義八個(gè)字符) DB2DB1DB0 為行號(hào)。 (000111 )(八行) 8.設(shè)定DDRAM 地址指令 共 17 頁(yè) 第 7 頁(yè) - Page 8- 功能:設(shè)定下一個(gè)要存入數(shù)據(jù)的DDRAM 的地址。 9.讀取忙信號(hào)或AC 地址指令 1 6 3 功能:<1> 讀取忙碌信號(hào)BF 的內(nèi)容,BF=1 表示液晶顯示器忙,暫時(shí)無(wú)法接收單 0 片機(jī)送來(lái)的數(shù)據(jù)或指令;
12、 0 5 8 4 當(dāng)BF=0 時(shí),液晶顯示器可以接收單片機(jī)送來(lái)的數(shù)據(jù)或指令; 6 l l <2> 讀取地址計(jì)數(shù)器(AC)的內(nèi)容。 a b / m 10.數(shù)據(jù)寫入DDRAM 或CGRAM 指令一覽 o c u. d i a b i. h / / : p t t h 功能:<1> 將字符碼寫入DDRAM,以使液晶顯示屏顯示出相對(duì)應(yīng)的字符; <2> 將使用者自己設(shè)計(jì)的圖形存入CGRAM。 DB7DB6DB5 可為任何數(shù)據(jù),一般取 “000”。 DB4DB3DB2DB1DB0 對(duì)應(yīng)于每行5 點(diǎn)的字模數(shù)據(jù)。 11.從CGRAM 或DDRAM 讀出數(shù)據(jù)的指令一覽 共 1
13、7 頁(yè) 第 8 頁(yè) - Page 9- 2010-5-13 PM 14:19:48 ball整理 功能:讀取DDRAM 或CGRAM 中的內(nèi)容。 基本操作時(shí)序: 讀狀態(tài) 輸入:RS=L,RW=H,E=H 輸出:DB0 DB7=狀態(tài)字 寫指令 輸入:RS=L,RW=L,E=下降沿脈沖,DB0 DB7=指令碼 輸出:無(wú) 1 6 讀數(shù)據(jù) 輸入:RS=H,RW=H,E=H 輸出:DB0 DB7=數(shù)據(jù) 3 0 寫數(shù)據(jù) 輸入:RS=H,RW=L,E=下降沿脈沖,DB0 DB7=數(shù)據(jù) 輸出:無(wú) 0 5 8 4 2.顯示字符 6 l l a b 看了那么多是不是有些暈?我也是啊,不過(guò)慢慢理解還是沒(méi)問(wèn)題的。 /
14、 m 實(shí)際上面說(shuō)了那么多具體怎么操作我還是沒(méi)會(huì)啊?好!咱就簡(jiǎn)單點(diǎn)。 o c . 舉個(gè)實(shí)例,就在LCD1602 屏幕上第一行第一列顯示個(gè)“A”字。 u d i a 1.先初始化。 (老大!好像上面沒(méi)初始化這條指令?。。?b i. 先別拿東西扔我,說(shuō)明書上是這么說(shuō)的。也就先寫入些指令。 h / / : /先定義接口 p t t h # include <AT89x51.h> /* P1-DB0 DB7 P2.0-RS P2.1-RW P2.2-E */ # define LCD_DB P1 sbit LCD_RS=P20; sbit LCD_RW=P21; sbit LCD_E=P22
15、; /*定義函數(shù)*/ # define uchar unsigned char # define uint unsigned int 共 17 頁(yè) 第 9 頁(yè) - Page 10-void LCD_init(void);/初始化函數(shù) void LCD_write_command(uchar command);/寫指令函數(shù) void LCD_write_data(uchar dat);/寫數(shù)據(jù)函數(shù) void LCD_disp_char(uchar x,uchar y,uchar dat);/在某個(gè)屏幕位置上顯示一 個(gè)字符,X (0-16),y(1-2) /void LCD_check_busy(
16、void);/檢查忙函數(shù)。我沒(méi)用到此函數(shù),因?yàn)橥ㄟ^(guò)率極 低。 void delay_n40us(uint n);/延時(shí)函數(shù) /* /*初始化函數(shù)* void LCD_init(void) LCD_write_command(0x38);/設(shè)置8 位格式,2 行,5x7 LCD_write_command(0x0c);/整體顯示,關(guān)光標(biāo),不閃爍 1 LCD_write_command(0x06);/設(shè)定輸入方式,增量不移位 6 LCD_write_command(0x01);/清除屏幕顯示 3 0 delay_n40us(100);/實(shí)踐證明,我的LCD1602 上,用for 循環(huán)200 次就能
17、可靠 0 完成清屏指令。 5 8 4 /* 6 l l /*寫指令函數(shù)* a void LCD_write_command(uchar dat) b / m LCD_DB=dat; o c LCD_RS=0;/指令 u. LCD_RW=0;/寫入 d i LCD_E=1;/允許 a b LCD_E=0; i. h delay_n40us(1);/實(shí)踐證明,我的LCD1602 上,用for 循環(huán) 1 次就能完成普通 / / 寫指令。 : p t t h /* /*寫數(shù)據(jù)函數(shù)* void LCD_write_data(uchar dat) LCD_DB=dat; LCD_RS=1;/數(shù)據(jù) LCD_
18、RW=0;/寫入 LCD_E=1;/允許 LCD_E=0; delay_n40us(1); /* /*顯示一個(gè)字符函數(shù)* 共 17 頁(yè) 第 10 頁(yè) - Page 11-void LCD_disp_char(uchar x,uchar y,uchar dat) uchar address; if(y=1) address=0x80+x; else address=0xc0+x; LCD_write_command(address); LCD_write_data(dat); /* /*檢查忙函數(shù)* void LCD_check_busy() /實(shí)踐證明,在我的LCD1602 上,檢查忙指令通
19、過(guò)率極低,以 1 /至于不能正常使用 LCD。因 6 此我沒(méi)有再用檢查忙函數(shù)。而使 3 0 do /用了延時(shí)的方法,延時(shí)還是非 0 常好用的。我試了一下,用 5 8 LCD_E=0; /for 循環(huán)作延時(shí),普通指令只要 1 4 次循就可完成。清屏指令 6 l l LCD_RS=0; /要用200 次循環(huán)便能完成。 a LCD_RW=1; b / LCD_DB=0xff; m LCD_E=1; o c while(LCD_DB7=1); . u d i a */ b . /*延時(shí)函數(shù)* i h void delay_n40us(uint n) / / uint i; : p t uchar j;
20、 t h for(i=n;i>0;i-) for(j=0;j<2;j+); /在這個(gè)延時(shí)循環(huán)函數(shù)中我只做了 2 次循環(huán), /實(shí)踐證明我的 LCD1602 上普 通的指令只需1 次循環(huán)就能可靠完成。 /* /*主函數(shù)* void main(void) LCD_init(); LCD_disp_char(0,1,"A"); while(1); 共 17 頁(yè) 第 11 頁(yè) - Page 12-/* 3.顯示自定義字符 上面只是顯示了 A這一個(gè)字符 (即將CGROM 中的 A寫入DDRAM ); 下面我再補(bǔ)充一下:(顯示一個(gè)自定義字符) 步驟如下: 1. 先將自定義字符寫入CGRAM 2. 再將CGRAM 中的自定義字符送到DDRAM 中顯示 很簡(jiǎn)單的:看好了 查看 LCD1602 的 CGROM 字符代碼表,可以發(fā)現(xiàn) 從 00000000B00000111B (00H07H )地址的內(nèi)容是沒(méi)有定義的,它是留給用戶自己定義的,用戶可以通 過(guò)先定義LCD1602 的CGRAM 中的內(nèi)容,然后就可以同調(diào)用CGROM 字符一樣來(lái)調(diào)用 自定義好的字符 (這里提示一下,自定義的字符最多可寫8 個(gè)) 1 6 那么如何設(shè)定CGRAM 中的內(nèi)容呢?首先我們要把所要編寫的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 踩高蹺幼兒園教案
- 保護(hù)牙齒教案反思小班
- 漢真有趣說(shuō)課稿
- 航空航天履約管理辦法
- 塑料大棚建設(shè)安裝協(xié)議
- 臨時(shí)醫(yī)療電源租賃合同
- 電信業(yè)不合格服務(wù)管理
- 航空航天設(shè)施保溫施工協(xié)議
- 脊椎病診斷與治療
- 研發(fā)項(xiàng)目保密規(guī)則
- 2024-2030年中國(guó)建筑施工行業(yè)運(yùn)行狀況及發(fā)展規(guī)模分析報(bào)告
- 遼寧省大連市金普新區(qū)2024-2025學(xué)年七年級(jí)上學(xué)期11月期中英語(yǔ)試題(無(wú)答案)
- 生態(tài)文明學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 區(qū)病案質(zhì)控中心匯報(bào)
- 期中測(cè)試卷(1-4單元)(試題)2024-2025學(xué)年四年級(jí)上冊(cè)數(shù)學(xué)人教版
- 教育局職業(yè)院校教師培訓(xùn)實(shí)施方案
- 《萬(wàn)維網(wǎng)服務(wù)大揭秘》課件 2024-2025學(xué)年人教版新教材初中信息技術(shù)七年級(jí)全一冊(cè)
- 2024年新華社招聘應(yīng)屆畢業(yè)生及留學(xué)回國(guó)人員129人歷年高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 北京市《配電室安全管理規(guī)范》(DB11T 527-2021)地方標(biāo)準(zhǔn)
- 生涯發(fā)展展示
- 第七講社會(huì)主義現(xiàn)代化建設(shè)的教育、科技、人才戰(zhàn)略教學(xué)課件
評(píng)論
0/150
提交評(píng)論