蜂鸣器分为有源和无源,这个源是震荡源。
有源的直接给高电平就可以响(也有低电平驱动)。
无源的还需要通过给一个持续到震荡源才能作用。
51单片机开发板上的蜂鸣器通常是无源的。以下是蜂鸣器发声程序。
#include<reg51.h>
sbit beep = P1^5; //定义P1_5为蜂鸣器端口
void delay(unsigned int i) //延时程序
{
while(i--);
}
void main() //主程序
{
while(1) //while无限循环
{
beep = ~beep; //蜂鸣器程序取反
delay(100);
}
}
注意:如果程序烧录完后蜂鸣器未起作用,请检查开发板原理图上 蜂鸣器连接的I/O口,上面程序中蜂鸣器连接的是P1^5。
以下是我的开发板上的原理图,蜂鸣器的BEEP连接口并非是直连单片机I/O口,而是通过ULN2003模块IN5口输入连接。