TC1602液晶模塊與單片機(jī)接口字符顯示試驗
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ù)
下面是TC1602液晶模塊的一些主要技術(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
【TC1602EL液晶模塊應(yīng)用編程】
TC1602EL液晶顯示模塊可以和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顯示器原理
評論