📄 cjtemp.asm
字号:
shul8: nop ;--------------------
mov hang,#0 ;hang为常数(总是从第0行开始显示)
mov hangc,#4
ttt: lCALL datawr1
inc hang
inc hang
djnz hangc, ttt;cs1 enable(在左侧第一列显示4个汉字)
ret
;--------右屏纵向显示8个汉字菜单------------------------------
;--------入口参数为lie(1个参数)-----------------------------
shur8: mov hang,#0 ;
mov hangc,#4
uuu: lcall datawr2
inc hang
inc hang
djnz hangc,uuu;cs2 enable
ret
;----------输入的参数为1个:表格地址-------------
;----------在左边显示16个汉字(即左半屏显示)----
;------------------------------------------------
left16: nop
mov hang,#0
mov hangc,#4
mov lie,#0
mov liec,#4
loopl: lCALL datawr1 ;setup page and column!
mov a,lie
add a,#16 ;get next column
mov lie,a
djnz liec, loopl
mov liec,#4
mov lie,#0
inc hang
inc hang ;get next page,one hz need two page!
djnz hangc,loopl
ret
;----输入的参数为1个:表格地址-------------------
;----在右边显示16个汉字(即右半屏显示)----------
;------------------------------------------------
right16:nop
mov hang,#0
mov hangc,#4
mov lie,#0
mov liec,#4
loopr: lCALL datawr2
mov a,lie
add a,#16
mov lie,a
djnz liec, loopr
mov liec,#4
mov lie,#0
inc hang
inc hang
djnz hangc,loopr
ret
;-------在左屏某一个位置显示一个字符-----------------
;-------入口参数是hang和lie,dptr----------------
bloblx: push dpl
push dph
mov counter,#16
;--------------------------------------------
mov a,hang
mov r1,a
mov a,lie
mov r2,a
lcall setpage1
lcall setcolumn1;-----------------设定显示地址
pop dph
pop dpl
mov a,#0
bloopx: push acc
movc A,@A+DPTR
lcall DTWR1
inc DPTR
pop acc
djnz counter,bloopx
push dpl
push dph
;---------------------------------
mov counter,#16
mov a,hang;--------------恢复页码
inc acc ;--------------下一页
mov r1,a
mov a,lie
mov r2,a
lcall setpage1
lcall setcolumn1
pop dph
pop dpl
mov a,#0
bloopy: push acc
MOVC A,@A+DPTR
lcall DTWR1
INC DPTR
pop acc
djnz counter,bloopy
ret
blobrx: push dpl
push dph
mov counter,#16
;--------------------------------------------
mov a,hang
mov r1,a
mov a,lie
mov r2,a
lcall setpage2
lcall setcolumn2;-----------------设定显示地址
pop dph
pop dpl
mov a,#0
blooprx: push acc
movc A,@A+DPTR
lcall DTWR2
inc DPTR
pop acc
djnz counter,blooprx
push dpl
push dph
;---------------------------------
mov counter,#16
mov a,hang;--------------恢复页码
inc acc ;--------------下一页
mov r1,a
mov a,lie
mov r2,a
lcall setpage2
lcall setcolumn2
pop dph
pop dpl
mov a,#0
bloopry: push acc
MOVC A,@A+DPTR
lcall DTWR2
INC DPTR
pop acc
djnz counter,bloopry
ret
;******************************************************************************
DELAY: MOV R5,#0FFH
MOV R4,#01H
DELAY1: MOV R6,#0FFH
DELAY2: DJNZ R6,DELAY2
DJNZ R5,DELAY1
MOV R5,#0FFH
DJNZ R4,DELAY1
RET
;******************************************************************************
PAUSE: lcall DELAY
lcall DELAY
lcall DELAY
lcall DELAY
RET
;******************************************************************************
CKBUSY1: ;Check busy for chip 1
BUSY1:
;---------
clr E
;---------
CLR D/I
SETB R/W
CLR CS1 ;?
SETB E
MOV C,P2.7
NOP
CLR E
SETB CS1
JC BUSY1
RET
;******************************************************************************
CKBUSY2: ;Check busy for chip 2
BUSY2: ;---------
clr E
;---------
CLR D/I
SETB R/W
CLR CS2
SETB E
MOV C,P2.7
NOP
CLR E
SETB CS2
JC BUSY2
RET
;******************************************************************************
DTWR1: ;Data write for chip 1
lcall CKBUSY1 ;Check busy flag
;----
CLR E
;----
;MOV P2,A
SETB D/I
CLR R/W
CLR CS1
SETB E
NOP
MOV P2,A;------
CLR E
SETB CS1
RET
;******************************************************************************
DTWR2: ;Data write for chip 2
lcall CKBUSY2 ;Check busy flag
;MOV P2,A;
SETB D/I
CLR R/W
CLR CS2
SETB E
NOP
MOV P2,A;------
CLR E
SETB CS2
RET
;******************************************************************************
CMDWR1: ;Command write for chip 1
lcall CKBUSY1 ;Check busy flag
;MOV p2,A ;----
CLR D/I
CLR R/W
CLR CS1
SETB E
NOP
MOV p2,A ;----
CLR E
SETB CS1
RET
;******************************************************************************
CMDWR2: ;Command write for chip 2
lcall CKBUSY2 ;Check busy flag
;MOV P2,A;-----
CLR D/I
CLR R/W
CLR CS2
SETB E
NOP
MOV p2,A ;----
CLR E
SETB CS2
RET
;******************************************************************************
SETPAGE1: ;Set page address for chip 1
MOV A,#10111000B
ORL A,R1
lcall CMDWR1
RET
;******************************************************************************
SETPAGE2: ;Set page address for chip 2
MOV A,#10111000B
ORL A,R1
lcall CMDWR2
RET
;******************************************************************************
SETCOLUMN1: ;Set column address for chip 1
MOV A,#01000000B
ORL A,R2
lcall CMDWR1
RET
;******************************************************************************
SETCOLUMN2: ;Set column address for chip 2
MOV A,#01000000B
ORL A,R2
lcall CMDWR2
RET
;-------------------------------------------
;--------入口参数hang,lie和menusel(0,2,4,6)------------------
;--------如果menusel=其他值,该程序就可以显示正常的图形数据
datawr1: mov counter,#0
;-----------
mov a,hang
push acc
mov r1,a
mov a,lie
mov r2,a
lcall setpage1
lcall setcolumn1
pagel: mov A,#00H
MOVC A,@A+DPTR
;---------------------
push acc
mov a,hang ;判断当前选中的菜单是否反色
xrl a,menusel
jz anticolor1
pop acc
ajmp noanti1
anticolor1:pop acc
cpl a
noanti1: nop
;---------------------
lcall DTWR1
INC DPTR
INC counter
mov a,counter
CJNE a,#10H,pagel
;---------------------
mov counter,#0
pop acc
inc acc ;get next page
mov r1,a
mov a,lie
mov r2,a
lcall setpage1
lcall setcolumn1
pagell: mov A,#00H
MOVC A,@A+DPTR
;---------------------
;---------------------
push acc
mov a,hang ;判断当前选中的菜单
xrl a,menusel
jz anticolor2
pop acc
ajmp noanti2
anticolor2:pop acc
cpl a
noanti2: nop
;---------------------
;---------------------
lcall DTWR1
INC DPTR
INC counter
mov a,counter
CJNE a,#10H,pagell
ret
datawr2: ;------------------
mov counter,#0
;-----------
mov a,hang
push acc
mov r1,a
mov a,lie
mov r2,a
lcall setpage2
lcall setcolumn2
pager: mov A,#00H
MOVC A,@A+DPTR
;---------------------
;---------------------
push acc
mov a,hang ;判断当前选中的菜单
xrl a,menusel
jz anticolor3
pop acc
ajmp noanti3
anticolor3:pop acc
cpl a
noanti3: nop
;---------------------
;---------------------
lcall DTWR2
INC DPTR
INC counter
mov a,counter
CJNE a,#10H,pager
;---------------------
mov counter,#0
pop acc
inc acc ;get next page
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -