单片机音乐播放器毕业设计资料Word格式.docx
- 文档编号:22027871
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:14
- 大小:129.93KB
单片机音乐播放器毕业设计资料Word格式.docx
《单片机音乐播放器毕业设计资料Word格式.docx》由会员分享,可在线阅读,更多相关《单片机音乐播放器毕业设计资料Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
3.2音符序列进行处理………………………………………………………11
3.3乐曲播放程序设计………………………………………………………12
附录………………………………………………………………………………17
参考文献…………………………………………………………………………18
第1章、音乐播放器的结构
1.1音乐播放器的组成
元件
规格
数量
单片机
AT89C51
1个
单片机插槽
晶振
12MHz
普通陶瓷电容
20pf
2个
电解电容
10uf
电阻
4.7k、10k
各一个
复位按钮
三极管
9013
蜂鸣器
有源
数据线插槽
2*5
USB接口
万用板
一块
导线
若干
表1-1
1.2单片机的引脚图
图1-1
第2章、音乐播放器的工作原理
2.1用定时器发音设计
1.设定TCi定时、模式1
2.单片机晶振频率fosc、机器周期Tcy=12/fosc、待发音符频率fx、半周期Tx=1/(2*fx)
3.TCi计数初值X=2n–N=2n–Tx/Tcy=2n–(1/(2*fx))/(12/fosc)
=2n–fosc/(24*fx)
4.THi=(216–fosc/(24*fx))/256
TLi=(216–fosc/(24*fx))-((216–fosc/(24*fx))/256)*256
2.2硬件原理图
图2-1
2.3单片机发音原理
1.发声电路:
见解例2
2.一段音乐需要的是两个元素:
一个是音符,另一个是节拍
3.发声参数:
以高音Si为例,其频率f=1976Hz,则周期T=506µ
S,半周期T1=253µ
S
4.为使各音调发音比较准确,采用以相对较小的时间单位(8.33µ
S)循环特定次数(发音参数)以产生各音的半周期T1。
用此关系,列出如下3个8度音阶的发音参数表:
3个8度音阶的发音参数表
低音
频率
T1
参数
中音
高音
Do
262
1908
219
523
956
115
1046
478
57
Do#
277
1805
217
554
903
108
1109
451
54
Re
294
1701
204
587
852
102
1175
426
51
Re#
311
1608
193
622
804
97
1245
402
48
Mi
330
1515
182
659
759
91
1318
379
45
Fa
349
1433
172
698
716
86
1397
358
43
Fa#
370
1351
162
740
676
81
1480
338
41
So
392
1276
153
784
638
77
1568
319
38
So#
415
1205
145
831
602
72
1661
301
36
La
440
1136
136
880
568
68
1760
284
34
La#
464
1078
129
932
536
64
1865
268
32
Si
494
1012
121
988
506
61
1976
253
30
注:
例如高音Si的发音参数=253/8.33=30
表2-1
5.节拍产生:
本例以4分音符为1拍,速度每分钟120拍。
最短音符是8分音符(时值250ms),可设定1个延时函数或定时中断控制节拍
第3章、音乐播放器的音乐处理及单片机的程序
3.1乐曲预处理
1.乐曲由音阶和节拍形成
2.软件包括:
1个程序,3个乐曲数据数组(音符名序列、对应时值数、对应发声参数)
3.演奏歌谱:
图3-1
3.2音符序列进行处理
为了便于编程(查表法获取音阶等参数)
1.先列出歌中所出现的音符由低到高序列5612356ì
2.再将其编号0、1、2、3、4、5、6、7
3.对照歌谱,将谱中音符序列用对应的音符编号代替,获得歌曲数据654576564565421543345564325432120(每个用逗号隔开)
4.再产生每个音符对应的时值数(50ms的倍数)15、5、10、10、10、5、5、20、10、5、5、10、10、5、5、5、5、20、15、5、10、5、5、10、10、20、15、5、5、5、5、5、30
5.按首列音符高低序列从音阶表中找出对应发声参数依次列出:
153、136、115、102、91、77、68、57
6.上面后3个数据序列(数组)即是本例播放的歌曲数据
3.3乐曲播放程序设计
1.音阶和节拍可分别用延时函数或定时器中断方法实现
2.本例音阶用延时函数,节拍用T0定时中断
3.程序
;
music.asm
世上只有妈妈好
使用延时函数产生音阶
T0定时控制节拍
因3个数组均在ROM中,只能用查表指令取数,DPTR要分别作
3个数组的基址指针,其中音阶、节拍数组指针是移动的
音调转换数据(延时参数表)基址是固定的
ORG0
BZBITP1.0
AJMPMAIN
ORG000BH
AJMPSVT0
ORG0030H
MAIN:
MOVSP,#60H
SJMPMAMA
小提琴定音
RING:
MOVR2,#10
G:
MOVR5,#0
G1:
MOVR6,#255
G0:
MOVR7,#2
DJNZR7,$
DJNZR6,G0
CPLBZ
DJNZR5,G1
DJNZR2,G
MOVR2,#15
D:
D1:
MOVR6,#170
D0:
DJNZR7,$
DJNZR6,D0
DJNZR5,D1
DJNZR2,D
MOVR2,#22
AA:
A1:
MOVR6,#114
A0:
DJNZR6,A0
DJNZR5,A1
DJNZR2,AA
MOVR2,#33
E:
E1:
MOVR6,#76
E0:
DJNZR6,E0
DJNZR5,E1
DJNZR2,E
SJMPRING
ORG000BH
ORG0030H
MOVSP,#60H
MOVDPTR,#BEATD;
ROM数据区首址
MOVR6,#33;
33音符数据
PLAY:
MOVTMOD,#01H;
T0定时50ms
MOVTH0,#15536/256
MOVTL0,#15536-(15536/256)*256
MOVIE,#82H;
允许T0中断
PUSHDPH;
保存当前音符节拍基址
PUSHDPL
MOVA,#0;
发1个音,取音符节拍时值
MOVCA,@A+DPTR
MOVB,#5;
250ms=50msx5
MULAB
MOVR5,A;
节拍控制时值
MOVA,DPL;
计算音阶数据表基址
ADDA,#33
MOVDPL,A
JNC$+4
INCDPH
取音阶参数
MOVDPTR,#TONED;
设置音调转换数据基址
MOVCA,@A+DPTR
SETBTR0;
节拍控制开始(T0中断)
PLAY0:
ACALLSONG;
发声
CJNER5,#0,PLAY0;
节拍时值控制
CLRTR0;
时值到,关T0
POPDPL;
恢复上一音符基址
POPDPH
INCDPTR;
指向下一音符
DJNZR6,PLAY;
控制全曲
AJMPMAIN;
重复
SVT0:
MOVTH0,#15536/256
DECR5
RETI
SONG:
MOVR3,A;
R3放延时参数
SONG1:
MOVR2,#4
DJNZR2,$;
8uS
DJNZR3,SONG1
CPLP1.0
RET
BEATD:
DB3,1,2,2,2,1,1,4;
节拍控制nx250ms
DB2,1,1,2,2,1,1,1,1,4
DB3,1,2,1,1,2,2,4
DB3,1,1,1,1,1,6
SONGD:
DB6,5,4,5,7,6,5,6;
音符数据
DB4,5,6,5,4,2,1,5,4,3
DB3,4,5,5,6,4,3,2
DB5,4,3,2,1,2,0
TONED:
DB153,136,115,102,91,77,68,57;
延时参数表
END
附录
以单片机控制的音乐播放器在设计时常用的网站
XX
单片机爱好者
单片机学习网
全国大学生电子设计竞赛网
参考文献
[1]董少明,单片机原理与应用,中国铁道出版社,2007年
[2]付晓光,单片机原理与应用技术,清华大学出版社,2004年
[3]徐仁贵,微型计算机接口技术及应用,机械工业出版社,1997年
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 音乐 播放 毕业设计 资料