单片机学习-蜂鸣器如何发出声音

硬件电路

软件编写

①发出声音

复制代码
#include "reg52.h"
typedef unsigned int u16;   // 重新定义 类型
typedef unsigned char u8;	// 重新定义 类型

sbit BEEP = P2^5;  //定义 P2第五个管教  为BEEP 
// 延时函数
void delay_time(u16 times)
{

	while(times--);
}   

void main()
{
	u16 i = 2000;   // 为什么定义这个 i , 这个i  是 执行多少次频率
	while(1)
  	{
  		while(i--)	 // i 递减2000次  发出声音的时长
		{
		 	BEEP =!BEEP;  
			 // ! 逻辑非运算  BEEP默认有上拉电阻,P2^5 是高电平 使用非运算 BEEP为0 低电平	,等下一次循环还是为低 ,
			 // 低-高,一次循环  循环2000 次
			delay_time(200);   // 延时100ms
		}
		i =0;   
		// 2000次循环结束 将 i 清零
		BEEP = 0; 
		// 循环结束 将BEEP  为低电平 关闭蜂鸣器
  	}
}

BEEP =! BEEP 为何使用 非运算,这里面 P2 的管脚默认 有上拉电阻,P2^5 输出高电平

每次循环 非运算一下 为低电平 ,产生那种评率 0 1 0 1 0 1 循环下去

②改变音色

复制代码
BEEP = 0;
delay_time(100);
BEEP = 1;
delay_time(200);
// 改变音色 修改它的频率
// 改变频率 周期的 高低的周期 就是 高低电平的时间
相关推荐
知南x27 分钟前
【STM32MP157 异核通信框架学习篇】(10)Linux下Remoteproc相关API (下)
linux·stm32·学习
Aldrich_326 小时前
蓝桥杯嵌入式赛道—-软件篇(GPIO输出模式配置)
c语言·vscode·stm32·单片机·嵌入式硬件·蓝桥杯
Kisorge7 小时前
【电机控制】基于STM32F103C8T6的二轮平衡车设计——LQR线性二次线控制器(算法篇)
stm32·嵌入式硬件·算法
范纹杉想快点毕业9 小时前
《嵌入式开发硬核指南:91问一次讲透底层到架构》
java·开发语言·数据库·单片机·嵌入式硬件·mongodb
p66666666689 小时前
STM32-bootloader引导程序跳转机制笔记
笔记·stm32·嵌入式硬件
Fantasydg9 小时前
Servlet学习
学习·servlet
飞睿科技9 小时前
【芯片选型指南】乐鑫ESP32-C61核心能力解析:为何它在Wi-Fi 6物联网赛道中优势独具?
科技·嵌入式硬件·物联网·智能家居
雍凉明月夜10 小时前
Ⅰ人工智能学习的核心概念概述+线性回归(1)
人工智能·学习
一叶知秋0610 小时前
英集芯-IP5385 IIC通信异常原因深入分析及解决方案 21
单片机·嵌入式硬件
2301_7833601310 小时前
R语言 | 带重要性相关热图和贡献图如何解释?如何绘制随机森林计算结果重要性及相关性图?[学习笔记]
学习·随机森林·r语言