📄 driverd1.asm
字号:
;直接驱动子程序由6个子程序组成(适应MGLS12864):
; 占用内部资源:A,COM,DAT1
; 程序输入变量:COM 或 DAT1
; 1. 左区驱动子程序
; 1.1 写指令代码子程序(左)
PR1: PUSH DPL
PUSH DPH
MOV DPTR,#CRADD1 ; 设置读状态字地址
PR11: MOVX A,@DPTR ; 读状态字
JB ACC.7,PR11 ; 判"忙"标志为"0"否, 否再读
MOV DPTR,#CWADD1 ; 设置写指令代码地址
MOV A,COM ; 取指令代码
MOVX @DPTR,A ; 写指令代码
POP DPH
POP DPL
RET
; 1.2 写显示数据子程序(左)
PR2: PUSH DPL
PUSH DPH
MOV DPTR,#CRADD1 ; 设置读状态字地址
PR21: MOVX A,@DPTR ; 读状态字
JB ACC.7,PR21 ; 判"忙"标志为"0"否, 否再读
MOV DPTR,#DWADD1 ; 设置写显示数据地址
MOV A,DAT1 ; 取数据
MOVX @DPTR,A ; 写数据
POP DPH
POP DPL
RET
; 1.3 读显示数据子程序(左)
PR3: PUSH DPL
PUSH DPH
MOV DPTR,#CRADD1 ; 设置读状态字地址
PR31: MOVX A,@DPTR ; 读状态字
JB ACC.7,PR31 ; 判"忙"标志为"0"否, 否再读
MOV DPTR,#DRADD1 ; 设置读显示数据地址
MOVX A,@DPTR ; 读数据
MOV DAT1,A ; 存数据
POP DPH
POP DPL
RET
; 2. 右区驱动子程序
; 2.1 写指令代码子程序(右)
PR4: PUSH DPL
PUSH DPH
MOV DPTR,#CRADD2 ; 设置读状态字地址
PR41: MOVX A,@DPTR ; 读状态字
JB ACC.7,PR41 ; 判"忙"标志为"0"否, 否再读
MOV DPTR,#CWADD2 ; 设置写指令代码地址
MOV A,COM ; 取指令代码
MOVX @DPTR,A ; 写指令代码
POP DPH
POP DPL
RET
; 2.2 写显示数据子程序(右)
PR5: PUSH DPL
PUSH DPH
MOV DPTR,#CRADD2 ; 设置读状态字地址
PR51: MOVX A,@DPTR ; 读状态字
JB ACC.7,PR51 ; 判"忙"标志为"0"否, 否再读
MOV DPTR,#DWADD2 ; 设置写显示数据地址
MOV A,DAT1 ; 取数据
MOVX @DPTR,A ; 写数据
POP DPH
POP DPL
RET
; 2.3 读显示数据子程序(右)
PR6: PUSH DPL
PUSH DPH
MOV DPTR,#CRADD2 ; 设置读状态字地址
PR61: MOVX A,@DPTR ; 读状态字
JB ACC.7,PR61 ; 判"忙"标志为"0"否, 否再读
MOV DPTR,#DRADD2 ; 设置读显示数据地址
MOVX A,@DPTR ; 读数据
MOV DAT1,A ; 存数据
POP DPH
POP DPL
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -