|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
引言! D1 Q: N( z! N$ x# N& t
当前的很多用单片机实现音乐演奏的系统都是针对一 b8 h8 z/ ]3 n( f/ G
首曲子进行编码,然后查表播放,不能变调和变速。本文6 p% _# c" A2 @: N( D
提供一种方法可使音乐播放实现变调变速,电路简单,
& _% z) r! \; V6 A ?6 y7 N) e, A0
0 z- m) K* W. s% e m容易实现。." ?' b; v B, P) j
1基本原理9 U% c6 C- {5 g! J5 z: v4 g
乐谱中每一个音符都与某-个特定的频率相对应。6 f( s! V9 ^, |1 d
单片机音乐演奏控制通过控制内部定时器T0来产生不0 q' ]" t* M# T0 d0 I& L
同频率的方波,从而驱动喇叭发出不同音符的声音。发
/ @$ q) L& p+ t, t6 \3 C8 E音的长短时间用定时器T1来控制。把谱中的音符对应/ b& |' W, m( F. {) J$ K n
的频率转换成定时器TO常数,相应的节拍变为T1常- @* g) Y e. r; l* t! X
数。通过对歌谱编码,来到不同的表里查出对应的调式、; I* y* a. |" O- ~( F% R
速度、声音的频率及节拍,然后根据所查的结果到相对/ S- s! x7 V7 b0 [" m$ u
应的存储器中取出这些常数送入定时器。
6 j7 d6 k9 u. ^1 O% r4 P) T4 T因为C.D等各调之间是移位的关系,即C调的2
, b" H( ]% P: |3 l是D调的1,因此可以制成--个表,把C调各音符对应
7 F% Q" l& Y2 a6 Q4 @2 b# e. E) q的频率常数值存到表中,再通过上面的移位关系计算偏* c, c: A' N6 g; B: H) E1 M
移地址去提取所要的频率常数值。
6 L4 k# A) z! t4 V$ r4 y7 [# X2 ]# T3 a7 X& m( I" J
0 ^3 D$ o' Q. l% D5 `
|
|