蜂鸣器分为压电式蜂鸣器(无源,可控制音调、音量)和电磁式蜂鸣器(有源(内含振荡电路),已固定频率,大多改变不了音调、音量)。实验使用为前者。
实验原理:
IO口驱动能力较弱,连接三极管(TP1)放大电流以驱动蜂鸣器。
使无源蜂鸣器响起需要一定频率脉冲(1.5-5kHZ),使用循环交替输出高低电平且满足要求的频率范围即可。
改变频率-改变音调
改变输出电平占空比-改变声音大小
改变频率(周期)和改变循环次数-改变持续时间
完整代码:
#include "reg52.h"
typedef unsigned int u16;
void delay_10us(u16 ten_us);
sbit BEEP=P2^5;
void main()
{
u16 i=3333;
while(1){
while(i--){
BEEP=1;
delay_10us(321);
BEEP=0;
delay_10us(10);
}
i=0; //不再进入循环,停止响声
BEEP=0; //经转换后为实际输出为高电平,使蜂鸣器断电
}
}
void delay_10us(u16 ten_us) //延时函数
{
while(ten_us--);
}
实验结果:蜂鸣器响应如预期,修改参数后也如预期响应。