C51单片机控制蜂鸣器:实现简单的警报功能

在单片机应用上,蜂鸣器可以作为报警信号或者提示信号

单片机控制蜂鸣器发声的基本原理和方法:只需对驱动口输出驱动电平并通过放大电路放大驱动电流就能使蜂鸣器发出声音。改变引脚的频率,就可以调整蜂鸣器的音调,产生各种不同的声音。
同时改变输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小。
 

开发板模块原理图

   

以下为驱动蜂鸣器的程序:

#include "reg52.h"                          //此文件中定义了单片机的一些特殊功能寄存器

typedef unsigned int u16;              //对数据类型进行声明定义

typedef unsigned char u8;

sbit beep=P1^5;//定义蜂鸣器的引脚

void delay(u16 i)
{
 while(i–); 
}

void Beep()
{
      beep=~beep;//进行高低电平的转换
      delay(100);//延时
}

void main()
{
    while(1)
 {
     Beep();
 }
}
由开发板按键K1控制蜂鸣器声响,K2控制响停:

源码如下

#include "reg52.h"                          //此文件中定义了单片机的一些特殊功能寄存器

typedef unsigned int u16;              //对数据类型进行声明定义

typedef unsigned char u8;

sbit k1=P3^1;                                   //定义按键连接                                       

sbit k2=P3^0;

sbit beep=P1^5;                               //定义蜂鸣器连接

u8 start=0;

void delay(u16 i)                              //延时函数

{      while(i–);        }

void sound()

{      u8 i=100;

        while(i–)

        {      beep=~beep;

                 delay(100);             

}

}

void keypros()                                  //检测按键函数

{      if(k1==0)                                  //如果K1按下(开始)

        {      delay(1000);

                 if(k1==0)

                         start=1;           

                 while(!k1);                       //等待键释放 

    }

        if(k2==0)                              //停止

        {      delay(1000);

                 if(k2==0)

                         start=0;                    //建立开始标志

                 while(!k2);                       //等待键释放 

}

}

void main()

{      while(1)

        {      keypros();

                 if(start==1)

                         sound();

                 else

                         beep=1;                            //如果按下K2键(start=0),蜂鸣器停响

        }              

}

物联沃分享整理
物联沃-IOTWORD物联网 » C51单片机控制蜂鸣器:实现简单的警报功能

发表评论