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

相关推荐
UTP协同自动化测试4 小时前
物联网模组测试难点 |APP指令下发+UART 响应+GPIO 电平变化,如何一次性验证?
功能测试·嵌入式硬件·物联网·模块测试
yoyobravery6 小时前
蓝桥杯第15届单片机满分
单片机·职场和发展·蓝桥杯
4caf17 小时前
作业2:6位数码管静态显示
嵌入式硬件·51单片机
不做无法实现的梦~8 小时前
STM32解析PPM协议
stm32·单片机·嵌入式硬件
czhaii9 小时前
基于Arm Cortex-M7内核GD32H7
单片机·嵌入式硬件
番茄灭世神9 小时前
MCU开发常见软件BUG总结(持续更新)
c语言·stm32·单片机·嵌入式·gd32
wanghanjiett9 小时前
双轮平衡车建模及控制 2 PID控制原理与调参
嵌入式硬件·控制算法
EVERSPIN9 小时前
SQPI PSRAM为单片机提供RAM扩展方案
单片机·嵌入式硬件·psram·sqpi psram
Ar-Sr-Na9 小时前
STM32现代化AI开发指南-VSCode环境配置(macOS)
c语言·人工智能·vscode·stm32·嵌入式硬件·硬件工程
进击的小头10 小时前
第6篇:嵌入式芯片算力核心来源:多级流水线架构与指令并行机制详解
单片机·嵌入式硬件·架构