谁有现成的单片机曲谱代码,不是C语言的

来源:百度知道 编辑:UC知道 时间:2024/09/25 04:32:42

;用定时器T1方式1来产生歌谱中各音符对应频率的方波,由P1.0输出驱动喇叭。
;节拍控制可通过调用延时子程序次数来实现。
ORG 0000H

AJMP START

ORG 001BH

AJMP TIME
;
;***************************************************************
; /*主程序*/ *
;***************************************************************
;
ORG 0030H

START: MOV TMOD,#10H ;定时器1方式1
MOV IE,#88H ;允许中断
MOV DPTR,#TAB
LOOP: CLR A
MOVC A,@A+DPTR ;取节拍
MOV R1,A
INC DPTR
CLR A
MOVC A,@A+DPTR
MOV R0,A
ORL A,R1
JZ NEXT0 ;是休止符转停止发音
MOV A,R0
ANL A,R1
CJNE A,#0FFH,NEXT ;没有结束转下一拍
AJMP START

NEXT: MOV TH1,R1
MOV TL1,R0
SETB TR1
SJMP NEXT1
NEXT0: CLR TR1 ;是休止符关闭定时器,停止发音
NEXT1: CLR A
INC DPTR
MOVC A,@A+DPTR ;取延时常数
MOV R