、音乐演奏原理
利用单片机的定时器定时,定时到后对单片机的某个引脚取反产生方波信号,初值不同,方波信号的频率不同,方波信号经过放大后送喇叭发出不同音调的声音。选某个乐谱,将每一个音的音调和音长按照一定的规则进行编码,组成编码数表。然后编写程序,从编码数表中连续读出各个音的编码,根据音调编码获得其频率,再由频率计算出定时器的定时初值,从某个引脚产生出对应频率的方波信号,在喇叭上发出对应频率的声音;再根据音长编码产生延时,从而连续播放出音乐。
2、乐谱单字节编码方法
(1)定时器0/1产生各种音频的方法
表1 为C调的发音频率表,给出了各个音的频率f,可以用定时器/计数器,定时产生对应频率的方波信号,将方波信号送给喇叭,便可使喇叭发出同频率的声音。定时初值x与发声频率f的关系如下:
由公式 t=(2n - x)×Tmc
式中 t=T/2、 T=1/f、 Tmc=12/fosc
n取16表示用模式1定时,Tmc为机器周期,fosc为晶振频率,因此初值x为:
x=65536-(1/f/2)×fosc/12
如果fosc=12Hz,则 x=65536-500000/f
表1 C音调发音频率表
C 调 |
5 |
6 |
7 |
1 |
2 |
3 |
4 |