- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机产生音乐原理说明
音乐模块部分
单片机发音原理:单片机演奏音乐基本是单音频率,它不包含相应幅度的谐波频率,也就是说不能象电子琴那样能奏出多种音色的声音,但一定要弄清楚两个概念即可,也就是“音调”和“节拍” 。
·音调 表示一个音符唱多高的频率。
·节拍 表示一个音符唱多长的时间。
下面,就此两点,阐述说明:
一、音调
在音乐中所谓“音调”,其实就是我们常说的“音高”。在音乐中常把中央C上方的A音定为标准音高,其频率f=440Hz,其余与其比较。f1和f2为两个音符,当这两个音符的频率相差一倍时,也即f2=2×f1时,则称f2比f1高一个倍频程。
在音乐中1与,2与……,正好相差一个倍频程,在音乐学中称它相差一个八度音。在一个八度音内,有12个半音。以1—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个音阶的分度基本上是以对数关系来划分的。如果我们只要知道了这十二个音符的音高,也就是其基本音调的频率,我们就可根据倍频程的关系得到其他音符基本音调的频率。
2.确定一个频率所对应的定时器的定时初值的方法
以标准音高A为例:
标准音高A的频率f = 440 Hz,其对应的周期为:
T = 1/ f = 1/440 =2272μs
因此,需要在单片机I/O端口输出周期为T =2272μs的方波脉冲,如下图所示。
由上图可知,单片机上对应喇叭的I/O口来回取反的时间应为:
t = T/2 = 2272/2 = 1136μs
此处分两种方式叙述,请比较选用,其实结果相同:
Ⅰ.这个时间t也就是单片机上定时器应有的中断触发时间。一般情况下,单片机奏乐时,其定时器为工作方式1,它以振荡器的十二分频信号为计数脉冲。设振荡器频率为f0,则定时器的予置初值由下式来确定:
t = 12 ×(TALL – THL)/ f0(假如是STM8,注意其计数方式)
式中,TALL = 216 = 65536,THL为定时器待确定的计数初值。因此定时器的高低计数器的初值为:
TH = THL / 256 = ( TALL – t× f0/12) / 256
TL = THL % 256 = ( TALL – t× f0/12) %256
将t=1136μs代入上面两式(注意:计算时应将时间和频率的单位换算一致),即可求出标准音高A在单片机晶振频率f0=12Mhz,定时器在工作方式1下的定时器高低计数器的预置初值为 :
TH440Hz = (65536 – 1136 * 12/12) /256 = FBH
TL440Hz = (65536 – 1136 * 12/12)%256 = 90H
根据上面的求解方法,我们就可求出其他音调相应的计数器的予置初值。
Ⅱ.假设单片机晶振频率f0=12Mhz,定时器在工作方式1
计数脉冲值与频率的关系为:
N=FI ÷2÷FR
其中 N——计数值;
FI——内部计时一次为1us,故其频率为1MHz;
FR——要产生的频率。
其计数值的求法为:
T=65536-N=65536-FI ÷2÷FR
则标准音高A(频率f = 440 Hz)的计数值为:
T=65536-N=65536-FI ÷2÷FR
=65536-1000000÷2÷ FR =65536-500000/440=65536-1136=64400=0FB90H
下面给出C调各音符频率值和定时器定时初值:(晶振频率f0=12Mhz,定时器在工作方式1)
表1 C调各音符频率值和定时初值对照表
C调音符 频率Hz 262
1.90ms 277
1.81 293
1.7ms 311
1.61 329
1.51ms 349
1.43ms 370
1.35 392
1.28ms 415
1.20 440
1.14ms 466
1.07 494
1.01ms TH/TL
Stm8: F88B
F894
076C F8F2
0712 F95B F95C
06A4 F9B7
064A FA14
FA1A
05E6 FA66
FA6A
0596 FAB9
0546 FB03
FB00
0500 FB4A
04B0 FB8F
FB8C
0474 FBCF
042E FC0B
FC0E
03F2 C调音符 1
1# 2 2# 3 4 4# 5 5# 6 6# 7 频率Hz 523
0.95ms 553
0.91 586
0.85 621
0.81 658
0.76ms 6
文档评论(0)