单片机课程设计音乐播放器报告.docx
- 文档编号:28916882
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:22
- 大小:1,009.75KB
单片机课程设计音乐播放器报告.docx
《单片机课程设计音乐播放器报告.docx》由会员分享,可在线阅读,更多相关《单片机课程设计音乐播放器报告.docx(22页珍藏版)》请在冰豆网上搜索。
单片机课程设计音乐播放器报告
中州大学
《单片机》
课程设计报告
报告题目:
音乐播放器
作者所在系部:
工程技术学院
作者所在专业:
电气自动化
作者所在班级:
B10204
作者姓名:
张强
作者学号:
20104020416
指导教师姓名:
雷刚
完成时间:
2014年10月12日
课程设计任务书
课题名称
音乐播放器的设计
完成时间
6.12
指导教师
王晓
职称
副教授
学生姓名
张婷
班级
B10204
总体设计要求和技术要点
利用单片机设计一个音乐播放器,并能够播放三种音乐,音乐自行设计。
一、设计目的
1.掌握单片机定时器的使用方法
2.掌握单片机扩展显示器、键盘的方法
二、技术指标
1.键盘设置3种音乐的播放切换;
2.LED显示3种音乐的提示符;
3.流水灯闪烁
工作内容及时间进度安排
第14周:
周1到周2查阅资料,确定设计方案
周3到周4编写程序并进行proteus仿真
周5焊接调试
第17周:
周1撰写实验报告
周2验收
课程设计成果
1.与设计内容对应的软件程序与焊接实物
2.课程设计报告书
内容摘要
本文的主要内容是用AT89C52单片机为核心控制元件,设计一个音乐播放器,以单片机作为主控核心、蜂鸣器等模块组成。
利用单片机产生不同频率来获得要求的音阶,最终可随意编写需要的程序,播放出音乐。
在此设计中我采用12MHz的晶振,产生的频率信号即音乐信号由P3.7口输出,信号经过放大后由喇叭发出声音。
设有四个按键,其中两个能实现多首音乐的选择,另一个能实现开始功能和单曲重播的功能,最后一个能实现复位和关闭歌曲的功能。
设有一位数码管,每选择一首曲子能在数码管上显示当前的曲目(只是数字)。
设十六个发光二极管,能随歌曲频率闪烁。
关键字:
单片机音乐不同频率按键
一、概述………………………………………………………………1
二、方案设计与论证………………………………………………………………1
1.硬件设计……………………………………………………………………1
2.软件设计……………………………………………………………………2
三、单元电路设计与分析…………………………………………………………3
1.单片机最小系统……………………………………………………………3
2.数码管显示…………………………………………………………………4
3.发光二级管和按键…………………………………………………………4
4.蜂鸣器发声………………………………………………………………5
5.软件部分程序和流程图………………………………………………………5
四、总原理图及元器件清单………………………………………………………11
1.总原理图…………………………………………………………………11
2元器件清单…………………………………………………………………11
五、结论…………………………………………………………………………12
六、心得体会……………………………………………………………………12
七、参考文献……………………………………………………………………12
一、概述
作为单片机的重要硬件资源之一,利用定时器可以产生各种固定频率的方波信号,也可以产生包括“Do“、“Re“、“Me“--等音阶在内的各种频率声音。
在此设计中我们采用12MHz的晶振,产生的频率信号即音乐信号由P3.7口输出,信号经过放大后由蜂鸣器发出声音。
乐曲中,每一音符对应着确定的频率,我们可以参照给出的各音符频率及其相应的时间常数来编写程序,根据表中所提供的常数,将其16进制代码送入芯片里,可以奏出音符。
音符的节拍我们可以用定时器T0来控制,送入不同的初值,就可以产生不同的定时时间。
便如某歌曲的节奏为每分钟94拍,即一拍为0.64秒。
其它节拍与时间的对应关系也可以从两者关系表中得到。
定时器T0工作在定时方式1,改变TH0及TL0,产生不同的音频频率。
要编写的乐谱按要求以音符字节数据表的形式存放在程序中,改变乐曲就是通过改变该数据表的内容来实现的。
主程序的任务是按顺序读取数据表中的字节,根据情况调用音级子程序和音长子程序,启动定时器T0进行工作。
二、方案设计与论证
1.硬件设计
电路以AT89C52单片机为核心控制元件,P3.7口的蜂鸣器播放歌曲,P3.3、P3.4、P3.5口的三个按键实现开始/单曲重播,上一首,下一首的功能。
P1口的一位数码管显示播放歌曲的曲目号。
P2口发光二级管闪烁增加音乐播放的情调。
2.软件设计
(1)要生产音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间.利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲.
(2)利用8051的内部定时器使用其工作在计数器模式MODE1下,改变计数值THO及TLO以产生不同频率的方法.
(3)例如频率为523Hz,其周期T=1/523=1912us,因此只要令计数器计时956us/1us=956,在每次计数956次时将I/O反相,就可得到中音DO(523Hz).
计数脉冲值与频率的关系公式如下:
N=Fi÷2÷Fr………………1.1
N:
计算值;Fi:
内部计时一次为1us,故其频率为1MHz;
(4)其计数值的求法如下:
T=65536-N=65536-Fi÷2÷Fr………1.2
例如:
设K=65536,F=1000000=Fi=1MHz,求低音DO(261Hz).中音DO(523Hz).高音的DO(1046Hz)的计算值.T=65536-N=65536-Fi÷2÷Fr=65536-1000000÷2÷Fr=65536-500000/Fr。
低音DO的T=65536-500000/262=63627,中音DO的T=65536-500000/523=64580,高音DO的T0=65536-500000/1047=65059
(5)C调各音符频率与计数值T的对照表如表1所示.
表1C调各音符频率与计数值T的对照表
音符
频率(HZ)
简谱码(T值)
音符
频率(HZ)
简谱码(T值)
低1 DO
262
63628
#4FA#
740
64860
#1 DO#
277
63731
中5SO
784
64898
低2 RE
294
63835
#5SO#
831
64934
#2RE#
311
63928
中6LA
880
64968
低3M
330
64021
#6
932
64994
低4FA
349
64103
中7SI
988
65030
#4FA#
370
64185
高1DO
1046
65058
低5SO
392
64260
#1DO#
1109
65085
#5SO#
415
64331
高2RE
1175
65110
低6LA
440
64400
#2RE#
1245
65134
#6
466
64463
高3M
1318
65157
低7SI
494
64524
高4FA
1397
65178
中1DO
523
64580
#4FA#
1480
65198
(6)每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍,表2为节拍与节拍码的对照.如果1拍为0.4秒,1/4拍是0.1秒,只要设定延迟时间就可求得节拍的时间.假设1/4拍为1DELAY,则1拍应为4DELAY,以此类推.所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数,如表3为1/4和1/8节拍的时间设定。
三、单元电路设计与软件分析
1.单片机最小系统
(1)时钟源电路
单片机内部具有一个高增益反相放大器,用于构成振荡器。
通常在引脚XTALl和XTAL2跨接石英晶体和两个补偿电容构成自激振荡器,结构如图1。
可以根据情况选择6MHz、12MHz等频率的石英晶体,补偿电容通常选择22pF左右的瓷片电容。
(2)复位电路
单片机小系统采用上电自动复位和手动按键复位两种方式实现系统的复位操作。
上电复位要求接通电源后,自动实现复位操作。
手动复位要求在电源接通的条件下,在单片机运行期间,用按钮开关操作使单片机复位。
其结构如图1。
上电自动复位通过电容C3充电来实现。
手动按键复位是通过按键将电阻R1与VCC接通来实现。
2.数码管显示
当有键按下时,数码管显示当前的曲目。
3.发光二级管和按键
当接通电源,单片机运行时,十六个发光二级管随着不同的调子闪烁,增加美感。
P3.3、P3.4和P3.5口的按键作用分别是播放重复的曲子也可开启播放,播放上一曲,播放下一曲。
4.蜂鸣器发声
利用单片机的P3.7口产生不同音调所对应的方波来使蜂鸣器发声,实际焊接中用了PNP三级管来驱动。
5.软件部分程序和流程图
Y
N
软件系统程序:
ORG0000H
AJMPLOOOOP
ORG000BH
AJMPTIM0
ORG001BH
RETI
ORG0023H
LOOOOP:
MOVA,#01H
LOOOP:
MOVP1,#3FH
MOVP2,A
RLA
MOVR2,#0FFH
DELAY0:
MOVR3,#0FFH
DJNZR3,$
MOVR4,#0FFH
DJNZR4,$
DJNZR2,DELAY0
JNBP3.3,START
LJMPLOOOP
START:
MOVP1,#06H
MOVR5,#00H;初始化
MOVTMOD,#00010001B
MOVIE,#10101010B
MOVDPTR,#TAB2;装第一首歌
MOV30H,DPL;DPTR低8位送30H暂存
MOV31H,DPH;DPTR高8位送31H暂存
START1:
INCR4;产生8位随机数
MOVA,#01010101B
MOVB,R4
MULAB;8位随机数由P2口输出
MOVP2,A
MOVDPL,30H
MOVDPH,31H
MOVA,#00H
MOVCA,@A+DPTR;查表
MOVR0,A;音符数据送R0崭存
MOVA,#00H
INCDPTR
MOVCA,@A+DPTR;查表
MOVR1,A;节拍数据送R1崭存
INCDPTR
MOV30H,DPL
MOV31H,DPH
CJNEA,#01H,ELECT;一首歌没结束转ELECT
INCR5
LJMPKEYWORK;结束歌曲计数器加1
ELECT:
JZSTART;所有歌曲结束转START循环
MOVA,R0
JNZSING
CLRTR0
SETBP3.7
LOOP1:
ACALLDELAY;调用延时子程序
DJNZR1,LOOP1
SJMPSTART1
SING:
MOVDPTR,#TAB1;音符表首址送DPTR
DECR0;计算音符
MOVA,R0
MOVB,#02H
MULAB
MOVR0,A
MOVCA,@A+DPTR;查表
MOV21H,A
INCDPTR
MOVA,R0
MOVCA,@A+DPTR
MOV20H,A
MOVTL0,20H
MOVTH0,21H
SETBTR0;开T0定时器
LOOP2:
ACALLDELAY
DJNZR1,LOOP2
AJMPSTART1
TIM0:
MOVTL0,20H
MOVTH0,21H
CPLP3.7
RETI;中断返回
DELAY:
MOVR2,#70
DELAY1:
MOVR3,#252
DJNZR3,$
JNBP3.3,AGAIN;重复正播放的曲子
JNBP3.4,FORM;上一曲开关按下转FORM
JNBP3.5,NEXT;下一曲开关按下转NEXT
DJNZR2,DELAY1
RET
AGAIN:
JNBP3.3,$;等待键释放
LJMPKEYWORK
FORM:
CLREA;关中断
JNBP3.4,$;等待键释放
CJNER5,#00H,ZERO;不是第一首歌曲转ZER0
MOVR5,#04H;是第一首将最后一首歌曲装入歌曲计数器
SJMPKEYWORK
ZERO:
DECR5;歌曲向上进一首
SJMPKEYWORK
NEXT:
CLREA
JNBP3.5,$
CJNER5,#04H,LAST
MOVR5,#00H
LJMPKEYWORK
LAST:
INCR5;歌曲下翻一首
LJMPKEYWORK
KEYWORK:
MOVDPTR,#TAB;将歌曲排列表装入DPTR
MOVA,R5;将R5的内容送A
RLA
SETBEA;开中断
JMP@A+DPTR;根据A的内容转向不同歌曲
TAB:
AJMPMUSIC2
AJMPMUSIC3
AJMPMUSIC4
AJMPMUSIC5
MUSIC2:
MOVDPTR,#TAB2;第2首歌曲首址送DPTR
MOVP1,#06H
GONG:
MOV30H,DPL
MOV31H,DPH
AJMPSTART1
MUSIC3:
MOVDPTR,#TAB3
MOVP1,#5BH
SJMPGONG
MUSIC4:
MOVDPTR,#TAB4
MOVP1,#4FH
SJMPGONG
MUSIC5:
MOVDPTR,#TAB5
MOVP1,#66H
SJMPGONG
;********************(音符表)**********************;
TAB1:
DW64021,64185,64331,64400,64524,64632,64732
DW64777,64860,64934,64968,65030,65085,65134
DW65157,65198,65235,65252,65283,65310,65335
;**********************(因为爱情)*************************;
TAB2:
DW0910H,0A08H,0C08H,0C08H,0A18H,0010H,0C08H,0A08H
DW0908H,0C08H,0C20H,0D08H,0E08H,0F08H,0F08H,0F08H
DW0E08H,0F18H,0E04H,0E08H,0E08H,0C08H,0A08H,0A20H
DW0C08H,0A08H,0C08H,0D08H,0D18H,0C08H,0D08H,0C08H
DW0C08H,0808H,0820H,0608H,0808H,0A08H,0908H,0608H
DW0A08H,0908H,0608H,0A08H,0908H,0608H,0D10H,0C20H
DW0001H
;*********************(兰花草)***********************;
TAB3:
DW0608H,0A08H,0A08H,0A08H,0A18H,0908H,0808H,0908H
DW0808H,0708H,0620H,0D08H,0D08H,0D08H,0D08H,0D18H
DW0C08H,0A08H,0C08H,0C08H,0B08H,0A20H,0A08H,0D08H
DW0D08H,0C08H,0A18H,0908H,0808H,0908H,0808H,0708H
DW0610H,0310H,0308H,0808H,0808H,0708H,0618H,0A08H
DW0908H,0808H,0708H,0508H,0620H,0908H,0808H,0708H
DW0508H,0640H,0001H
;*********************(我只在乎你)*****************************;
TAB4:
DW0A08H,0A08H,0A08H,0908H,0A10H,0C08H,0C08H,0C20H
DW0D08H,0D08H,0D08H,0C08H,0A10H,0D08H,0C08H,0C20H
DW0F08H,0F08H,0F08H,0D08H,1010H,0F08H,0C08H,0C20H
DW0D08H,0D08H,0D08H,0F08H,0D08H,0C10H,0A10H,0920H
DW0A08H,0A08H,0A08H,0908H,0A10H,0C08H,0C08H,0C20H
DW0D08H,0D08H,0D08H,0C08H,0A10H,0C08H,0C08H,0C20H
DW0F08H,0F10H,0D08H,1010H,1010H,0F08H,0C08H,0C20H
DW1010H,0C10H,0F10H,1010H,1110H,1010H,0F10H,0E10H
DW0F10H,0E10H,0D10H,0C10H,0D40H,0020H,0004H,0F08H
DW1008H,1110H,1010H,0F10H,0E10H,0F10H,0E10H,0A10H
DW0C10H,0D20H,0008H,0D08H,0C08H,0D10H,0F10H,0F20H
DW0010H,0F20H,1010H,1110H,0F10H,1010H,0F10H,0D08H
DW0D08H,1210H,1110H,1010H,0F08H,1208H,1210H,1110H
DW1010H,0F10H,1030H,1110H,1008H,0F08H,0F20H,0F10H
DW1010H,1120H,0F10H,1410H,1310H,1108H,1008H,0F10H
DW0D30H,0010H,0C10H,0F10H,1110H,1310H,1408H,1108H
DW1008H,0F10H,0D10H,0F10H,0F08H,1010H,0F08H,0F40H
DW0001H
;*********************(童年)****************************;
TAB5:
DW0A08H,0C08H,0C10H,0C08H,0A08H,0D08H,0D08H,0E08H
DW0D08H,0D08H,0D08H,0D08H,0C08H,0F10H,0F08H,0F08H
DW0F08H,0D08H,0F08H,0D08H,0C40H,0A08H,0C08H,0C10H
DW0C08H,0A08H,0D08H,0D08H,0E08H,0D08H,0D08H,0D08H
DW0D08H,0C08H,0F10H,0F08H,0F08H,0F08H,0D08H,0D08H
DW0F08H,1040H,1308H,1308H,1310H,1310H,1108H,1008H
DW0F08H,0F10H,0D08H,0D08H,0F08H,0D08H,0F08H,1008H
DW1008H,1008H,1008H,1008H,0F08H,1108H,1008H,1040H
DW1108H,1110H,1108H,1108H,1008H,1010H,0F08H,0F10H
DW0F08H,1008H,0F08H,0D08H,0C08H,0C08H,0C10H,0C08H
DW0D08H,0C08H,1008H,1108H,0F40H,0001H,0000H
END
四、总原理图及元器件清单
1.总原理图
2.元器件清单
AT89C52,晶振,电容,电阻,排阻,按键,数码管,二极管,蜂鸣器,三极管
五、结论
此音乐播放器能够播放四首曲子,且用按键选择曲目,基本实现了设计要求。
用数据线连上电脑充当电源,将已下载程序的单片机插入插座,按下P3.3口的键可重复播放当前曲子,按下P3.4口的键可播放上一曲,按下P3.5口的键可播放下一曲,按下REST键实现复位,从第一首曲子开始。
一位数码管显示歌曲曲目。
二极管做为发挥部分增加情趣。
六、心得体会
课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。
因此作为自动化专业的学生来说掌握单片机的开发技术是十分重要的。
我的题目是音乐播放器硬软件的设计,13周学习单片机的时间然后就要自己设计一个作品,这是一次考验。
提前很久我们就选好了在课题,开始做准备工作,查阅资料,看到同学们的小作品以及方案讲解,我对我的课题也有了信心。
这次课程设计我学到很多很多的东西,学会了怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。
不仅巩固了以前所学过的知识,比如熟悉了单片机引脚,指令功能,定时器的应用等,而且学到了很多在书本上所没有学到过的知识,比如学会用万用表测量确定器件引脚和某些功能,如何给单片机烧写程序,如何编写音乐代码等。
当然课设中遇到很多问题,比如仿真中蜂鸣器不加三极管驱动而实际焊接是需要的,不会看歌曲简谱,焊接出现错误等,但都在自己的努力,同学的帮助,还有老师的辛勤指导下得以解决,最终顺利完成,只是蜂鸣器播放效果并不好,可以换成喇叭播放。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
的确过程是困难的,但是看到自己的成品真的很开心,以后要多进行实践操作,提高各方面能力。
七、参考文献
胡辉.单片机原理及应用.中国水利水电出版社
附件
仿真结果:
实物拍摄:
教
师评语及设计成绩
评语
课程设计成绩:
指导教师:
日期:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 音乐 播放 报告