|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
引言2 q' v% f# L. j& _' C, Y" n
当前的很多用单片机实现音乐演奏的系统都是针对一) H ], {8 O. H" y% }
首曲子进行编码,然后查表播放,不能变调和变速。本文
6 G d, O" f% ~! [提供一种方法可使音乐播放实现变调变速,电路简单,: B9 q) ]& F( o
0 v+ O1 h( r+ V$ R" [! x
容易实现。., u' A: y1 a& J* o7 C2 E9 {% G
1基本原理" C6 X* s) C! L
乐谱中每一个音符都与某-个特定的频率相对应。0 Z( ?" d% K- d. f! a: p5 D( @
单片机音乐演奏控制通过控制内部定时器T0来产生不
* H; q' X9 k/ f* l0 h/ p6 M同频率的方波,从而驱动喇叭发出不同音符的声音。发
7 a; s0 c l. S' [% k4 H: `音的长短时间用定时器T1来控制。把谱中的音符对应
/ P" I+ k! l. O8 E! d6 Q! c# t* T的频率转换成定时器TO常数,相应的节拍变为T1常4 j: @! W( S0 q0 m0 ]5 o
数。通过对歌谱编码,来到不同的表里查出对应的调式、4 j7 g! E7 e ~
速度、声音的频率及节拍,然后根据所查的结果到相对$ W J- [5 ?' L0 u( J5 {; f7 a5 q
应的存储器中取出这些常数送入定时器。
2 u. c$ ?7 D' Q: w3 ]因为C.D等各调之间是移位的关系,即C调的2* V& A! A3 f/ {4 [1 ^; {) E: F
是D调的1,因此可以制成--个表,把C调各音符对应: H* S a) w0 F" ]) j4 z
的频率常数值存到表中,再通过上面的移位关系计算偏' \# ^% S" Z# g. r( Y" l8 c
移地址去提取所要的频率常数值。, \* H, L7 `. E- _, G1 d
" W6 q& |) ?1 @! c0 s7 @$ p
$ H1 O' H! Z( }. c6 \ |
|