您当前的位置:五五电子网电子知识电子学习基础知识电脑-单片机-自动控制单片机发声音调 正文
单片机发声音调

单片机发声音调

点击数:7901 次   录入时间:03-04 12:00:35   整理:http://www.55dianzi.com   电脑-单片机-自动控制

  音调由声音的频率来决定,确定某一个音阶,比如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我们可以算出不同音调的初值,如下表所示。

42825




本文关键字:单片机  电脑-单片机-自动控制电子学习 - 基础知识 - 电脑-单片机-自动控制