单片机音乐盒报告Word文档下载推荐.docx
- 文档编号:6652514
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:19
- 大小:263.27KB
单片机音乐盒报告Word文档下载推荐.docx
《单片机音乐盒报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机音乐盒报告Word文档下载推荐.docx(19页珍藏版)》请在冰点文库上搜索。
按键1负责播放/暂停歌曲。
按键2,3负责切换播放歌曲,播放歌曲共3首,同时LED显示相应的曲目,显示曲目标号共3种。
图2-2音乐盒功能
3.系统硬件的设计
3.1主控制器的设计
主要能够是实现程序输入时,能够模拟音乐盒的基本功能,能够有按键输入的模块部分,有数码管显示歌曲序号,并有蜂鸣器模块部分在播放音乐。
总体硬件电路实现功能如下所示
1)电路中用P3.2、P3.4、P3.5控制按键。
2)P0.0~P0.7,P2.0~2.1控制LED。
3)P1.0控制蜂鸣器。
4)电路为12MHZ晶振频率工作,起振电路中C1、C2均为30PF。
3.2接口电路的设计
(1)AT89C51简介
AT89C51是一种带4K字节闪存可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。
AT89C51是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
外形及引脚排列如图3-1所示图3-1单片机
(2)时钟电路
AT89C51引脚XTAL1和XTAL2与晶体振荡器及电容C1、C2按图所示方式连接。
晶振、电容C1/C2及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C1、C2的容量有关,但主要由晶振频率决定,范围在0~33MHz之间,电容C1、C2取值范围在5~30pF之间。
根据实际情况,本设计中采用12MHZ作为系统的外部晶振,电容取值为30pF。
其电路图如图3-2所示。
图3-2时钟电路
(3)复位电路:
由一个10nf电容接电源和一个10k的电阻接地组成,使单片机的CPU和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作。
如图3-3所示
(4)按键电路:
有外部中断输入和定时/计数器的外部输入都是低电平有效,可以和复位电路相视,只要讲复位电路中的电容去点即可。
共三个按键,接口为P3.2、P3.4、P3.5按下播放/暂停歌曲会实现播放暂停,按下下一曲或下一曲单片机也会显示相应的功能。
按键如图3-4所示图3-3复位电路
(5)音乐驱动电路:
即蜂鸣器部分,接口为P1.0。
由于单片机最大的输入电流为3.2mA,所以选用PNP管,并要PNP的基极和发射极加限流电阻。
如图3-5所示
(6)显示电路:
LED显示电路之直接到单片机的P0.0~P0.7,P2.0~2.1口,由单片机通过控制按键的切换来实现歌曲的曲目,分别能实现“11,22,33”。
如图3-6所示
图3-4按键电路图3-5蜂鸣器图3-6显示电路
4.系统软件的设计
4.1主程序的设计
通过主程序对单片机的电路实行控制并结合按键功能实现播放,暂停,停止,上一曲,下一曲。
音阶和节拍的配合实现歌曲(共三首歌)演奏,并利用数码管显示当前播放序号。
按下开始按钮之后,程序初始化,再按下播放按键,程序开始判断按键是否按下,若按下就开始判断曲目标号,送相应表首地址给dptr,再调用音乐子程序,播放相应曲目,数码管会显示相应的曲号。
按下“上一曲”或“下一曲”后会使音乐程序加一或减一,再送相应表首地址给dptr,这样可以实现任意曲目的切换。
主程序流程图如下所示:
4.2子程序的设计
判断子程序流程图
Del延时子程序流程图
Music子程序流程图
5.系统调试
5.1硬件调试
硬件在单片机学习板上进行仿真实验,能显示曲号,基本功能能实现,但音乐不太明显。
5.2软件调试
播放:
当开始键P3.2按下时,音乐盒顺序播放。
暂停:
当音乐要暂停时,按下P3.2时就可实现。
下一曲:
按下P3.4时,可实行对音乐盒的控制歌曲进入到下一曲。
上一曲:
按下P3.5时,可实现音乐盒上一曲的循环播放。
当歌曲正常播放时数码管也能显示当前的歌曲序号。
5.3综合调试
按照上面设计的电路在proteus软件内画图,打开单片机软件开发系统Keil,选择89c51单片机,在其中编写程序,运行生成一个后缀名为hex的文件,然后将该文件下载到proteus中的AT89c51单片机中进行仿真,观察实验现象。
仿真能实现播放音乐,按键选择曲目,暂停,播放等功能。
6.指标测试
6.1测试仪器
装有Proteus及Keil软件的计算机,耳塞或音响设备,单片机学习板等。
6.2指标测试
能达到开始设想的音乐盒功能,能实现播放,暂停,停止,上一曲,下一曲,音阶和节拍的配合实现歌曲(共三首歌)演奏,同时数码管能显示播放歌曲的曲目。
7.结论
通过这次单片机课程设计,发现自己想学好单片机还有很大的差距。
由于自己理论知识不扎实,能力有限,导致编程很困难。
后来经过老师同学们的指点,查了大量有关音乐盒设计的资料,才写出了完整的程序。
在调试时会出现程序一点错误也没有,但就是不能正常运行的现象,最后发现是因为程序中有的指令书写得不规范导致的。
好几页的程序很容易造成混乱,后来加注释或分割线,便于查找或更改。
编程前加个流程图比较好,这样会使思路清晰,例如数字音乐盒的设计思路完全可以按着MP3的工作方式列写流程图。
通过好几天的设计,调试最后终于基本上能实现课题上的功能。
本学期学习单片机的时间只有十几周时间,对单片机的硬件设计,软件设计掌握的深度不够,感谢老师给我们这么一次机会,通过此次课程设计,使我对硬件电路的工作原理有了进一步的学习,更是对软件方面,在程序的设计,程序的调试方面都学到了很多东西,这是第一次设计单片机,很有成就感。
对这次课程设计我觉得更需要我们耐心,仔细。
参考文献:
1.楼然苗,胡佳文.51系列单片机设计实例,北京:
北京航空航天大学出版社,2003.03.
2.楼然苗,胡佳文.单片机实验与课程设计,浙江大学出版社,2010.10.
3.张永枫,单片机应用实训教程,清华大学出版社,2008.12.
4.张迎新,单片机初极教程—单片机基础,北京航空航天大学出版社,2006.8.
附录一:
PROTEUS仿真效果图
附录二:
源程序代码及必要的注释。
shuzhiequ3fh;
选曲目的地址
songequp1.0;
扬声器播放P1.0
playequp3.2;
播放停止键P3.2
addoneequp3.4;
曲目加一键P3.4
suboneequp3.5;
曲目减一键P3.5
dulequp0;
数码管段选P0口
welequp2;
数码管位选P2口
org0000h
ljmpstart
org000bh;
定时器0溢出中断入口地址
ajmpcont;
指向定时器中断程序
org0013h;
外部中断一入口地址
ajmppause;
指向外部中断程序
org0100h
start:
movsp,#50h
movth0,#0dbh;
定时器赋初值
movtl0,#0ffh
movtmod,#01h
movie,#86h;
开中断
movtcon,#00h
movr0,#00h
movshuzhi,#00h
main:
jnbplay,first;
判断P3.2键是否按下
sjmpmain
first:
acalldel20
判断P3.2键是否释放
movdul,#0f9h;
显示数值1
movwel,#7fh;
显示位送P2口
movdptr,#dat1;
表1首地址送DPTR
acallmusic0
acallnext
ret
next:
incshuzhi;
shuzhi+1
mova,shuzhi
cjnea,#01,loop3;
A是否=1,不等就跳转到LOOP3
movdptr,#dat2;
表2首地址送DPTR
movdul,#0a4h;
显示数值2
movwel,#7fh
inca
loop3:
cjnea,#02,loop4;
A是否=2,不等就跳转到LOOP4
movdptr,#dat3;
表3首地址送DPTR
movdul,#0b0h;
显示数值3
loop4:
cjnea,#03,next;
A是否=3,不等就跳转到next
acallfirst
last:
decshuzhi;
shuzhi-1
mova,shuzhi
cjnea,#02,last1
movdptr,#dat3
movdul,#0b0h
last1:
cjnea,#01,last2
movdptr,#dat2
movdul,#0a4h
last2:
cjnea,#00,last
movdptr,#dat1
movdul,#0f9h
ret
music0:
mov20h,#00h;
中断计数单元清0
music1:
clra
movca,@a+dptr;
查表取音阶常数
jzend0;
是结束符?
cjnea,#0ffh,music5;
是休止符?
ljmpmusic3;
产生100ms停顿
music5:
nop
key:
jnbplay,k0;
jnbaddone,k1;
判断P3.4键是否按下
jnbsubone,k2;
判断P3.5键是否按下
movr6,a;
音阶常数送R6
incdptr;
DPTR+1
mova,#0
取常数送R7
movr7,a
setbtr0;
启动定时器T0
music2:
cjner0,#0,$
cplsong;
输出电平取反
mova,r6
movr3,a;
音阶常数送R3
lcalldel20
mova,r7;
节拍常数送A
cjnea,20h,music2;
节拍时间到否
为取下一音阶作准备
incdptr
ljmpmusic1
music3:
nop;
休止100ms
clrtr0;
关闭定时器
movr2,#14h;
R2=20
music4:
movr3,#250;
R3=250
djnzr2,music4
end0:
movr2,#200;
歌曲结束后,延时1s后继续
music6:
movr3,#250
djnzr2,music6
k1:
acalldel20;
调用延时子程序
判断P3.4键是否释放
acallnext
k2:
判断P3.5键是否释放
acalllast
k0:
jnbplay,k0
del20:
movr4,#05h
del4:
djnzr4,del4
djnzr3,del20
cont:
inc20h;
计数单元+1
重新10ms定时初值
reti;
跳出中断
pause:
jnbp3.3,pause;
判断P3.3键是否有释放
mova,r0;
把R0的值给A
cpla;
A值取反
movr0,a
reti
dat1:
db3bh,20h,3bh,20h,30h,20h,33h,20h,3bh,80h,0ffh
db3bh,20h,3bh,20h,26h,20h,2bh,20h,26h,80h,0ffh
db26h,20h,26h,20h,20h,20h,26h,20h,2bh,20h,2bh,20h,30h,20h,33h,10h,33h,10h
db3bh,60h,40h,20h,4ch,80h,0ffh
db26h,20h,26h,20h,20h,20h,26h,20h,2bh,20h,2bh,20h,2bh,20h,30h,20h
db33h,20h,3bh,20h,3bh,20h,40h,2bh,3bh,80h,0ffh
db19h,20h,1ch,40h,26h,20h,19h,20h,1ch,40h,26h,20h,0ffh
db20h,20h,1ch,20h,1ch,20h,20h,20h,26h,80h,0ffh
db2bh,20h,2bh,40h,3bh,20h,2bh,20h,2bh,40h,2bh,20h,0ffh
db26h,20h,2bh,20h,2bh,20h,30h,20h,2bh,80h,0ffh
db2bh,20h,2bh,40h,3bh,20h,30h,20h,30h,40h,2bh,20h,0ffh
db33h,20h,3bh,20h,3bh,20h,40h,20h,3bh,80h,0ffh,0ffh
dat2:
db18h,30h,1ch,10h,20h,40h,1ch,10h
db18h,10h,20h,10h,1ch,10h,18h,40h
db1ch,20h,20h,20h,1ch,20h,18h,20h
db20h,80h,0ffh,20h,30h,1ch,10h,18h
db20h,15h,20h,1ch,20h,20h,20h,26h
db40h,20h,20h,2bh,20h,26h,20h,20h
db20h,30h,80h,0ffh,20h,20h,1ch,10h
db18h,10h,20h,20h,26h,20h,2bh,20h
db30h,20h,2bh,40h,20h,20h,1ch,10h
db30h,20h,2bh,40h,20h,30h,1ch,10h
db18h,20h,15h,20h,1ch,20h,20h,20h
db26h,40h,20h,20h,2bh,20h,26h,20h
db20h,20h,30h,80h,20h,30h,1ch,10h
db20h,10h,1ch,10h,20h,20h,26h,20h
db2bh,20h,30h,20h,2bh,40h,20h,15h
db1fh,05h,20h,10h,1ch,10h,20h,20h
db26h,20h,2bh,20h,30h,20h,2bh,40h
db20h,30h,1ch,10h,18h,20h,15h,20h
db1ch,20h,20h,20h,26h,40h,20h,20h
db2bh,20h,26h,20h,20h,20h,30h,30h
db20h,30h,1ch,10h,18h,40h,1ch,20h
db20h,20h,26h,40h,13h,60h,18h,20h
db15h,40h,13h,40h,18h,80h,00h
dat3:
db26h,20h,20h,20h,20h,20h,26h,10h,20h,10h,20h,80h,26h,20h,30h,20h
db30h,20h,39h,10h,30h,10h,30h,80h,26h,20h,20h,20h,20h,20h,1ch,20h
db20h,80h,2bh,20h,26h,20h,20h,20h,2bh,10h,26h,10h,2bh,80h,26h,20h
db30h,20h,30h,20h,39h,10h,26h,10h,26h,60h,40h,10h,39h,10h,26h,20h
db30h,20h,30h,20h,39h,10h,26h,10h,26h,80h,26h,20h,2bh,10h,2bh,10h
db2bh,20h,30h,10h,39h,10h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,20h
db20h,10h,20h,10h,2bh,10h,26h,30h,30h,80h,18h,20h,18h,20h,26h,20h
db20h,20h,20h,40h,26h,20h,2bh,20h,30h,20h,30h,20h,1ch,20h,20h,20h
db20h,80h,1ch,20h,1ch,20h,1ch,20h,30h,20h,30h,60h,39h,10h,30h,10h
db20h,20h,2bh,10h,26h,10h,2bh,10h,26h,10h,26h,10h,2bh,10h,2bh,80h
db18h,20h,18h,20h,26h,20h,20h,20h,20h,60h,26h,10h,2bh,20h,30h,20h
db30h,20h,1ch,20h,20h,20h,20h,80h,26h,20h,30h,10h,30h,10h,30h,20h
db39h,20h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,10h,40h,10h,20h,10h
db20h,10h,2bh,10h,26h,30h,30h,80h,00h
end
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 音乐盒 报告