📄 key.asm
字号:
;**********************************************
;Name :mnkey
;Function:
;Input :
;Output :
;Register Used:
;***********************************************
mnkey:
b0bts1 t20msflag
jmp mnkey90
b0bclr t20msflag
b0bts0 ptan2 ;按键AN2
jmp mnkey10
b0bclr ptan2firsf
b0bts0 keyerrflag1
jmp mnkey19
incms countan1
nop
mov a,countan1
cmprs a,#50
jmp mnkey20
clr countan1
incms countan1add
nop
mov a,countan1add
sub a,#3
b0bts1 fc
jmp mnkey5
b0bset offflag ;大于3秒关机
mnkey5:
mov a,countan1add
sub a,#5
b0bts1 fc
jmp mnkey20
b0bset testmodef ;大于5秒检测
b0bset keyerrflag1
jmp mnkey19
mnkey10:
b0bclr keyerrflag1 ;高电平时设置按键标志
b0bts0 ptan2firsf
jmp mnkey10add
b0bset ptan2firsf
clr t5s
b0bclr t5sflag
mnkey10add:
mov a,countan1add
sub a,#3
b0bts1 fc
jmp mnkey16
b0bset offflag ;关机
jmp mnkey19
mnkey16:
mov a,countan1add
b0bts1 fz
jmp mnkey17
mov a,countan1
sub a,#3
b0bts1 fc
jmp mnkey19
mnkey17: ;切换
b0bset keyflag
mov a,keycode
sub a,#11
b0bts1 fc
jmp mnkey18
clr keycode
notbit hightolflag
mnkey18:
incms keycode
nop
mnkey19:
clr countan1add
clr countan1
mnkey20: ;按键AN1
b0bts0 ptan1
jmp mnkey28
b0bts0 keyerrflag2
jmp mnkey29
incms countan2
nop
mov a,countan2
sub a,#6
b0bts1 fc
jmp mnkey30
b0bset an1flag
b0bset keyerrflag2
jmp mnkey29
mnkey28:
b0bclr keyerrflag2
mov a,countan2
sub a,#4
b0bts1 fc
jmp mnkey29
b0bset an1flag
mnkey29:
clr countan2
mnkey30: ;按键TEST
b0bts0 pttest
jmp mnkey38
b0bts0 keyerrflag3
jmp mnkey39
incms counttest
nop
mov a,counttest
sub a,#8
b0bts1 fc
jmp mnkey40
b0bset testflag
b0bset keyerrflag3
jmp mnkey39
mnkey38:
b0bclr keyerrflag3
b0bclr testflag
mnkey39:
clr counttest
mnkey40: ;按键LIND
b0bts0 ptlind
jmp mnkey46
b0bts0 keyerrflag4
jmp mnkey49
incms countlind
nop
b0bts0 lindfirflag
jmp mnkey40add
mov a,countlind
sub a,#10
b0bts1 fc
jmp mnkey40add
b0bset lindflag
b0bset lindfirflag
mnkey40add:
mov a,countlind
cmprs a,#50
jmp mnkey50
clr countlind
incms countlindadd
nop
mov a,countlindadd
sub a,#120
b0bts1 fc
jmp mnkey50
b0bset lindwarflag
b0bset keyerrflag4
jmp mnkey49
mnkey46:
b0bclr keyerrflag4
b0bclr lindwarflag
b0bclr lindfirflag
; mov a,countlindadd
; b0bts1 fz
; jmp mnkey47
; mov a,countlind
; sub a,#10
; b0bts1 fc
; jmp mnkey49
;mnkey47:
; b0bset lindflag
mnkey49:
clr countlind
clr countlindadd
mnkey50: ;按键TOP
mov a,p2
and a,#00010000b
mov p2buf,a
mov a,#00010000b
mov p2ur,a
b0bclr p2m.4
jmp $+1
jmp $+1
jmp $+1
nop
b0bts1 pttop123
jmp mnkey60
mov a,#0
mov p2ur,a
b0bset p2m.4
; jmp $+1
nop
mov a,p2buf
b0bts1 fz
jmp mnkey53
b0bclr pttop123
jmp mnkey55
mnkey53:
b0bset pttop123
mnkey55:
b0bts0 keyerrflag5
jmp mnkey69
incms counttop
nop
mov a,counttop
sub a,#8
b0bts1 fc
jmp mnkey90
b0bset topflag
b0bset keyerrflag5
jmp mnkey69
mnkey60:
mov a,#0
mov p2ur,a
b0bset p2m.4
; jmp $+1
nop
mov a,p2buf
b0bts1 fz
jmp mnkey63
b0bclr pttop123
jmp mnkey65
mnkey63:
b0bset pttop123
mnkey65:
b0bclr keyerrflag5
b0bclr topflag
mnkey69:
clr counttop
mnkey90:
ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -