- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
简单数字音乐播放器
音乐播放器
设计目的
熟悉并掌握单片机的原理及基本应用,掌握单片机基本外设的使用方法,掌握汇编语言编程方法,熟悉PROTEUS仿真的使用,可以应用电子工艺的基础知识连接硬件实现设计功能。
二、设计要求
(1)利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演乐曲。
(2)采用七段数码管显示当前播放的歌曲序号。
(3)可通过功能键选择乐曲,上一曲,下一曲。
三、发音原理
3.1播放音乐的原理
发音原理:播放一段音乐需要的是两个元素,一个是音调,另一个是音符。首先要了解对应的音调,音调主要由声音的频率决定,同时也与声音强度有关。对一定强度的纯音,音调随频率的升降而升降;对一定频率的纯音、低频纯音的音调随声强增加而下降,高频纯音的音调却随强度增加而上升。另外,音符的频率有所不同。基于上面的内容,这样就对发音的原理有了一些初步的了解。
音符的发音主要靠不同的音频脉冲。利用单片机的内部定时器/计数器0,使其工作在模式1,定时中断,然后控制P3.2引脚的输出音乐。只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。
3.2音符频率的产生
音符及定时器初始值:
例如:中音1(do)的音频=523HZ,周期T=1/523s=1912
定时器/计数器0的定时时间为:T/2=1912/2=956
定时器956的计数值=定时时间/机器周期=956/1=956(时钟频率=12MHZ)
装入T0计数器初值为65536-956=64580
将64580装入T0寄存器中,启动T0工作后,每计数956次时将产生溢出中断,进入中断服务时,每次对P3.1引脚的输出值进行取反,就可得到中音DO(523HZ)的音符音频。将51单片机内部定时器工作在计数器模式1下,改变计数初值TH0,TL0以产生不同的频率。下表1是C调各音符频率与计数初值T的对照表:
表1 C调各音符频率与计数初值T的对照表
音符 频率(Hz)/初值() 音符 频率(Hz)/初值() 低1DO 262/63627 中1DO 523/64580 高1DO 1042/65056 低2RE 294/63835 中2RE 589/64687 高2RE 1245/65134 低3M 330/64021 中3M 661/64780 高3M 1318/65157 低4FA 350/64107 中4FA 700/64822 高4FA 1397/65178 低5SO 393/64264 中5SO 786/64900 高5SO 1568/65217 低6LA 441/64402 中6LA 882/64969 高6LA 1760/65252 低7SI 495/64526 中7SI 990/65031 高7SI 1967/65282
音符、音符编码及定时器初始值:
为了产生音符,必须求出音符低音5—高音5的计数初值。例如C调的低1DO的THTL=65536-50000/262=63627,中音DO的THTL=65536-500000/523=64580,高音DO的THTL=65536-500000/1042=65056。为了方便写谱,对其进行简单的编码,在编程时,根据音符编码查找对应的计数初值。比如说音乐是C调的,那么出现低音的5SO,直接将代码写为1;出现低音6LA,直接写一个2的代码;出现低音7SI,直接写一个3代码。
表2 音符编码表
音符 音符编码 音符 音符编码 不发音 0 低5SO 1 低6LA 2 低7SI 3 中1DO 4 中2RE 5 中3M 6 中4FA 7 中5SO 8 中6LA 9 中7SI A 高1DO B 高2RE C 高3M D 高4FA E 高5SO F 高6LA G 3.3节拍频率的产生
音乐中的节拍用延时时间产生。例如,1拍=0.4s,1/4拍=0.1s,以此类推。假设1/4拍执行一次延时程序,则1/2拍就执行两次延时程序,所以只要求出1/4拍的延时时间,其余节拍就是它的倍数。为了方便,将节拍数也进行了编码,并且计算了乐谱节拍编程时的延时时间,如表3和表4所示
表3 节拍数编码表
按1/4拍为一个延时时间的节拍编码与节拍对应的表 按1/8拍为一个延时时间的节拍编码与节拍对应的表 节拍编码 节拍 节拍编码 节拍 节拍编码 节拍 节拍编码 节拍 1 1/4 6 6/4 1 1/8 6
文档评论(0)