基于单片机STC89C52的数字音乐盒设计.docx

上传人:王** 文档编号:718484 上传时间:2023-12-24 格式:DOCX 页数:23 大小:98.91KB
下载 相关 举报
基于单片机STC89C52的数字音乐盒设计.docx_第1页
第1页 / 共23页
基于单片机STC89C52的数字音乐盒设计.docx_第2页
第2页 / 共23页
基于单片机STC89C52的数字音乐盒设计.docx_第3页
第3页 / 共23页
基于单片机STC89C52的数字音乐盒设计.docx_第4页
第4页 / 共23页
基于单片机STC89C52的数字音乐盒设计.docx_第5页
第5页 / 共23页
基于单片机STC89C52的数字音乐盒设计.docx_第6页
第6页 / 共23页
基于单片机STC89C52的数字音乐盒设计.docx_第7页
第7页 / 共23页
基于单片机STC89C52的数字音乐盒设计.docx_第8页
第8页 / 共23页
基于单片机STC89C52的数字音乐盒设计.docx_第9页
第9页 / 共23页
基于单片机STC89C52的数字音乐盒设计.docx_第10页
第10页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《基于单片机STC89C52的数字音乐盒设计.docx》由会员分享,可在线阅读,更多相关《基于单片机STC89C52的数字音乐盒设计.docx(23页珍藏版)》请在优知文库上搜索。

1、基于单片机STC89C52的数字音乐盒设计一、引言1.1 设计的目的通过课程设计,让学生熟悉单片机微机应用系统开发、研制的过程,软硬件设计的工作方法、工作内容、工作步骤。对学生进行根本技能训练,例如:组成系统、编程、调试、查阅资料、焊接电路板等。使学生理论联系实际,提高动手能力和分析问题、解决问题的能力。1.2 设计的根本要求(1)利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏不同的乐曲(至少3首歌曲);(2)采用七段数码管显示当前播放的歌曲序号;(3)可通过功能键选择乐曲,暂停,播放,上一首,下一首;扩展功能:利用一个循环跟每一个音调同步,每改变一个音调就变换一下彩灯,

2、从而实现音乐控制彩灯的功能。二、总体设计1. 1根本工作原理1、播放音乐的原理发音原理:播放一段音乐需要的是两个元素,一个是音调,另一个是音符。首先要了解对应的音调,音调主要由声音的频率决定,同时也与声音强度有关。对一定强度的纯音,音调随频率的升降而升降;对一定频率的纯音、低频纯音的音调随声强增加而下降,高频纯音的音调却随强度增加而上升。另外,音符的频率有所不同。基于上面的内容,这样就对发音的原理有了一些初步的了解。音符的发音主要靠不同的音频脉冲。利用单片机的内部定时器/计数器0,使其工作在模式1,定时中断,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间,利用定时器计

3、时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。2、音符频率的产生音符及定时器的初值:例如:中音I(DO)的音频=523HZ,周期T=l/523s=1912“s定时器/计数器O的定时时间为:T/2=1912/2分=956s定时器9565的计数值=定时时间/机器周期=956S/ls=956(时钟频率=12MHZ)计算得到定时器O的初值为65536-956=64580,将初值装入TO的存放器里,启动TO后,每计数956次后就溢出中断,进入中断效劳程序后,只要将I/O口的输出值取反,就可以得到中音I(Do)的音符音频。

4、只要改变计数初值,就能得到不同频率的音符。表(1)是C调各音符频率与计数初值的对照表:音符频率(HZ)/初值($)音符频率(HZ)/初值(JWS)低IRO262/63627中IDO523/64580高IDO1042/65056低2RE294/63835中2RE589/64687高2RE1245/65134低3M330/64021中3M661/64780高3M1318/65157低4FA350/64107中4FA700/64822高4FA1397/65178低5S0393/64264中5S0786/64900高5S01568/65217低6LA441/64402中6LA882/64969高6LA

5、1760/65252低7SI495/64526中7SI990/65031高7S11967/65282表音符、音符编码及定时器初始值:为了产生音符必须求出低音到高音的计数初值,而为了便于写谱,必须进行简单的编码,在编程时,根据音符编码查找对应的计数初值,比方说音乐是C调的,低音5(SO)直接写为编码1,低音6(LA)直接写为编码2。表(2)是音符编码表:表(2)3、节拍频率的产生音乐中的节拍是利用延时产生的。例如:1拍=0.4sf1/4拍=0.ls如此类推,可得到其他节拍的音符音符编码音符音符编码不发音0低5S01低6LA2低7513中IDO4中2RE5中3M6中4FA7中5S08中6LA9中7

6、$A高IDOB高2REC高3MD高4FAE高5S0F高6LAG时间。为了便于写谱,也将节拍进行编码。表(3)是节拍数编码表,表(4)是乐谱节拍编程时间延时表:按1/4拍为一个延时时间的节拍编码与节拍对应的表按8拍为一个延时时间的节拍编码与节拍对应的表节拍编码节拍节拍编码节拍节拍编码节拍节拍编码节拍11/466/411/866/822/488/422/888/8:33/4A10/4:33/8A10/844/4C12/414/8C12/855/4F15/455/8表乐谱节拍1/4拍的延时时间乐谱节拍1/8拍的延时时间I/-;125ms4/462ms3/4187ms3/494ms2/4250ms2/

7、4125ms表在音符编码和节拍编码完成后,编程时,每个音符占一个字节,高4位是音符编码,低4位是节拍编码。2. 2硬件总体设计本设计是由五局部电路组成的,分别是时钟复位电路、单片机系统、按键电路、显示电路和音频输出电路。硬件的总体框图如图(1)所示:原理说明:(1)当键盘有键按下时,判断键值,启动定时器0,产生一定的频率,驱动蜂鸣器,播放歌曲,启动定时器1,显示歌曲序号;(2)用PO口控制七段数码管,Pl口控制彩灯变化,P2.0控制喇叭,输出音频信号;(3)电路采用12MHZ的晶振工作,起振电路中Cl和C2为22pF的电容。3. 3软件总体设计本设计采用Keil软件进行编写程序并进行编译,采用

8、Proteus软件进行仿真调试。在编写程序之前,首先应该画出该程序的流程图,这样编程起来会比拟简单一点,不会那么复杂。音乐盒设计的总程序流程图如图(3)所示:开始设置音节起始位昏.与胃节拍(SlIE读取音阶、音符彩灯循环闪烁节拍结束,彩灯结束(3按照主程序的流程图用Keil软件编写系统的主程序。程序清单如附录所示。三、硬件设计3.1 单片机芯片的引脚及局部功能本设计采用的单片机型号是STC89C52,其引脚图如图(4)所示:图(4)跟51单片机一样STC89C52单片机也是8位的单片机,有32个准双向的I/O口,存储单元也分为了2种,程序存储器和数据存储器,其中数据存储器是256KB的,可以扩

9、展到64KB,而程序存储器是4KB的,也可以扩展到64KB。STC89C52单片机的中断系统里有5个中断请求源,4个用于中断控制的存放器IE、IP、TCON和SCON,用来控制中断的类型、中断的开/关和各种中断源的优先级别,而引脚31,当接低电平时,单片机直接访问外部程序存储器,接高电平时,单片机访问片内程序存储器,当程序计数器PC的值超过4KB时一,单片机也自动访问片外程序存储器。引脚9是单片机的复位端,当接高电平时,单片机就会复位,而单片机32个I/O口中,P3口具有第二功能,可以实现串行和并行通信的数据接收和发送,也可以控制单片机的中断类型。3.2 各个模块的硬件电路设计1,时钟复位电路

10、时钟电路是由12MHZ的晶振和2个22pF的电容组成,给睢片机系统提供外部时钟信号源,以保证单片机内部定时器的正常工作。而复位电路采用上电复位的接法,由一个IOk的电阻和IOUF的电容组成,在加电的瞬间电容通过充电,使RST端出现正脉冲,从而使单片机复位。时钟复位电路如图(5)所示:图(5)2、按键输入电路本设计采用三个按键来控制音乐的播放,其中按键Sl是控制音乐盒播放下一首歌曲,按键S2是控制音乐盒播放上一首歌曲,而按键S3那么是控制音乐播放和暂停,按键电路的接法如图(6)所示:图(6)3、显不电路本设计采用七段共阴数码管来显示当前播放歌曲的序号,其中a、b、c,d,e,f、g分别接到P00

11、-P06口,而公共端接地,由于PO口里面没有接上拉电阻,在外部电路里还得接上上拉电阻,以保证Po口电平的正常输出。显示电路的接法如图(7)所示:图4、音频输出电路本设计采用喇叭作为音乐盒的音频输出,但是只有一个喇叭就构成整个音频输出电路的话,播放音乐的声音就会太小声,甚至有时小到连声音都听不到,为了增大喇叭的声音,才用一个放大电路使通过喇叭的电流增大,从而增大喇叭的输出功率。放大电路是采用一个PNP型的三极管和两个电阻,其中一个作为反应回路。音频输出电路如图(8)所示:图(8)5,彩灯控制电路彩灯控制电路为本设计的扩展功能,通过音乐的播放,节拍的变化来控制彩灯的循环变化,彩灯电路有8个发光二极

12、管和8个200欧的电阻组成,接到Pl口,通过变化Pl口的输出电平,控制彩灯的亮灭。彩灯控制电路如图(9)所示:图(9)四、软件设计4.1本设计可以实现课程设计的根本要求,可以播放6首歌,并通过按键控制播放、暂停等功能。主要的子程序框图如图(10)、(11)(12)所示:中断程序框图图(11)系统各主要程序的程序清单可见于附录编写完程序后,用Keil软件进行编译,看是否有错,如果有错应立刻修改,直到编译正确为止。五、仿真、调试电路在Proteus软件绘制完原理图和编译完源程续后,将Kei1软件编译完生成的Hex文件加载到PrOteUS软件绘制出的原理图里德单片机里,就可以进行仿真,验证是否能实现

13、课程设计的根本功能。当仿真成功后,就可以购置元器件,开始焊接电路板了,焊完电路板后,利用单片机开发板将程序下载到单片机芯片上进行调试,看是否焊接成功,如果没有同仿真时的结果一样,就得检查一下电路,看哪里出错了,再进行调整,到达预期的要求。六、存在问题和解决方法在设计过程中,虽然在音频输出电路中加了放大电路,来增大输出的电流,但是在调试过程中喇叭的声音还是有点小声,我认为不要采用单个三极管作为放大电路,而应该采用集成运算放大器,因为集成运放里面己经是由多个三极管组成的多级放大电路了,在外部适当的添加一些电阻和电容就能实现功率的放大。七、总结与体会通过这次课程设计,从整体上我对单片机微机应用系统开

14、发、研制过程软硬件设计的工作方法、工作内容、工作步骤更加了解。不仅熟练地掌握了KeiI软件和ProteUS软件的使用方法,而且提高了我的动手能力和分析问题、解决问题的能力。我觉得这次单片机课程设计是一个综合性的设计平台,除了熟练掌握了一些软件的使用和进行了根本技能的锻炼之外,还稳固了我的单片机知识,在编程方面,我也更加的熟练。而且通过查阅资料,还拓展了我的知识视野,加强了我查阅资料的能力。但是这次单片机课程设计也不是一帆风顺的,在编程和仿真过程中倒是没有出现太大的问题,而在焊接完电路板,进行电路调试时却发现整个电路都不工作。我们检查了两天都没发现什么问题。当我正想放弃时,我突然想起爱迪生说过的一句话无论什么时候,不管遇到什么情况,我绝不允许自己有一点点灰心丧气。于是,我决定重新买器件再焊过一块电路板,老天还是很眷顾我的,第二块电路板调试最终成功了,我非常开心,我觉得第一块电路板里可能是电容或晶振坏了,但我又不知道怎么检查电容和晶振。因此果断焊过第二块。总而言之,这次课程设计我获益匪浅。不仅锻炼了我各方面的能力,在人生哲理上,我也更加成熟。我更加深刻地认识到:在人生的道路上,路并不是一直平坦的,会有无数的荆棘、无数的高墙挡在你的前面,但是只有坚持不懈,才能斩断挡在你面前的荆棘,退到你面前的高墙,开辟一条新的道路,只有这样才能跨越自己的极限,走到像桃花源记里面

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 论文 > 毕业论文

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!