单片机课程设计--音乐盒.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文档。上传文档
查看更多
单片机课程设计--音乐盒

摘 要 本文是应用STC89C52单片机原理和控制理论设计音乐的硬件电路,并利用进行程序设计。通过控制单片机内部的定时器来产生不同频率的方波,驱动喇叭发出不同音调的音乐,再利用延迟来控制发音时间的长短。把乐谱转化成相应的定时常数发音设备演奏出悦耳动听的音乐。性高,应用性强;软件程序适应范围广,对于不同的音乐只需要改变相应的定时常数即可。对单片机和音乐爱好者有一定的借鉴价值。 目 录 1.设计目的及要求 1 1.1 设计目的 1 1.2 设计要求 1 2 .设计方案及原理 1 2.1 设计原理......................................................................................................................1 2.2 总设计思想 2 3.硬件设计 3 4.软件设计 3 4.1 音调、节拍以及编码的确定方法 3 4.2 程序流程图 4 4.3 程序(汇编语言) 5 5. 总结…....................................................................................................................................8 参考文献…….............................................................................................................................8 1.设计目的及要求 1.1设计目的 随着电子技术及计算机技术的发展,单片机在日常生活中的应用越来越广泛,同时也显现出了它的重要性,尤其在一些特殊的场合更是不可代替。为熟悉单片机的应用。要求设计一个基于STC89C52单片机的带彩灯外观的音乐盒。 1.2 设计要求 音乐盒有三个按键key1,key2,key3,其中key1控制彩灯的样式,本设计有六种彩灯花样,每按一次变换一种样式。Key2控制音乐播放,本设计有五首音乐,每按一次变换到下一首,同时八路LED灯随音调不同而闪烁。Key3为总开关用于关闭音乐跟彩灯。 2.设计方案及原理 ? 2.1设计原理? 音调之所以不同是因为频率的不同。根据每个音调的频率单片机内部的定时计数器来产生相应的音乐脉冲。只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。利用定时器计时这半个周期时间,每当计时到后就将输出脉冲的I/O口反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。利用STC89C52的内部定时计数器工作在方式1下,改变初值TH0及TL0以产生不同频率。???此外结束符和休止符可以分别用代码0xff和0x00来表示,若查表结果为0xff,则表示曲子终了;若查表结果为0x00,则产生相应的停顿效果。? ?例如频率为523Hz,其周期T=1/523=1912us,定时时间为1912/2=956us因此只要令计数器计时956us/1us=956次(若晶振频率为6MHZ),在每次计数956次时将I/O反相,就可得到中音DO(523Hz)。根据计数次数就可算出计数初值。?要产生音乐光有音调是不行的,每个音调还有持续一定的时间。这可以用延时程序delay()来实现。因此每个音乐代码有八位数字组成,高四位控制音调,低四位通过延时程序对该音调进行延时。通过子函数连续不断的调用音乐代码就产生了动听的音乐。音调的频率与时间都不同,让DO、RE、MI、FA、SO、LA、SI分别对应八路LED灯中的一个,这样播放音乐的同时就有LED灯对应闪烁。 2.2总体设计思想? ? 图1思路图? 如图1所示按键部分有三个键,分别结于外部中断P3.2/INT0,P3.3/INT1,及串行口P3.1/TXD上,P3.2每产生一次中断count1加一,根据count1的值来决定花样灯的种类。P3.3每产生一次中断count2加一,根据count2的数值来决定播放哪一首歌曲。P3.1接总开关的。播放音乐,及花样灯均通过调用子程序来实现。八路LED灯灯接到P1口。扬声器接到P3.7上。总体设计电路原理图,如图2。 图2原理图 3硬件设计? 电路由STC89C52八路LED灯,排阻,三个开关,扬声器及晶振组成,搭建如图3。 图3硬件图 4.软件设计 在本程序中设置了一个标志——count1,分别初始化为0。按键1使得count1在1~4之间切换。程序检测count1的值,count1等于1时播放第一首歌曲,等于2时播放第二首。 ?4.1

文档评论(0)

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

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

1亿VIP精品文档

相关文档