初始化程序如下:
; 直接访问方式地址定义,根据用户平台接口修改
CWADD1 EQU 0DFFFH ; 写指令代码地址
DWADD1 EQU 0CFFFH ; 写参数及显示数据地址
DRADD1 EQU 0DFFFH ; 读参数及显示数据地址
CRADD1 EQU 0CFFFH ; 读忙状态地址
COM EQU 30H ; 指令寄存器
DAT1 EQU 31H ; 参数及显示数据寄存器
COUNT1 EQU 32H ; 计数器1
COUNT2 EQU 33H ; 计数器2
;-------------- SYSTEM SET 参数 --------------
SYSTAB: DB 30H,87H,07H,27H,42H,0F0H,30H,00H ; P1-P8参数
SCRTAB: DB 00H,00H,0F0H,00H,40H,0F0H,00H,80H,00H,00H ; P1-P10参数
; 初始化子程序INT
; 内部调用子程序:PR1,PR2
; 程序调用入口:INT
; 程序参数库:SYSTAB,SCRTAB
; 程序调用变量:无
INT: MOV COM,#40H ; SYSTEM SET 代码
LCALL PR1 ; 写入指令代码
MOV COUNT1,#00H ; 设置计数器COUNT=0
INT1: MOV DPTR,#SYSTAB ; 设置指令参数表地址
MOV A,COUNT1 ; 取参数
MOVC A,@A+DPTR
MOV DAT1,A
LCALL PR2 ; 写入参数
INC COUNT1 ; 计数器加一
MOV A,COUNT1
CJNE A,#08H,INT1 ; 循环
MOV COM,#44H ; SCROLL 代码
LCALL PR1 ; 写入指令代码
MOV COUNT1,#00H ; 设置计数器COUNT=0
INT2: MOV DPTR,#SCRTAB ; 设置指令参数表地址
MOV A,COUNT1 ; 取参数
MOVC A,@A+DPTR
MOV DAT1,A
LCALL PR2 ; 写入参数
INC COUNT1
MOV A,COUNT1 ; 计数器加一
CJNE A,#0AH,INT2 ; 循环
MOV COM,#5AH ; HDOT SCR 代码
LCALL PR1 ; 写入指令代码
MOV DAT1,#00H ; 设置参数P1
LCALL PR2 ; 写入参数
MOV COM,#5BH ; OVLAY 代码
LCALL PR1 ; 写入指令代码
MOV DAT1,#00H ; 设置参数:显示一,三区为文本属性
LCALL PR2 ; 二重"或"合成
MOV COM,#59H ; DISP ON/OFF 代码
LCALL PR1 ; 写入指令代码
MOV DAT1,#54H ; 设置参数:显示一~四区开显示
LCALL PR2 ; 光标关显示
RET
;---------------------------
; 写指令代码子程序
PR1: PUSH DPL
PUSH DPH
MOV DPTR,#CWADD1
MOV A,COM
MOVX @DPTR,A
POP DPH
POP DPL
RET
;---------------------------
; 写参数及显示数据子程序
PR2: PUSH DPL
PUSH DPH
MOV DPTR,#DWADD1
MOV A,DAT1
MOVX @DPTR,A
POP DPH
POP DPL
RET