一、蜂鸣器工作原理
蜂鸣器被广泛应用到电子产品中,主要用来报警或指示内容。蜂鸣器按结构来分,主要分为两大类:压电式蜂鸣器和电磁式蜂鸣器。
按激励方式来分,又分为有源蜂鸣器和无源蜂鸣器。有源蜂鸣器只需接上电源,就会发出蜂鸣声。而无源蜂鸣器,则必须通过外部不断给予蜂鸣器方波才能发出蜂鸣声。
(1)无源蜂鸣器发声原理
无源他激型蜂鸣器的工作发声原理是:方波信号输入谐振装置,然后转换为声音信号输出。它的工作发声原理图如下:
(2)有源蜂鸣器发声原理
有源自激型蜂鸣器的工作发声原理是:直流电源输入,经过振荡系统的放大取样电路,在谐振装置作用下产生声音信号。它的工作发声原理图如下:
二、STC15W408AS控制蜂鸣器报警电路
在本例中,我们使用单片机的第15脚(P3.4)来控制蜂鸣器的发声。为简单起见,我们在电路中使用有源蜂鸣器。
三、单片机控制蜂鸣器输出
在本例中,由于使用的是有源蜂鸣器,只需给蜂鸣器接通电源就可发出蜂鸣声。因此,要控制蜂鸣器发出声音,只需要控制蜂鸣器的电源接通与断开。根据电路原理可知,当控制脚输出为高电平时,蜂鸣器不响,当控制脚输出为低电平时,蜂鸣器发出蜂鸣声。
四、蜂鸣器控制脚的配置
同用单片机控制LED灯的亮灭类似,我们要控制蜂鸣器,也是要将单片机的控制脚配置为输出脚。
下面是本例中单片机蜂鸣器控制脚的配置代码:
#define Pin_BEEP P34
#define Pin_BEEP_M1 P3M1
#define Pin_BEEP_M0 P3M0
#define Pin_BEEP_BIT BIT3
#define PinBeep_High() Pin_BEEP=1
#define PinBeep_Low() Pin_BEEP=0
void PinBEEP_DirOut(void);
//将蜂鸣器配置为输出
void PinBEEP_DirOut(void)
{
Pin_BEEP_M1 &=~Pin_BEEP_BIT;
Pin_BEEP_M0 |=Pin_BEEP_BIT;
}
五、单片机蜂鸣器控制输出代码
在本例中,当按键被按下时,蜂鸣器响;反过来,当按键松开时,蜂鸣器不响。
下面是单片机控制蜂鸣器输出的代码:
PinBEEP_DirOut(); //将控制脚配置为输出
PinBeep_High(); //初始时,控制脚输出高电平,蜂鸣器不响
while(TRUE)
{
if(GetKey_High()) //如果按键没按下
{
PinBeep_High(); //蜂鸣器不响
}else{
PinBeep_Low(); //反之,蜂鸣器发声
}
}
全部0条评论
快来发表一下你的评论吧 !