一.概述
蜂鸣器分压电式蜂鸣器和电磁式蜂鸣器。压电式蜂鸣器需要较高的电压(9V以上)才能驱动。而电磁式蜂鸣器只要1.5V-12V的直流电按极性连接就能发音,在DC5V电源下电流为20毫安左右,这个电流已经超过单片机一个IO口的最大承受能力,所以要设驱动电路。对于51单片机来说,只需接一个PNP型三极管来放大驱动电流即可。
二.电路设计
在WSF-51DB开发板上,利用PNP三极管S8550来驱动蜂鸣器。蜂鸣器设有电源开关(由两位贴片拨码开关SW-DIP的第2位控制)。如果蜂鸣器的驱动电压较高(超过5V),用一个电阻串联限流,可以提高蜂鸣器的使用寿命。
三.软件设计
/**************************************************************************
*程序名称:蜂鸣器驱动
*程序功能:发出不同音质的声音
* MCU型号:AT89S52-24PU
*时钟频率:12MHZ
**************************************************************************/
#include<reg52.h>
sbit buz=P1^0;
//延时ms函数:
void Delayms(unsigned int t)
{
unsigned int i,j;
for(i=t;i>0;i--)
for(j=0;j<120;j++);
}
//蜂鸣器发声函数:
void Buzzer(unsigned char f)
{
buz=0;
Delayms(f);//通过改变延时长短来改变蜂鸣器的音质
buz=1;
Delayms(f);
}
//主函数:
int main(void)
{
while(1)
{
Buzzer(75);
}
return 0;
}