- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)