基于51单片机音乐盒课程设计.doc
- 文档编号:2590231
- 上传时间:2022-11-02
- 格式:DOC
- 页数:28
- 大小:632KB
基于51单片机音乐盒课程设计.doc
《基于51单片机音乐盒课程设计.doc》由会员分享,可在线阅读,更多相关《基于51单片机音乐盒课程设计.doc(28页珍藏版)》请在冰豆网上搜索。
课程名称:
微机原理课程设计
题目:
基于51单片机的音乐盒设计
摘要
随着人类社会的发展,人们对视觉、听觉方面的享受提出了越来越高的要求。
小小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。
传统音乐盒多是机械型的,体积笨重,发音单调,不能实现批量生产。
本设计是一个基于STC89C52RC系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐盒。
该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器组成。
使用两个按键控制音乐盒,一个按键用来控制歌曲的播放、暂停以及换曲,另一个用来控制数码管上歌曲次序的变化,本音乐盒共有三首歌曲。
播放歌曲时,相应歌曲对应相应数码管上歌曲次序的显示。
本设计利用KEIL编程软件对音乐盒源程序进行编程并调试,配合PROTEUS仿真软件对硬件进行仿真调试。
随后依照仿真布局在AltiumDesigner软件中绘制PCB单面板,检查无误后制成实物单面覆铜板。
关键字:
STC89C52RCKEILPROTEUSPCB
目录
一、设计任务与要求 -4-
1.1设计任务 -4-
1.2设计要求 -4-
1.3发挥部分 -4-
二、方案总体设计 -5-
2.1方案列举 -5-
2.2方案论证 -5-
2.3总体设计原理 -5-
三、硬件设计 -6-
3.1STC89C52RC芯片 -6-
3.2晶振电路 -7-
3.3开关按键电路 -8-
3.4P0口上拉电阻 -8-
3.5复位电路 -9-
3.6蜂鸣器电路 -10-
3.7电源电路 -11-
3.8一位共阴数码管 -12-
四、软件设计 -14-
4.1软件设计程序流程图 -14-
4.2软件头文件定义以及字符类型定义 -15-
4.3音频、音调程序设计 -15-
4.4按键与蜂鸣器接口端程序设计 -16-
4.5外部中断程序设计 -16-
4.6定时程序设计 -17-
4.7延时程序编写 -18-
4.8主程序的编写 -18-
五、系统仿真与调试 -20-
5.1仿真平台 -20-
5.2仿真调试 -20-
5.3测试总结 -21-
六、PCB单面板制作 -22-
6.1绘制平台 -22-
6.2原理图的绘制 -22-
6.3PCB单面板的绘制 -22-
七、设计总结与心得体会 -24-
7.1设计总结 -24-
7.2心得体会 -24-
八、参考文献 -25-
附录一:
源程序 -26-
一、设计任务与要求
1.1设计任务
制作一个简易音乐盒,要求利用若干开关按键控制音乐播放并利用一位数码管显示相关消息。
1.2设计要求
完成该模块的硬件和软件的设计,在Proteus软件上仿真通过后,用Altium_Designer软件进行PCB单面板的绘制,修改合理后制成单面覆铜板。
随后将程序下载到单片机进行硬件验证。
最后就课程设计本身提交一篇课程设计说明文档。
1.3发挥部分
分别利用两个开关按键控制音乐的播放暂停和换曲操作,同时利用一位共阴数码管显示相关歌曲曲目的变化。
二、方案总体设计
2.1方案列举
方案一:
用四个按键控制音乐的播放。
3个按键选择3首不同的音乐播放,另一个按键控制音乐的停止。
按下播放键,简单的控制之后,才开始播放音乐。
比如,用定时器控制,亮灯倒计时10秒然后触发音乐播放。
方案二:
用两个按键控制音乐的播放。
一个按键(S1)控制音乐的播放、暂停以及换曲,另一个按键(S2)控制数码管上的曲目的更换。
按下播放键S1,单片机开始播放音乐,再次按下该键,音乐播放暂停第三次按下该键,歌曲默认更换到下一首。
每次按下选曲按键S2,单片机暂停当前歌曲的播放,并依次在数码管上显示曲目的更换。
2.2方案论证
在方案1中,共用了4个按键,其中3个按键控制播放3首音乐,另一个键控制音乐播放的停止。
但是只能选择3首音乐,不能显示是哪首歌局限性太强。
因此我们选择方案二更为合适、妥当。
2.3总体设计原理
本次设计是一个基于STC89C52RC系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐盒。
该音乐盒主要由按键电路、复位电路、时钟电路、蜂鸣器以及显示电路组成。
使用一个按键来控制开始,播放和暂停、换曲。
利用一个按键来显示数码管上曲目的更换并暂停当前曲目的更换,共三首音乐,蜂鸣器每播放一首歌时数码管上显示相对应的歌曲次序。
本设计利用KEIL编程软件对音乐盒源程序进行编程并调试,配合PROTEUS仿真软件对硬件进行仿真调试。
随后依照仿真布局在AltiumDesigner软件中绘制PCB单面板,检查无误后制成实物单面覆铜板。
三、硬件设计
3.1STC89C52RC芯片
STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051片机。
其引脚图如图1所示。
图1STC89C52RC芯片引脚图
STC89C52RC主要特性如下:
Ø增强型8051单片机,指令代码完全兼容传统8051;
Ø工作电压:
5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机);
Ø工作频率范围:
0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz;
Ø用户应用程序空间为8K字节;
Ø片上集成512字节RAM;
Ø通用I/O口(32个),复位后为:
P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻;
ØISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RXD/P3.0,TXD/P3.1)直接下载用户程序,数秒即可完成一片;
Ø具有EEPROM功能;
Ø具有看门狗功能;
Ø共有2个16位定时器/计数器;即定时器T0、T1;
Ø外部中断2路,下降沿中断或低电平触发电路,PowerDown模式可由外部中断低电平触发中断方式唤醒;
Ø通用异步串行口(UART),还可用定时器软件实现多个UART;
Ø工作温度范围:
-40~+85℃(工业级)/0~75℃(商业级);
ØPDIP封装。
ØP3口具有第二功能:
P3.0/RXD(串行输入口),P3.1TXD(串行输出口),P3.2/INT0(外部中断0),P3.3/INT1(外部中断1),P3.4T0(记时器0外部输入),P3.5T1(记时器1外部输入,P3.6/WR(外部数据存储器写选通),P3.7/RD(外部数据存储器读选通)。
本设计中用到32位通用I/O口中P0、P2和P3的部分端口,RST电路复位以及外部中断等重要功能,其中P3.2口和P3.7口通过开关按键构成控制电路,2.7口接蜂鸣器构成输出电路,PO端通过上拉电阻的钳位、限流作用接一位共阴极数码管构成数字显示。
3.2晶振电路
晶体振荡器,简称晶振,它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络。
晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。
图2晶振电路
晶振在应用具体起到的作用,微控制器的时钟源可以分为两类:
一种是皮尔斯振荡器配置,适用于晶振和陶瓷谐振槽路。
另一种为简单的分立RC振荡器。
基于晶振与陶瓷谐振槽路的振荡器通常能提供非常高的初始精度和较低的温度系数。
RC振荡器能够快速启动,成本也比较低,但通常在整个温度和工作电源电压范围内精度较差,会在标称输出频率的5%至50%范围内变化,震荡脉冲频fosc在0至24MHZ范围内变化。
但其性能受环境条件和电路元件选择的影响。
需认真对待振荡器电路的元件选择和线路板布局。
本设计中的晶振振荡电路(如图2)是在一个反相放大器(注意是放大器不是反相器)的两端接入晶振,再有两个电容分别接到晶振的两端,每个电容的另一端再接到地,这两个电容串联的容量值就应该等于电路的负载电容。
同时,晶振可以等效为一个电感,所以只要晶振的两端并联上合适的电容它晶振等效为一个电感,所以只要晶振的两端并联上合适的电容它就会组成并联谐振电路。
其中端点1接STC89C52RC芯片的19引脚,端点2接芯片的18引脚。
这个并联谐振电路加到一个负反馈电路中就可以构成正弦波振荡电路,由于晶振等效为电感的频率范围很窄所以即使其他元件的参数变化很大这个振荡器的频率也不会有很大的变化。
本实验中使用的是22PF的电容,如果再考虑元件引脚的等效输入电容,则两个22PF的电容构成晶振的振荡电路就是比较好的选择,但本设计简易,所以对于等效输入电容带来的误差不予讨论。
3.3开关按键电路
利用1位按键开关连接P3.2控制数码管的7个输入口,通过改变按键开关进行3个数字的显示和改变;利用另1位按键开关连接P3.7控制外部中断,通过改变按键开关进行歌曲的播放、暂停。
在实验室中有条件的话还利用数字电路实验箱,在适当的时钟频率下,控制位信号的输入,从而实现数码管的各段的显示,在数码管上显示数字。
使用C语言描述上述控制过程,并将程序下载至控制芯片中,实现可编程器件的控制过程。
图3开关按键电路
最先的思路包括:
通过三个按键控制数码管显示。
在过程中发现三个按键的控制需要分时的操作,比较麻烦并且难于实现。
于是采用简单的设计方案,采用一个按键控制数字,通过改变不同脉冲信号的输入来改变不同数字的显示。
其电路图如图3所示。
3.4P0口上拉电阻
一般作单键触发使用时,如果IC本身没有内接上拉电阻,为了使单键维持在不被触发的状态或是触发后回到原状态,必须在IC外部另接一电阻。
数字电路有三种状态:
高电平、低电平、和高阻状态,有些应用场合不希望出现高阻状态,可以通过上拉电阻或下拉电阻排阻消除高阻状态。
上拉电阻实物图如图4所示。
图4上拉电阻实物图
I/O端口的输出类似于一个三极管的集电极,当集电极通过一个电阻和电源连接在一起的时候,该电阻成为上拉电阻。
简而言之,上拉电阻就是将不确定的信号通过一个电阻钳位在高电平,电阻同时起限流作用。
对于非集电极(或漏极)开路输出型电路(如普通门电路)提升电流和电压的能力是有限的,上拉电阻的功能主要是为集电极开路输出型电路提供输出电流通道。
上拉电阻就是将电源通过电阻接到输出端。
如果输出端是OC(集电极开路,TTL)或OD(漏极开路,CMOS)输出,不接上拉电阻则输出端无驱动能力。
对于P1、P2、P3口内部就以及有上拉电阻,如果其端口电流较大,电平就会降低(电阻大,相应压降也太大),就可以通过外接上拉电阻(就是并一个电阻在IC内部的上拉电阻上,这时总电阻减小,总电流增大)提供电流分量,将电平“拉高”。
本次设计中使用的上拉电阻为九引脚排阻(如图5所示)。
顾名思义,排阻就是若干个参数完全相同的电阻,它们的一个引脚都连到一起,作为公共引脚,其余引脚正常引出。
所以如果一个排阻是由n个电阻构成的,那么它就有n+1只引脚,一般来说,最左边的那个是公共引脚,它在排阻上一般用一个色点标出来。
由于排阻引脚众多,所以排阻比若干只固定电阻更为方便。
本次设计中排阻依次连接单片机P0口各引脚(上拉电阻VCC端接单片机VCC端)。
图5上拉电阻
3.5复位电路
单片机在启动时都需要进行复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。
89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。
当系统处于正常工作状态时,且
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 音乐盒 课程设计