单片机怎样控制蜂鸣器发出不同频率

单片机怎样控制蜂鸣器发出不同频率?
C语言程序怎样编?
可不可以举例说明?

我这里有现成的程序,把分给我,留下信箱,我就给你发过去,呵呵。我利用软件定时和中断方式都有,可以演奏音乐,不过蜂鸣器演奏的实在够难听。

看来楼主对程序不感兴趣,我还是告诉你吧,你定时必须知道准确的定时时间,音乐中DO RE MI-----SI都是有一定的频率也就是Hz,都如下:
c1:262Hz--thtl=0xf8b3
d1:294Hz--0xf972
e1:330Hz--0xfa14
f1:349Hz--0xfa66
g1:392Hz--0xfb03
a1:440Hz--0xfb8f
b1:494Hz--0xfc0b
前面是HZ,后面是我用硬件定时得到的TH和TL的值。
比如你想发C1的音,先用软件定一个262*2Hz的延时反复调用,在一个周期内使buzzer响,再接着一个周期使buzzer不响,如此反复就得到了262Hz的声音,也就类似发出了C1的声音。
反正是够难听的。追问

怎样定一个262*2Hz的延时反复调用

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-20
延时时间不同,频率不同,你可以写不同的delay()
第2个回答  推荐于2016-12-02
#include<reg52.h>
sbit beep=P10//蜂鸣器的io口
main()
{
int i
while(1)
{
i=125;
beep=0;
while(i--);
i=125;
beep=0;
while(i--);
}
}
写好了,改改,烧进去用吧!!
希望帮到你本回答被提问者采纳
第3个回答  2014-08-20
这个很简单,你用定时器控制不同的方波频率。我这儿有源代码,要的话可以给你参考一下
相似回答