基于AT89C52单片机的音乐盒设计毕业设计(4)

2025-10-07

一旦T1进入中断服务就将取反,CPL F0,同时也在每一个音符开始唱时,设置检验F0是否为一。

LCALL DELAY ;每个音符唱多久 JB F0,FOR

;是否暂停

中断延时 歌曲音频1 Y 检查位F0是否为0 N 进入循环 中断延时 歌曲音频2

歌曲播放\\暂停

6.3上一曲程序设计

通过外部中断0,INT0,下降沿触发方式,每次通过下降沿触发一次触发中断,将当前地址压栽,保护现场 PUSH DPH

PUSH DPL

判断是否指向第一曲

MOV A,22H ;曲目数送A

CJNE A,#1,QQ ;是否是第一首

;R7减4

回到上一曲首地址将R7减4 MOV A,R7

SUBB A,#4

通过查表,改变数码管显视相应歌曲的编号 MOV DPTR,#OUT_TAB

MOVC A,@A+DPTR

MOV OUT_NUM,A ;数码管显视相应歌曲的编号

14

OUT_TAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH ;共阳

对即将播放的歌曲的几分拍进行调整,利用已经改变的首地址,调用节拍。最后中断返回

上一曲总程序:

LAST_SONG: PUSH ACC ;上一曲中断程序处理开始,保护现场 PUSH DPH

PUSH DPL

CLR EA ;关中断 MOV A,22H ;曲目数送A

CJNE A,#1,QQ ;是否是第一首

MOV 22H,#N ;是第一首歌曲

MOV B,#4 ;将R7指向最后一首歌曲

MOV A,#N-1 MUL AB MOV R7,A

AJMP BACK2 ;处理结束

QQ: DEC 22H MOV A,R7

SUBB A,#4 MOV R7,A

;R7减4

BACK2: MOV R4,#00H MOV A,22H

MOV DPTR,#OUT_TAB MOVC A,@A+DPTR

MOV OUT_NUM,A ;数码管显视相应歌曲的编号

;********************************************

MOV B,R0;对下首要演唱的歌曲的几分拍进行调整,同时对R0中的内容进行保护 MOV R4,#00H MOV R0,#30H

15

MOV A,R7 ADD A,R0 MOV R0,A MOV DPH,@R0 INC R0 MOV DPL,@R0 INC R0 MOV A,R4 INC R4

MOVC A,@A+DPTR

MOV 26H,A ;结果存入26H单元中 DEC R4 MOV R0,B

;R0中的内容恢复

;******************************************** POP DPL POP DPH POP ACC

SETB EA

RETI ;中断返回

;恢复现场

6.4下一曲程序设计

通过外部中断1,INT1,下降沿触发方式,每次通过下降沿触发一次触发中断,将当前地址压栈。

保护现场 PUSH DPH;

PUSH DPL;

判断是否是最后一曲

CJNE A,#N,Q ;是最后一首吗?

MOV R7,#00H

;是最后一首,则R7指向第一首,演唱第一首

通过查表,改变数码管显视相应歌曲的编号

16

MOV R4,#00H MOV A,22H

;数码管显视相应的歌曲编号

MOV DPTR,#OUT_TAB MOVC A,@A+DPTR MOV OUT_NUM,A

对下首要演唱的歌曲的几分拍进行调整,同时对R0中的内容进行保护 最后中断放回 下一曲总程序: T_SONG: PUSH ACC PUSH DPH

PUSH DPL

;关中断

;下一曲中断程序处理,保护现场

CLR EA

MOV A,22H

CJNE A,#N,Q MOV R7,#00H MOV 22H,#01H AJMP BACK

;不是最后一首,唱下一首,R7内容加4,歌曲数加1

;是最后一首吗?

;是最后一首,则R7指向第一首,演唱第一首

Q: INC 22H MOV A,R7

ADD A,#4 MOV R7,A

BACK: MOV R4,#00H MOV A,22H

;数码管显视相应的歌曲编号

MOV DPTR,#OUT_TAB MOVC A,@A+DPTR MOV OUT_NUM,A

;********************************************

MOV B,R0 ;对下首要演唱的歌曲的几分拍进行调整,同时对R0中的内容进行保护 MOV R4,#00H MOV R0,#30H

17

MOV A,R7 ADD A,R0 MOV R0,A MOV DPH,@R0 INC R0 MOV DPL,@R0 INC R0 MOV A,R4 INC R4

MOVC A,@A+DPTR

MOV 26H,A ;结果存入26H单元中 DEC R4 MOV R0,B

;恢复R0中的内容

;********************************************

POP DPL POP DPH POP ACC SETB EA

;恢复现场

RETI ;中断返回

18


基于AT89C52单片机的音乐盒设计毕业设计(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高三文科数学模拟试题含答案

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219