📄 ta9257.asm
字号:
jmp scanover
keyscan9:
mov a,52h
cjne a,#11011011b,scanover0
mov a,57h
cjne a,#11011011b,scanover0
mov a,54h
cjne a,#11011011b,key9
jmp scanover
key9:
call keypress9
jmp scanover
scanover0:
mov 54h,#00h
jb p2.0,scanover1
mov 5ah,#02h
jmp scanover2
scanover1:
mov 5ah,#03
scanover2:
jnb tf1,scanover
clr tf1
scanover:
mov ie,#82h
setb tr0
pop psw
pop acc
reti
chrup:
anl a,#0fh
inc a
da a
mov 58h,a
anl a,#0fh
add a,#30h
mov 59h,a
ret
display:
mov r2,#0fh
mov a,#01h
call writecom
mov a,#80h
call writecom
mov r0,#30h
display1:
mov a,@r0
call writedata
inc r0
djnz r2,display1
ret
writecom:
call delay0
clr p3.5
setb p3.4
mov p0,a
clr p3.4
swap a
setb p3.4
mov p0,a
clr p3.4
setb p3.5
ret
writedata:
call delay0
setb p3.5
setb p3.4
mov p0,a
clr p3.4
swap a
setb p3.4
mov p0,a
clr p3.4
clr p3.5
ret
delay0:
mov r6,#1
loop1: mov r7,#60h
loop2:
djnz r7,loop2
djnz r6,loop1
ret
delay1:
mov r6,#20h
loop4: mov r7,#64h
loop3:
djnz r7,loop3
djnz r6,loop4
ret
delay2:
mov r6,#20h
loop5:
mov r7,#0feh
loop6:
djnz r7,loop6
djnz r6,loop5
ret
delay3:
mov r6,#10h
loop10: mov r7,#64h
loop20: djnz r7,loop20
djnz r6,loop10
ret
delay4:
mov r6,#10h
loop50: mov r7,#0feh
loop60: djnz r7,loop60
djnz r6,loop50
ret
keypress1:
mov 54h,#11110110b
jnb p2.5,key1run
clr p2.5
jmp keyover1
key1run:
jb p2.0,key1fm
mov 31h,#01000001b
mov 35h,#00100000b
mov 36h,#00110101b
mov 37h,#00110011b
mov 38h,#00110001b
mov 39h,#00100000b
mov 3ah,#00100000b
mov 3ch,#01001011b
call amcfm
mov a,#0d0h
mov 20h,#70h
mov 21h,#14h
mov 22h,#43h
call senddata
call amsenddata
call delay0
mov a,#0d2h
mov 20h,#00h
mov 21h,#80h
mov 22h,#01h
call senddata
call amsendcom
jmp keyover1
key1fm:
mov 31h,#01000110b
mov 35h,#00100000b
mov 36h,#00111000b
mov 37h,#00110111b
mov 38h,#00101110b
mov 39h,#00110101b
mov 3ah,#00110000b
mov 3ch,#01001101b
call fmcam
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
keyover1:
call display
ret
keypress2:
mov 54h,#11101110b
jnb p2.5,key2run
clr p2.5
jmp keyover2
key2run:
jb p2.0,key2fm
mov 31h,#01000001b
mov 35h,#00100000b
mov 36h,#00110110b
mov 37h,#00110000b
mov 38h,#00110011b
mov 39h,#00100000b
mov 3ah,#00100000b
mov 3ch,#01001011b
call amcfm
mov a,#0d0h
mov 20h,#0f0h
mov 21h,#15h
mov 22h,#43h
call senddata
call amsenddata
call delay0
mov a,#0d2h
mov 20h,#00h
mov 21h,#80h
mov 22h,#01h
call senddata
call amsendcom
jmp keyover2
key2fm:
mov 31h,#01000110b
mov 35h,#00100000b
mov 36h,#00111001b
mov 37h,#00110000b
mov 38h,#00101110b
mov 39h,#00110000b
mov 3ah,#00110000b
mov 3ch,#01001101b
call fmcam
mov a,#0d0h
mov 20h,#0bch
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
keyover2:
call display
ret
keypress3:
mov 54h,#11011110b
jnb p2.5,key3run
clr p2.5
jmp keyover3
key3run:
jb p2.0,key3fm
mov 31h,#01000001b
mov 35h,#00100000b
mov 36h,#00111001b
mov 37h,#00111001b
mov 38h,#00111001b
mov 39h,#00100000b
mov 3ah,#00100000b
mov 3ch,#01001011b
call amcfm
mov a,#0d0h
mov 20h,#30h
mov 21h,#1eh
mov 22h,#43h
call senddata
call amsenddata
call delay0
mov a,#0d2h
mov 20h,#00h
mov 21h,#80h
mov 22h,#01h
call senddata
call amsendcom
jmp keyover3
key3fm:
mov 31h,#01000110b
mov 35h,#00100000b
mov 36h,#00111001b
mov 37h,#00111000b
mov 38h,#00101110b
mov 39h,#00110000b
mov 3ah,#00110000b
mov 3ch,#01001101b
call fmcam
mov a,#0d0h
mov 20h,#0fch
mov 21h,#10h
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
keyover3:
call display
ret
keypress4:
mov 54h,#11110101b
jnb p2.5,key4run
clr p2.5
jmp keyover4
key4run:
jb p2.0,key4fm
mov 31h,#01000001b
mov 35h,#00110001b
mov 36h,#00110100b
mov 37h,#00110000b
mov 38h,#00110100b
mov 39h,#00100000b
mov 3ah,#00100000b
mov 3ch,#01001011b
call amcfm
mov a,#0d0h
mov 20h,#0a0h
mov 21h,#26h
mov 22h,#43h
call senddata
call amsenddata
call delay0
mov a,#0d2h
mov 20h,#00h
mov 21h,#80h
mov 22h,#01h
call senddata
call amsendcom
jmp keyover4
key4fm:
mov 31h,#01000110b
mov 35h,#00110001b
mov 36h,#00110000b
mov 37h,#00110110b
mov 38h,#00101110b
mov 39h,#00110000b
mov 3ah,#00110000b
mov 3ch,#01001101b
call fmcam
mov a,#0d0h
mov 20h,#3ch
mov 21h,#12h
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
keyover4:
call display
ret
keypress5:
mov 54h,#11101101b
jnb p2.5,key5run
clr p2.5
jmp keyover5
key5run:
jnb p2.0,keyover5
jb p2.7,key5run0
setb p2.7
mov 20h,#00h
mov 21h,#00h
mov 22h,#03h
mov a,#0d2h
call senddata
jmp keyover5
key5run0:
clr p2.7
mov 20h,#00h
mov 21h,#00h
mov 22h,#02h
mov a,#0d2h
call senddata
keyover5:
ret
keypress6:
mov 2fh,#11011101b
jb p2.5,key64
setb p2.3
clr p2.4
jb tr1,key61
mov tmod,#11h
mov th1,#0c5h
mov tl1,#68h
setb tr1
key61:
jnb tf1,key60
djnz 5ah,key60
clr tf1
setb p2.3
setb p2.5
mov 54h,#11011101b
mov tmod,#01h
jmp key60
key64: clr p2.3
clr p2.5
key60:
ret
keypress7:
mov 2fh,#11110011b
jb p2.5,key73
setb p2.3
setb p2.4
jb tr1,key71
mov tmod,#11h
mov th1,#0c5h
mov tl1,#68h
setb tr1
key71:
jnb tf1,key70
djnz 5ah,key70
clr tf1
setb p2.3
setb p2.5
mov 54h,#11110011b
mov tmod,#01h
jmp key70
key73: clr p2.5
clr p2.3
key70:
ret
keypress8:
mov 54h,#11101011b
jnb p2.5,key8run
clr p2.5
jmp over8
key8run:
mov r2,#0fh
jb p2.0,ampress
setb p2.0
jb p2.1,fmpress
call disyline1
mov 20h,#58h
mov 21h,#0fh
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
jmp over8
fmpress:
setb p2.1
mov r0,#30h
mov r1,#60h
fmpress1:
mov a,@r1
mov @r0,a
inc r0
inc r1
djnz r2,fmpress1
mov 20h,29h
mov 21h,2ah
mov 22h,2bh
mov a,#0d0h
call senddata
mov 20h,2ch
mov 21h,2dh
mov 22h,2eh
mov a,#0d2h
call senddata
jmp over8
ampress:
clr p2.0
jb p2.2,ampress1
mov 31h,#01000001b
mov 35h,#00100000b
mov 36h,#00110101b
mov 37h,#00110011b
mov 38h,#00110001b
mov 39h,#00100000b
mov 3ah,#00100000b
mov 3ch,#01001011b
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
jmp over8
ampress1:
setb p2.2
mov r0,#30h
mov r1,#40h
ampress2:
mov a,@r1
mov @r0,a
inc r0
inc r1
djnz r2,ampress2
mov 20h,23h
mov 21h,24h
mov 22h,25h
mov a,#0d0h
call senddata
mov 20h,26h
mov 21h,27h
mov 22h,28h
mov a,#0d2h
call senddata
jmp over8
over8:
call display
ret
fmcam:
setb p2.1
mov r2,#0fh
mov r0,#30h
mov r1,#60h
fmcam1:
mov a,@r0
mov @r1,a
inc r0
inc r1
djnz r2,fmcam1
ret
amcfm:
mov r2,#0fh
setb p2.2
mov r0,#30h
mov r1,#40h
amcfm1:
mov a,@r0
mov @r1,a
inc r0
inc r1
djnz r2,amcfm1
ret
amccfm:
mov r2,#0fh
mov r0,#30h
mov r1,#40h
amccfm1:
mov a,@r1
mov @r0,a
inc r0
inc r1
djnz r2,amccfm1
ret
fmccam:
mov r2,#0fh
mov r0,#30h
mov r1,#60h
fmccam1:
mov a,@r1
mov @r0,a
inc r0
inc r1
djnz r2,amccfm1
ret
keypress9:
mov 54h,#11011011b
jb p2.0,key9fm
jnb p2.6,key9ammute
clr p2.6
mov a,#0d2h
mov 20h,#00h
mov 21h,#80h
mov 22h,#01h
call senddata
jmp keyover9
key9ammute:
setb p2.6
mov a,#0d2h
mov 20h,#00h
mov 21h,#00h
mov 22h,#05h
call senddata
jmp keyover9
key9fm:
jnb p2.6,key9fmmute
clr p2.6
mov a,#0d2h
mov 20h,#00h
mov 21h,#00h
mov 22h,#02h
call senddata
jmp keyover9
key9fmmute:
setb p2.6
mov a,#0d2h
mov 20h,#00h
mov 21h,#00h
mov 22h,#06h
call senddata
keyover9:
call display
ret
disyline1:
mov 30h,#00100000b
mov 31h,#01000110b
mov 32h,#01001101b
mov 33h,#00100000b
mov 34h,#00100000b
mov 35h,#00100000b
mov 36h,#00111000b
mov 37h,#00110111b
mov 38h,#00101110b
mov 39h,#00110101b
mov 3ah,#00110000b
mov 3bh,#00100000b
mov 3ch,#01001101b
mov 3dh,#01001000b
mov 3eh,#01111010b
mov 3fh,#00100000b
ret
senddata:
mov p3,#0ffh
mov scon,#00h
clr p3.7
nop
mov sbuf,a
senwait:jbc scon.1,second
jmp senwait
second:
setb p3.7
nop
mov r0,#20h
mov r2,#03h
rewrite:
mov a,@r0
mov sbuf,a
senwait1:
jnb scon.1,senwait1
clr scon.1
inc r0
djnz r2,rewrite
mov scon,#00h
clr p3.7
nop
nop
setb p3.7
clr a
ret
redata:
mov scon,#00h
clr p3.7
nop
mov sbuf,a
redata1:
jbc scon.1,redata2
jmp redata1
redata2:
setb p3.7
mov r0,#20h
mov r3,#03h
mov scon,#10h
redata3:
clr scon.0
redata4:
jnb scon.0,redata4
mov a,sbuf
mov @r0,a
inc r0
djnz r3,redata3
clr scon.0
mov scon,#00h
nop
clr p3.7
nop
nop
setb p3.7
ret
amsenddata:
mov r0,#20h
mov r1,#23h
mov r2,#03h
amsenddata1:
mov a,@r0
mov @r1,a
inc r0
inc r1
djnz r2,amsenddata1
ret
amsendcom:
mov r0,#20h
mov r1,#26h
mov r2,#03h
amsendcom1:
mov a,@r0
mov @r1,a
inc r0
inc r1
djnz r2,amsendcom1
ret
fmsenddata:
mov r0,#20h
mov r1,#29h
mov r2,#03h
fmsenddata1:
mov a,@r0
mov @r1,a
inc r0
inc r1
djnz r2,fmsenddata1
ret
fmsendcom:
mov r0,#20h
mov r1,#2ch
mov r2,#03h
fmsendcom1:
mov a,@r0
mov @r1,a
inc r0
inc r1
djnz r2,fmsendcom1
ret
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -