普中51单片机学习笔记——蜂鸣器

蜂鸣器如果一直在高或低电平是不会发声的,频率要在1.5kHz到5kHz

代码如下

cpp 复制代码
#include "reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;
sbit BEEP=P2^5;
void delay_1(u16 ten){
	while(ten--);
}
void main(){
	u16 i=2000;//调节周期次数
	while(1){
		while(i--)
		{
			BEEP=!BEEP;//让BEEP在0和1之间来回切换
			delay_1(100);//调节频率
		}
		i=0;//不让i变负
		BEEP=0;//可以省略
	}
}

调节声音大小需要把while(i--)里的程序变为如下

BEEP=0;

delay_1(50);

BEEP=1;

delay_1(150);

调节高电平持续时间,不过可能觉得不明显

如果在测试过程中觉得蜂鸣器过于响,可以按下开关把单片机暂时关一下

相关推荐
来两个炸鸡腿4 分钟前
【Datawhale2603】happy-llm task04 Encoder-Decoder预训练
人工智能·学习·大模型
zhouping@12 分钟前
Java学习笔记day04
java·笔记·学习
plOUGhh17 分钟前
【Redis学习笔记】(二)短信登录+商户查询缓存
笔记·学习
yangpan01122 分钟前
colmap调试学习(二)--feature_matching
学习
GLDbalala24 分钟前
GPU PRO 5 - 1.1 Per-Pixel Lists for Single Pass A-Buffer 笔记
笔记
载数而行52027 分钟前
QT系列,对象树 栈和堆 QDebug以及日志打印
c++·qt·学习
red_redemption31 分钟前
自由学习记录(127)
学习
庭前云落33 分钟前
从零开始的OpenZeppelin学习 2| ERC20-permit、erc20pausable
学习·区块链
SCBAiotAigc35 分钟前
2026.3.7:具身智能之51单片机<二>:ISP烧录过程
c++·人工智能·单片机·嵌入式硬件·51单片机·c
zyb114758243341 分钟前
Redis的学习
数据库·redis·学习