单片机音乐中音调和节拍的确定方法(2)

2019-03-10 19:22

以8051单片机为例(8051单片机的定时器每次计数时间为1us)。利用8051的内部定时器使其工作在计数器模式MODE1

下,改变计数值TH0及TL0以产生不同频率的方法如下:

例如,频率为523Hz,其周期为1/523 S=1912uS,因此只要令计数器计时956,在每计数956次时就将I/O反接,就可得到

中音DO(532Hz)。

其计数值N可以根据以下公式得到:

2N=Fi/Fr (Fi为内部时钟频率,Fr为对应音符频率) 而单片机定时器所需的预计数值 T=65536-N=65536-Fi/2/Fr

计算举例:

设F=1000000=Fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。

T=65536-N=65536-Fi/2/Fr=65536-1000000/2/Fr=65536-500000/Fr

低音DO的T=65536-500000/262=63627

中音DO的T=65536-500000/523=64580 高音DO的T=65536-500000/1047=65059

附表:音符与频率对应表

(“#”表示半音,用于上升或下降半个音)

表9.1 C调各音符频率与计数值T的对照表

音符 频率(Hz) 简谱码T值

低1DO 262 63628 #1DO# 277 63731 低2RE 294 63835 #2RE# 311 63928 低3M 330 64103 低4FA 349 64103 #4FA# 370 64260 低5SO 392 64260 #5SO# 415 64331 低6LA 440 64400 #6 466 64463

低7SI 494 64524 中1DO 523 64580

#1DO# 554 中2RE 578 FC9F;

#2RE# 622 中3MI 659 FD09; 中4FA 698 FD34

#4FA# 740 中5SO 784 FD82

#5SO# 831 中6LA 880 FDC8

#6LA# 932 中7SI 988 FE06

(2)节拍

每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍,下表为节拍码的对照。但如果1拍为0.4秒,1/4拍是0.1秒,只要设定延迟时间就可求得节拍的时间。假设1/4节拍为1DELAY,则1拍应为4DELAY,以此类推。

所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数,如下表为1/4和1/8节拍的时间设定。

表9.2 节拍码对照表

1/4节拍 1/8节拍

节拍码 节拍数 节拍码 节拍数

1 1/4拍 1 1/8拍 2 2/4拍 2 1/4拍 3 3/4拍 3 3/8拍 4 1拍 4 1/2拍 5 1又1/4拍 5 5/8拍 6 1又1/2拍 6 3/4拍 7 1又3/4拍 7 7/8拍

8 2拍 8 1拍

9 2又1/4拍 9 1又1/8拍 A 2又1/2拍 A 1又1/4拍 B 2又3/4拍 B 1又3/8拍 C 3拍 C 1又1/2拍 D 3又1/4拍 D 1又5/8拍 E 3又1/2拍 E 1又3/4拍 F 3又3/4拍 F 1又7/8拍

节拍延时参考:

1/4拍的延迟时间 4/4 125ms 3/4 187ms 2/4 250ms 拍的延迟时间 62ms 94ms 125ms

曲调 1/8


单片机音乐中音调和节拍的确定方法(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:全国2012年10月高等教育自学考试软件开发工具试题和答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: