单片机控制蜂鸣器

2019-04-15 17:56发布

一、什么是蜂鸣器
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。在单片机电路中一般作为报警、提示或者播放音乐用。下面放张实物图
二、蜂鸣器的分类
按结构原理分蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。
按工作方式分,蜂鸣器主要分为有源和无源。


三、有源蜂鸣器和无源蜂鸣器的识别
从上图看,两种蜂鸣器好像一样,但仔细看,两者的高度略有区别,有源蜂鸣器,高度为9mm,
而无源蜂鸣器的高度为8mm。如将两种蜂鸣器的引脚都朝上放置时,可以看出有绿 {MOD}电路板的一
种是无源蜂鸣器,没有电路板而用黑胶封闭的一种是有源蜂鸣器。进一步判断有源蜂鸣器和无源
蜂鸣器,还可以用万用表电阻档Rxl档测试:用黑表笔接蜂鸣器 "-"引脚,红表笔在另一引脚上来
回碰触,如果触发出咔、咔声的且电阻只有8Ω(或16Ω)的是无源蜂鸣器;如果能发出持续声音的,
且电阻在几百欧以上的,是有源蜂鸣器。
有源蜂鸣器直接接上额定电源(新的蜂鸣器在标签上都有注明)就可连续发声;
而无源蜂鸣器则和电磁扬声器一样,需要接在音频输出电路中才能发声。

注意:这里的""不是指电源,而是指震荡源。也就是说,有源蜂鸣器内部带震荡源,
所以只要一通电就会叫;而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。
必须用2K-5K方波去驱动它,所以有源蜂鸣器往往比无源,就是因为里面多个震荡电路。


四、蜂鸣器驱动电路
我在网上找了几个驱动电路,基本上单片机的驱动电路都是这样搭建的,大家参考下吧




五、蜂鸣器驱动程序 由于本人的驱动电路是焊接的是有源蜂鸣器,所以驱动程序如下: #include sbit beep=P0^1; void main(void) { beep=1; }
若是无源蜂鸣器
#include sbit beep=P0^1; //延时约250us void delay(void) { unsigned char i; for(i=0; i<125; i++) { ; } } void main(void) { while(1) { beep=1; delay(); beep=0; delay(); } }