音乐播放器-单片机课程设计 - 副本.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一.概述 (2 二.系统总体方案设计 (2 三.硬件设计 (5 3.1 89C51单片机 (5 图3-1和3-2 (6 3.2 I/O并行口直接驱动LED显示 (6 四.软件设计 (8 4.1.软件设计 (8 五.系统调试与仿真 (9 5.1软件仿真阶段 (9 5.2系统的仿真调试阶段 (10 5.3硬件安装调试 (10 六.总结 (10 参考文献 (11 附录A:音乐播放器电路设计图 (12 附录B:程序清单 (12 一.概述 本课题要求以单片机为核心设计一个音乐播放器,完成多曲选择播放控制、停止控制、省电模式控制等功能。音乐播放器利用单片机的定时器产生乐谱的各种频率方波,信号经过放大后由喇叭发出声音,选取某段音乐使单片机连续播放。设计3个按键:播放/停止、下一曲、上一曲;4位LED显示器,用来显示所选曲目,该显示器在播放期间为了节省电源,设计为关闭状态,当一歌曲演奏结束,或选曲时显示器才显示曲目信息。总体的设计思路是这样的 二.系统总体方案设计 本课题要求以单片机为核心设计一个简易音乐播放器,具有自动播放乐曲的功能。一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,音阶对应频率关系图1-1: 图2-1 本设计用89C51单片机为核心,利用8段数码管显示器.采用动态显示输出,声音输出用蜂鸣器来实现。采用8段数码管显示器进行动态显示需要占用4根I/O线,蜂鸣器占用1根I/O线,89C51单片机有足够的线,不用扩展I/O口。用一片单片机即可满足本设计的输入输出。系统框图如图1-2所示: 图2-2 通过对音乐播放器主体部分的电路进行模仿设计,达到播放器固有的基本功能,设定按钮K1、 K2和K3。按钮K1打开并自动播放乐曲1;按钮K2打开并自动播放乐曲2;按钮K3为手动控制音乐停止的按键。根据设计要求该播放器能实现音键的控制。除此之外还实现了存储并读出几首音乐的功能。通过中断INT-1来实现功能的选择,当未按下中断按钮时,当按下中断按钮式,执行1,即可以播放音乐,共有两首音乐,由两个键来分别控制它们,此外,还设计了一个键来停止音乐的播放。系统主要由播放器发声模块、按键选择控制模块和存储器模块构成。播放器发声模块负责发出音键相应的音符;选择控制模块负责由外部控制播放器的各项功能的实现;显示模块负责按键时产生相应的值,由数码管来实现。在只实现基本功能时(由功能控制键控制,本文的主要内容是用AT89C51单片机为 核心控制元件,系统程序主要包括主程序,定时器中断程序,音乐播放程序,延迟子程序等。 三.硬件设计 3.1 89C51单片机 本设计使用的是ATMEL公司生产的AT89C51高性能8位单片机,片内含8Kbytes的可反复擦写的只读程序存储器和256bytes的随机存取数据存储器,器件采用ATMEL公司的高密度,非易失性存储技术生产,与标准MCS—51指令系统及8051产品引脚兼容,片内置8位中央处理器(CPU和Flash存储单元,功能强大的AT89C52单片机适合于许多较为复杂控制应用场合。如图2-1和2-2所示: 图3-1和3-2 3.2 I/O并行口直接驱动LED显示 由于要显示每个按键的键值,就需要用到数码管LED显示模块。本设计一共用了一个数码管显示器。利用AT89S51单片机的P0端口的P2.0-P2.4连接到一个共阴数码管的笔段上,数码管的公共端接地。在数码管上循环显示0-9数字,如图3-3所示: 图3-3 3.3 发音电路 发音电路有三极管,电阻和扬声器组成,三极管的基极接在单片机的P1.0端口,通过定时器溢出的时间不同,P1.0端口输出不同频率的高低电平,P1.0输出的脉冲频率不同,三极管导通的频率也不相同,从而扬声器根据不同频率的脉冲发出的声音也不相同,发音电路如下图2-4所示: 图3-4 四.软件设计 4.1.软件设计 主程序设计的第一步为初始化,初始化I/O口,设置定时器定时时间,写定时器工作方式寄存器,设置允许T0中断。刚开始需要将存储单元置1,全部置1之后更新显示缓冲区。接着进行显示初始化,开定时器T0,这样就可以开始显示了。设置完以后程序就不断检测按键情况。检测使用软件去抖,也就是第一次检测到有键按下后,如果有键按下则执行相应指令。本设计还设计了防误操作程序,也就是对于一个键,按一下和一直按着的效果是一样的,这样可以防止用户还没放开此键时,程序已进行第二次或多次同样的操作。 程序中根音选取的是C调三个8度内的音符,共21个音。每个音符对应频率由定时器T0产生(音符频率及对应计数初值见附表。为了程序 调用方便,每个音符都对应一个编码,占用一个字节。在程序中以查表的方式加载计数初值。当值为00H 时表示空拍,与

文档评论(0)

369221 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档