单片机音符与频率的关系 - 图文 联系客服

发布时间 : 星期五 文章单片机音符与频率的关系 - 图文更新完毕开始阅读c025c304bed5b9f3f90f1c46

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

音符 频率HZ 6MHZ 十六进制值 音符 频率HZ 6MHZ 十六进制值

低1DO 262 64582 FC46 #4FA# 740 65198 FEAE #1DO# 277 64634 FC7A 中5SO 784 65217 FEC1 低2RE 294 64686 FCAE #5SO# 831 65235 FED3 #2RE# 311 64732 FCDC 中6LA 880 65252 FEE4 低3M 330 64779 FD0B #6LA# 932 65268 FEF4 低4FA #4FA# 低5SO #5SO# 低6LA #6LA# 低7SI 中1DO #1DO# 中2RE #2RE# 中3M 中4FA 利用单片机产生乐曲音符,进行信息处理1.音频脉冲的产生音乐的产生主要是通过单片机的鸣器发音,要想产生音频脉冲信号,需要算出某一音频的周期(将此周期除以每当计时到后就将输出脉冲的口反相,这样就能在此通常,利用单片机的内部定时器来产生不同的率。例如, 349 64820 370 64860 392 64898 415 64934 440 64968 466 65000 494 65030 523 65058 554 65085 578 65103 622 65134 659 65157 698 65178 ,再通过蜂鸣器或喇叭放出音乐。

2,即为半周期的时间。I/O口上得到此频率的脉冲。

12MHz FD34 中7SI 988 65283 FD5C 高1DO 1046 65297 FD82 #DO# 1109 65311 FDA6 高2RE 1175 65323 FDC8 #2RE# 1245 65335 FDE8 高3M 1318 65346 FE06 高4FA 1397 65357 FE22 #4FA# 1480 65367 FE3D 高5SO 1568 65377 FE4F #5S0# 1661 65385 FE6E 高6LA 1760 65394 FE85 #6LA# 1865 65402 FE9A 高7SI 1976 65409

再把乐曲音符翻译成计算机音乐语言, I/O口输出高低不同的脉冲信号来控制蜂1/频率)利用单片机定时器计时这个半个周期时间,I/O口反相,然后重复计时此半周期时间再对

0,工作在方式1下,改变计数初始值THO晶振,要产生频率为587Hz的音频脉冲时,FF03 FF11 FF1F FF2B FF37 FF42 FF4D FF57 FF61 FF69 FF72 FF7A FF81

,然后I/O和TLO其音

单片机产生乐曲的原理由单片机若单片机采用频信号的脉冲周期 T=1/587=1703.5775μs,半周期的时间为852μs,因此只要令计数器计数=852μs/1μs=852,在每计数852时将I/O口反相,就可得到C调中音Re。

计数脉冲值与频率的关系如下: 符 频率周期简谱码(定时初值) Hz 低1Do 262 低2Re 低3Mi 低4Fa 低5So 低6La 低7Si 294 330 349 392 440 494 us 3816 3401 3030 2865 2551 2272 2024 1912 1703 1517 1432 1275 1136 1012 63628 63835 64021 64103 64260 64400 64524 64580 64684 64777 64820 64898 64968 65030 音符 频率周期 简谱码(定时初值) Hz us 65058 65110 65157 65160 65217 65252 65282 高1Do 1047 955 高2Re 1175 851 高3Mi 1319 758 高4Fa 1397 751 高5So 1568 637 高6La 1760 568 高7Si 1967 508 中1Do 523 中2Re 中3Mi 中4Fa 中5So 中6La 中7Si

587 659 698 784 880 988 2 音乐节拍的产生

每个音符使用一个字节,字节的高四位代表音符的高低,低四位代表音符的节拍,表5-2为节拍与节拍码的对照表。如果1拍为0.4s,1/4拍是0.1s只要设定延迟时间就可求得节拍的时间。假设1/4拍为1个延迟单位时间,那么1拍对应的就是4个延迟单位时间,以此类推。所以只要求得1/4拍的延迟单位时间,其余的节拍就是它的倍数,表5-3为1/4拍和1/8拍的时间设定。

3.音乐软件的设计 1).音乐代码库的建立方法

(1)先找出乐曲最低音和最高音范围,然后确定音符表T的顺序。

(2)把T值建立在表1(TABLE1),构成发音符的计数值放在其中(TABLE1中)。 (3)简谱码(音符)为高4位,节拍(节拍数)为低4位,音符的节拍码放在程序的表处(TABLE处)。

(4)音符节拍码00H为音乐结束标记。 2).选曲

在一个程序中,需要演奏两首或两首以上歌曲时,音乐代码库的建立有两种方法: (1) 将每首歌曲建立相互独立的音符表T和发音符计数值表(TABLE)。 (2) 也可以建立共用的音符表T后,再写每首歌曲的发音计数值表(TABLE)

中的代码。

不管采用哪种方法,每首歌曲结束时,在发音计数值表(TABLE)中均需加上音乐结束符00H。 4.歌曲的设计

下面以歌曲《送别》的设计为例,讲述歌曲在单片机中实现自动演奏。歌曲《送别》如下所示: