新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機常用功能模塊的使用 Part7. LCD 1602

        單片機常用功能模塊的使用 Part7. LCD 1602

        作者: 時間:2016-11-17 來源:網絡 收藏
        1、基本常識:

        ①、好像也寫成 LCM 1602,個人感覺和 LCD 1602 是一個東西,可能叫法不一樣吧。

        本文引用地址:http://www.104case.com/article/201611/315371.htm

        ②、LCD 1602,本質上是一種“字符型液晶”,用來顯示字母、數字、符號,基本不用來顯示漢字。

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

        ④、所謂的 LCD 1602,其實就是“顯示內容為 16 x 2,每行 16 字符,顯示 2 行”。

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

        ⑥、LCD 1602 樣子如下圖:

        2、LCD 1602 引腳定義:

        3、LCD 1602 硬件連接:

        4、HD44780 的使用:

        上面也說了,LCD 1602 中使用的是 HD44780 液晶芯片,也就是說,所謂的對 LCD 1602 編程,其實是掌握 HD44780 指令集的過程,這里為了嚴謹,寫作 HD44780 液晶芯片的使用。

        (1)、DDRAM(顯示數據存儲 RAM)

        DDRAM 用來寄存要顯示的字符,并在屏幕對應位置上顯示。DDRAM 不是寄存器,是類似于內存一樣的東西,更具體來說是像緩存一樣的東西,因此,DDRAM 是有一組地址的,其中,每一個地址對應屏幕上的一個位置。使用時,向某地址寫入數據,就能在對應的屏幕位置上顯示出來。其地址與屏幕的對應關系如下:

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

        因此,對于 LCD 1602,使用如下對應關系:

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

        自帶 160 個字符,存在 CGROM 中,字符與代碼的對應如下:

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

        注:上圖 ROM 型號為 A00,好像還有個 ROM A02,似乎是另一種類的 CGROM,存的東西不太一樣:

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

        存儲自定義字符,具體沒用過,等用過了再更新……

        5、HD44780 指令集:

        基本操作:


        讀狀態  輸入:RS=0,RW=1,E=1
             輸出:DB0~DB7=狀態字
        寫指令  輸入:RS=0,RW=0,E=下降沿脈沖,DB0~DB7=指令碼
             輸出:無
        讀數據  輸入:RS=1,RW=1,E=1
             輸出:DB0~DB7=數據
        寫數據  輸入:RS=1,RW=0,E=下降沿脈沖,DB0~DB7=數據
             輸出:無

        (1)、清屏:

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

        (2)、光標歸位:

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

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

        功能:設定每次寫入 1 位數據后光標的移位方向,并且設定每次寫入的一個字符是否移動。
           I/D0=寫入新數據后光標左移 1=寫入新數據后光標右移
           S0=寫入新數據后顯示屏不移動 1=寫入新數據后顯示屏整體右移 1 個字

        (4)、顯示開關控制指令:

        功能:控制 顯示器開/關、光標顯示/關閉 以及 光標是否閃爍。
           D0=顯示功能關 1=顯示功能開
           C 0=無光標1=有光標
           B0=光標不閃爍1=光標閃爍

        (5)、設定顯示屏或光標移動方向指令:

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

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

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

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

        功能:設定下一個要存入數據的 CGRAM 的地址。

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

        功能:設定下一個要存入數據的 CGRAM 的地址。(注意這里我們送地址的時候應該是 80H + Address,因為上面的 DB7=1)

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

        功能:<1> 讀取忙信號 BF 的內容;
             BF=1 液晶顯示器忙,暫時無法接收單片機送來的數據或指令
             BF=0 液晶顯示器可以接收單片機送來的數據或指令
           <2> 讀取地址計數器 (AC) 的內容。

        (10)、數據寫入 DDRAM 或 CGRAM 指令:

        功能:<1> 將字符碼寫入 DDRAM,以使液晶顯示屏顯示出相對應的字符;
           <2> 將用戶自己設計的圖形存入 CGRAM。

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

        功能:讀取 DDRAM 或 CGRAM 中的內容。



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 水富县| 静海县| 东乡族自治县| 龙州县| 多伦县| 杭州市| 濮阳县| 淅川县| 呼玛县| 缙云县| 通化市| 福建省| 宁海县| 张家川| 思茅市| 鹤壁市| 靖江市| 囊谦县| 南江县| 金山区| 张家口市| 长武县| 商城县| 营口市| 红河县| 集贤县| 常宁市| 宝应县| 叶城县| 珲春市| 舟曲县| 乌拉特前旗| 三亚市| 焉耆| 闽侯县| 赤壁市| 日照市| 南乐县| 射洪县| 镇安县| 自贡市|