?? text4.a
字號:
;A15=E的選通信號,A9=R/W,A8=RS
COM EQU 20H ;指令寄存器
DAT EQU 21H ;數據寄存器
CW_Add EQU 8000H ;指令口寫地址
CR_Add EQU 8200H ;指令口讀地址
DW_Add EQU 8100H ;數據口寫地址
DR_Add EQU 8300H ;數據口讀地址
;初始化演示程序
MAIN: MOV SP,#60H
ANL P3,#0C7H
LCALL INT
LCALL WRIT
;讀BF和AC值
PRO: PUSH DPH
PUSH DPL
PUSH ACC
MOV DPTR,#CR_Add ;設置指令口讀地址
MOVX A,@DPTR ;讀BF和AC值
MOV COM,A ;存入COM單元
POP ACC
POP DPL
POP DPH
RET
;寫指令代碼子程序
PR1: PUSH DPH
PUSH DPL
PUSH ACC
MOV DPTR,#CR_Add ;設置指令口讀地址
PR11: MOVX A,@DPTR
JB ACC.7,PR11 ;判BF=0?是繼續
MOV A,COM
MOV DPTR,#CW_Add ;設置指令口寫地址
MOVX @DPTR,A ;寫指令代碼
POP ACC
POP DPL
POP DPH
RET
;寫顯示數據子程序
PR2: PUSH DPH
PUSH DPL
PUSH ACC
MOV DPTR,#CR_Add ;設置指令口讀地址
PR21: MOVX A,@DPTR
JB ACC.7,PR21 ;判BF=0?是繼續
MOV A,DAT
MOV DPTR,#DW_Add ;設置數據口寫地址
MOVX @DPTR,A ;寫數據
POP ACC
POP DPL
POP DPH
RET
;讀顯示數據子程序
PR3: PUSH DPH
PUSH DPL
PUSH ACC
MOV DPTR,#CR_Add ;設置指令口讀地址
PR31: MOVX A,@DPTR
JB ACC.7,PR31 ;判BF=0?是繼續
MOV DPTR,#DR_Add ;設置數據口讀地址
MOVX A,@DPTR ;讀數據
MOV DAT,A ;存入DAT單元
POP ACC
POP DPL
POP DPH
RET
;直接訪問方式下的初始化子程序
INT: MOV A,#38H ;此循環必要,不可刪除
MOV DPTR,#CW_Add ;指令口地址設置
MOV R2,#03H ;循環量=3
INTU1: MOVX @DPTR,A ;寫指令代碼
LCALL DELAY5MS ;調延時子程序
DJNZ R2,INTU1
MOV COM,#38H ;設置工作方式*
LCALL PR1 ;
MOV COM,#01H ;清屏
LCALL PR1
MOV COM,#06H ;設置輸入方式
LCALL PR1
MOV COM,#0FH ;設置顯示方式
LCALL PR1
RET
;畫面左滾動輸入方式演示程序段
WRIT: MOV COM,#07H ; 輸入方式設置
LCALL PR1
MOV COM,#90H ; 設置DDRAM 地址
LCALL PR1
MOV DPTR,#TABL ; 設置字表首地址
MOV R2,#0BH ; 循環量設置
MOV R3,#00H
L_1: MOV A,R3
MOVC A,@A+DPTR ;取字符代碼
MOV DAT,A
LCALL PR2 ;寫數據
INC R3
LCALL DELAY20MS ;演示用延時
DJNZ R2,L_1
SJMP $
;注:*工作方式參數根據所使用的字符型液晶顯示模塊的特性而定。
DELAY5MS: MOV R6,#04H ;延時子程序
MOV R7,#10H
DELAY1: NOP
DJNZ R7,DELAY1
DJNZ R6,DELAY1
RET
DELAY20MS: MOV R6,#0FFH ;延時子程序
MOV R7,#0FFH
DELAY2: NOP
DJNZ R7,DELAY2
DJNZ R6,DELAY2
RET
TABL: DB 4CH, 65H, 66H, 74H,20H ;Left Scroll
DB 53H, 63H, 72H, 6FH,6CH,6CH
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -