1602字符液晶顯示.doc_第1頁(yè)
1602字符液晶顯示.doc_第2頁(yè)
1602字符液晶顯示.doc_第3頁(yè)
1602字符液晶顯示.doc_第4頁(yè)
1602字符液晶顯示.doc_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1602字符液晶目錄簡(jiǎn)介 管腳功能 字符集 顯示地址 指令集 編輯本段簡(jiǎn)介工業(yè)字符型液晶,能夠同時(shí)顯示16x02即32個(gè)字符。(16列2行) 注:為了表示的方便 ,后文皆以1表示高電平,0表示低電平。 編輯本段管腳功能 引腳說(shuō)明1602字符型LCD通常有14條引腳線或16條引腳線的LCD,多出來(lái)的2條線是背光電源線 VCC(15腳)和地線GND(16腳),其控制原理與14腳的LCD完全一樣,其中: 引腳符號(hào)功能說(shuō)明1VSS一般接地2VDD接電源(+5V)3V0液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高(對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度)。4RSRS為寄存器選擇,高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器。5R/WR/W為讀寫(xiě)信號(hào)線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫(xiě)操作。6EE(或EN)端為使能(enable)端,下降沿使能。7DB0底4位三態(tài)、 雙向數(shù)據(jù)總線 0位(最低位)8DB1底4位三態(tài)、 雙向數(shù)據(jù)總線 1位9DB2底4位三態(tài)、 雙向數(shù)據(jù)總線 2位10DB3底4位三態(tài)、 雙向數(shù)據(jù)總線 3位11DB4高4位三態(tài)、 雙向數(shù)據(jù)總線 4位12DB5高4位三態(tài)、 雙向數(shù)據(jù)總線 5位13DB6高4位三態(tài)、 雙向數(shù)據(jù)總線 6位14DB7高4位三態(tài)、 雙向數(shù)據(jù)總線 7位(最高位)(也是busy flag)15BLA背光電源正極16BLK背光 電源負(fù)極寄存器選擇控制表 RSR/W操作說(shuō)明00寫(xiě)入指令寄存器(清除屏等)01讀busy flag(DB7),以及讀取位址計(jì)數(shù)器(DB0DB6)值10寫(xiě)入數(shù)據(jù)寄存器(顯示各字型等)11從數(shù)據(jù)寄存器讀取數(shù)據(jù)注:關(guān)于E=H脈沖開(kāi)始時(shí)初始化E為0,然后置E為1,再清0. busy flag(DB7):在此位為被清除為0時(shí),LCD將無(wú)法再處理其他的指令要求。 編輯本段字符集1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫(xiě)、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫(xiě)的英文字母“A”的代碼是01000001B(41H),顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來(lái),我們就能看到字母“A”。 因?yàn)?602識(shí)別的是ASCII碼,試驗(yàn)可以用ASCII碼直接賦值,在單片機(jī)編程中還可以用字符型常量或變量賦值,如A。 以下是1602的16進(jìn)制ASCII碼表: (圖片打開(kāi)是大圖) 讀的時(shí)候,先讀上面那列,再讀左邊那行,如:感嘆號(hào)!的ASCII為0x21,字母B的ASCII為0x42(前面加0x表示十六進(jìn)制)。 編輯本段顯示地址 1234567891011121314151600H01H02H03H04H05H06H07H08H09H0AH0BH0CH0DH0EH0FH40H41H42H43H44H45H46H47H48H49H4AH4BH4CH4DH4EH4FH編輯本段指令集1602通過(guò)D0D7的8位數(shù)據(jù)端傳輸數(shù)據(jù)和指令。 顯示模式設(shè)置: (初始化) 0011 1000 0x38 設(shè)置162顯示,57點(diǎn)陣,8位數(shù)據(jù)接口; 顯示開(kāi)關(guān)及光標(biāo)設(shè)置:(初始化) 0000 1DCB D顯示(1有效)、C光標(biāo)顯示(1有效)、B光標(biāo)閃爍(1有效) 0000 01NS N=1(讀或?qū)懸粋€(gè)字符后地址指針加1 &光標(biāo)加1), N=0(讀或?qū)懸粋€(gè)字符后地址指針減1 &光標(biāo)減1), S=1 且 N=1 (當(dāng)寫(xiě)一個(gè)字符后,整屏顯示左移) s=0 當(dāng)寫(xiě)一個(gè)字符后,整屏顯示不移動(dòng) 數(shù)據(jù)指針設(shè)置: 數(shù)據(jù)首地址為80H,所以數(shù)據(jù)地址為80H+地址碼(0-27H,40-67H) 其他設(shè)置: 01H(顯示清屏,數(shù)據(jù)指針=0,所有顯示=0);02H(顯示回車(chē),數(shù)據(jù)指針=0)。 通常推薦的初始化過(guò)程: 延時(shí)15ms 寫(xiě)指令38H 延時(shí)5ms 寫(xiě)指令38H 延時(shí)5ms 寫(xiě)指令38H 延時(shí)5ms (以上都不檢測(cè)忙信號(hào)) (以下都要檢測(cè)忙信號(hào)) 寫(xiě)指令38H 寫(xiě)指令08H 關(guān)閉顯示 寫(xiě)指令01H 顯示清屏 寫(xiě)指令06H 光標(biāo)移動(dòng)設(shè)置 寫(xiě)指令0cH 顯示開(kāi)及光標(biāo)設(shè)置 完畢 Proteus仿真 使用Proteus仿真1602-即LM016L-依照數(shù)據(jù)手冊(cè)說(shuō)明可能遇到困難,可以嘗試采用以下方案解決: 1、數(shù)據(jù)手冊(cè)中可能介紹1602內(nèi)部D0D7已有上拉,可以使用P0口直接驅(qū)動(dòng)。在Proteus里L(fēng)M016L內(nèi)部可能沒(méi)有,應(yīng)該人為 加上拉電阻。建議不要使用排阻,使用普通電阻一個(gè)一個(gè)拉應(yīng)該可以解決問(wèn)題; 2、可能碰到不能檢測(cè)忙信號(hào)的問(wèn)題,嘗試使用延時(shí)把忙信號(hào)拖過(guò)去。 參考資料:/lpxyhncn/blog/item/a15b2bc353622b130ff47731.html 1602液晶的引腳定義2009年06月10日 星期三 14:191602液晶的引腳定義來(lái)自網(wǎng)絡(luò)/txz01/blog/index/1LCD1602已很普遍了,具體介紹我就不多說(shuō)了,市面上字符液晶絕大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此HD44780寫(xiě)的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶。字符型LCD通常有14條引腳線或16條引腳線的LCD,多出來(lái)的2條線是背光電源線VCC(15腳)和地線GND(16腳),其控制原理與14腳的LCD完全一樣,定義如下表所示: 字符型LCD的引腳定義HD44780內(nèi)置了DDRAM、CGROM和CGRAM。DDRAM就是顯示數(shù)據(jù)RAM,用來(lái)寄存待顯示的字符代碼。共80個(gè)字節(jié),其地址和屏幕的對(duì)應(yīng)關(guān)系如下表:也就是說(shuō)想要在LCD1602屏幕的第一行第一列顯示一個(gè)A字,就要向DDRAM的00H地址寫(xiě)入“A”字的代碼就行了。但具體的寫(xiě)入是要按LCD模塊的指令格式來(lái)進(jìn)行的,后面我會(huì)說(shuō)到的。那么一行可有40個(gè)地址呀?是的,在1602中我們就用前16個(gè)就行了。第二行也一樣用前16個(gè)地址。對(duì)應(yīng)如下: DDRAM地址與顯示位置的對(duì)應(yīng)關(guān)系我們知道文本文件中每一個(gè)字符都是用一個(gè)字節(jié)的代碼記錄的。一個(gè)漢字是用兩個(gè)字節(jié)的代碼記錄。在PC上我們只要打開(kāi)文本文件就能在屏幕上看到對(duì)應(yīng)的字符是因?yàn)樵诓僮飨到y(tǒng)里和BIOS里都固化有字符字模。什么是字模?就代表了是在點(diǎn)陣屏幕上點(diǎn)亮和熄滅的信息數(shù)據(jù)。例如“A”字的字模: 01110 10001 10001 10001 11111 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ō)了想要在LCD1602屏幕的第一行第一列顯示一個(gè)A字,就要向DDRAM的00H地址寫(xiě)入“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,稱(chēng)為CGRAM(Character Generator RAM)。下圖說(shuō)明了CGROM和CGRAM與字符的對(duì)應(yīng)關(guān)系。從上圖可以看出,“A”字的對(duì)應(yīng)上面高位代碼為0100,對(duì)應(yīng)左邊低位代碼為0001,合起來(lái)就是01000001,也就是41H??梢?jiàn)它的代碼與我們PC中的字符代碼是基本一致的。因此我們?cè)谙駾DRAM寫(xiě)C51字符代碼程序時(shí)甚至可以直接用P1A這樣的方法。PC在編譯時(shí)就把“A”先轉(zhuǎn)為41H代碼了。字符代碼0x000x0F為用戶自定義的字符圖形RAM(對(duì)于5X8點(diǎn)陣的字符,可以存放8組,5X10點(diǎn)陣的字符,存放4組),就是CGRAM了。后面我會(huì)詳細(xì)說(shuō)的。0x200x7F為標(biāo)準(zhǔn)的ASCII碼,0xA00xFF為日文字符和希臘文字符,其余字符碼(0x100x1F及0x800x9F)沒(méi)有定義。那么如何對(duì)DDRAM的內(nèi)容和地址進(jìn)行具體操作呢,下面先說(shuō)說(shuō)HD44780的指令集及其設(shè)置說(shuō)明,請(qǐng)瀏覽該指令集,并找出對(duì)DDRAM的內(nèi)容和地址進(jìn)行操作的指令。共11條指令:1.清屏指令功能: 清除液晶顯示器,即將DDRAM的內(nèi)容全部填入空白的ASCII碼20H; 光標(biāo)歸位,即將光標(biāo)撤回液晶顯示屏的左上方; 將地址計(jì)數(shù)器(AC)的值設(shè)為0。2.光標(biāo)歸位指令功能: 把光標(biāo)撤回到顯示器的左上方; 把地址計(jì)數(shù)器(AC)的值設(shè)置為0; 保持DDRAM的內(nèi)容不變。3.進(jìn)入模式設(shè)置指令功能:設(shè)定每次定入1位數(shù)據(jù)后光標(biāo)的移位方向,并且設(shè)定每次寫(xiě)入的一個(gè)字符是否移動(dòng)。參數(shù)設(shè)定的 情況如下所示: 位名 設(shè)置 I/D 0=寫(xiě)入新數(shù)據(jù)后光標(biāo)左移 1=寫(xiě)入新數(shù)據(jù)后光標(biāo)右移 S 0=寫(xiě)入新數(shù)據(jù)后顯示屏不移動(dòng) 1=寫(xiě)入新數(shù)據(jù)后顯示屏整體右移1個(gè)字符4.顯示開(kāi)關(guān)控制指令功能:控制顯示器開(kāi)/關(guān)、光標(biāo)顯示/關(guān)閉以及光標(biāo)是否閃爍。參數(shù)設(shè)定的情況如下: 位名 設(shè)置 D 0=顯示功能關(guān) 1=顯示功能開(kāi) C 0=無(wú)光標(biāo) 1=有光標(biāo) B 0=光標(biāo)閃爍 1=光標(biāo)不閃爍5.設(shè)定顯示屏或光標(biāo)移動(dòng)方向指令功能:使光標(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è)定指令功能:設(shè)定數(shù)據(jù)總線位數(shù)、顯示的行數(shù)及字型。參數(shù)設(shè)定的情況如下: 位名 設(shè)置 DL 0=數(shù)據(jù)總線為4位 1=數(shù)據(jù)總線為8位 N 0=顯示1行 1=顯示2行 F 0=57點(diǎn)陣/每字符 1=510點(diǎn)陣/每字符7.設(shè)定CGRAM地址指令功能:設(shè)定下一個(gè)要存入數(shù)據(jù)的CGRAM的地址。8.設(shè)定DDRAM地址指令功能:設(shè)定下一個(gè)要存入數(shù)據(jù)的CGRAM的地址。9.讀取忙信號(hào)或AC地址指令功能: 讀取忙碌信號(hào)BF的內(nèi)容,BF=1表示液晶顯示器忙,暫時(shí)無(wú)法接收單片機(jī)送來(lái)的數(shù)據(jù)或指令; 當(dāng)BF=0時(shí),液晶顯示器可以接收單片機(jī)送來(lái)的數(shù)據(jù)或指令; 讀取地址計(jì)數(shù)器(AC)的內(nèi)容。10.數(shù)據(jù)寫(xiě)入DDRAM或CGRAM指令一覽功能: 將字符碼寫(xiě)入DDRAM,以使液晶顯示屏顯示出相對(duì)應(yīng)的字符; 將使用者自己設(shè)計(jì)的圖形存入CGRAM。11.從CGRAM或DDRAM讀出數(shù)據(jù)的指令一覽功能:讀取DDRAM或CGRAM中的內(nèi)容?;静僮鲿r(shí)序:讀狀態(tài) 輸入:RS=L,RW=H,E=H 輸出:DB0DB7=狀態(tài)字寫(xiě)指令 輸入:RS=L,RW=L,E=下降沿脈沖,DB0DB7=指令碼 輸出:無(wú)讀數(shù)據(jù) 輸入:RS=H,RW=H,E=H 輸出:DB0DB7=數(shù)據(jù)寫(xiě)數(shù)據(jù) 輸入:RS=H,RW=L,E=下降沿脈沖,DB0DB7=數(shù)據(jù) 輸出:無(wú)看了那么多是不是有些暈?我也是啊,不過(guò)慢慢理解還是沒(méi)問(wèn)題的。實(shí)際上面說(shuō)了那么多具體怎么操作我還是沒(méi)會(huì)啊?好!咱就簡(jiǎn)單點(diǎn)。舉個(gè)實(shí)例,就在LCD1602屏幕上第一行第一列顯示個(gè)“A”字。1.先初始化。(老大!好像上面沒(méi)初始化這條指令?。。?先別拿東西扔我,說(shuō)明書(shū)上是這么說(shuō)的。也就先寫(xiě)入些指令。/先定義接口# include /* P1-DB0DB7 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;/*定義函數(shù)*/# define uchar unsigned char# define uint unsigned intvoid LCD_init(void);/初始化函數(shù)void LCD_write_command(uchar command);/寫(xiě)指令函數(shù)void LCD_write_data(uchar dat);/寫(xiě)數(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(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行,5x7LCD_write_command(0x0c);/整體顯示,關(guān)光標(biāo),不閃爍LCD_write_command(0x06);/設(shè)定輸入方式,增量不移位LCD_write_command(0x01);/清除屏幕顯示delay_n40us(100);/實(shí)踐證明,我的LCD1602上,用for循環(huán)200次就能可靠完成清屏指令。/*/*寫(xiě)指令函數(shù)*void LCD_write_command(uchar dat)LCD_DB=dat;LCD_RS=0;/指令LCD_RW=0;/寫(xiě)入LCD_E=1;/允許LCD_E=0;delay_n40us(1);/實(shí)踐證明,我的LCD1602上,用for循環(huán)1次就能完成普通寫(xiě)指令。/*/*寫(xiě)數(shù)據(jù)函數(shù)*void LCD_write_data(uchar dat)LCD_DB=dat;LCD_RS=1;/數(shù)據(jù)LCD_RW=0;/寫(xiě)入LCD_E=1;/允許LCD_E=0

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論