蜂鸣器如果一直在高或低电平是不会发声的,频率要在1.5kHz到5kHz
代码如下
cpp
#include "reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;
sbit BEEP=P2^5;
void delay_1(u16 ten){
while(ten--);
}
void main(){
u16 i=2000;//调节周期次数
while(1){
while(i--)
{
BEEP=!BEEP;//让BEEP在0和1之间来回切换
delay_1(100);//调节频率
}
i=0;//不让i变负
BEEP=0;//可以省略
}
}
调节声音大小需要把while(i--)里的程序变为如下
BEEP=0;
delay_1(50);
BEEP=1;
delay_1(150);
调节高电平持续时间,不过可能觉得不明显
如果在测试过程中觉得蜂鸣器过于响,可以按下开关把单片机暂时关一下