📄 drivert2.asm
字号:
; 间接驱动驱动子程序由9个子程序组成(适应MGLS19264):
; 占用内部资源:COM,DAT1,A
; 占用系统资源:CSA,CSB,RS,R/W,E1,DATBUS
; 程序输入变量:COM 或 DAT1
; 1. 左区驱动子程序
; 1.1 写指令代码子程序(左)
PR1: CLR CSA ; 片选设置为"00"
CLR CSB ;
CLR RS ; RS=0
SETB RW ; R/W=1
PR11: MOV DATBUS,#0FFH ; DATBUS口置"1"
SETB E1 ; E=1
MOV A,DATBUS ; 读状态字
CLR E1 ; E=0
JB ACC.7,PR11 ; 判"忙"标志为"0"否, 否再读
CLR RW ; R/W=0
MOV DATBUS,COM ; 写指令代码
SETB E1 ; E=1
CLR E1 ; E=0
RET
; 1.2 写显示数据子程序(左)
PR2: CLR CSA ; 片选设置为"00"
CLR CSB ;
CLR RS ; RS=0
SETB RW ; R/W=1
PR21: MOV DATBUS,#0FFH ; DATBUS口置"1"
SETB E1 ; E=1
MOV A,DATBUS ; 读状态字
CLR E1 ; E=0
JB ACC.7,PR21 ; 判"忙"标志为"0"否, 否再读
SETB RS ; RS=1
CLR RW ; R/W=0
MOV DATBUS,DAT1 ; 写数据
SETB E1 ; E=1
CLR E1 ; E=0
RET
; 1.3 读显示数据子程序(左)
PR3: CLR CSA ; 片选设置为"00"
CLR CSB ;
CLR RS ; RS=0
SETB RW ; R/W=1
PR31: MOV DATBUS,#0FFH ; DATBUS口置"1"
SETB E1 ; E=1
MOV A,DATBUS ; 读状态字
CLR E1 ; E=0
JB ACC.7,PR31 ; 判"忙"标志为"0"否, 否再读
SETB RS ; RS=1
MOV DATBUS,#0FFH ; DATBUS口置"1"
SETB E1 ; E=1
MOV DAT1,DATBUS ; 读数据
CLR E1 ; E=0
RET
; 2. 中区驱动子程序
; 2.1 写指令代码子程序(中)
PR4: CLR CSA ; 片选设置为"01"
SETB CSB ;
CLR RS ; RS=0
SETB RW ; R/W=1
PR41: MOV DATBUS,#0FFH ; DATBUS口置"1"
SETB E1 ; E=1
MOV A,DATBUS ; 读状态字
CLR E1 ; E=0
JB ACC.7,PR41 ; 判"忙"标志为"0"否, 否再读
CLR RW ; R/W=0
MOV DATBUS,COM ; 写指令代码
SETB E1 ; E=1
CLR E1 ; E=0
RET
; 2.2 写显示数据子程序(中)
PR5: CLR CSA ; 片选设置为"01"
SETB CSB ;
CLR RS ; RS=0
SETB RW ; R/W=1
PR51: MOV DATBUS,#0FFH ; DATBUS口置"1"
SETB E1 ; E=1
MOV A,DATBUS ; 读状态字
CLR E1 ; E=0
JB ACC.7,PR51 ; 判"忙"标志为"0"否, 否再读
SETB RS ; RS=1
CLR RW ; R/W=0
MOV DATBUS,DAT1 ; 写数据
SETB E1 ; E=1
CLR E1 ; E=0
RET
; 2.3 读显示数据子程序(中)
PR6: CLR CSA ; 片选设置为"01"
SETB CSB ;
CLR RS ; RS=0
SETB RW ; R/W=1
PR61: MOV DATBUS,#0FFH ; DATBUS口置"1"
SETB E1 ; E=1
MOV A,DATBUS ; 读状态字
CLR E1 ; E=0
JB ACC.7,PR61 ; 判"忙"标志为"0"否, 否再读
SETB RS ; RS=1
MOV DATBUS,#0FFH ; DATBUS口置"0"
SETB E1 ; E=1
MOV DAT1,DATBUS ; 读数据
CLR E1 ; E=0
RET
; 3. 右区驱动子程序
; 3.1 写指令代码子程序(右)
PR7: SETB CSA ; 片选设置为"10"
CLR CSB ;
CLR RS ; RS=0
SETB RW ; R/W=1
PR71: MOV DATBUS,#0FFH ; DATBUS口置"1"
SETB E1 ; E=1
MOV A,DATBUS ; 读状态字
CLR E1 ; E=0
JB ACC.7,PR71 ; 判"忙"标志为"0"否, 否再读
CLR R/W ; R/W=0
MOV DATBUS,COM ; 写指令代码
SETB E1 ; E=1
CLR E1 ; E=0
RET
; 3.2 写显示数据子程序(右)
PR8: SETB CSA ; 片选设置为"10"
CLR CSB ;
CLR RS ; RS=0
SETB RW ; R/W=1
PR81: MOV DATBUS,#0FFH ; DATBUS口置"1"
SETB E1 ; E=1
MOV A,DATBUS ; 读状态字
CLR E1 ; E=0
JB ACC.7,PR81 ; 判"忙"标志为"0"否, 否再读
SETB RS ; RS=1
CLR RW ; R/W=0
MOV DATBUS,DAT1 ; 写数据
SETB E1 ; E=1
CLR E1 ; E=0
RET
; 3.3 读显示数据子程序(右)
PR9: SETB CSA ; 片选设置为"10"
CLR CSB ;
CLR RS ; RS=0
SETB RW ; R/W=1
PR91: MOV DATBUS,#0FFH ; DATBUS口置"1"
SETB E1 ; E=1
MOV A,DATBUS ; 读状态字
CLR E1 ; E=0
JB ACC.7,PR91 ; 判"忙"标志为"0"否, 否再读
SETB RS ; RS=1
MOV DATBUS,#0FFH ; DATBUS口置"0"
SETB E1 ; E=1
MOV DAT1,DATBUS ; 读数据
CLR E1 ; E=0
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -