新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)常用功能模塊的使用 Part7. LCD 1602

單片機(jī)常用功能模塊的使用 Part7. LCD 1602

作者: 時(shí)間:2016-11-17 來(lái)源:網(wǎng)絡(luò) 收藏
1、基本常識(shí):

①、好像也寫(xiě)成 LCM 1602,個(gè)人感覺(jué)和 LCD 1602 是一個(gè)東西,可能叫法不一樣吧。

本文引用地址:http://butianyuan.cn/article/201611/315371.htm

②、LCD 1602,本質(zhì)上是一種“字符型液晶”,用來(lái)顯示字母、數(shù)字、符號(hào),基本不用來(lái)顯示漢字。

③、由若干5x 7或者 5 x 11大小的點(diǎn)陣字符位組成,字符與字符之間有一個(gè)點(diǎn)距的間隔。

④、所謂的 LCD 1602,其實(shí)就是“顯示內(nèi)容為 16 x 2,每行 16 字符,顯示 2 行”。

⑤、目前市面上“字符型液晶”絕大多數(shù)是基于 HD44780 液晶芯片的,控制原理完全相同,因此基于 HD44780 寫(xiě)的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶。

⑥、LCD 1602 樣子如下圖:

2、LCD 1602 引腳定義:

3、LCD 1602 硬件連接:

4、HD44780 的使用:

上面也說(shuō)了,LCD 1602 中使用的是 HD44780 液晶芯片,也就是說(shuō),所謂的對(duì) LCD 1602 編程,其實(shí)是掌握 HD44780 指令集的過(guò)程,這里為了嚴(yán)謹(jǐn),寫(xiě)作 HD44780 液晶芯片的使用。

(1)、DDRAM(顯示數(shù)據(jù)存儲(chǔ) RAM)

DDRAM 用來(lái)寄存要顯示的字符,并在屏幕對(duì)應(yīng)位置上顯示。DDRAM 不是寄存器,是類(lèi)似于內(nèi)存一樣的東西,更具體來(lái)說(shuō)是像緩存一樣的東西,因此,DDRAM 是有一組地址的,其中,每一個(gè)地址對(duì)應(yīng)屏幕上的一個(gè)位置。使用時(shí),向某地址寫(xiě)入數(shù)據(jù),就能在對(duì)應(yīng)的屏幕位置上顯示出來(lái)。其地址與屏幕的對(duì)應(yīng)關(guān)系如下:

每行有 40 個(gè)地址,但是 LCD 1602 每行只有 16 個(gè)字符,因此,只需要使用 1-16 號(hào)地址即可,后邊的可能是用來(lái)擴(kuò)展使用的,比如突然想用 HD44780 來(lái)制作 20 x 2 的 LCD 了等等,大概是為了便于擴(kuò)展吧……

因此,對(duì)于 LCD 1602,使用如下對(duì)應(yīng)關(guān)系:

(2)、CGROM(字符存儲(chǔ) ROM)

自帶 160 個(gè)字符,存在 CGROM 中,字符與代碼的對(duì)應(yīng)如下:

例:在第一行第三個(gè)字符位置,顯示字符 A,第一行第三個(gè)字符位置對(duì)應(yīng)地址為 02H(查上表),字符 A 對(duì)應(yīng)代碼為 41H(查下表),將對(duì)應(yīng)代碼放入對(duì)應(yīng)地址就能在 LCD 上顯示。(具體用法參見(jiàn) 5.(8),有需要注意的地方)

注:上圖 ROM 型號(hào)為 A00,好像還有個(gè) ROM A02,似乎是另一種類(lèi)的 CGROM,存的東西不太一樣:

(3)、CGRAM(自定義字符存儲(chǔ) RAM)

存儲(chǔ)自定義字符,具體沒(méi)用過(guò),等用過(guò)了再更新……

5、HD44780 指令集:

基本操作:


讀狀態(tài)  輸入:RS=0,RW=1,E=1
     輸出:DB0~DB7=狀態(tài)字
寫(xiě)指令  輸入:RS=0,RW=0,E=下降沿脈沖,DB0~DB7=指令碼
     輸出:無(wú)
讀數(shù)據(jù)  輸入:RS=1,RW=1,E=1
     輸出:DB0~DB7=數(shù)據(jù)
寫(xiě)數(shù)據(jù)  輸入:RS=1,RW=0,E=下降沿脈沖,DB0~DB7=數(shù)據(jù)
     輸出:無(wú)

(1)、清屏:

功能:<1> 清除液晶顯示器,將 DDRAM 的內(nèi)容全部填入“空白”的字符碼 20H;
   <2> 光標(biāo)歸位,即將光標(biāo)撤回液晶顯示屏的左上方;
   <3> 將地址計(jì)數(shù)器 (AC) 的值設(shè)為 0。

(2)、光標(biāo)歸位:

功能:<1> 把光標(biāo)撤回到顯示器的左上方;
   <2> 把地址計(jì)數(shù)器 (AC) 的值設(shè)置為 0;
   <3> 保持 DDRAM 的內(nèi)容不變。

(3)、輸入模式設(shè)置指令:

功能:設(shè)定每次寫(xiě)入 1 位數(shù)據(jù)后光標(biāo)的移位方向,并且設(shè)定每次寫(xiě)入的一個(gè)字符是否移動(dòng)。
   I/D0=寫(xiě)入新數(shù)據(jù)后光標(biāo)左移 1=寫(xiě)入新數(shù)據(jù)后光標(biāo)右移
   S0=寫(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)是否閃爍。
   D0=顯示功能關(guān) 1=顯示功能開(kāi)
   C 0=無(wú)光標(biāo)1=有光標(biāo)
   B0=光標(biāo)不閃爍1=光標(biāo)閃爍

(5)、設(shè)定顯示屏或光標(biāo)移動(dòng)方向指令:

功能:使光標(biāo)移位或使整個(gè)顯示屏幕移位。
   S/CR/L
    0 0光標(biāo)左移 1 格,且 AC 值減 1
    01光標(biāo)右移 1 格,且 AC 值加 1
    10顯示器上字符全部左移一格,但光標(biāo)不動(dòng)
    1 1顯示器上字符全部右移一格,但光標(biāo)不動(dòng)

(6)、功能設(shè)定指令:(重要)

功能:設(shè)定數(shù)據(jù)總線位數(shù)、顯示的行數(shù)及字型。
   DL0=數(shù)據(jù)總線為 4 位 1=數(shù)據(jù)總線為 8 位
   N0=顯示 1 行 1=顯示 2 行
   F0=5×7 點(diǎn)陣/每字符1=5×10 點(diǎn)陣/每字符

(7)、設(shè)定 CGRAM 地址指令:

功能:設(shè)定下一個(gè)要存入數(shù)據(jù)的 CGRAM 的地址。

(8)、設(shè)定 DDRAM 地址指令:

功能:設(shè)定下一個(gè)要存入數(shù)據(jù)的 CGRAM 的地址。(注意這里我們送地址的時(shí)候應(yīng)該是 80H + Address,因?yàn)樯厦娴?DB7=1)

(9)、讀取忙信號(hào)或 AC 地址指令:

功能:<1> 讀取忙信號(hào) BF 的內(nèi)容;
     BF=1 液晶顯示器忙,暫時(shí)無(wú)法接收單片機(jī)送來(lái)的數(shù)據(jù)或指令
     BF=0 液晶顯示器可以接收單片機(jī)送來(lái)的數(shù)據(jù)或指令
   <2> 讀取地址計(jì)數(shù)器 (AC) 的內(nèi)容。

(10)、數(shù)據(jù)寫(xiě)入 DDRAM 或 CGRAM 指令:

功能:<1> 將字符碼寫(xiě)入 DDRAM,以使液晶顯示屏顯示出相對(duì)應(yīng)的字符;
   <2> 將用戶自己設(shè)計(jì)的圖形存入 CGRAM。

(11)、從 DDRAM 或 CGRAM 讀取數(shù)據(jù)指令:

功能:讀取 DDRAM 或 CGRAM 中的內(nèi)容。



評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉