51单片机:05_蜂鸣器

157 阅读1分钟

蜂鸣器

采用直流电压供电、用于发声。 主要分为压电式蜂鸣器、和电磁式蜂鸣器。 电磁式蜂鸣器:需要提供脉冲信号。 压电蜂鸣器:只需要提供电源。 开发板使用的是压电蜂鸣器

程序

硬件电路分析

1.png

2.png

由电路图可知 使用 ULN2003D 放大电流。 蜂鸣器一端已经接入VCC、所以BZ需要输入0(由ULN2003D电路图可知、取反)-》P25(原理图上写错了 不是P15)输入1。 并且蜂鸣器需要连续输出信号。(代码写while里) 输出1KHZ的声音、1ms 分为 1和0、1 0.5毫秒、0 0.5毫秒

代码实现

1.让蜂鸣器发声2秒、停止2秒、循环...

#include <REGX52.H>
#include "Delay.h"

typedef unsigned char u8;
typedef unsigned int u16;

sbit BEEP = P2^5;


void delay_10us(u16 ten_us){
	while(ten_us--);
}
/**
	*
	* @brief 1KHZ响两秒
	* @param
	* @retval
	*/
void BZ2S(){
	u16 i=0;
	//1s
	while(i<2000){
		BEEP=!BEEP;
		//延时越低 音调越高
		delay_10us(50);
		i++;
	}
	//1s
	i=0;
	while(i<2000){
		BEEP=!BEEP;
		//延时越低 音调越高
		delay_10us(50);
		i++;
	}
}

void main()
{
	u8 flg = 1;
	while(1)
	{
		BZ2S();
		BEEP = 0;
		Delay(2000);
	}
}