|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
引言; R0 g+ M$ q# Z4 T0 m
当前的很多用单片机实现音乐演奏的系统都是针对一+ R2 o( G6 H9 P/ ?
首曲子进行编码,然后查表播放,不能变调和变速。本文2 [" i9 p% C; D3 J+ n4 J; M+ L% P
提供一种方法可使音乐播放实现变调变速,电路简单,7 o: V) K" L# k9 v8 F; R* ^0 k( e) e0 R
06 C2 Y* g& b; G7 a
容易实现。.
. ^, \; }( l- n' _7 m1基本原理4 O" z# g, S5 w: X) ^+ `
乐谱中每一个音符都与某-个特定的频率相对应。
P; I3 l$ b/ c/ V单片机音乐演奏控制通过控制内部定时器T0来产生不+ Y z5 E1 C+ q8 x/ |* H
同频率的方波,从而驱动喇叭发出不同音符的声音。发# y* f, r& `+ j' [2 U
音的长短时间用定时器T1来控制。把谱中的音符对应3 {& S" x+ x7 k1 z
的频率转换成定时器TO常数,相应的节拍变为T1常' A/ _! W3 A1 n5 `! }* D) M* z: _
数。通过对歌谱编码,来到不同的表里查出对应的调式、& r3 R$ j L" N% `& b
速度、声音的频率及节拍,然后根据所查的结果到相对
9 r( P0 T8 K3 S2 z; j# p& E3 k应的存储器中取出这些常数送入定时器。7 W1 u; s& S) K" Y! p( P
因为C.D等各调之间是移位的关系,即C调的2 s9 n# J) p+ J0 q9 i! ?& x
是D调的1,因此可以制成--个表,把C调各音符对应
$ y5 a' c9 U ]7 |的频率常数值存到表中,再通过上面的移位关系计算偏1 @' O( i7 H6 c3 U& U
移地址去提取所要的频率常数值。! d% ~: d0 ^0 `' A
0 E( t7 U9 v& M/ H: w. M
7 k5 ?. f; a: u9 F& W1 S# w
|
|