不显示删除回复显示所有回复显示星级回复显示得分回复 单片机控制喇叭播放音乐!明天毕业答辩,小女子急死了!

IIQPWW123 2011-06-10 01:01:05
P1.6为喇叭控制口。
程序为: ORG 0000H
LJMP MAIN
ORG 000BH
LJMP TT0 //定时器0

ORG 0400H
MAIN:
;定时器0初始化
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H //定时60ms
MOV IE,#83H;中断开放,外中断0允许,定时中断0允许
MOV TCON,#00H //设置电平触发方式
MOV IP,#01H;外中断0为高优先级,其余为低优先级
MOV SP,#60H
LCALL BELL1
BELL1:
MOV 4FH,#00 ; 取简谱码指针
NEXT1:
MOV A,4FH ; 简谱码指针载入A
MOV DPTR,#TAB1 ; 到TABLE取简谱码
MOVC A,@A+DPTR
MOV R2,A ; 取到的简谱码暂存于R2
JZ END01 ; 是否取到00(结束码)
ANL A,#0FH ; 不是,则取低4位(节拍码)
MOV R5,A ; 将节拍码存入R5
MOV A,R2 ; 将取到的简谱码再载入A
SWAP A ; 高低4位交换
ANL A,#0FH ; 取低4位(音符码)
JNZ SING1 ; 取到的音符码是否为0?
CLR TR0 ; 开始,则不发音
SJMP D11 ; 跳至D11
SING1:
DEC A ; 取到的音符码减1(不含0)
MOV 4EH,A ; 存入(4EH)
RL A ;乘2
MOV DPTR,#TAB ; 到TAB取相对的高位字节计数值
MOVC A,@A+DPTR
MOV TH0,A ; 取到的高位字节存入TH0
MOV 4DH,A ; 取到的高位字节存入(4DH)
MOV A,4EH ; 再载入取到的音符码
RL A ; 乘2
INC A ; 加1
MOVC A,@A+DPTR ; 至TAB取相对的低位字节计数值
MOV TL0,A ; 取到的低位字节存入TL0
MOV 4CH,A ; 取到的低位字节存入(4CH)
SETB TR0 ; 启动定时器0
D11:
LCALL DELAY ; 其本单位时间1/4拍187毫秒
INC 4FH ; 取简谱码指针加1
JMP NEXT1 ; 取下一个简谱码
END01:
CLR TR0 ; 停止TIM0
RET
TT0: PUSH ACC ;定时器中断子程序0
PUSH PSW
MOV TH0,#4DH
MOV TL0,#4CH
CPL P1.6; 将P1.6位反相,控制喇叭发声
POP PSW
POP ACC
RETI

DELAY:
MOV R7,#02 //1/4节拍延时
D2: MOV R4,#187
D3: MOV R3,#248
DJNZ R3,$
DJNZ R4,D3
DJNZ R7,D2
RET
TAB: DW 64580,64684,64777,64820
DW 64898,64968,65030,64260
DW 64400,64524,65058,63835,64021
TAB1: ;《精忠报国》
DB 66H,52H,36H,22H,12H,12H,22H,32H,98H,84H,82H,92H,14H,12H,22H
DB 32H,52H,22H,42H,38H,66H,52H,36H,22H,12H,22H,22H,32H,98H
DB 24H,22H,32H,54H,52H,32H,92H,12H,92H,82H,98H,66H,52H,36H,22H
DB 12H,12H,22H,32H,98H,84H,82H,92H,14H,12H,22H,32H,52H,22H,42H,38H
DB 66H,52H,36H,22H,12H,22H,22H,32H,98H,24H,22H,32H,54H,52H,32H
DB 22H,12H,92H,82H,98H,14H,24H,34H,44H,64H,0B4H,64H,32H,52H
DB 62H,0B2H,62H,52H,38H,24H,22H,32H,54H,52H,62H,52H,32H,32H,22H,38H
DB 64H,0B4H,64H,32H,52H,62H,0B2H,62H,52H,38H,22H,22H,22H,32H,52H,52H
DB 52H,62H,7FH,74H,04H,58H,6FH
DB 00
END
我调试时只有一个声音出来,没有音乐播放出来,求大侠帮忙!急用!!非常感谢!!!!!!!!!

...全文
105 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
MSOKD 2011-06-11
  • 打赏
  • 举报
回复
你真的是女??

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧