有黑键相隔它们
之间的距离就是半音。通常唱成1、2、3、4、5、6、7的音叫
自然音那些在它们的左上角加上号或者b号的叫变化音。
叫升记号表示把音在原来的基础上升高半音b叫降记音表示在原来的基础上降低半音。例如高音DO的频率1046Hz刚好是中音DO的频率523Hz的一倍中音DO的频率523Hz刚好是低音DO频率266Hz的一倍同样的高音RE的频
率1175Hz刚好是中音RE的频率587Hz的一倍中音
fRE的频率587Hz刚好是低音RE频率294Hz的一倍。节拍
节拍是让音乐具有旋律固定的律动而且可以调节各个音的快满度。“节拍”即Beat简单说就是打拍子就像我们听音乐不自主的随之拍手或跺脚。若1拍实05s则14拍为0125s。至于1拍多少s并没有严格规定就像人的心跳一样大部分人的心跳是每分钟72下有些人快一点有些人慢一点只要听的悦耳就好。音持续时间的长短即时值一般用拍数表示。休止符表示暂停发音。
1控制发声频率
要产生音频脉冲只要算出某一音频的周期1频率然后将此周期除以2即为半周期的时间。利用定时器计时这半个周期时间每当计时到后就将输出脉冲的IO反相然后重复计时此半周期时间再对IO反相就可在IO脚上得到此频率的脉冲。利用STC89C52RC的内部定时器使其工作在计数器模式MODE1下改变计数值TH0及TL0从而产生不同频率。此外结束符和休止符可以分别用代码00H和FFH来表示若查表结果为0x00则表示曲子终了若查表结果为0xff则产生相应的停顿效果。
以标准音高A为例A的频率是440Hz周期
T14402272us。在占空比为50的情况下导通时间断开时
f间半周期t2272us21136us利用P34端口的位操作经过不断地反相变换即可得到标准音高A的音频脉冲。端口导通时间与断开时的时间利用定时器实现。具体的方法是将单片机定时器的中断触发时间设为半周期t这样每隔半周期端口反相输出连续的对应音高的频率。
设晶振的频率为f0中断触发时间半周期为t定时器工作在模式1时计数器的初值为THL高8位为THL低8位为TL。时钟周期即为1f0定时器每一次累加用去一个机器周期一个机器周期包含12个时钟周期即定时器每次加一所用时间是12f0。定时器在模式1下计时采用16位数最大计数为216165535再次加一65536溢出触发中断。根据以上分析可得如下关系
音频对应定时器初值的高8位
THTHL2865536tf12256
音频对应定时器初值的低8位
TLTHL2865536tf12256
附八度12音阶定时器初值表只含自然音
低音音名频率Hz晶振
12MHz中音音名频率Hz晶振
12MHz
高音音名频率Hz晶振
12MHz
Do2620xF885Do5230xFC43Do10460xFE21Re2940xF95ARe5870xFCADRe11750xFEr