标题:
用单片机实现的音乐播放器原理图和汇编语言程序
[打印本页]
作者:
HANDAN
时间:
2017-6-11 16:38
标题:
用单片机实现的音乐播放器原理图和汇编语言程序
用单片机实现的音乐播放器
原理图:
101208f020igbkkb2g2oe6.png.thumb.jpg
(12.17 KB, 下载次数: 53)
下载附件
2017-6-11 16:38 上传
单片机汇编语言源程序如下:
用单片机实现的音乐播放器
源程序清单
;**************************************;
; MCU音乐播放器 ;
;作者:耶涛 ;
;开发时间:2005年9月20日 ;
;**************************************;
ORG 0000H
AJMP START
ORG 000BH
AJMP TIM0
ORG 001BH
RETI
ORG 0023H
START: MOV R5,#00H ;初始化
MOV TMOD,#00010001B
MOV IE,#10101010B
MOV DPTR,#TAB2 ;装第一首歌
MOV 30H,DPL ;DPTR低8位送30H暂存
MOV 31H,DPH ;DPTR高8位送31H暂存
START1: INC R7 ;产生8位随机数
MOV A,#12H
MOV B,R7
MUL AB
MOV P1,A ;8位随机数由P1口输出
MOV DPL,30H
MOV DPH,31H
MOV A,#00H
MOVC A,@A+DPTR ;查表
MOV R0,A ;音符数据送R0崭存
MOV A,#00H
INC DPTR
MOVC A,@A+DPTR ;查表
MOV R1,A ;节拍数据送R1崭存
INC DPTR
MOV 30H,DPL
MOV 31H,DPH
CJNE A,#01H,ELECT ;一首歌没结束转ELECT
INC R5 ;结束歌曲计数器加1
ELECT: JZ START ;所有歌曲结束转START循环
MOV A,R0
JNZ SING
CLR TR0
SETB P3.7
LOOP1: ACALL DELAY ;调用延时子程序
DJNZ R1,LOOP1
SJMP START1
SING: MOV DPTR,#TAB1 ;音符表首址送DPTR
DEC R0 ;计算音符
MOV A,R0
MOV B,#02H
MUL AB
MOV R0,A
MOVC A,@A+DPTR ;查表
MOV 21H,A
INC DPTR
MOV A,R0
MOVC A,@A+DPTR
MOV 20H,A
MOV TL0,20H
MOV TH0,21H
SETB TR0 ;开T0定时器
LOOP2: ACALL DELAY
DJNZ R1,LOOP2
AJMP START1
TIM0: MOV TL0,20H
MOV TH0,21H
CPL P3.7
RETI ;中断返回
DELAY: MOV R2,#70
DELAY1: MOV R3,#252
DJNZ R3,$
JNB P3.4,FORM ;上一曲开关按下转FORM
JNB P3.5,NEXT ;下一曲开关按下转NEXT
DJNZ R2,DELAY1
RET
FORM: CLR EA ;关中断
JNB P3.4,[ DISCUZ_CODE_1 ]nbsp; ;等待键释放
CJNE R5,#00H,ZERO ;不是第一首歌曲转ZER0
MOV R5,#08H ;是第一首将最后一首歌曲装入歌曲计数器
SJMP KEYWORK
ZERO: DEC R5 ;歌曲向上进一首
SJMP KEYWORK
NEXT: CLR EA
JNB P3.5,$
INC R5 ;歌曲下翻一首
KEYWORK: MOV DPTR,#TAB ;将歌曲排列表装入DPTR
MOV A,R5 ;将R5的内容送A
RL A
SETB EA ;开中断
JMP @A+DPTR ;根据A的内容转向不同歌曲
TAB: AJMP MUSIC2
AJMP MUSIC3
AJMP MUSIC4
AJMP MUSIC5
MUSIC2: MOV DPTR,#TAB2 ;第2首歌曲首址送DPTR
GONG: MOV 30H,DPL
MOV 31H,DPH
AJMP START1
MUSIC3: MOV DPTR,#TAB3
SJMP GONG
MUSIC4: MOV DPTR,#TAB4
SJMP GONG
MUSIC5: MOV DPTR,#TAB5
SJMP GONG
;********************(音符表)**********************;
TAB1: DW 64021,64185,64331,64400,64524,64632,64732,
DW 64777,64860,64934,64968,65030,65085,65134,
DW 65157,65198,65235,65252,65283,65310,65335,
;*********************(兰花草)***********************;
TAB2: DW 0608H,0A08H,0A08H,0A08H,0A18H,0908H,0808H,0908H,
DW 0808H,0708H,0620H,0D08H,0D08H,0D08H,0D08H,0D18H,
DW 0C08H,0A08H,0C08H,0C08H,0B08H,0A20H,0A08H,0D08H,
DW 0D08H,0C08H,0A18H,0908H,0808H,0908H,0808H,0708H,
DW 0610H,0310H,0308H,0808H,0808H,0708H,0618H,0A08H,
DW 0908H,0808H,0708H,0508H,0620H,0908H,0808H,0708H,
DW 0508H,0640H,0001H
;**********************(梁祝)*************************;
TAB3: DW 0A10H,0C08H,0D04H,0F08H,1004H,0D04H,0F04H,0C08H,
DW 1308H,1504H,1404H,1304H,1104H,1304H,1018H,1008H,
DW 1004H,1104H,0E08H,0D04H,0C08H,0D04H,0F08H,1008H,
DW 0A08H,0F08H,0D04H,0C04H,0D04H,0F04H,0C18H,1108H,
DW 1304H,0E08H,1008H,0D04H,0F04H,0C08H,0C10H,0A08H,
DW 0C02H,0A08H,0C08H,0D02H,0E04H,1004H,0D18H,0C04H,
DW 0D04H,0F08H,1004H,1308H,1108H,1008H,1104H,1004H,
DW 0F08H,0D04H,0C04H,0A10H,0F10H,0D08H,0F02H,0D04H,
DW 0C04H,0A04H,0C04H,0D04H,0F04H,0C38H,0001H
;*****************(让我们荡起双桨)*********************;
TAB4: DW 0608H,0808H,0908H,0A18H,0C08H,0A08H,0808H,0910H,
DW 0620H,0008H,0808H,0908H,0A08H,0C18H,0001H,0C08H,
DW 0D10H,0910H,0A30H,0001H,0A08H,0C08H,0D20H,0C18H,
DW 0D08H,0F08H,0E04H,0D04H,0C08H,0D08H,0A10H,0004H,
DW 0808H,0908H,0A18H,0C08H,0810H,0610H,0808H,0908H,
DW 0A08H,0D08H,0C30H,0010H,0A20H,0D18H,0001H,0D08H,
DW 0C08H,0B08H,0A10H,0001H,0920H,0A18H,0C08H,0608H,
DW 0808H,0910H,0010H,0808H,0908H,0A10H,0C0BH,0001H,
DW 0C04H,0D10H,0F10H,0E08H,0D08H,0C08H,0A08H,0D40H,
DW 0001H
;*********************(童年)****************************;
TAB5: DW 0A08H,0C08H,0C10H,0C08H,0A08H,0D08H,0D08H,0E08H,
DW 0D08H,0D08H,0D08H,0D08H,0C08H,0F10H,0F08H,0F08H,
DW 0F08H,0D08H,0F08H,0D08H,0C40H,0A08H,0C08H,0C10H,
DW 0C08H,0A08H,0D08H,0D08H,0E08H,0D08H,0D08H,0D08H,
DW 0D08H,0C08H,0F10H,0F08H,0F08H,0F08H,0D08H,0D08H,
DW 0F08H,1040H,1308H,1308H,1310H,1310H,1108H,1008H,
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
用单片机实现的音乐播放器图和程序070302.rar
(70.73 KB, 下载次数: 57)
2017-6-11 16:37 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
kevine1207
时间:
2017-12-12 10:39
谢谢分享,来搞个手机铃声
作者:
Skyfree369
时间:
2021-3-23 21:53
这个系统有不少bug:
1、比如播放过程中按下“下一首”或者“上一首”的时候会随机的变成“嘟嘟嘟”或者“长鸣”等的噪音;
2、按一首歌还没有播放完的时候,按下“下一首”或者“上一首”歌曲:其实并不是真正的“上一首”或者“下一首”歌曲,也就是说会乱掉
期待楼主改进、分享,谢谢!
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1