音调由声音的频率来决定,确定某一个音阶,比如DO的频率,就确定了音调。通过改变单片机输出脉冲高低电平的保持时间和频率,可以得到音阶和调节不同的音调。
比如C调的DO的声音频率是523Hz.如图采用单片机的定时器产生定时中断,利用定时器计时这半个周期时间T/2,每当计时到后,就将输出脉冲的电平反相,然后重复计时此半周期时间再对脉冲的电平反相,就可在I/O脚上得到DO的脉冲。单片机的I/O口上接蜂鸣器,输出方波信号即可发出DO的声音。
具体做法是:利用AT89S51的内部定时器TO使其工作在定时器模式方式l下,变化定时初值THO及TLO以产生不同频率的方法。当工作方式1时,定时延时时间的计算公式为:
定时延时时间=(65536-计数初值)×晶振周期x12或定时延时时间=(65536-计数初值)x机器周期例如中音DO:其周期的一半时间是T/2=1/s23/2=9s6us,因此只要令定时器计时956us时将脉冲的电平反相,就可得到中音D0(523Hz)。
若单片机的晶振选为12MHz.机器周期为1us,DO的声音频率是523hz,则956us=(65536-计数初值)xlus。故计数初值为(64579)D=(FC44)H
如果知道音调的频率如下“1”=523Hz、“2’’=587Hz、“3”=659Hz、“4’’=698Hz、“5”=784Hz、“6”=880Hz、“7”=987Hz
那么“2"的定时初值为:65536-12000000/24*587=FCADH
“3”的定时初值为:65536 -12000000/24*659=FDOAH
“4”的定时初值为:65536 -12000000/24*698=FD34H
“5”的定时初值为:65536 -12000000/24*784=FD83H
“6”的定时初值为:65536 -12000000/24*880=FDC8H
“7”的定时初值为:65536 -12000000/24*987=FE06H我们可以算出不同音调的初值,如下表所示。
本文关键字:单片机 电脑-单片机-自动控制,电子学习 - 基础知识 - 电脑-单片机-自动控制
上一篇:单片机音调DO的发声程序