51单片机学习笔记(蜂鸣器)

时间:2024-04-06 11:25:47

蜂鸣器简介

在单片机应用的设计上,很多方案都会用到蜂鸣器,大部分都是使用蜂鸣器来做提示或报警,比如按键按下、开始工作、工作结束或是故障等等。
自激蜂鸣器是直流电压驱动的,不需要利用交流信号进行驱动,只需对驱动口输出驱动电平并通过放大电路放大驱动电流就能使蜂鸣器发出声音,非常简单。

  1. 改变单片机引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。
  2. 改变输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小。

原理图

51单片机学习笔记(蜂鸣器)
电流从P15进入通过ULN2003D芯片到达BZ(无源蜂鸣器),ULN2003D芯片起到一个放大电流的作用,ULN2003D是大电流驱动阵列,可直接驱动蜂鸣器,继电器等负载。要使蜂鸣器发声只需要输出一定频率的脉冲。

以下为驱动蜂鸣器的程序

#include "reg52.h"  
#include<intrins.h>  

typedef unsigned int u16;   
typedef unsigned char u8;

sbit beep=P1^5;//定义蜂鸣器管脚

void delay(u16 i)
{
 while(i--); 
}

void Beep()//高低电平的变化使输出脉冲
{
      beep=~beep;//进行高低电平的转换,‘~’是取反符号
      delay(100);//延时
}

void main()
{
    while(1)
 {
     Beep();
 }
}

改变delay(i)中的参数i,可以改变音调,音色。
改变高低电平的占比可以改变声音的大小。
大家可以试着调出一个电子琴来哦