|
實(shí)驗(yàn)名稱
LCD顯示漢字
實(shí)驗(yàn)?zāi)康?br />
用LCD 和8051顯示任意漢字
實(shí)驗(yàn)原理
LCD顯示漢字
LCD元器件:
引腳說(shuō)明:VCC:電源
CV:液晶顯示器對(duì)比度調(diào)整端
GND:電源接地
E:使能端,下降沿有效,對(duì)RS和DATA進(jìn)行取樣和執(zhí)行操作
RS:數(shù)據(jù)命令選擇端,高電平:數(shù)據(jù);低電平:指令。
RW:讀寫(xiě)。高電平:讀;低電平:寫(xiě)。
D7-D0:輸入數(shù)據(jù)或指令。
由P1口把信號(hào)傳送到D7-D0。
當(dāng)E使能端由高電平跳成低電平時(shí),LCD執(zhí)行命令。
由P3.4、P3.5接LCD的控制引腳RS和RW,輸送指令。
其中01H代表清空顯示;RS高、RW低,代表寫(xiě)入D7-D0的數(shù)據(jù);RS高、RW高,代表讀出D7-D0的數(shù)據(jù);
液晶顯示模塊需要在執(zhí)行每一個(gè)指令之前要確認(rèn)忙標(biāo)志為低電平。否則指令失效。
顯示字符要先輸入地址。
實(shí)驗(yàn)步驟
初始化控制使能信號(hào),使LCD工作。
設(shè)置總線方式,清屏
設(shè)置顯示方式
取一個(gè)數(shù)并顯示
延時(shí)
若沒(méi)有顯示完16個(gè)字符,則繼續(xù)4步,否則結(jié)束程序。
實(shí)驗(yàn)代碼
ORG 0000H ;程序初始地址
RS EQU P3.3 ;賦值操作,初始化控制接口
RW EQU P3.4
E EQU P3.5
COM EQU 20H ;命令字暫存單元
CLR RS ;復(fù)位控制接口
CLR RW
MOV P1,#30H ;向LCD寫(xiě)入3條30H指令,使之復(fù)位
MOV R7,#03H
INT: SETB E
CLR E
ACALL DELAY ;調(diào)用延時(shí)程序
DJNZ R7,INT
MOV P1,#38H ;設(shè)置8位數(shù)據(jù)總線方式
SETB E ;控制使能端,產(chǎn)生下降沿
CLR E
MOV COM,#01H ;清空屏幕指令01H
ACALL PR1 ;調(diào)用寫(xiě)指令程序
MOV COM,#06H ;設(shè)置輸入方式:AC+1計(jì)數(shù),光標(biāo)右移一個(gè)字符
ACALL PR1 ;調(diào)用寫(xiě)指令程序
MOV COM,#0FH ;設(shè)置顯示方式:開(kāi)顯示,光標(biāo)顯示,閃爍
ACALL PR1 ;調(diào)用寫(xiě)指令程序
MOV R6,#16H ;用R6作為字符計(jì)數(shù)器,即滿16個(gè)字符即停止
MOV DPTR,#DATA1 ;調(diào)用DATA表中的字符
MOV R4,#0 ;由R4作為指針
DISPLY:
ACALL DELAY ;調(diào)用判斷忙程序
MOV A,R4 ;將表中要顯示的字符取到A中
MOVC A,@A+DPTR
SETB RS ;RS高,RW低,代表要寫(xiě)入數(shù)據(jù)
CLR RW
MOV P1,A ;將字符輸出到P1口
SETB E ;控制使能端,執(zhí)行指令
CLR E
INC R4 ;指針下移,指向下一個(gè)字符
DJNZ R6,DISPLY ;只有顯示完16個(gè)字符即可退出
SJMP $ ;循環(huán),直至出現(xiàn)中斷
PR1: ;寫(xiě)指令程序
ACALL DELAY ;調(diào)用延時(shí)/判斷忙程序
CLR RW ;設(shè)置讀寫(xiě)接口為低電平,即進(jìn)行寫(xiě)操作
MOV P1,COM ;將命令字暫存的COM值賦給P1接口,實(shí)現(xiàn)輸出
SETB E ;控制使能端,執(zhí)行指令
CLR E
RET
DELAY:MOV R1,#04H ;延時(shí)程序
DLY1:DJNZ R1,DLY1
RET
DATA1: DB 0C6H
DB 0FAH ;要寫(xiě)入的字符
END
|
|