📄 12-28final.asm
字号:
mov disp_x,#0bah
mov disp_y,#40h
mov r4,#40h
lcall cursor
ret
cw12: jnc cw_12
ret
cw_12: cjne r1,#12,cw18 ;compare with 12
inc r2
mov disp_x,#0bah
mov disp_y,#70h
lcall clrcur
mov disp_x,#0bch
mov disp_y,#40h
mov r4,#40h
lcall cursor
ret
cw18: jnc cw_18
ret
cw_18: cjne r1,#18,cw24 ;compare with 18
inc r2
mov disp_x,#0bch
mov disp_y,#70h
lcall clrcur
mov disp_x,#0beh
mov disp_y,#40h
mov r4,#40h
ret
cw24: jnc cw_24
ret
cw_24: cjne r1,#24,clrr1 ;compare with 24
;clr ea ;关中断,只有再次使用换屏键才可以打开键盘中断
mov r1,#0 ;clear r1 and wait for the next key
ret
clrr1: nop ;lcall inpara4
ret
;*********************************************************************************
;**********************清屏***********************
clears: MOV DISP_Z,#0C0H
SETB CS1
CLR CS2
MOV DISP_X,#0B8H
MOV DISP_Y,#40H
MOV LONG,#40H
MOV WIDE,#02H
MOV DPTR,#clear
LCALL para_DISP
MOV DISP_X,#0BAH
MOV DPTR,#clear
LCALL para_DISP
MOV DISP_X,#0BCH
MOV DPTR,#clear
LCALL para_DISP
MOV DISP_X,#0BEH
MOV DPTR,#clear
LCALL para_DISP
CLR CS1
SETB CS2
MOV DISP_X,#0B8H
MOV DISP_Y,#40H
MOV LONG,#40H
MOV WIDE,#02H
MOV DPTR,#clear
LCALL para_DISP
MOV DISP_X,#0BAH
MOV DPTR,#clear
LCALL para_DISP
MOV DISP_X,#0BCH
MOV DPTR,#clear
LCALL para_DISP
MOV DISP_X,#0BEH
MOV DPTR,#clear
LCALL para_DISP
ret
;***********************用户参数值输入************
inpara1: SETB CS2 ;输入参数子程序
clr CS1
MOV DISP_X,#0B8H
MOV DISP_Y,r4
MOV LONG,#08H
MOV WIDE,#02H
lcall ipd1
ret
inpara2: MOV DISP_X,#0BaH
MOV DISP_Y,r4
MOV LONG,#08H
MOV WIDE,#02H
lcall ipd2
ret
inpara3: MOV DISP_X,#0BcH
MOV DISP_Y,r4
MOV LONG,#08H
MOV WIDE,#02H
lcall ipd3
ret
inpara4: MOV DISP_X,#0BeH
MOV DISP_Y,r4
MOV LONG,#08H
MOV WIDE,#02H
lcall ipd4
ret
;********************第一行参数输入显示*********************
ipd1: clr cs1
setb cs2
loopif: mov a,@r0
numif0: cjne a,#10,numif1
mov dptr,#numtab0
lcall para_disp
lcall parazbif
MOV DISP_X,#0B8H ;第一行行坐标
MOV DISP_Y,r4
lcall cursor
ret
numif1: cjne a,#1,numif2
mov dptr,#numtab1
lcall para_disp
lcall parazbif
MOV DISP_X,#0B8H
MOV DISP_Y,r4
lcall cursor
ret
numif2: cjne a,#2,numif3
mov dptr,#numtab2
lcall para_disp
lcall parazbif
MOV DISP_X,#0B8H
MOV DISP_Y,r4
lcall cursor
ret
numif3: cjne a,#3,numif4
mov dptr,#numtab3
lcall para_disp
lcall parazbif
MOV DISP_X,#0B8H
MOV DISP_Y,r4
lcall cursor
ret
numif4: cjne a,#4,numif5
mov dptr,#numtab4
lcall para_disp
lcall parazbif
MOV DISP_X,#0B8H
MOV DISP_Y,r4
lcall cursor
ret
loopif1: ljmp loopif
numif5: cjne a,#5,numif6
mov dptr,#numtab5
lcall para_disp
lcall parazbif
MOV DISP_X,#0B8H
MOV DISP_Y,r4
lcall cursor
ret
loopif2: ljmp loopif
numif6: cjne a,#6,numif7
mov dptr,#numtab6
lcall para_disp
lcall parazbif
MOV DISP_X,#0B8H
MOV DISP_Y,r4
lcall cursor
ret
loopif3: ljmp loopif
numif7: cjne a,#7,numif8
mov dptr,#numtab7
lcall para_disp
lcall parazbif
MOV DISP_X,#0B8H
MOV DISP_Y,r4
lcall cursor
ret
loopif4: ljmp loopif
numif8: cjne a,#8,numif9
mov dptr,#numtab8
lcall para_disp
lcall parazbif
MOV DISP_X,#0B8H
MOV DISP_Y,r4
lcall cursor
ret
loopif5: ljmp loopif
numif9: cjne a,#9,loopif1
mov dptr,#numtab9
lcall para_disp
lcall parazbif
MOV DISP_X,#0B8H
MOV DISP_Y,r4
lcall cursor
ret
loopif6: ljmp loopif
;****************第一行系统参数显示坐标计算***********
parazbif: mov disp_x,#0b8h
push a ;暂存键值
mov a,disp_y
add a,#08h
mov r4,a
pop a
ret
;********************第二行参数输入显示*********************
ipd2: clr cs1
setb cs2
loopis: mov a,@r0
numis0: cjne a,#10,numis1
mov dptr,#numtab0
lcall para_disp
lcall parazbis
MOV DISP_X,#0BaH ;第一行行坐标
MOV DISP_Y,r4
lcall cursor
ret
numis1: cjne a,#1,numis2
mov dptr,#numtab1
lcall para_disp
lcall parazbis
MOV DISP_X,#0BaH
MOV DISP_Y,r4
lcall cursor
ret
numis2: cjne a,#2,numis3
mov dptr,#numtab2
lcall para_disp
lcall parazbis
MOV DISP_X,#0BaH
MOV DISP_Y,r4
lcall cursor
ret
numis3: cjne a,#3,numis4
mov dptr,#numtab3
lcall para_disp
lcall parazbis
MOV DISP_X,#0BaH
MOV DISP_Y,r4
lcall cursor
ret
numis4: cjne a,#4,numis5
mov dptr,#numtab4
lcall para_disp
lcall parazbis
MOV DISP_X,#0BaH
MOV DISP_Y,r4
lcall cursor
ret
loopis1: ljmp loopis
numis5: cjne a,#5,numis6
mov dptr,#numtab5
lcall para_disp
lcall parazbis
MOV DISP_X,#0BaH
MOV DISP_Y,r4
lcall cursor
ret
loopis2: ljmp loopis
numis6: cjne a,#6,numis7
mov dptr,#numtab6
lcall para_disp
lcall parazbis
MOV DISP_X,#0BaH
MOV DISP_Y,r4
lcall cursor
ret
loopis3: ljmp loopis
numis7: cjne a,#7,numis8
mov dptr,#numtab7
lcall para_disp
lcall parazbis
MOV DISP_X,#0BaH
MOV DISP_Y,r4
lcall cursor
ret
loopis4: ljmp loopis
numis8: cjne a,#8,numis9
mov dptr,#numtab8
lcall para_disp
lcall parazbis
MOV DISP_X,#0BaH
MOV DISP_Y,r4
lcall cursor
ret
loopis5: ljmp loopis
numis9: cjne a,#9,loopis1
mov dptr,#numtab9
lcall para_disp
lcall parazbis
MOV DISP_X,#0BaH
MOV DISP_Y,r4
lcall cursor
ret
loopis6: ljmp loopis
;****************第二行系统参数显示坐标计算***********
parazbis: mov disp_x,#0bah
push a ;暂存键值
mov a,disp_y
add a,#08h
mov r4,a
pop a
ret
;********************第三行参数输入显示*********************
ipd3: clr cs1
setb cs2
loopit: mov a,@r0
numit0: cjne a,#10,numit1
mov dptr,#numtab0
lcall para_disp
lcall parazbit
MOV DISP_X,#0BcH ;第一行行坐标
MOV DISP_Y,r4
lcall cursor
ret
numit1: cjne a,#1,numit2
mov dptr,#numtab1
lcall para_disp
lcall parazbit
MOV DISP_X,#0BcH
MOV DISP_Y,r4
lcall cursor
ret
numit2: cjne a,#2,numit3
mov dptr,#numtab2
lcall para_disp
lcall parazbit
MOV DISP_X,#0BcH
MOV DISP_Y,r4
lcall cursor
ret
numit3: cjne a,#3,numit4
mov dptr,#numtab3
lcall para_disp
lcall parazbit
MOV DISP_X,#0BcH
MOV DISP_Y,r4
lcall cursor
ret
numit4: cjne a,#4,numit5
mov dptr,#numtab4
lcall para_disp
lcall parazbit
MOV DISP_X,#0BcH
MOV DISP_Y,r4
lcall cursor
ret
loopit1: ljmp loopit
numit5: cjne a,#5,numit6
mov dptr,#numtab5
lcall para_disp
lcall parazbit
MOV DISP_X,#0BcH
MOV DISP_Y,r4
lcall cursor
ret
loopit2: ljmp loopit
numit6: cjne a,#6,numit7
mov dptr,#numtab6
lcall para_disp
lcall parazbit
MOV DISP_X,#0BcH
MOV DISP_Y,r4
lcall cursor
ret
loopit3: ljmp loopit
numit7: cjne a,#7,numit8
mov dptr,#numtab7
lcall para_disp
lcall parazbit
MOV DISP_X,#0BcH
MOV DISP_Y,r4
lcall cursor
ret
loopit4: ljmp loopit
numit8: cjne a,#8,numit9
mov dptr,#numtab8
lcall para_disp
lcall parazbit
MOV DISP_X,#0BcH
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -