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

news2024/9/20 0:59:27

硬件电路

 软件编写

①发出声音

#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);
// 改变音色 修改它的频率
// 改变频率 周期的 高低的周期 就是 高低电平的时间

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/932475.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从探索到明确,比特币与美股等传统资产相关性如何?

早期阶段,比特币经历了一段摸索和模仿的时期,这是因为当比特币刚刚出现时,比特币的价值和用途在这一阶段并不明确,人们对其性质和潜力还不太了解。 然而,随着时间的推移,比特币去中心化、固定供应上限等特点…

jmeter 性能测试用 csv

⏩很多人在使用 jmeter 做接口测试、自动化测试和性能测试时,都喜欢用 CSV 数据文件设置功能,来读取准备好的测试数据。虽然这种方法并不是最优方案,在我们的性能测试课程中,讲解了更优的方案,但是,没有上过…

红蓝攻防:浅谈削弱WindowsDefender的各种方式

前言 随着数字技术的日益进步,我们的生活、工作和娱乐越来越依赖于计算机和网络系统。然而,与此同时,恶意软件也日趋猖獗,寻求窃取信息、破坏系统或仅仅为了展现其能力。微软Windows,作为世界上最流行的操作系统&…

关于JAVA程序的内存分布

目录 1.Java程序运行时内存说明 2.JVM内存划分 3.Java中数据类型 4.Java中的String 5.结合HelloWorld分析java程序内存分布 1.Java程序运行时内存说明 编写的.java程序文件需要java编译器javac转成.class文件,然后通过jvm(名为java的可执行程序&…

智慧能源助力绿色发展

居民生活是碳排放的重要贡献源,作为居民生活的主要场所,社区是低碳城市建设的重要空间载体。推动低碳社区建设,逐渐打造低碳生活方式,是低碳社会建设的重要内容之一。智慧新能源公共设施助力碳中和,用于各社区改造&…

【RuoYi移动端】uni-app如何发布h5网站?

一、登录D-Cloud开发者中心 开发者中心https://dev.dcloud.net.cn/二、创建应用 三、填写和提交创建应用 四、复制APPID

strcmp 的使用和模拟

目录 函数介绍: 头文件: 语法: 代码演示: 函数模拟: 函数介绍: strcmp是比较大小的函数。从字符串开始进行比较,如果两个相同位置的字符相同,那么继续往下进行比较,…

最大子数组和【贪心算法】

最大子数组和 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 class Solution {public int maxSubArray(int[] nums) {//记录最大结果&…

数据结构—循环队列(环形队列)

循环队列(环形队列) 循环队列的概念及结构循环队列的实现 循环队列的概念及结构 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。…

W25Q64 驱动--基于SPI2接口

前言 (1)本系列是基于STM32的项目笔记,内容涵盖了STM32各种外设的使用,由浅入深。 (2)小编使用的单片机是STM32F105RCT6,项目笔记基于小编的实际项目,但是博客中的内容适用于各种单片…

使用Miniconda

Conda是一个开源的包和环境管理器,使用它可以在同一台机器上安装不同版本的Python软件包和依赖了。Anaconda和Miniconda都集成了Conda,Anaconda包括更多的工具包,Miniconda则只包括Conda和Python。 在很奇葩的Deepin下Miniconda安装之旅 中,…

React + Next.js 搭建项目(配有对比介绍一起食用)

文章标题 01 Next.js 是什么02 Next.js 搭建工具 create-next-app03 create-react-app 与 create-next-app 的区别04 快速构建 Next.js 项目05 App Router 与 Pages Router 的区别 01 Next.js 是什么 Next.js 是一个 React 框架,它允许你使用 React 框架建立超强的…

sin(A)的意义

若存在矩阵A,则sin(A)表示对于矩阵A的每一个元素,进行对应的函数运算。 如:

LabVIEW软件安装包分享(附安装教程)

目录 一、软件简介 二、软件下载 一、软件简介 LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是由美国National Instruments(简称NI)公司开发的一款图形化编程工具,广泛应用于测试、测量和控制系统…

微信开放注册微信小号功能,工作人群福音!

微信,这个坐拥数亿用户的社交巨头,最近终于开放了注册微信小号的功能。这个功能对于需要多个微信账号进行工作的人来说,无疑是一场及时雨,极大地提高了工作便利性。 在之前的版本中,每个微信账号都绑定了一个手机号&am…

Docker架构及原理

一、Docker的架构图 二、底层原理 Docker是怎么工作的? Docker是一个Client-Server结构的系统,Docker守护进程运行在主机上, 然后通过Socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器。 容器&#xf…

【C++心愿便利店】No.3---内联函数、auto、范围for、nullptr

文章目录 前言🌟一、内联函数🌏1.1.面试题🌏1.2.内联函数概念🌏1.3.内联函数特性 🌟二、auto关键字🌏2.1.类型别名思考🌏2.2.auto简介🌏2.3.auto的使用细节🌏2.4.auto不能…

【java】【项目实战】[外卖五]菜品管理业务开发

目录 一、文件上传与下载 1.1 文件上传介绍 1.2 文件下载介绍 1.3 文件上传代码实现 1.3.1 新增upload.html 1.3.2 修改application.yml 1.3.3 CommonController 1.3.4 功能测试 1.4 文件下载代码实现 1.4.1 CommonController 1.4.2 功能测试 二、新增菜品 2.1 需…

VSCode下载安装使用

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

HTTPS协议加密原理

目录 一、什么是HTTPS 二、什么是加密/解密 三、为什么要加密 四、常见的加密方式 1.对称加密 2. 非对称加密 五、HTTPS加密方式探讨 1.只使用对称加密 2.只使用非对称加密 3.非对称加密对称加密 4.非对称加密对称加密CA认证 六、总结 一、什么是HTTPS HTTP 协议&a…