新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > TC1602液晶模塊與單片機(jī)接口字符顯示試驗

TC1602液晶模塊與單片機(jī)接口字符顯示試驗

作者: 時間:2013-01-15 來源:網(wǎng)絡(luò) 收藏

  1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表2所示。它的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實現(xiàn)的。(說明:1為高電平、0為低電平)

表2: 1602液晶模塊內(nèi)部的控制器共有11條控制指令

  指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置
  指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H
  指令3:光標(biāo)和顯示模式設(shè)置 I/D:光標(biāo)移動方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效
  指令4:顯示開關(guān)控制。 D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示 C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo) B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍
  指令5:光標(biāo)或顯示移位 S/C:高電平時移動顯示的文字,低電平時移動光標(biāo)
  指令6:功能設(shè)置命令 DL:高電平時為4位總線,低電平時為8位總線 N:低電平時為單行顯示,高電平時雙行顯示 F: 低電平時顯示5x7的點陣字符,高電平時顯示5x10的點陣字符
  指令7:字符發(fā)生器RAM地址設(shè)置
  指令8:DDRAM地址設(shè)置
  指令9:讀忙信號和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。
  指令10:寫數(shù)據(jù)
  指令11:讀數(shù)據(jù)

  下面是液晶模塊的一些主要技術(shù)參數(shù):

  1、邏輯工作電壓(VDD):+4.5 ~ +5.5V
  2、LCD驅(qū)動電壓(VDD - VL):+4.5 ~ +13.0V
  3、工作溫度(Ta): 0 ~ 60°C(常溫)/-20 ~ 75 °C(寬溫)
  4、工作電流: 2.0mA
  5、屏幕視域尺寸: 62.5 × 16.1mm


【EL液晶模塊應(yīng)用編程】

  EL液晶顯示模塊可以和51系列單片機(jī)直接接口,下面就是S51增強(qiáng)型實驗板的液晶接口電路(圖2)。


圖2

  液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,表3是TC1602EL液晶模塊的內(nèi)部顯示地址。


表3:1602液晶內(nèi)部顯示地址


  比如第二行第一個字符的地址是40H,那么是否直接寫入40H就可以將光標(biāo)定位在第二行第一個字符的位置呢?這樣不行,因為寫入顯示地址時要求最高位D7恒定為高電平1所以實際寫入的數(shù)據(jù)應(yīng)該是01000000B(40H)+10000000B(80H)=11000000B(C0H),下面就是在1602液晶模塊第一行第1個字符位置顯示字母“A”程序。
;*******************TC1602液晶模塊試驗**********************************
;******** 在1602液晶模塊第一行第1個字符位置顯示字母“A”程序 ********
    RS   EQU P3.4
    RW   EQU P3.5
    E    EQU P3.6

    ORG   0000H
    AJMP  START

    ORG   0033H
START: MOV   SP,#60H

MAIN:  LCALL  DELAY      ;判斷液晶忙狀態(tài)?
    ACALL  ENABLE
    MOV   P1,#00000001B  ;寫指令01H,清屏
    ACALL  ENABLE
    MOV   P1,#00111000B  ;寫指令38H,設(shè)定LCD為16×2顯示,5×7點陣,8位數(shù)據(jù)接口
    ACALL  ENABLE
    MOV   P1,#00001111B  ;寫指令0FH,顯示ON,光標(biāo)ON,閃爍ON
    ACALL  ENABLE
    MOV   P1,#00000110B  ;寫指令06H,文字不動,光標(biāo)自動右移
    ACALL  ENABLE
    MOV   P1,#80H     ;第一行第1個字符地址
    ACALL  ENABLE
    MOV   P1,#01000001B  ;字母A的代碼(#41H)
    SETB   RS       ;RS=1
    CLR   RW       ;RW=0
    CLR   E        ;E=0
    ACALL  DELAY      ;判斷液晶忙狀態(tài)?
    SETB  E        ;E=1
    AJMP  $
    ;-----------------
ENABLE: CLR   RS       ;寫入控制命令的子程序
    CLR   RW
    CLR   E
    ACALL  DELAY
    SETB  E
    RET
    ;-----------------
DELAY: MOV   P1,#0FFH    ;判斷液晶顯示器是否忙的子程序
    CLR   RS
    SETB   RW
    CLR   E
    NOP
    SETB   E
    JB    P1.7,DELAY   ;如果為高電平表示忙就循環(huán)等待
    RET
    END

  程序在開始時對液晶模塊功能進(jìn)行了初始化設(shè)置,約定了顯示格式。注意顯示字符時光標(biāo)是自動右移的,無需人工干預(yù),每次輸入指令都先調(diào)用判斷液晶模塊是否忙的子程序DELAY,然后輸入顯示位置的地址80H(第一行第1字符),最后輸入要顯示的字符"A"的代碼41H,顯示效果下面如圖3所示。

led顯示器相關(guān)文章:led顯示器原理




關(guān)鍵詞: TC1602 字符顯示 AT89S51

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉