📄 twotarger.asm
字号:
org 0000h
jmp start
org 0bh
jmp tim0
start: mov tmod,#00010001b ;两只老虎
mov ie,#10000010b
setb tr0
start0: mov 30h,#00
next: mov a,30h
mov dptr,#song
movc a,@a+dptr
mov r2,a
jz end0
anl a,#0fh
mov r5,a
mov a,r2
swap a
anl a,#0fh
jnz sing
clr tr0
jmp d1
sing: dec a
mov 22h,a
rl a
mov dptr,#table1
movc a,@a+dptr
mov th0,a
mov 21h,a
mov a,22h
rl a
inc a
movc a,@a+dptr
mov tl0,a
mov 20h,a
setb tr0
d1: acall delay
inc 30h
jmp next
end0: clr tr0
;jmp start1
setb rs0
mov r0,#20h
delay1: CLR TF1
MOV TL1,#00H
MOV TH1,#00H
SETB TR1
JNB TF1,$
djnz r0,delay1
clr rs0
jmp start
delay: mov r7,#02h
d2: mov r4,#125
d3: mov r3,#248
djnz r3,$
djnz r4,d3
djnz r7,d2
djnz r5,delay
ret
table1:
dw 64260,64400,64524,64580
dw 64684,64777,64820,64898
dw 64968,65030,65058,65110
dw 65157,65178,65217
song:
db 44h,54h,64h,44h
db 44h,54h,64h,44h
db 64h,74h,88h
db 64h,74h,88h
db 82h,92h,82h,72h,64h,44h
db 82h,92h,82h,72h,64h,44h
db 44h,84h,48h
db 44h,14h,48h
db 00h
start1: mov tmod,#0000001b ;电子琴
mov ie,#10000010b
setb tr0
l1: acall key
clr ea
jb f0,l1
mov a,22h
rl a
mov dptr,#table
movc a,@a+dptr
mov th0,a
mov 21h,a
mov a,22h
rl a
inc a
movc a,@a+dptr
mov tl0,a
mov 20h,a
l2: acall key
setb ea
jb f0,l1
jmp l2
key: setb f0
mov r3,#0f7h
mov r1,#00h
l3: mov a,r3
mov p1,a
mov a,p1
clr c
cpl c
mov r5,#04h
l4: rlc a
jnc keyin
inc r1
djnz r5,l4
mov a,r3
clr c
cpl c
rrc a
mov r3,a
jc l3
ret
keyin: mov 22h,r1
clr f0
ret
tim0: push acc
push psw
mov tl0,20h
mov th0,21h
cpl p2.7;p3.5
pop psw
pop acc
reti
table:
dw 64021,64103,64260,64400
dw 64524,64580,64684,64777
dw 64820,64898,64968,65030
dw 65058,65110,65157,65178
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -