51单片机蜂鸣器应用

蜂鸣器

1.代码

c 复制代码
#include <reg51.h>
#include <intrins.h>
#define u16 unsigned int
#define u8 unsigned char 

sbit BEEP = P2^5;
void delay_50ms(u16 us) {
	while(us--);
}
void main() {
     u16 i = 2000;
	 while(1) {
		while(i--) {
//			BEEP = ~BEEP;
//			delay_50ms(100);		//延时1ms	低电平执行1ms,高电平执行1ms T = 1/0.001 = 1000hz
			BEEP = 0;
			delay_50ms(10);
			BEEP = 1;
			delay_50ms(190);
		}	
		i = 0;
		BEEP = 0;
	 }
}

2.原理图

3.蜂鸣器发声原理

蜂鸣器分为有源和无源蜂鸣器,而有源蜂鸣器发声给它接通电源就可以发声了,而无源蜂鸣器需要给它一个脉冲信号才可以发出声音,就是一个低电平一个高电平,这么一个脉冲信号,对于无源蜂鸣器来说想要蜂鸣器越响则通过占空比控制的,占空比就是在一个周期内,调整高电平与低电平持续的时间从而改变蜂鸣器声音的大小。

用来更改一个周期内高电平与低电平所持续的时间就是占空比,通过调节占空比从而达到控制蜂鸣器声音大小,在代码中调整高电平与低电平持续时间用延时函数控制,例如一个周期内持续时间是2ms,低电平是1ms,高电平是1ms,那么通过延时函数控制低电平延时时间是0.5ms,高电平是1.5ms,那么在一个周期内,低电平持续的时间是0.5ms,高电平持续的时间是1.5ms,改变高低电平持续的时间从而实现控制蜂鸣器发声的大小。

相关推荐
ytttr87318 小时前
基于STM32和W5500芯片的Modbus TCP协议栈实现
stm32·嵌入式硬件
上大科技蔡生18 小时前
CS5715:2.7V~26V宽输入,单节锂电池适用,最高36V输出,省掉电感电流检测电阻,软启动时间可调,异步升压DCDC控制器
单片机·嵌入式硬件·dcdc
CQ_YM19 小时前
51单片机(1)
单片机·嵌入式硬件·51单片机
qq_4017004119 小时前
单片机之ADC(模拟数字转换器)
单片机·嵌入式硬件
无事好时节19 小时前
51 单片机GPIO / 按键 / 中断 / 定时器 / PWM
单片机·嵌入式硬件
一枝小雨21 小时前
【OTA专题】17 打通Bootloader与App逻辑之间的通信
stm32·单片机·嵌入式·流程图·freertos·ota·bootloader
2401_863318631 天前
基于单片机的家庭防盗报警系统
单片机·嵌入式硬件
一枝小雨1 天前
【OTA专题】18 OTA性能优化:优化bootloader存储空间与固件完整性校验(CRC)
stm32·单片机·性能优化·嵌入式·freertos·ota·bootloader
iYun在学C1 天前
驱动程序(注册字符设备)
linux·嵌入式硬件
尼喃1 天前
PW2605Z,专为系统安全护航的高可靠性负载开关
stm32·单片机·嵌入式硬件