1602字元液晶詳細資料和實例

admin @ 2014-03-25 , reply:0

    1602字元液晶在實際的產品中運用的也比較多了,前幾天留意了一下,發現宿舍門前的自動售水機就是採用的1602液晶進行顯示的。而且對於單片機的學習而言,掌握1602的用法是每一個學習者必然要經歷的過程。在此,我將使用1602過程中遇到的問題以及感受記錄下來,希望能夠給初學者帶來一點指導,少走一點彎路。 
    所謂1602是指顯示的內容為16*2,即可以顯示兩行,每行16個字元。目前市面上字元液晶絕大多數是基於HD44780液晶晶元的,控制原理是完全相同的,因此基於HD44780寫的控制程序可以很方便地應用於市面上大部分的字元型液晶。 
  
1602液晶的正面(綠色背光,黑色字體) 
  
1602液晶背面(綠色背光,黑色字體) 
  
另一種1602液晶模塊,顯示屏是藍色背光白色字體

        字元型LCD1602通常有14條引腳線或16條引腳線的LCD,多出來的2條線是背光電源線VCC(15腳)和地線GND(16腳),其控制原理與14腳的LCD完全一樣,引腳定義如下表所示: 
 
    HD44780內置了DDRAM、CGROM和CGRAM。 
    DDRAM就是顯示數據RAM,用來寄存待顯示的字元代碼。共80個位元組,其地址和屏幕的對應關係如下表: 
  
也就是說想要在LCD1602屏幕的第一行第一列顯示一個"A"字,就要向DDRAM的00H地址寫入“A”字的代碼(指A的字模代碼,0x20~0x7F為標準的ASCII碼,通過這個代碼,在CGROM中查找到相應的字元顯示)就行了。但具體的寫入是要按LCD模塊的指令格式來進行的,後面我會說到的。那麼一行可有40個地址呀?是的,在1602中我們就用前16個就行了。第二行也一樣用前16個地址。對應如下:
 
 DDRAM地址與顯示位置的對應關係  
    (事實上我們往DDRAM里的00H地址處送一個數據,譬如0x31(數字1的代碼,見字模關係對照表)並不能顯示1出來。這是一個令初學者很容易出錯的地方,原因就是如果你要想在DDRAM的00H地址處顯示數據,則必須將00H加上80H,即80H,若要在DDRAM的01H處顯示數據,則必須將01H加上80H即81H。依次類推。大家看一下控制指令的的8條:DDRAM地址的設定,即可以明白是怎麼樣的一回事了),1602液晶模塊內部的字元發生存儲器(CGROM)已經存儲了160個不同的點陣字元圖形(無漢字),如下表所示,這些字元有:阿拉伯數字、英文字母的大小寫、常用的符號、和日文假名等,每一個字元都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點陣字元圖形顯示出來,我們就能看到字母“A” 
 
        上表中的字元代碼與我們PC中的字元代碼是基本一致的。因此我們在向DDRAM寫C51字元代碼程序時甚至可以直接用P1='A'這樣的方法。PC在編譯時就把“A”先轉為41H代碼了。 
        字元代碼0x00~0x0F為用戶自定義的字元圖形RAM(對於5X8點陣的字元,可以存放8組,5X10點陣的字元,存放4組),就是CGRAM了。後面我會詳細說的。 
        0x20~0x7F為標準的ASCII碼,0xA0~0xFF為日文字元和希臘文字元,其餘字元碼(0x10~0x1F及0x80~0x9F)沒有定義。 



[admin via 研發互助社區 ] 1602字元液晶詳細資料和實例已經有3407次圍觀

http://cocdig.com/docs/show-post-42046.html