下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 单片机的可控数字音乐盒设计 专业课程设计

单片机的可控数字音乐盒设计 专业课程设计.doc

单片机的可控数字音乐盒设计 专业课程设计

字体中你的样子
2019-02-22 0人阅读 举报 0 0 暂无简介

简介:本文档为《单片机的可控数字音乐盒设计 专业课程设计doc》,可适用于高等教育领域

目录项目概述项目要求 系统原理 硬件设计 软件设计 系统仿真和调试 学习过程的体会 附录 附录 一、项目概述本设计是一个基于ATC系列单片机的音乐盒依据单片机技术原理通过硬件电路制作以及软件编译设计制作出一个多功能音乐盒。该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器组成。使用两个按键控制音乐盒一个用来切换歌曲。播放歌曲时蜂鸣器发出某个音调与之对应的LED亮起。本设计利用KEILC编程软件对音乐盒源程序进行编程并调试配合PROTEUS仿真软件对硬件进行仿真调试节约了设计时间。二、项目要求.利用IO口产生一定频率的方波驱动蜂鸣器发出不同的音调从而演奏乐曲可通过功能键选择乐曲暂停播放。三、系统原理芯片ATC的介绍ATC是一种带K字节闪存可编程可擦除只读存储器(FPEROMFlashProgrammableandErasableReadOnlyMemory)的低电压高性能CMOS位微处理器俗称单片机。ATC是一种带K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除次。该器件采用ATMEL高密度非易失存储器制造技术制造与工业标准的MCS指令集和输出管脚相兼容。由于将多功能位CPU和闪烁存储器组合在单个芯片中ATMEL的ATC是一种高效微控制器ATC是它的一种精简版本。ATC单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。音调的产生不同的音调对应着不同的物理频率而若要产生一定频率的声音我们只需用一定频率的方波来驱动蜂鸣器即可。对于固定频率的产生方法本系统中用定时器设置为工作方式(TMOD=x),对不同的音调依据频率装入对应的计数初值定时器计数完时将输出端取反(编程中采用异或)进而产生对应的方波。具体计算如下:如对于编码为的低音SO其频率为HZ我们实验中采用的为M晶振因此机器周期为us那么该音调对应的计数初值为:(*)==解释:由于工作方式中计数器的THO和TL所有位均用于装载计数初值因此最大计数值为*=周期为xs频率为HZ每定时一次对输出取反因此计数初值应除以。以下为所有音调标准频率及其在本设计中的的计数初值表计数初值表低音频率T参数中音频率T参数高音频率T参数DoDoDoDo﹟Do﹟Do﹟ReReReRe﹟Re﹟Re﹟MiMiMiFaFaFaFa﹟Fa﹟Fa﹟SoSoSoSo﹟So﹟So﹟LaLaLaLa﹟La﹟La﹟SiSiSi            节拍的确定学习音乐时每个音符都有对应的节拍我们唱拍的时候通常叫做打拍子用来区分音符之间所间隔的时间因此音符的产生不仅要有频率还要有节拍。我们知道一共有中不同的节拍每一拍的时间都是最短拍的整数倍例如拍是拍的倍因此我们可以确定一个基准的延时时间然后用它的倍数表示不同的节拍用一个无符号整数来表示其倍数。具体代码如下voiddelay(uintp){  uintjuintk,lfor(l=l<pl)for(k=k>k)for(j=j<j)    }通过此程序每一拍为ms可以实现要求对于节拍没有固定的时间也可以通过调节循环初值进行延时修改。音符的编码由计数初值表可以看到如果采用将每一个音符的所对应的计数初值都直接编入音乐的码流中每个码占两个字节并且不易记忆因此我们采用将不同音符的频率写入一个如下所示码表中通过查表确定计数初值。ucharcodeyd={xff,xff,占位xFC,xE,中央C调xFC,xED,  xFD,x,  xFD,xA,  xFD,xB,  xFD,xF,  xFE,xD,xFE,x,  高八度   xFE,x,xFE,xA,xFE,xC,  xFE,xD,xFE,xF,xFF,x}编码表如下简谱发音简谱码T值节拍码节拍数低音SO拍低音LA拍低音TI拍中音DO拍中音RE又拍中音MI又拍中音FA拍中音SOA又拍中音LAC拍中音TIAF又拍高音DOB  高音REC  高音MID  高音FAE  高音SOF        对照乐谱编码时可以查上表进行对应的编码四、硬件电路电路图电路参数:芯片:ATC        C:uFC:pF          C:pFR:Ω          R:KΩ晶振:MHZ、晶振回路:MHZ晶振电路其中C和C为微调电容、复位电路:采用按键电平复位原理介绍:电路运行时通过中断int和int向cpu发出中断申请执行相应中断服务通过调整各标志位实现相应的功能五.软件设计主程序流程图(主程序为死循环在此略去主循环部分没有结束框)、中断服务子程序流程图外部中断服务:暂停与继续播放外部中断服务:开始、停止、切歌子程序流程图流程图说明:由于外部中断服务执行与否来取决于外部硬件并且可能在执行主程序的任何一个时刻发生因此在此单独列出两个中断服务子程序执行完之后将自动跳回主程序中继续执行。具体代码见附录六.仿真调试运行结果由运行时的电路变化可以看出LS相连的端口电压不断变化这是由于定时器产生了驱动电流驱动其发声当按下与int相连的按钮时开始唱歌按与int相连的按钮时唱歌暂停再次按下时继续播放并且无论歌曲是否暂停如果当前播放不为最后一首音乐当按下int相连按钮时系统将播放下一首音乐如果为最后一首则停止播放系统恢复至初始化之后状态。程序调试中出现的问题及解决的办法:(a)编程时要注意在程序开始时要写入各定时器中断的入口地址。(b)编程过程中要注意加注释或分割线否则在程序过长时容易变得很乱不便于查找或更改。(c)程序的结构要设计的合理避免上下乱调用的现象这样会使程序更加清晰化。(d)编程前要加流程图这样会使思路清晰例如数字音乐盒的设计思路完全可以按着MP的工作方式列写流程图。LCD计时正常显示的解决办法:(a)两个定时器同时工作存在中断时序问题刚开始时我们把定时器设定在方式计us由于定时中断过于频繁使CPU负载过大导致音乐不能正常播放时间不能正常显示。解决办法:将定时器设定在工作方式位计数计ms,效果有很大改观。但还有问题。(b)当音乐为全拍起始时此时音乐节奏与定时器T中断频率错开LCD显示和音乐播放都会好一些。(c)另外在歌曲中当遇到一个音符发音为拍在编曲中为*CH托因时间长当定时器T此时来中断时就会对歌曲播放产生影响若改为发音一拍中断对歌曲播放影响减弱但音乐效果变差。七.体会一分耕耘一分收获。只有亲自用实践来验证这句话在能得其要领。经过这次单片机课程设计我从一个单片机实践的门外汉已经越升为略知一二的新手。虽然还有很多有关单片机的应用有待学习但万变不离其宗只要深入了解单片的原理全部知识点各个细节一切设计皆有可能。在实验的开始几天基本上没有收获不知何从下手不知所措。为了看得更远不妨站在前人的肩膀上我在整体思路模糊的情况下在网上大量招资粮各种与电子时钟相关的文章我阅读了不少。随着涉猎的点滴积累我对电子时钟的设计方案已经慢慢酝酿而成。有了方向和不少知识储备后在接下来的几天几乎每天都有突破虽然有时只是一句程序的修改或诞生但那种收获的感觉很暖人心。在课程设计的过程中:遇到的最大的问题就是硬件问题在自己课程设计的过程中遇到的很多情况下或是导线损坏或是实验箱上的IO口不能正确的输出。在这一方面我们所能做的是每天开始做实验时就要检查所用的导线没有问题及各个IO接口是否能够正确输出。具体方法如下:把每一根导线连接每个IO口到发光二极管上电后每个发光二极管是不是能点亮按一下复位键后发光二极管是不是还是继续正确的亮着。在整个课程设计中我懂得了许多东西也培养了我独立工作的能力树立了对自己工作能力的信心相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。虽然这个课程设计做的还是有一些遗憾但是在设计过程中所学到的东西是这次课程设计的最大收获和财富。最后无论如何都要好好的感谢指导老师的帮助在整个课程设计过程中几乎每一个程序的设计成功都离不开老师的指导和帮助。在老师的辛勤指导之下学到了很多有用的经验和使用的知识。而且还得感谢身边同学的帮助和交流在互相帮助和交流的过程中能够学到很多很有创意的编程思想自己也有所提高。

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/11

单片机的可控数字音乐盒设计 专业课程设计

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利