




已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1602字符液晶目錄簡介 管腳功能 字符集 顯示地址 指令集 編輯本段簡介工業(yè)字符型液晶,能夠同時顯示16x02即32個字符。(16列2行) 注:為了表示的方便 ,后文皆以1表示高電平,0表示低電平。 編輯本段管腳功能 引腳說明1602字符型LCD通常有14條引腳線或16條引腳線的LCD,多出來的2條線是背光電源線 VCC(15腳)和地線GND(16腳),其控制原理與14腳的LCD完全一樣,其中: 引腳符號功能說明1VSS一般接地2VDD接電源(+5V)3V0液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調整對比度)。4RSRS為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。5R/WR/W為讀寫信號線,高電平(1)時進行讀操作,低電平(0)時進行寫操作。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背光 電源負極寄存器選擇控制表 RSR/W操作說明00寫入指令寄存器(清除屏等)01讀busy flag(DB7),以及讀取位址計數(shù)器(DB0DB6)值10寫入數(shù)據(jù)寄存器(顯示各字型等)11從數(shù)據(jù)寄存器讀取數(shù)據(jù)注:關于E=H脈沖開始時初始化E為0,然后置E為1,再清0. busy flag(DB7):在此位為被清除為0時,LCD將無法再處理其他的指令要求。 編輯本段字符集1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同的點陣字符圖形,這些字符有:阿拉伯數(shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母“A”。 因為1602識別的是ASCII碼,試驗可以用ASCII碼直接賦值,在單片機編程中還可以用字符型常量或變量賦值,如A。 以下是1602的16進制ASCII碼表: (圖片打開是大圖) 讀的時候,先讀上面那列,再讀左邊那行,如:感嘆號!的ASCII為0x21,字母B的ASCII為0x42(前面加0x表示十六進制)。 編輯本段顯示地址 1234567891011121314151600H01H02H03H04H05H06H07H08H09H0AH0BH0CH0DH0EH0FH40H41H42H43H44H45H46H47H48H49H4AH4BH4CH4DH4EH4FH編輯本段指令集1602通過D0D7的8位數(shù)據(jù)端傳輸數(shù)據(jù)和指令。 顯示模式設置: (初始化) 0011 1000 0x38 設置162顯示,57點陣,8位數(shù)據(jù)接口; 顯示開關及光標設置:(初始化) 0000 1DCB D顯示(1有效)、C光標顯示(1有效)、B光標閃爍(1有效) 0000 01NS N=1(讀或寫一個字符后地址指針加1 &光標加1), N=0(讀或寫一個字符后地址指針減1 &光標減1), S=1 且 N=1 (當寫一個字符后,整屏顯示左移) s=0 當寫一個字符后,整屏顯示不移動 數(shù)據(jù)指針設置: 數(shù)據(jù)首地址為80H,所以數(shù)據(jù)地址為80H+地址碼(0-27H,40-67H) 其他設置: 01H(顯示清屏,數(shù)據(jù)指針=0,所有顯示=0);02H(顯示回車,數(shù)據(jù)指針=0)。 通常推薦的初始化過程: 延時15ms 寫指令38H 延時5ms 寫指令38H 延時5ms 寫指令38H 延時5ms (以上都不檢測忙信號) (以下都要檢測忙信號) 寫指令38H 寫指令08H 關閉顯示 寫指令01H 顯示清屏 寫指令06H 光標移動設置 寫指令0cH 顯示開及光標設置 完畢 Proteus仿真 使用Proteus仿真1602-即LM016L-依照數(shù)據(jù)手冊說明可能遇到困難,可以嘗試采用以下方案解決: 1、數(shù)據(jù)手冊中可能介紹1602內(nèi)部D0D7已有上拉,可以使用P0口直接驅動。在Proteus里LM016L內(nèi)部可能沒有,應該人為 加上拉電阻。建議不要使用排阻,使用普通電阻一個一個拉應該可以解決問題; 2、可能碰到不能檢測忙信號的問題,嘗試使用延時把忙信號拖過去。 參考資料:/lpxyhncn/blog/item/a15b2bc353622b130ff47731.html 1602液晶的引腳定義2009年06月10日 星期三 14:191602液晶的引腳定義來自網(wǎng)絡/txz01/blog/index/1LCD1602已很普遍了,具體介紹我就不多說了,市面上字符液晶絕大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此HD44780寫的控制程序可以很方便地應用于市面上大部分的字符型液晶。字符型LCD通常有14條引腳線或16條引腳線的LCD,多出來的2條線是背光電源線VCC(15腳)和地線GND(16腳),其控制原理與14腳的LCD完全一樣,定義如下表所示: 字符型LCD的引腳定義HD44780內(nèi)置了DDRAM、CGROM和CGRAM。DDRAM就是顯示數(shù)據(jù)RAM,用來寄存待顯示的字符代碼。共80個字節(jié),其地址和屏幕的對應關系如下表:也就是說想要在LCD1602屏幕的第一行第一列顯示一個A字,就要向DDRAM的00H地址寫入“A”字的代碼就行了。但具體的寫入是要按LCD模塊的指令格式來進行的,后面我會說到的。那么一行可有40個地址呀?是的,在1602中我們就用前16個就行了。第二行也一樣用前16個地址。對應如下: DDRAM地址與顯示位置的對應關系我們知道文本文件中每一個字符都是用一個字節(jié)的代碼記錄的。一個漢字是用兩個字節(jié)的代碼記錄。在PC上我們只要打開文本文件就能在屏幕上看到對應的字符是因為在操作系統(tǒng)里和BIOS里都固化有字符字模。什么是字模?就代表了是在點陣屏幕上點亮和熄滅的信息數(shù)據(jù)。例如“A”字的字模: 01110 10001 10001 10001 11111 10001 10001上圖左邊的數(shù)據(jù)就是字模數(shù)據(jù),右邊就是將左邊數(shù)據(jù)用“”代表0,用“”代表1??闯鍪莻€“A”字了嗎?在文本文件中“A”字的代碼是41H,PC收到41H的代碼后就去字模文件中將代表A字的這一組數(shù)據(jù)送到顯卡去點亮屏幕上相應的點,你就看到“A”這個字了。剛才我說了想要在LCD1602屏幕的第一行第一列顯示一個A字,就要向DDRAM的00H地址寫入“A”字的代碼41H就行了,可41H這一個字節(jié)的代碼如何才能讓LCD模塊在屏幕的陣點上顯示“A”字呢?同樣,在LCD模塊上也固化了字模存儲器,這就是CGROM和CGRAM。HD44780內(nèi)置了192個常用字符的字模,存于字符產(chǎn)生器CGROM(Character Generator ROM)中,另外還有8個允許用戶自定義的字符產(chǎn)生RAM,稱為CGRAM(Character Generator RAM)。下圖說明了CGROM和CGRAM與字符的對應關系。從上圖可以看出,“A”字的對應上面高位代碼為0100,對應左邊低位代碼為0001,合起來就是01000001,也就是41H??梢娝拇a與我們PC中的字符代碼是基本一致的。因此我們在向DDRAM寫C51字符代碼程序時甚至可以直接用P1A這樣的方法。PC在編譯時就把“A”先轉為41H代碼了。字符代碼0x000x0F為用戶自定義的字符圖形RAM(對于5X8點陣的字符,可以存放8組,5X10點陣的字符,存放4組),就是CGRAM了。后面我會詳細說的。0x200x7F為標準的ASCII碼,0xA00xFF為日文字符和希臘文字符,其余字符碼(0x100x1F及0x800x9F)沒有定義。那么如何對DDRAM的內(nèi)容和地址進行具體操作呢,下面先說說HD44780的指令集及其設置說明,請瀏覽該指令集,并找出對DDRAM的內(nèi)容和地址進行操作的指令。共11條指令:1.清屏指令功能: 清除液晶顯示器,即將DDRAM的內(nèi)容全部填入空白的ASCII碼20H; 光標歸位,即將光標撤回液晶顯示屏的左上方; 將地址計數(shù)器(AC)的值設為0。2.光標歸位指令功能: 把光標撤回到顯示器的左上方; 把地址計數(shù)器(AC)的值設置為0; 保持DDRAM的內(nèi)容不變。3.進入模式設置指令功能:設定每次定入1位數(shù)據(jù)后光標的移位方向,并且設定每次寫入的一個字符是否移動。參數(shù)設定的 情況如下所示: 位名 設置 I/D 0=寫入新數(shù)據(jù)后光標左移 1=寫入新數(shù)據(jù)后光標右移 S 0=寫入新數(shù)據(jù)后顯示屏不移動 1=寫入新數(shù)據(jù)后顯示屏整體右移1個字符4.顯示開關控制指令功能:控制顯示器開/關、光標顯示/關閉以及光標是否閃爍。參數(shù)設定的情況如下: 位名 設置 D 0=顯示功能關 1=顯示功能開 C 0=無光標 1=有光標 B 0=光標閃爍 1=光標不閃爍5.設定顯示屏或光標移動方向指令功能:使光標移位或使整個顯示屏幕移位。參數(shù)設定的情況如下: S/C R/L 設定情況 0 0 光標左移1格,且AC值減1 0 1 光標右移1格,且AC值加1 1 0 顯示器上字符全部左移一格,但光標不動 1 1 顯示器上字符全部右移一格,但光標不動6.功能設定指令功能:設定數(shù)據(jù)總線位數(shù)、顯示的行數(shù)及字型。參數(shù)設定的情況如下: 位名 設置 DL 0=數(shù)據(jù)總線為4位 1=數(shù)據(jù)總線為8位 N 0=顯示1行 1=顯示2行 F 0=57點陣/每字符 1=510點陣/每字符7.設定CGRAM地址指令功能:設定下一個要存入數(shù)據(jù)的CGRAM的地址。8.設定DDRAM地址指令功能:設定下一個要存入數(shù)據(jù)的CGRAM的地址。9.讀取忙信號或AC地址指令功能: 讀取忙碌信號BF的內(nèi)容,BF=1表示液晶顯示器忙,暫時無法接收單片機送來的數(shù)據(jù)或指令; 當BF=0時,液晶顯示器可以接收單片機送來的數(shù)據(jù)或指令; 讀取地址計數(shù)器(AC)的內(nèi)容。10.數(shù)據(jù)寫入DDRAM或CGRAM指令一覽功能: 將字符碼寫入DDRAM,以使液晶顯示屏顯示出相對應的字符; 將使用者自己設計的圖形存入CGRAM。11.從CGRAM或DDRAM讀出數(shù)據(jù)的指令一覽功能:讀取DDRAM或CGRAM中的內(nèi)容?;静僮鲿r序:讀狀態(tài) 輸入:RS=L,RW=H,E=H 輸出:DB0DB7=狀態(tài)字寫指令 輸入:RS=L,RW=L,E=下降沿脈沖,DB0DB7=指令碼 輸出:無讀數(shù)據(jù) 輸入:RS=H,RW=H,E=H 輸出:DB0DB7=數(shù)據(jù)寫數(shù)據(jù) 輸入:RS=H,RW=L,E=下降沿脈沖,DB0DB7=數(shù)據(jù) 輸出:無看了那么多是不是有些暈?我也是啊,不過慢慢理解還是沒問題的。實際上面說了那么多具體怎么操作我還是沒會啊?好!咱就簡單點。舉個實例,就在LCD1602屏幕上第一行第一列顯示個“A”字。1.先初始化。(老大!好像上面沒初始化這條指令?。。?先別拿東西扔我,說明書上是這么說的。也就先寫入些指令。/先定義接口# 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);/寫指令函數(shù)void LCD_write_data(uchar dat);/寫數(shù)據(jù)函數(shù)void LCD_disp_char(uchar x,uchar y,uchar dat);/在某個屏幕位置上顯示一個字符,X(0-16),y(1-2)/void LCD_check_busy(void);/檢查忙函數(shù)。我沒用到此函數(shù),因為通過率極低。void delay_n40us(uint n);/延時函數(shù)/*/*初始化函數(shù)*void LCD_init(void)LCD_write_command(0x38);/設置8位格式,2行,5x7LCD_write_command(0x0c);/整體顯示,關光標,不閃爍LCD_write_command(0x06);/設定輸入方式,增量不移位LCD_write_command(0x01);/清除屏幕顯示delay_n40us(100);/實踐證明,我的LCD1602上,用for循環(huán)200次就能可靠完成清屏指令。/*/*寫指令函數(shù)*void LCD_write_command(uchar dat)LCD_DB=dat;LCD_RS=0;/指令LCD_RW=0;/寫入LCD_E=1;/允許LCD_E=0;delay_n40us(1);/實踐證明,我的LCD1602上,用for循環(huán)1次就能完成普通寫指令。/*/*寫數(shù)據(jù)函數(shù)*void LCD_write_data(uchar dat)LCD_DB=dat;LCD_RS=1;/數(shù)據(jù)LCD_RW=0;/寫入LCD_E=1;/允許LCD_E=0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 統(tǒng)編版五年級語文下冊期末專項復習(積累運用與課文理解)卷(含答案)
- 工業(yè)園區(qū)規(guī)劃與環(huán)保設計
- 工業(yè)機器人市場現(xiàn)狀及未來趨勢
- 工業(yè)安全與設備維護培訓
- 工業(yè)污染源的監(jiān)測與防治技術探索
- 工業(yè)自動化中智能硬件的角色與影響
- 工業(yè)廢熱回收與利用技術
- 工業(yè)自動化中的數(shù)據(jù)安全與隱私保護
- 工業(yè)機器人操作與維護的實踐技巧
- 工業(yè)級智能機房的設計與施工流程
- 行政單位酒店住宿合同
- 手術器械的識別和使用方法
- 醫(yī)共體信息系統(tǒng)(HIS)需求說明
- 辦學許可證續(xù)期申請書
- 道路運輸車輛的安全檢查和隱患排查
- 機械設備安裝程序、安裝分類、固定方式及安裝新技術應用
- 大樓維修改造工程投標方案(完整技術標)
- 取力器的設計畢業(yè)設計
- 二年級下學期語文無紙化測試題例
- 國際貿(mào)易實務案例分析題(附答案)2
- 初二地理會考答題卡模板
評論
0/150
提交評論