基于51单片机音乐盒课程设计.doc
《基于51单片机音乐盒课程设计.doc》由会员分享,可在线阅读,更多相关《基于51单片机音乐盒课程设计.doc(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课程名称: 微机原理课程设计 题 目: 基于51单片机的音乐盒设计 摘要随着人类社会的发展,人们对视觉、听觉方面的享受提出了越来越高的要求。小小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。传统音乐盒多是机械型的,体积笨重,发音单调,不能实现批量生产。本设计是一个基于STC89C52RC系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐盒。该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器组成。使用两个按键控制音乐盒,一个按键用来控制歌曲的播放、暂停以及换曲,另一个用来控制数码管上歌曲次序的变化,本音乐盒共有三首歌曲。播放歌曲时,
2、相应歌曲对应相应数码管上歌曲次序的显示。本设计利用KEIL编程软件对音乐盒源程序进行编程并调试,配合PROTEUS仿真软件对硬件进行仿真调试。随后依照仿真布局在Altium Designer软件中绘制PCB单面板,检查无误后制成实物单面覆铜板。关键字:STC89C52RC KEIL PROTEUS PCB目录一、设计任务与要求- 4 -1.1 设计任务- 4 -1.2 设计要求- 4 -1.3 发挥部分- 4 -二、方案总体设计- 5 -2.1 方案列举- 5 -2.2 方案论证- 5 -2.3 总体设计原理- 5 -三、硬件设计- 6 -3.1 STC89C52RC芯片- 6 -3.2 晶振
3、电路- 7 -3.3 开关按键电路- 8 -3.4 P0口上拉电阻- 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 仿真调试-
4、20 -5.3 测试总结- 21 -六、PCB单面板制作- 22 -6.1 绘制平台- 22 -6.2 原理图的绘制- 22 -6.3 PCB单面板的绘制- 22 -七、设计总结与心得体会- 24 -7.1 设计总结- 24 -7.2 心得体会- 24 -八、参考文献- 25 -附录一:源程序- 26 -一、设计任务与要求1.1 设计任务制作一个简易音乐盒,要求利用假设干开关按键控制音乐播放并利用一位数码管显示相关消息。1.2 设计要求完成该模块的硬件和软件的设计,在Proteus软件上仿真通过后,用Altium_Designer软件进行PCB单面板的绘制,修改合理后制成单面覆铜板。随后将程序
5、下载到单片机进行硬件验证。最后就课程设计本身提交一篇课程设计说明文档。1.3 发挥部分分别利用两个开关按键控制音乐的播放暂停和换曲操作,同时利用一位共阴数码管显示相关歌曲曲目的变化。二、方案总体设计2.1 方案列举方案一:用四个按键控制音乐的播放。3个按键选择3首不同的音乐播放,另一个按键控制音乐的停止。按下播放键,简单的控制之后,才开始播放音乐。比方,用定时器控制,亮灯倒计时10秒然后触发音乐播放。方案二:用两个按键控制音乐的播放。一个按键S1控制音乐的播放、暂停以及换曲,另一个按键(S2)控制数码管上的曲目的更换。按下播放键S1,单片机开始播放音乐,再次按下该键,音乐播放暂停第三次按下该键
6、,歌曲默认更换到下一首。每次按下选曲按键S2,单片机暂停当前歌曲的播放,并依次在数码管上显示曲目的更换。2.2 方案论证在方案1中,共用了4个按键,其中3个按键控制播放3首音乐,另一个键控制音乐播放的停止。但是只能选择3首音乐,不能显示是哪首歌局限性太强。因此我们选择方案二更为合适、妥当。2.3 总体设计原理本次设计是一个基于STC89C52RC系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐盒。该音乐盒主要由按键电路、复位电路、时钟电路、蜂鸣器以及显示电路组成。使用一个按键来控制开始,播放和暂停、换曲。利用一个按键来显示数码管上曲目的更换并
7、暂停当前曲目的更换,共三首音乐,蜂鸣器每播放一首歌时数码管上显示相对应的歌曲次序。本设计利用KEIL编程软件对音乐盒源程序进行编程并调试,配合PROTEUS仿真软件对硬件进行仿真调试。随后依照仿真布局在Altium Designer软件中绘制PCB单面板,检查无误后制成实物单面覆铜板。三、硬件设计3.1 STC89C52RC芯片STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051片机。其引脚图如图1所示。图1 STC89C52RC芯片引脚图STC89C52RC主要特性如下: 增强型8051单片机,指令代码完全兼容传统8051; 工作电压
8、:5.5V3.3V5V单片机/3.8V2.0V3V单片机; 工作频率范围:040MHz,相当于普通8051的080MHz,实际工作频率可达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位定时器/计数器;即
9、定时器T0、T1; 外部中断2路,下降沿中断或低电平触发电路,PowerDown模式可由外部中断低电平触发中断方式唤醒; 通用异步串行口UART,还可用定时器软件实现多个UART; 工作温度范围:-40+85工业级/075商业级; 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电路复位以及外部中断
10、等重要功能,其中P3.2口和P3.7口通过开关按键构成控制电路,2.7口接蜂鸣器构成输出电路,PO端通过上拉电阻的钳位、限流作用接一位共阴极数码管构成数字显示。3.2 晶振电路晶体振荡器,简称晶振,它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络。晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。图2 晶振电路晶振在应用具体起到的作用,微控制器的时钟源可以分为两类:一种是皮尔斯振荡器配置,适用于晶振和陶瓷谐振槽路。另一种为简单的分立RC振荡器。基于晶振与陶瓷谐振槽路的振荡器通常能提供非常高的初始精度和较低的温度系数。RC振荡器能够快
11、速启动,成本也比较低,但通常在整个温度和工作电源电压范围内精度较差,会在标称输出频率的5%至50%范围内变化,震荡脉冲频fosc在0至24MHZ范围内变化。但其性能受环境条件和电路元件选择的影响。需认真对待振荡器电路的元件选择和线路板布局。本设计中的晶振振荡电路如图2是在一个反相放大器注意是放大器不是反相器的两端接入晶振,再有两个电容分别接到晶振的两端,每个电容的另一端再接到地,这两个电容串联的容量值就应该等于电路的负载电容。同时,晶振可以等效为一个电感,所以只要晶振的两端并联上合适的电容它晶振等效为一个电感,所以只要晶振的两端并联上合适的电容它就会组成并联谐振电路。其中端点1接STC89C5
12、2RC芯片的19引脚,端点2接芯片的18引脚。这个并联谐振电路加到一个负反馈电路中就可以构成正弦波振荡电路,由于晶振等效为电感的频率范围很窄所以即使其他元件的参数变化很大这个振荡器的频率也不会有很大的变化。本实验中使用的是22PF的电容,如果再考虑元件引脚的等效输入电容,则两个22PF的电容构成晶振的振荡电路就是比较好的选择,但本设计简易,所以对于等效输入电容带来的误差不予讨论。3.3 开关按键电路利用1位按键开关连接P3.2控制数码管的7个输入口,通过改变按键开关进行3个数字的显示和改变;利用另1位按键开关连接P3.7控制外部中断,通过改变按键开关进行歌曲的播放、暂停。在实验室中有条件的话还
13、利用数字电路实验箱,在适当的时钟频率下,控制位信号的输入,从而实现数码管的各段的显示,在数码管上显示数字。使用C语言描述上述控制过程,并将程序下载至控制芯片中,实现可编程器件的控制过程。图3 开关按键电路最先的思路包括:通过三个按键控制数码管显示。在过程中发现三个按键的控制需要分时的操作,比较麻烦并且难于实现。于是采用简单的设计方案,采用一个按键控制数字,通过改变不同脉冲信号的输入来改变不同数字的显示。其电路图如图3所示。3.4 P0口上拉电阻一般作单键触发使用时,如果IC本身没有内接上拉电阻,为了使单键维持在不被触发的状态或是触发后回到原状态,必须在IC外部另接一电阻。数字电路有三种状态:高
14、电平、低电平、和高阻状态,有些应用场合不希望出现高阻状态,可以通过上拉电阻或下拉电阻排阻消除高阻状态。上拉电阻实物图如图4所示。图4 上拉电阻实物图I/O端口的输出类似于一个三极管的集电极,当集电极通过一个电阻和电源连接在一起的时候,该电阻成为上拉电阻。简而言之,上拉电阻就是将不确定的信号通过一个电阻钳位在高电平,电阻同时起限流作用。对于非集电极或漏极开路输出型电路如普通门电路提升电流和电压的能力是有限的,上拉电阻的功能主要是为集电极开路输出型电路提供输出电流通道。上拉电阻就是将电源通过电阻接到输出端。如果输出端是OC(集电极开路,TTL)或OD(漏极开路,CMOS)输出,不接上拉电阻则输出端
15、无驱动能力。对于P1、P2、P3口内部就以及有上拉电阻,如果其端口电流较大,电平就会降低电阻大,相应压降也太大,就可以通过外接上拉电阻就是并一个电阻在IC内部的上拉电阻上,这时总电阻减小,总电流增大提供电流分量,将电平“拉高”。本次设计中使用的上拉电阻为九引脚排阻如图5所示。顾名思义,排阻就是假设干个参数完全相同的电阻,它们的一个引脚都连到一起,作为公共引脚,其余引脚正常引出。所以如果一个排阻是由n个电阻构成的,那么它就有n+1只引脚,一般来说,最左边的那个是公共引脚,它在排阻上一般用一个色点标出来。由于排阻引脚众多,所以排阻比假设干只固定电阻更为方便。本次设计中排阻依次连接单片机P0口各引脚
16、(上拉电阻VCC端接单片机VCC端)。图5 上拉电阻3.5 复位电路单片机在启动时都需要进行复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位。1) 上电复位上电复位即是在RST复位输入引脚上接一电容至VCC端,下接一个电阻到地即可。对于CMOS型单片机,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减
17、至1uF。上电复位的工作过程是在加电时,复位电路通过电容加给RST端一个短暂的高电平信号,此高电平信号随着VCC对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。上电时,VCC的上升时间约为10ms,而振荡器的起振时间取决于振荡频率,如晶振频率为10MHz,起振时间为1ms;晶振频率为1MHz,起振时间则为10ms。在右图的复位电路中,当VCC掉电时,必然会使RST端电压迅速下降到0V以下,但是,由于内部电路的限制作用,这个负电压将不会对器件产生损害。另外,在复位期间,端口引脚处于随机状态,复位后,
18、系统将端口置为全“l”态。如果系统在上电时得不到有效的复位,则程序计数器PC将得不到一个合适的初值,因此,CPU可能会从一个未被定义的位置开始执行程序。图6 复位电路2) 手动按钮复位手动按钮复位需要人为在复位输入端RST上加入高电平。一般采用的方法是在RST端和正电源VCC之间接一个按钮。当人为按下按钮时,则VCC的+5V电平就会直接加到RST端。本设计采用的即是手动复位,其电路图如图6所示。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。该电路中将10uf电容与开关并联是为了在开关断开时减少开关断开的两个触点之间形成的电弧,开关闭合时,则没有消除电火花的作用
19、。因为开关所接的电路中,常常都属于感性负载,感性负载在断电时由于电流不能突变,因此会在断开的两个触点之间形成的电弧,这个电弧一方面对触点造成损坏作用容易拉成毛刺,一方面影响电路的断开时间,加上电容后,由于电容两端电压不能突变,使触点两端的电压也不能突变,因此就没有火花形成,起到保护触点的作用和及时断开电路的作用。接地端连接10k电阻则是为了保护复位电路不会因为电流过大而烧毁同时也能为复位电阻提供部分电压能力。3.6 蜂鸣器电路蜂鸣器是一种一体化结构的电子讯响器,广泛应用于电脑、打印机、复印机、报警器、 机等电子产品中作发声器件,主要分为电磁式蜂鸣器和压电式蜂鸣器两种类型。电磁式蜂鸣器由振荡器、
20、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。图7 蜂鸣器电路本次设计使用到的是第一种电磁式蜂鸣器。电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机I/O引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此在单片机P2.7引脚与蜂鸣器之间串联一个电阻和NPN型三极管9012。其电路原理如图7所示,蜂鸣器的负极接到接地端,三极管Q1集电极接到VCC5V电源上面、发射机接到蜂鸣器的正极,三极管的基级经过限流电阻R3后由单片
21、机的引脚控制,当P2.7输出高电平时,三极管Q1截止,没有电流流过线圈,蜂鸣器不发声;当P2.7输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制P2.7脚的电平来使蜂鸣器发出声音和关闭。程序中改变单片机P2.7引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。另外,改变P2.7输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小,这些我们都可以通过编程实验来验证。3.7 电源电路现代电子电器中大量采用发光二极管作为电源指示灯,本设计使用的即是发光二极管电源指示灯电路。采用发光二极管作为指示器件具有许多优点,如发光醒目、耗电小、指
22、示颜色可变等。如图8所示,电路中的L0是发光二极管,当它发光时表示电路中已有了直流工作电压,当L0不发光时,表示电路中没有直流电压(除非L0本身损坏或电路存在故障)。S3是电源开关,R2是L0的限流保护电阻。开关S3接通后,直流电压+V经S3和R2加到L0的正极上,L0的负极直接接地,这样给L0加正向偏置电压,有电流流过L0,所以L0发光指示,说明电路中有正常的直流电压+V。S3断开时,由于+V不能加到L0上,所以没有电流流过L0,L0不能发光,这说明电路中没有直流电压+V。+V变大或变小时,流过L0的电流大小也作相应的变化。当+V变大时,流过L0的电流在增大,所以L0发出的光更强;当+V变小
23、时,流过L0的电流变小,所以L0发出的光比较弱。图8 电源电路这一电源指示灯电路不仅能够指示是否有电源电压,还能指示电源电压的大小情况,对于采用电池供电的机器这一指示功能更实用,当L0发光强度不足时说明电池的电压已经不足。电路中的R2是L0的限流保护电阻,以防止由于+V太大而损坏L0。它的保护原理是:当+V增大时,流过L0的电流在增大。由于L0和R2串联,这样流过R2的电流也在增大,在R2上的电压增大,加到L0上的电压增大量有所减小,不会使L0的工作电流太大,到达保护保护L0的目的。3.8 一位共阴数码管LED数码管以发光二极管作为发光单元,颜色有单红,黄,蓝,绿,白,七彩效果。单色,分段全彩
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 音乐盒 课程设计
限制150内