📄 mykey.asm
字号:
org 0000h
ajmp main
org 0030h
main:
mov sp,#50h
mov r0,#30h
start:
lcall key
mov @r0,a
inc r0
ljmp start
key:
mov p1,#0f0h
mov r7,#0ffh
key1:
djnz r7,key1
mov a,p1
orl a,#0fh ;
cpl a
jz key ;
lcall delay20ms
skey1:
mov r2,#00h
mov r3,#00h
mov r4,#0feh
skey2:
mov a,r4
mov p1,a
nop
nop
nop
mov a,p1
mov r3,a
orl a,#0fh ;
cpl a
jnz skey3
inc r2
mov a,r4
rl a
mov r4,a
mov a,r2
cjne a,#04h,skey2 ;
ljmp key ;
ekey:
ret
skey3:
mov a,r3
jnb acc.4,skey5
jnb acc.5,skey6
jnb acc.6,skey7
jnb acc.7,skey8
ajmp ekey
skey5:
mov r1,#00h
ajmp dkey
skey6:
mov r1,#01h
ajmp dkey
skey7:
mov r1,#02h
ajmp dkey
skey8:
mov r1,#03h
ajmp dkey
dkey:
acall decode
push acc ;
key2:
mov p1,#0f0h ;
mov r7,#0ffh ;
key3:
djnz r7,key3 ;
key4:
mov a,p1 ;
orl a,#0fh ;
cpl a ;
jnz key4 ;
lcall delay20ms ;
pop acc ;
ajmp ekey
decode:
mov a,r2
mov b,#04h
mul ab
add a,r1
ret
delay20ms:
mov R7,#14H ;
dl:
mov R6,#0FFH ;
dl1:
djnz R6,dl1 ;
djnz R7,dl ;
ret ;
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -