ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:200.55KB ,
资源ID:12124074      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12124074.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于proteus的51系列单片机音乐盒设计概述.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于proteus的51系列单片机音乐盒设计概述.docx

1、基于proteus的51系列单片机音乐盒设计概述课程论文题 目: 基于proteus的51系列单片机 音乐盒设计 学生姓名: 韩 向 前 学生学号: 1008030211 系 别: 电气信息工程学院 专 业: 电子信息工程 年 级: 10 级 任课教师: 张 水 锋 电气信息工程学院制2012年12月基于Protues的51系列单片机音乐盒设计学生:韩向前指导教师:张水锋电气信息工程学院电子信息工程(2)班目 录1、课程设计任务与要求 21.1、课程设计的任务 21.2、课程设计的要求 21.3、课程设计的研究基础 22、音乐系统方案制定 22.1、方案提出 22.2、方案比较 32.3、方案

2、论证 32.4方案选择 43、音乐系统方案设计 43.1、各单元模块功能介绍及电路设计 43.2、电路参数的计算及元器件的选择 63.3、特殊器件的介绍 103.4、系统整体电路图 114、音乐系统仿真和调试 114.1、仿真软件介绍 114.2、系统仿真实现 134.3、系统测试 135、总结 146、参考文献 147、附录 151课程设计任务与要求1.1 课程设计的任务1、综合运用所学的理论知识去独立完成设计课题;2、通过查阅手册和相关文献资料,培养独立分析、解决问题的能力;3、进一步熟悉单片机和常用接口电路,加深对专业知识和理论知识学习的认识和理解;4、学会电路的连接与仿真调试; 5、撰

3、写课程设计的总结报告;1.2 课程设计的要求以AT89C51单片机为核心的音乐播放器1、选用AT89C51单片机和适当的存储器及接口芯片完成相应的功能。2、画出详细的硬件连接图。3、给出程序设计思路、画出软件流程图。4、给出所有程序清单并加上必要注释。5、撰写设计报告、调试报告及设计心得。1.3 课程设计的研究基础为了实现单片机控制音乐播放,通过计算机控制系统,以Proteus和Keil仿真软件为核心来构建完成音乐盒设计仿真。利用单片机产生乐曲音符,再把乐曲音符翻译成计算机音乐语言,由单片机进行信息处理,再通过蜂鸣器放出音乐。音乐的产生主要是通过I/O口输出高低不同的脉冲信号来控制蜂鸣器发音。

4、主要工作过程通过按下功能键实现上一首和下一首及暂停播放,同时有液晶屏显示当前播放歌曲的序号,扬声器播放音乐。2 音乐系统方案制定2.1 方案提出方案一:单片机接+5V电源供电,晶振电路产生单片机所需的时钟信号,通过功能键产生外部中断,控制音乐盒的上一首和下一首曲目,再由I/0接口输出控制扬声器发声,LCD显示。另外,复位电路在于营造一个程序运行的初始状态,在程序出错时,重新启动单片机工作。系统组成框图如图1所示图1方案一 系统框图方案二:设计一个音乐播放器同样使用AT89C51,蜂鸣器一端与一个按钮串联后再和P17焊接,另一端直接接地;P31和RST端口并联后和主电源串接,如图2所示:图2方案

5、二系统框图2.2 方案比较方案一是通过按键控制系统的音乐播放。利用I/0口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏出乐曲;采用LCD显示信息,开机时有欢迎提示字符,播放时显示歌曲序号或名称;可通过功能键选择乐曲暂停,播放;当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲,同时启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。同时启动定时器T1,在LCD显示歌曲号。通过单片机P1口控制,实现功能键盘的功能;功能键盘采用按键开关,通过单片机P2口控制,实现歌曲播放顺序的调换和暂停播放功能;扬声器由单片机的P3控制,实现歌曲播放。方案二是利

6、用AT89C51芯片通过播放按键直接控制音乐,使得蜂鸣器发出声音,方案一所需的电子元件少,这就大大减少了生产成本,此外,对于一个轻便易携的音乐盒,其附加能耗越低越好。2.3 方案论证虽然方案一的设计比较全面,但其难度较大,且编程方面要求较高;方案二要求简单,容易实现,编程方面也较简单,因设计的是翻盖式音乐盒,其功能是在翻开翻盖的同时开关闭合,播放音乐,翻盖盖上,开关断开,音乐盒停止运行,因此方案二更符合实际需要达到了设计音乐盒的目的。2.4 方案选择通过2.3的方案论证,决定选择方案二,方案二的实施性更强。3 音乐系统方案设计3.1各单元模块功能介绍及电路设计3.1.1时钟振荡电路AT89C5

7、1中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端1。这个放大器与作为反馈元件的片外石英晶体或者陶瓷谐振器一起构成自然振荡器。外接石英晶体及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1,C2虽然没有什么严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性。如果使用石英晶体,我们推荐电容为20PF40PF,而如果使用陶瓷振荡器建议选择30PF50PF。用户也可以采用外部时钟。采用外部时钟的电路如图示。这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XT

8、AL2则悬空。由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求1。振荡器电路图3所示:图3 单片机内部、外部振荡电路3.1.2 音乐发生部分蜂鸣器是一种把警示电信号转化成人耳能够感知的声音信号的转换装置。通过开关的闭合与断开,来控制音乐的播放和暂停,实现了翻盖式音乐盒的功能,如图4所示:图4 单片机内部、外部振荡电路3.1.3电路设计(1)硬件电路设计总体硬件电路实现功能如下,如图5所示电路中用控制按键控制蜂鸣器。电路为12MHZ晶振频率工作,起振电路中C1、C2均为20PF。

9、图5总体硬件电路设计图(2)软件设计在本程序中使用C语言编程,音乐的产生主要是通过单片机的I/O口输出高低不同的脉冲信号来控制蜂鸣器发音。要想产生音频脉冲信号,需要算出某一音频的周期,然后将此周期除以2,即为半周期的时间。利用单片机定时器计时这个半周期时间,每当计时到后就输出脉冲的I/O口反向,然后重复计时此半周期时间再对I/O口反向,这样就能在此I/O口上得到此频率的脉冲。本例利用T0定时器方式1的中断产生音调,利用T1定时器方式1的中断产生节拍。所以,将纯音乐天空之城的乐谱以代码的形式编写,用于主函数的调用。(3)软件程序设计主程序流程图如图5所示:C语言编程的优越性很明显,其具有丰富的运

10、算符,数据类型,语言简练,生成目标代码质量高等优点2。许多大的软件都用C语言编写,这主要是由于C语言的可移植性好和硬件控制能力高,表达和运算能力强2。再考虑到自己对C语言具有良好的掌握,因此决定用C语言编程。 图6主程序流程图3.2电路参数的计算及元器件的选择3.2.1音调、节拍以及编码的确定方法一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,也就是说不能像电子琴那样能奏出多种音色的声音。因此单片机奏乐只需弄清楚两个概念即可,也就是“音调”和节拍表示一个音符唱多长的时间。(1) 音调的确定不同音高的乐音是用C、D、E、F、G、A、B来表示,这7个字母就是音乐的音名,它们一

11、般依次唱成DO、RE、MI、FA、SO、LA、SI,即唱成简谱的1、2、3、4、5、6、7,相当于汉字“多来米发梭拉西”的读音,这是唱曲时乐音的发音,所以叫“音调”,即Tone。把C、D、E、F、G、A、B这一组音的距离分成12个等份,每一个等份叫一个“半音”。两个音之间的距离有两个“半音”,就叫“全音”。在钢琴等键盘乐器上,CD、DE、FG、GA、AB两音之间隔着一个黑键,他们之间的距离就是全音;EF、BC两音之间没有黑键相隔,它们之间的距离就是半音。通常唱成1、2、3、4、5、6、7的音叫自然音,那些在它们的左上角加上号或者b号的叫变化音。叫升记号,表示把音在原来的基础上升高半音,b叫降记

12、音,表示在原来的基础上降低半音。例如高音DO的频率(1046Hz)刚好是中音DO的频率(523Hz)的一倍,中音DO的频率(523Hz)刚好是低音DO频率(266 Hz)的一倍;同样的,高音RE的频率(1175Hz)刚好是中音RE的频率(587Hz)的一倍,中音RE的频率(587Hz)刚好是低音RE频率(294 Hz)的一倍。要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。利用定时器计时这半个周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。利用AT89C51的内部定时器使其工作在

13、计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法。此外结束符和休止符可以分别用代码00H和FFH来表示,若查表结果为00H,则表示曲子终了;若查表结果为FFH,则产生相应的停顿效果。例如频率为523Hz,其周期T=1/523=1912us,因此只要令计数器计时956us/1us=956,在每次技术956次时将I/O反相,就可得到中音DO(523Hz)。计数脉冲值与频率的关系公式如下: N=Fi2Fr N:计算值;Fi:内部计时一次为1us,故其频率为1MHz;Fr要产生的频率。其计数值的求法如下:T=65536-N=65536-Fi2Fr例如:设K=65536,F=1000

14、000=Fi=1MHz,球低音DO(261Hz)。中音DO(523Hz)。高音的DO(1046Hz)的计算值T=65536-N=65536-Fi2Fr=65536-10000002Fr=65536-500000/Fr低音DO的T=65536-500000/262=63627低音DO的T=65536-500000/523=64580低音DO的T=65536-500000/1047=65059C调各音符频率与计数值T的对照表如表1所示:表1 C调各音符频率与计数值T的对照表低音频率T参数中音频率T参数高音频率T参数Do2621908229Do523956115Do10465757Do2771805

15、217Do554903108Do11095454Re2941701204Re587852102Re11755151Re3111608193Re62280497Re12454848Mi3301515182Mi65975991Mi13184545Fa3491433172Fa69871686Fa13974343Fa3701351162Fa74067681Fa14804141So3921276153So78463877So15683838So4151205145So83160272So16613636La4401136136La88056868La17603434La4641078129La93253

16、664La18653232Si4941012121Si98850661Si19763030(2)节拍的确定若要构成音乐,光有音调是不够的,还需要节拍,让音乐具有旋律(固定的律动),而且可以调节各个音的快满度。“节拍”,即Beat,简单说就是打拍子,就像我们听音乐不自主的随之拍手或跺脚。若1拍实0.5s,则1/4 拍为0.125s。至于1拍多少s,并没有严格规定,就像人的心跳一样,大部分人的心跳是每分钟72下,有些人快一点,有些人慢一点,只要听的悦耳就好。音持续时间的长短即时值,一般用拍数表示。休止符表示暂停发音。一首音乐是由许多不同的音符组成的,而每个音符对应着不同频率,这样就可以利用不同的频

17、率的组合,加以与拍数对应的延时,构成音乐。了解音乐的一些基础知识,我们可知产生不同频率的音频脉冲即能产生音乐。对于单片机来说,产生不同频率的脉冲是非常方便的,利用单片机的定时/计数器来产生这样的方波频率信号。因此,需要弄清楚音乐中的音符和对应的频率,以及单片机定时计数的关系。如表2节拍与节拍码对照:表2节拍与节拍码对照节拍码节拍数节拍码节拍数11/4拍11/8拍22/4拍21/4拍33/4拍33/8拍41拍42/1拍51又1/4拍55/8拍61又1/2拍63/4拍82拍81拍A2又1/2拍A1又1/4拍C3拍C1又1/2拍F3又3/4拍每个音符使用1个字节,字节的高4位代表音符的高低,低4位代

18、表音符的节拍。如果1拍为0.4秒,1/4拍实0.1秒,只要设定延迟时间就可求得节拍的时间。假设1/4拍为1DELAY,则1拍应为4DELAY,以此类推。所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数,如表3为1/4和1/8节拍的时间设定。表3 1/4和1/8节拍的时间设定曲调值DELAY曲调值DELAY调4/4125毫秒调4/462毫秒调3/4187毫秒调3/494毫秒调2/4250毫秒调2/4125毫秒(3)编码do re mi fa so la si分别编码为17,重音do编为8,重音re编为9,停顿编为0。播放长度以十六分音符为单位(在本程序中为165ms),一拍即四分音符

19、等于4个十六分音符,编为4,其它的播放时间以此类推。音调作为编码的高4位,而播放时间作为低4位,如此音调和节拍就构成了一个编码。以0xff作为曲谱的结束标志。举例1:音调do,发音长度为两拍,即二分音符,将其编码为0x18。举例2:音调re,发音长度为半拍,即八分音符,将其编码为0x22歌曲播放的设计。先将歌曲的简谱进行编码,储存在一个数据类型为unsigned char 的数组中。程序从数组中取出一个数,然后分离出高4位得到音调,接着找出相应的值赋给定时器0,使之定时操作蜂鸣器,得出相应的音调;接着分离出该数的低4位,得到延时时间,接着调用软件延时1。如表4简谱对应的简谱码、T值、节拍数:表

20、4 简谱对应的简谱码、T值、节拍数简谱发音简谱码T值节拍码节拍数5低音SO16426011/4拍6低音LA26440022/4拍7低音TI36452433/4拍1中音DO46458041拍2中音RE56468451又1/4拍3中音MI66477761又1/2拍4中音FA76482082拍5中音SO864898A2又1/2拍6中音LA964968C3拍7中音TIA65030F3又3/4拍1高音DOB650582高音REC651103高音MID651574高音FAE651785高音SOF65217 3.2.2元器件选择本系统中单片机选择AT89C51,时钟振荡电路外接石英晶体及电容C1、C2接在放

21、大器的反馈回路中构成并联振荡电路。一个个按钮控制音乐的播放和关闭。3.3 特殊器件的介绍3.3.1 AT89C51简介AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机3。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个

22、芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案3。外形及引脚排列如图7所示图7 AT89C51系列单片机3.4 系统整体电路图如图8所示的系统整体电路图:图8 系统整体电路图4 音乐系统仿真和调试 4.1 仿真软件介绍本设计利用KEIL编程软件对音乐盒源程序进行编程并调试,配合PROTEUS仿真软件对硬件进行仿真调试,两种软件的简介如下:4.1.1 PROTEUS软件简介Proteus软件由英国Lab Center Electronics公司开发的EDA工具软件。具有原理编辑、印

23、制电路板制作外,还具有交互式的仿真功能。他不仅是模拟电路、数字电路、模/数混合电路的设计与仿真平台,更是目前世界上最先进、最完整的多种型号微处理器系统的设计与仿真平台,真正实现了在计算机中完成电路原理图设计,电路分析与仿真、微处理器程序设计与仿真、系统测试与功能验证到形成印制电路板的完整电子设计、研发过程,Proteus软件由ISIS和ARES两个软件构成,其中ISIS一款智能电路原理图输入系统软件,可作为电子系统仿真平台;ARES是一款高级布线编辑软件,用于制作印制电路板(PCB)。Proteus软件不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外

24、围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持I

25、AR、Keil和MPLAB等多种编译器。 4.1.2 KEIL简介单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个

26、功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。1运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。Keil C51生成的目标代码效率非常之高,多数语句生成

27、的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势1。4.2 系统仿真实现打开Keil程序,执行菜单命令“Project”“New Project”创建“天空之城”项目,并选择单片机型号为AT89C51。执行菜单命令“File”“New”创建文件,输入源程序,保存为“天空之城.C”。在“Project”栏的File项目管理窗口中右击文件组,选择“Add Files to Group Source Group1”将源程序“片内拆字.C”添加到项目中。执行菜单命令“Project”“Options for Target Target 1”,在弹出的对话框中选择“Output”选项卡

28、,选中“Create HEX File”。执行菜单命令“Project”“Build Target”,编译成功,在“Output Window”窗口中显示没有错误,并创建了“天空之城.HEX”文件。执行菜单命令“Debug”“Start/Stop Debug session”。打开ISIS 7 Professional 窗口。单击菜单命令”File”“New Design”,创建一个DEFAULT模板,保存文件名为“天空之城.DSN”。在器件选择按钮中单击“P”按钮,添加设计所需的元件,画好电路图。双击AT89C51单片机,在弹出的对话框的“Program File”项中选择在Keil中生成的

29、十六进制HEX文件“天空之城.HEX”.单击“Debug”“Execute”,进入仿真状态,鼠标按住按钮开关便可听到音乐天空之城。如图9为运行图: 图9程序运行图4.3 系统测试在win7环境下测试,运行Proteus实现设计原型的仿真;通过模拟电子示波器输出单片机的输出波形,可观查到随着时间的变化,出现不同频率的电子脉冲,示波器采用A频道输入观察到输出波形如图9所示。5 总结5.1 设计小结对比两种方案的设计,可以看出方案一,不论在软件设计,硬件设计上带来许多便捷,更能够体现符合实际生产的需要,节约成本,服务生活,引导节能环保的潮流,具有极强的现实意义和可行性,利用定时器可以产生各种固定频率的方波信号,也可以产生包括Do、Re、Me-等音阶在内的各种频率声音。将各个音阶连接在一起,便可组成一支曲子或是演奏一段旋律。5.2 收获体会通过这次课程设计,我系统的把51单片机的设计与仿真重新学习了一遍,自此,我对这个软件也更加熟悉,学会了在制定设计方案时

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1