📄 ta9257.asm
字号:
org 0h
jmp start
org 0bh
jmp keyscan
start:
mov sp,#70h
mov p2,#00h
mov a,#00101000b
call writecom
mov a,#00001100b
call writecom
mov a,#06h
call writecom
setb p2.0
call disyline1
call display
mov a,#0d0h
mov 20h,#58h
mov 21h,#0fh
mov 22h,#5ch
call senddata
call fmsenddata
call delay0
mov a,#0d2h
mov 20h,#00h
mov 21h,#00h
mov 22h,#02h
call senddata
call fmsendcom
mov tmod,#01h
mov th0,#0c5h
mov tl0,#68h
mov ie,#82h
mov 54h,#00
mov 5ah,#03
mov 53h,#05
setb tr0
waitt: call waittt
jmp waitt
waittt:
wait:
jb p2.3,keyud
jmp wait2
keyud:
mov ie,#02h
jb p2.4,keydown0
jmp keyup
keydown0:
jmp keydown
keyup:
jb p2.0,fmup000
jmp amup000
fmup000:
jmp fmup00
amup000:
mov a,38h
anl a,#0fh
add a,#09
da a
mov 58h,a
anl a,#0fh
add a,#30h
mov 38h,a
mov a,58h
anl a,#0f0h
cjne a,#00h,amup1
jmp amup0
amup1:
mov a,37h
call chrup
mov a,59h
mov 37h,a
mov a,58h
anl a,#0f0h
cjne a,#00h,amup2
jmp amup0
amup2:
mov a,36h
call chrup
mov a,59h
mov 36h,a
mov a,58h
anl a,#0f0h
cjne a,#00h,amup3
jmp amup0
amup3:
mov 35h,#31h
amup0:
mov a,35h
cjne a,#31h,amupover
mov a,36h
cjne a,#36h,amupover
mov a,37h
cjne a,#31h,amupover
mov a,38h
cjne a,#31h,amupover
mov 35h,#00100000b
mov 36h,#35h
mov 37h,#33h
mov 38h,#31h
call display
mov 20h,#70h
mov 21h,#14h
mov 22h,#43h
mov a,#0d0h
call senddata
call amsenddata
mov 20h,#00h
mov 21h,#80h
mov 22h,#01h
mov a,#0d2h
call senddata
call amsendcom
clr p2.5
jmp wait1
amupover:
call amcfm
call display
mov 20h,23h
mov 21h,24h
mov 22h,25h
mov a,20h
add a,#30h
jb psw.7,amadd
mov 20h,a
jmp amadd1
amadd:
clr psw.7
mov 20h,a
mov a,21h
add a,#01h
mov 21h,a
amadd1:
mov a,#0d0h
call senddata
call delay3
call amsenddata
jnb p2.5,amadd6
mov 20h,#0f1h
mov 21h,#0c1h
mov 22h,#05h
mov r5,#02h
jmp amadd7
amadd6:
mov 20h,#00h
mov 21h,#80h
mov 22h,#01h
mov r5,#01h
amadd7:
mov a,#0d2h
call senddata
call delay4
call amsendcom
djnz r5,amadd7
amadd2:
mov a,#0d1h
call redata
mov a,22h
jb acc.5,amadd2
mov a,21h
cjne a,#07h,amadd3
jmp amadd5
amadd3:
jc amaddover
amadd5:
mov a,20h
cjne a,#07h,amadd4
amadd4: jc amaddover
cjne a,#0eh,amadd40
amadd40: jnc amaddover
mov a,#0d2h
mov 20h,#00h
mov 21h,#80h
mov 22h,#01h
call senddata
call amsendcom
clr p2.5
amaddover:
jmp wait1
fmup00:
mov a,3ah
anl a,#0fh
add a,#05
da a
mov 58h,a
anl a,#0fh
add a,#30h
mov 3ah,a
mov a,58h
anl a,#0f0h
cjne a,#00h,fmup01
jmp fmup0
fmup01:
mov a,39h
call chrup
mov a,59h
mov 39h,a
mov a,58h
anl a,#0f0h
cjne a,#00h,fmup02
jmp fmup0
fmup02:
mov a,37h
call chrup
mov a,59h
mov 37h,a
mov a,58h
anl a,#0f0h
cjne a,#00h,fmup03
jmp fmup0
fmup03:
mov a,36h
call chrup
mov a,59h
mov 36h,a
mov a,58h
anl a,#0f0h
cjne a,#00h,fmup04
jmp fmup0
fmup04:
mov 35h,#31h
fmup0:
mov a,35h
cjne a,#31h,fmupover
mov a,36h
cjne a,#30h,fmupover
mov a,37h
cjne a,#38h,fmupover
mov a,39h
cjne a,#30h,fmupover
mov a,3ah
cjne a,#35h,fmupover
mov 35h,#20h
mov 36h,#38h
mov 37h,#37h
mov 39h,#35h
mov 3ah,#30h
mov 20h,#58h
mov 21h,#0fh
mov 22h,#5ch
call display
mov a,#0d0h
call senddata
call fmsenddata
mov 20h,#00h
mov 21h,#00h
mov 22h,#02h
mov a,#0d2h
call senddata
call fmsendcom
clr p2.5
jmp wait1
fmupover:
call fmcam
call display
mov 20h,29h
mov 21h,2ah
mov 22h,2bh
mov a,20h
add a,#02h
jb psw.7,fmadd
mov 20h,a
jmp fmadd1
fmadd:
clr psw.7
mov 20h,a
mov a,21h
add a,#01h
mov 21h,a
fmadd1:
mov a,#0d0h
call senddata
call delay2
call fmsenddata
call delay0
jnb p2.5,fmadd6
mov 20h,#0f0h
mov 21h,#41h
mov 22h,#06h
jmp fmadd7
fmadd6:
mov 20h,#00h
mov 21h,#00h
mov 22h,#02h
fmadd7:
mov a,#0d2h
call senddata
call delay4
call fmsendcom
call delay1
fmadd2:
mov a,#0d1h
call redata
mov a,22h
jb acc.5,fmadd2
mov a,21h
cjne a,#29h,fmadd3
jmp fmadd5
fmadd3:
jc fmaddover
fmadd5:
mov a,20h
cjne a,#0c9h,fmadd4
fmadd4:
jc fmaddover
mov a,#0d2h
mov 20h,#00h
mov 21h,#00h
mov 22h,#02h
call senddata
call fmsendcom
clr p2.5
fmaddover:
call delay1
jmp wait1
keydown:
jb p2.0,fmdow
jmp fmdo
fmdow:
jmp fmdown
fmdo:
mov a,38h
add a,#01
da a
mov 58h,a
anl a,#0fh
cjne a,#00,amdown1
mov 38h,#30h
jmp amdown0
amdown1:
mov a,58h
anl a,#0fh
add a,#30h
mov 38h,a
mov a,37h
subb a,#01
jb psw.6,amdown2
mov 37h,a
jmp amdown0
amdown2:
clr psw.6
clr c
subb a,#06h
anl a,#0fh
add a,#30h
mov 37h,a
mov a,36h
subb a,#01
jb psw.6,amdown3
mov 36h,a
jmp amdown0
amdown3:
clr psw.6
clr c
subb a,#06h
anl a,#0fh
add a,#30h
mov 36h,a
mov 35h,#20h
amdown0:
mov a,38h
cjne a,#32h,amdownov
mov a,37h
cjne a,#32h,amdownov
mov a,36h
cjne a,#35h,amdownov
mov a,35h
cjne a,#20h,amdownov
mov 35h,#31h
mov 36h,#36h
mov 37h,#30h
mov 38h,#32h
call display
mov 20h,#0c0h
mov 21h,#2ah
mov 22h,#43h
mov a,#0d0h
call senddata
call amsenddata
mov 20h,#00h
mov 20h,#80h
mov 22h,#01h
mov a,#0d2h
call senddata
call amsendcom
clr p2.5
clr p2.3
jmp wait1
amdownov:
call amcfm
call display
mov 20h,23h
mov 21h,24h
mov 22h,25h
mov a,20h
clr c
subb a,#30h
jb psw.7,amsub
mov 20h,a
jmp amsub1
amsub:
clr psw.7
mov 20h,a
mov a,21h
clr c
subb a,#01h
mov 21h,a
amsub1:
mov a,#0d0h
call senddata
call delay3
call amsenddata
jnb p2.5,amsub6
mov 20h,#0f1h
mov 21h,#0c1h
mov 22h,#05h
mov r5,#02h
jmp amsub7
amsub6:
mov 20h,#00h
mov 21h,#80h
mov 22h,#01h
mov r5,#01h
amsub7:
mov a,#0d2h
call senddata
call amsendcom
call delay4
djnz r5,amsub7
amsub2:
mov a,#0d1h
call redata
mov a,22h
jb acc.5,amsub2
mov a,21h
cjne a,#07h,amsub3
jmp amsub5
amsub3:
jc amsubover
amsub5:
mov a,20h
cjne a,#07h,amsub4
amsub4: jc amsubover
cjne a,#0eh,amsub40
amsub40: jnc amsubover
mov a,#0d2h
mov 20h,#00h
mov 21h,#80h
mov 22h,#01h
call senddata
call amsendcom
clr p2.5
amsubover:
jmp wait1
fmdown:
mov a,3ah
clr c
subb a,#05h
jb psw.6,fmdown1
mov 3ah,#30h
jmp fmdown0
fmdown1:
mov 3ah,#35h
mov a,39h
clr c
subb a,#01
jb psw.6,fmdown2
mov 39h,a
jmp fmdown0
fmdown2:
clr psw.6
clr c
subb a,#06
anl a,#0fh
add a,#30h
mov 39h,a
mov a,37h
clr c
subb a,#01
jb psw.6,fmdown3
mov 37h,a
jmp fmdown0
fmdown3:
clr psw.6
clr c
subb a,#06
anl a,#0fh
add a,#30h
mov 37h,a
mov a,36h
clr c
subb a,#01
jb psw.6,fmdown4
mov 36h,a
jmp fmdown0
fmdown4:
clr psw.6
clr c
subb a,#06
anl a,#0fh
add a,#30h
mov 36h,a
mov 35h,#20h
fmdown0:
mov a,3ah
cjne a,#35h,fmdownov
mov a,39h
cjne a,#34h,fmdownov
mov a,37h
cjne a,#37h,fmdownov
mov a,36h
cjne a,#38h,fmdownov
mov a,35h
cjne a,#20h,fmdownov
mov 3ah,#30h
mov 39h,#30h
mov 37h,#38h
mov 36h,#30h
mov 35h,#31h
call display
mov 20h,#8ch
mov 21h,#12h
mov 22h,#5ch
mov a,#0d0h
call senddata
call fmsenddata
mov 20h,#00h
mov 21h,#00h
mov 22h,#02h
mov a,#0d2h
call senddata
call fmsendcom
clr p2.5
jmp wait1
fmdownov:
call fmcam
call display
mov 20h,29h
mov 21h,2ah
mov 22h,2bh
mov a,20h
clr c
subb a,#02h
jb psw.7,fmsub
mov 20h,a
jmp fmsub1
fmsub:
clr psw.7
mov 20h,a
mov a,21h
clr c
subb a,#01h
mov 21h,a
fmsub1:
mov a,#0d0h
call senddata
call delay1
call fmsenddata
jnb p2.5,fmsub6
mov 20h,#0f0h
mov 21h,#41h
mov 22h,#06h
jmp fmsub7
fmsub6:
mov 20h,#00h
mov 21h,#00h
mov 22h,#02h
fmsub7:
mov a,#0d2h
call senddata
call delay2
call fmsendcom
call delay0
fmsub2:
mov a,#0d1h
call redata
mov a,22h
jb acc.5,fmsub2
mov a,21h
cjne a,#29h,fmsub3
jmp fmsub5
fmsub3:
jc fmsubover
fmsub5: mov a,20h
cjne a,#0d3h,fmsub4
fmsub4: jc fmsubover
mov a,#0d2h
mov 20h,#00h
mov 21h,#00h
mov 22h,#02h
call senddata
call fmsendcom
clr p2.5
jmp fmdown
fmsubover:
wait1:
clr p2.3
jnb p2.5,wait3
call delay3
setb p2.3
wait3:
call delay2
mov ie,#82h
wait2:
ret
keyscan:
push acc
push psw
mov ie,#02h
mov th0,#0c5h
mov tl0,#68h
mov p1,#11111110b
mov a,p1
mov 50h,a
mov p1,#11111101b
mov a,p1
mov 51h,a
mov p1,#11111011b
mov a,p1
mov 52h,a
mov p1,#11111111b
call delay1
mov p1,#11111110b
mov a,p1
mov 55h,a
mov p1,#11111101b
mov a,p1
mov 56h,a
mov p1,#11111011b
mov a,p1
mov 57h,a
mov p1,#11111111b
mov a,50h
djnz 53h,next
mov 53h,#05
mov 2fh,#00
next:
cjne a,#11110110b,keyscan2
mov a,55h
cjne a,#11110110b,keyscan2
mov a,54h
cjne a,#11110110b,key1
jmp scanover
key1:
call keypress1
jmp scanover
keyscan2:
mov a,50h
cjne a,#11101110b,keyscan3
mov a,55h
cjne a,#11101110b,keyscan3
mov a,54h
cjne a,#11101110b,key2
jmp scanover
key2:
call keypress2
jmp scanover
keyscan3:
mov a,50h
cjne a,#11011110b,keyscan4
mov a,55h
cjne a,#11011110b,keyscan4
mov a,54h
cjne a,#11011110b,key3
jmp scanover
key3:
call keypress3
jmp scanover
keyscan4:
mov a,51h
cjne a,#11110101b,keyscan5
mov a,56h
cjne a,#11110101b,keyscan5
mov a,54h
cjne a,#11110101b,key4
jmp scanover
key4:
call keypress4
jmp scanover
keyscan5:
mov a,51h
cjne a,#11101101b,keyscan6
mov a,56h
cjne a,#11101101b,keyscan6
mov a,54h
cjne a,#11101101b,key5
jmp scanover
key5:
call keypress5
jmp scanover
keyscan6:
mov a,51h
cjne a,#11011101b,keyscan7
mov a,56h
cjne a,#11011101b,keyscan7
mov a,54h
cjne a,#11011101b,key66
jmp scanover
key66: mov a,2fh
cjne a,#11011101b,key6
jmp scanover
key6:
call keypress6
jmp scanover
keyscan7:
mov a,52h
cjne a,#11110011b,keyscan8
mov a,57h
cjne a,#11110011b,keyscan8
mov a,54h
cjne a,#11110011b,key77
jmp scanover
key77: mov a,2fh
cjne a,#11110011b,key7
jmp scanover
key7:
call keypress7
jmp scanover
keyscan8:
mov a,52h
cjne a,#11101011b,keyscan9
mov a,57h
cjne a,#11101011b,keyscan9
mov a,54h
cjne a,#11101011b,key8
jmp scanover
key8:
call keypress8
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -