求蜂鸣器指教

2019-07-15 23:43发布

如何让蜂鸣器发出1khz的稳定频率的声音,求指教
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
xiangyu6
2019-07-16 05:06
本帖最后由 xiangyu6 于 2013-7-13 20:38 编辑

采用定时器进行频率设置,1khz说明周期是1ms,那么设置高电平为500us,低电平为500us。
程序如下:
#include <reg51.h>
sbit beep = P1 ^ 0;
char num;
void main()
{
    TMOD = 0x01;                               // 设置定时器0为工作方式(M1M0为01)
    TH0 = (65536 - 500) / 256;           //自动赋初值 最高位 定时0.5ms
    TL0 = (65536 - 500) % 256;         //                          最低位
    EA = 1;                                          //开总中断,CPU中断开
    ET0 = 1;                                        //定时器0中断
    TR0 = 1;                                        //启动定时器0
    beep = 0x01 ;
    while(1) ;
}                                                         //程序停止在这里等待中断发生

void T0_time(void) interrupt 1             // 定时/计数器0溢出中断
{
    TH0 = (65535 - 500) / 256;            //重装初值
    TL0 = (65535 - 500) % 256;
    num++;
    if(num == 1)                                    //如果到了1次,说明0.5ms已到,num可以用来方便修改周期,间接修改频率
    {
        num = 0;
        beep = ~beep;                            //让蜂鸣器状态取反
    }
}

一周热门 更多>