前言
本文旨在介绍如何使用51单片机驱动蜂鸣器。
一、有源蜂鸣器和无源蜂鸣器的区别
有源蜂鸣器是一种电子元件,它可以通过电源来发出声音,而无源蜂鸣器则是一种机械元件,它可以通过外力来发出声音。有源蜂鸣器可以发出更清晰的声音,而无源蜂鸣器发出的声音更加模糊。
有源蜂鸣器只需要控制电平的高低就可以驱动蜂鸣器,而无源蜂鸣器的操作相对来说会稍微复杂一点,需要控制其发出声音的频率和强度。
有源蜂鸣器:
无源蜂鸣器:
外表上有源蜂鸣器是有贴纸的而无源蜂鸣器是没有贴纸的,大家在购买时可以根据这个判断。
我们使用的板子上的蜂鸣器是无源蜂鸣器。
二、代码编写
板子蜂鸣器原理图如下:
驱动蜂鸣器是非常简单的,这里我们使用普中给的例程代码我就不做编写了。
只需要通过延时来产生一定的脉冲频率即可驱动无源源蜂鸣器。
#include "reg52.h" typedef unsigned int u16; //对系统默认数据类型进行重定义 typedef unsigned char u8; sbit BEEP=P2^5; //将P2.5管脚定义为BEEP /******************************************************************************* * 函 数 名 : delay_10us * 函数功能 : 延时函数,ten_us=1时,大约延时10us * 输 入 : ten_us * 输 出 : 无 *******************************************************************************/ void delay_10us(u16 ten_us) { while(ten_us--); } void main() { u16 i=2000; while(1) { while(i--)//循环2000次 { BEEP=!BEEP;//产生一定频率的脉冲信号 delay_10us(100); } i=0;//清零 BEEP=0;//关闭蜂鸣器 } }
总结
文章介绍了51单片机的硬件结构,以及如何使用51单片机的指令来控制蜂鸣器的发声,并且给出了实际的程序代码。