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

相关推荐
wanglong37131 小时前
Keil编译后自动重命名HEX文件
单片机·1024程序员节
iCxhust2 小时前
stm32f103c8t6 boot0设置
stm32·单片机·嵌入式硬件·1024程序员节
创界工坊工作室3 小时前
58-基于51单片机的多自由度机械手控制系统设计
stm32·单片机·嵌入式硬件·51单片机·proteus
思麟呀4 小时前
嵌入式入门(四)USART 串口深度解析:单片机第一次与电脑对话
c语言·单片机·嵌入式硬件·1024程序员节
BSD_HY4 小时前
薄膜开关分压网络接 MCU ADC:通道复用下的两个坑
单片机·薄膜开关·源头工厂
NamoAmitabha1284 小时前
BSP,板级支持包--deepseek
单片机·嵌入式硬件·fpga开发
小白今天也很酷4 小时前
MCXN947更新板载DAP_Link固件的方法
c语言·python·单片机·ubuntu·excel·1024程序员节
艾芯微科技12 小时前
HR911130C|汉仁 HANRUN 集成变压器千兆 RJ45 网口参数、电路、PCB 布线、替代与采购避坑
网络·单片机·嵌入式硬件·集成测试·51单片机
白搞电子13 小时前
ESP-Mosaico 黑胶轮滑动画与音乐编排:从设备原型到电脑预览工作台
单片机·嵌入式硬件
新晨单片机设计14 小时前
S028C-基于STM32单片机WIFI智能电表(温度)【Proteus仿真+Keil程序+原理图】
stm32·单片机·proteus·wifi智能电表