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,改变高低电平持续的时间从而实现控制蜂鸣器发声的大小。

相关推荐
LCG元6 小时前
STM32项目实战:基于STM32F103的智能农业监控系统
stm32·单片机·嵌入式硬件
ACP广源盛139246256736 小时前
IX8024与科学大模型的碰撞@ACP#筑牢科研 AI 算力高速枢纽分享
运维·服务器·网络·数据库·人工智能·嵌入式硬件·电脑
智者知已应修善业7 小时前
【51单片机2个按键控制流水灯运行与暂停】2023-9-6
c++·经验分享·笔记·算法·51单片机
一起搞IT吧7 小时前
Android性能系列专题理论之十:systrace/perfetto相关指标知识点细节含义总结
android·嵌入式硬件·智能手机·性能优化
Truffle7电子8 小时前
STM32CubeIDE/Programmer/Touch GFX 应用
stm32·单片机·嵌入式硬件
constant_LDX9 小时前
步进电机开发(一、硬件设计)
单片机·嵌入式硬件
北山有鸟9 小时前
修改源码法和插件法
嵌入式硬件·学习
richxu202510019 小时前
嵌入式学习之路->stm32篇->(14)通用定时器(上)
stm32·单片机·嵌入式硬件·学习
Deitymoon9 小时前
STM32——串口通信(USART)
单片机·嵌入式硬件
iCxhust9 小时前
微机原理实践教程(C语言篇)---A002流水灯
c语言·开发语言·单片机·嵌入式硬件·51单片机·课程设计·微机原理