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 。
计数脉冲值与频率的关系如下:
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. 歌曲的设计
下面以歌曲《送别》的设计为例,讲述歌曲在单片机中实现自动演奏。歌曲《送别》如下所示:
TABLE1:DW 64524,64580,64684,64777 ;7(低),1,2,3
DW 64820,64898,64968,65030,65058 ;4,5,6,7 ,1(高) TABLE:
DB 64H,42H,62H,98H DB 74H,92H,72H,68H
DB 64H,22H,32H,44H,32H,22H DB 3CH ;;;;
DB 64H,42H,62H,94H,04H,82H DB 74H,94H,68H
DB 64H,32H,42H,54H,04H,12H DB 2CH ;;;;
DB 74H,94H,98H DB 84H,72H,82H,98H
DB 72H,82H,92H,72H,72H,62H,42H,22H DB 3CH ;;;;;
DB 64H,42H,62H,94H,04H,82H DB 74H,94H,68H
DB 64H,32H,42H,54H,04H,12H DB 2CH ;;
DB 00H
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 。
计数脉冲值与频率的关系如下:
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. 歌曲的设计
下面以歌曲《送别》的设计为例,讲述歌曲在单片机中实现自动演奏。歌曲《送别》如下所示:
TABLE1:DW 64524,64580,64684,64777 ;7(低),1,2,3
DW 64820,64898,64968,65030,65058 ;4,5,6,7 ,1(高) TABLE:
DB 64H,42H,62H,98H DB 74H,92H,72H,68H
DB 64H,22H,32H,44H,32H,22H DB 3CH ;;;;
DB 64H,42H,62H,94H,04H,82H DB 74H,94H,68H
DB 64H,32H,42H,54H,04H,12H DB 2CH ;;;;
DB 74H,94H,98H DB 84H,72H,82H,98H
DB 72H,82H,92H,72H,72H,62H,42H,22H DB 3CH ;;;;;
DB 64H,42H,62H,94H,04H,82H DB 74H,94H,68H
DB 64H,32H,42H,54H,04H,12H DB 2CH ;;
DB 00H