一、蜂鸣器的原理
蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。三极管的作用为驱动,通过三极管放大驱动电流,从而可以让蜂鸣器发出声音。
二、蜂鸣器声音的改变
改变单片机引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。
改变输出电平的高低电平占空比(改变高电平比上整个周期的时间),则可以控制蜂鸣器的声音大小
三、代码实现
#include "reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;
sbit beep = P1^5;
void delay(u16 i)
{
while(i--);
}
void main()
{
while(1){
beep = ~beep; //高低电平来回变换
delay(10);
beep = 1; //改变占空比,来控制声音大小
delay(10);
beep = 0;
delay(5);
}
}