用51单片机演奏音乐.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机演奏音乐 一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,也就是说不能象电子琴那样 能奏岀多种音色的声音。因此单片机奏乐只需弄淸楚两个槪念即可,也就是‘音调”和‘节舶”。音调表示一个 音符唱多高的频率,节拍表示一个音符唱多长的时间。 在音乐中所谓“音调”,英实就是我们常说的音高”。在音乐中常把五线谱中央C上方的A音泄为标准音 高,英频率仁440Hzo当两个声音信号的频率相差一倍时,也即f2=2fl时,则称f2比仃高一个倍频程,在音乐 中1与.1 (1前而的点应在1的上面),2与.2……正好相差一个倍频程,在音乐学中称它相差一个八度音。在 一个八度音内,有22个半音。以2—i八音区为例,12个半音是:1—#1、#1—2、2—#2、#2—3、3—4、 4一#4, #4—5、5 一#5、#5—6、6—#6、#6—7、7—i。其中“#”表示半音,用于升高或降低半个音。这 12个音阶的分度基本上是以对数关系来划分的。如果我们只要知道了这十二个音符的音高,也就是其基本音调 的频率,我们就可根据倍频程的关系得到其他音符基本音调的频率。 知道了一个音符的频率后,常采用的方法就是通过一个延时程序,延时对应频率周期的二分之一周期(即 后,将单片机上连接蜂鸣器的I/O () 口来回取反,或者说来回淸零,置位,从而让蜂鸣器发岀声音, 为了让单片机发岀不同频率的声音,我们只需将不同的延时时间值t賦给延时程序即可实现。例:我门以440Hz 的声音频率来计算,英对应的时间t=l?2f=V2*440=1136us但在实际程序中常采用查表的方式来取的t值,而 为了廿约存储器空间则将t值以字节来进行存储,由于大部分t值都大于256。所以,需将t值除以一个常数(t/x) 使其小于256。那么,在查表取得t值后就要再乘上该常数后再赋给延时程序。 以下为常用音符对应的频率和二分之一周期值t: 低音音符 频率Hz 周期/2 周期/2/20 中音音符 频率Hz 周期/2 周期/2/20 1 262 1908 0x5f 1 523 956 ( 0x2f 1# 277 1804 0x5a 1# 553 904 0x2d 2 ) 293 1706 0x55 2 586 854 0x2a 2# 311 1608 0x50 2* 621 806 0x28 3 329 1520 0x4c 3 658 760 0x26 4 349 1436 0x47 4 697 718 0x24 4# 370 1352 0x43 4# 739 676 0x22 5 392 1276 0x3f 5 783 638 0x20 5# 415 1204 0x3c 5* 830 602 Oxle 6 440 1136 0x38 6 879 568 Oxlc 6# 466 1072 0x35 6* 931 536 i Oxlb 7 494 1012 0x32 7 987 506 0x19 高音音符 频率Hz 周期/2 周期/2/20 1 1045 478 ( 0x17 注:在音符的底部加一点表示低音,在音符的 顶部加一点表示高音。表中的20为方便查表 而除以的一个常数。 1# 1106 452 0x16 2 1171 426 0x15 2# 1241 402 0x14 3 1316 380 0x13 4 1393 358 0x12 4# 1476 340 0x11 5 1563 320 0x10 5# 1658 302 OxOf 6 1755 284 OxOe 6# 1860 268 OxOd 7 1971 254 0x0c 一首乐曲的每一个音符除了频率之外,还会有不同的节扌白,确左节舶的方法有以下几种: r 4 3 如1=C —、1=G—…… 1.在一张乐谱中,我们经常会看到这样的表达式, 4 4 等等,这里i=c,i=g表 1. 4 3 3 ~~、 示乐谱的曲调,和我们前而所谈的音调有很大的关联,4 4就是用来表示节拍的。以4为例加以说明, 它表示乐谱中以四分音符为节摘,每一小结有三舶。比如: 1=C 3/4 1 2 45 6 英中1、2为一拍,3、4、5为一拍,6为一拍共三扌白。1、2的时长为四分音符的一半,即为八分音符长, 3、4的时长为八分音符的一半,即为十六分音符长,5的时长为四分音符的一半,即为八分音符长,6的时长为 四分音符长。 那么一拍到底该唱多长呢一般说来,如果乐曲没有特殊说明,一拍的时长大约为400—500ms。我们以一舶 的时长为400ms为例,则当以四分音符为一节拍时,四分音符的时长就为400ms,八分音符(即1/2拍)的时 长就为200ms,十六分音符(¥扌口)的时长就为100mso 2.若知道了一首歌曲的每分钟的廿拍数,也可求岀每一节拍的时

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档