51单片机11(蜂鸣器硬件设计和软件设计)

news2024/9/22 17:33:49

一、蜂鸣器硬件设计

1、

2、上面两张图,是针对不同产品的电路图。像左边这一块,是我们的A2,A3,A4的一个产品对应的一个封闭器的硬件电路。而右边的这一块是对应的A5到A7的一个硬件电路。因为A5到A7的一个产品,它的各个模块都是完全独立的,所以它的控制管脚都是通过这种排针的方式引出来。你要使用那个管脚控制都可以自由搭配。

3、我们先来看一下我们的这种集成的,所谓的集成就是说我们的板载的这个硬件资源,通通都绑定到了单片机的IO口,而我们人为是无法改变的,因为我们预先已经把它控制管脚连到了单片机的管脚上面,所以必须要在编程的时候,你要指定使用我们的这个电路的一个管脚。

4、那我们来看一下这个电路,前面我们已经对这个51单片机的IO口做了简单的介绍,并且还使用这个IO口来直接控制开发板上的一个LED,那对于本章的这个蜂鸣器实验控制,我们是不是还可以使用这个单片机的IO口,来驱动这个蜂鸣器直接发出声音,当然是不可以,因为我们的51单片机的IO口,它的驱动能力比较弱,前面我们在介绍这个P0,P1,P2,P3它的内部结构的时候,我们知道,它的内部虽然有一些上拉电阻,但是驱动能力比较弱即使你外部增加了这个IO,增加了上拉,它的驱动能力也不会提高很多,而且蜂鸣器呢,它的驱动通常是需要30个毫安。而我们单片机的IO口,它的驱动能力是不足这个的,所以非常困难,即使可以勉强驱动,对于整个芯片的其他IO,剩下的那个驱动能力那就更弱了。所以说,我们不会直接使用这种IO口来驱动蜂鸣器,也就是不会直接使用这种,比如说我们现在的单片机的P25管脚,我不会直接使用P25管脚来连到这个蜂鸣器管脚上面来控制它。这样是不可以的。我们会通过一些放大电路,比如说我们会使用三极管,把电流放大,然后再驱动这个蜂鸣器来发出声音,这样呢,我们的51单片机IO口,只需要很小的电流,比如说还不到1毫安的电流就可以的驱动我们的蜂鸣器来发出声音。所以这也是我们前面常说到的单片机,通常是用来做控制。记住我们的单片机通常是用来做控制的,而不是说做驱动的。驱动自然是有一些相应的驱动电路,我们的单片机只是用来做控制一些外部的驱动电路来实现我们的一些设备的一个运行。

5、那我们来看一下我们的集成板,像我们的A2到A4,它所使用的这个驱动电路是ULN2013这个芯片,这个芯片,我们后续会介绍一下这个芯片在我们学习电机的时候,我们会介绍这里,大家只要了解,通过这个芯片,可以驱动我们的蜂鸣器发出声音,此处,先不要了解,可以不了解这个ULN2013的一个使用,只知道这个P25管脚的输出高,那么对应的蜂鸣器输出管脚是对应的是低,也就是相当于一个非门一样的一个电路。那从这个图中,我们也可以知道,像蜂鸣器我们使用的是网络标号,是BEEP,然后对应到我们的原理图里面,这里也有个BEEP,说明它们之间是连接着的。而这个OUT 5管脚那对应着的输入也是IN5,所以是P25管脚来控制我们的蜂鸣器,这里看原理图也是这样去看。然后呢,我们对这个P25管脚,所以我们只可以使用P25管脚来输出一定频率的脉冲信号来控制我们蜂鸣器发出声音,当我们P25管脚输出高,这里就输出低,它这里就有电流,电压。低的话,那么这里就是高,这里就是截止,所以通过这么一个脉冲信号,可以使我们的蜂鸣器发出声音,这是我们的这个A2到A4的这一块的一个电路的一个介绍。

6、那我们对于A5到A7的产品,它是模块独立的引出来的控制拐角,是通过这个端子,也就是这个排针,那我们可以使用一条导线,将我们的这个P25管脚进行一个连接,这样就可以实现我们的软件通用。那么我们来分析一下这个硬件的一个电路,这里使用的是一个三极管PNP的一个三极管来进行一个电流的一个放大,那么当我们这个管脚输出一个低电平的时候,那么在这个PNP 3极管这里是它的一个设计。

7、此处我们使用的是无源蜂鸣器,所以它是需要一定频率的脉冲信号才能控制它发生,也就是你说的这个P25管脚,它要连续的输入这种波形的一个信号才可以,不仅仅是输一个高或者低就能让它发生,除非你这个蜂鸣器使用的是有源蜂鸣器。假设这个BZI是一个有源蜂鸣器,那当我们的这个管脚P25输出一个低电平的时候,那这里就有电源进来,根据我们的有源蜂鸣器的导通特性,它的一个特点,它只要有电源,它就会发出声音,所以这里直接就会响,那我输出高电平的时候,这里呢截止,它就没有电源,它就会停止发声,所以有源封闭性控制相对无缘封闭性来说更简单。它就相当于我们前面操作LED一样,只需要对它一个高低电平的一个输出。而无源供电器,它是需要一定频率脉冲信号,这一定频率脉冲信号是指P25,它需要连续输出,而不是说只输一下高或者低就行了。

二、蜂鸣器软件设计

1、本章所要实现的功能是:让蜂鸣器发出声音,一段时间后再关闭,即让管脚输出一定频率的脉冲信号(高低电平)控制无源蜂鸣器。

2、要编写这个封闭器的一个控制程序,首先我们要了解一下所要实现的功能,这个蜂鸣器也就是相当于让我们的这个管脚对应的原理图里面的P25管脚,产生一定频率的脉冲信号出来,然后控制这个蜂鸣器就可以发声了,然后一段时间之后我们再将P25管脚让它输出低或者是输出高都可以,因为它没有连续的信号。即使你低或者高,它都不会发出声音。这是我们的这个软件设计的一个功能需求,知道了这个功能需求了之后,那我们接下来就可以编写我们的一个蜂鸣器的一个代码。那我们怎么来编写呢。

3、首先,要让这个无源蜂鸣器进行发声,首先要让我们的管教输出一定频率的脉冲信号,才可以进行发声,那要产生一定频率的脉冲信号,顾名思义,就是要让这个P2.5管脚不断地输出高低这么一个波,那其实对应到我们前面的LED闪烁是不是一样的,我们LED闪烁,大家应该都记得,我们的是低电平点亮,高电平熄灭,相当于就是LED闪烁,只不过这个闪烁的时候,我们把这个时间缩短了,我们肉眼看到这个时间可能是很长,我们是450个毫秒,但是在这个蜂鸣器这里450个毫秒,它是不会发出声音的,他要求的是1.5到5k赫兹,当然误差一点也是可以的。那假设的我这1k赫兹的这个频率下面,让这个蜂鸣器发出声音。1k赫兹它这是频率周期,是频率的导数,所以相当于1毫秒,因此我们周期是1毫秒。那你低电平假设我的占功比是50%,占功比前面讲述了就是高电平所占据整个周期的一个时间,这就相当于多少0.5个毫秒对不对,这里也是0.5个毫秒,所以高电平让它输出0.5个毫秒,低电平让它输出0.5个毫秒,这样不断的输出,我们的蜂鸣器就能发声了。

4、下面我们就可以编写代码了

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

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

相关文章

排序算法3_冒泡排序、快速排序

一、冒泡排序 1.1 冒泡排序定义和思路 冒泡排序的基本思想是:通过相邻两个元素之间的比较和交换,使较大的元素逐渐从前面移向后面(升序),就像水底下的气泡一样逐渐向上冒泡,所以被称为“冒泡”排序。  在…

【YOLOv8】 用YOLOv8实现数字式工业仪表智能读数(二)

上一篇圆形表盘指针式仪表的项目受到很多人的关注,咱们一鼓作气,把数字式工业仪表的智能读数也研究一下。本篇主要讲如何用YOLOV8实现数字式工业仪表的自动读数,并将读数结果进行输出,若需要完整数据集和源代码可以私信。 目录 &…

王牌站士Ⅹ---人工智能中的数据隐私:PII 与个人信息

前言 今天,我将讨论如何区分美国和全球范围内不断涌现的数据隐私法所涵盖和不涵盖的数据类型。不同类型的数据受到更严格的保护,具体取决于司法管辖区,因此,如果您使用个人数据进行分析或机器学习,了解这一点很重要。…

痛心!不会用ChatGPT,差点错失一个亿

ChatGPT爆火这么久,今天我们也来聊聊GPT的玩法。等下,什么?你没听说过?没用过? 没听过没用过的朋友们,你们知道当我听到这回答的时候是多么痛心疾首吗? 为了让你们更直观的感受到,举个栗子,如果你用了GPT,就不需要抓耳挠腮的想方案了;如果你用了GPT,或许工作学习效…

MySQL 数据库 - 事务

MySQL 数据库(基础)- 事务 事务简介 事务 是一组操作集合,他是一个不可分割的工作单位,事务会把所有的操作看作是一个整体一起向系统发送请求,即这些操作要么同时成功,要么同时失败。 比如:张…

《Python数据科学之三:探索性数据分析与可视化》

《Python数据科学之三:探索性数据分析与可视化》 在数据科学项目中,探索性数据分析(EDA)和数据可视化是至关重要的步骤。它们帮助数据科学家理解数据的特征、发现数据中的模式和异常值,从而为后续的数据分析和机器学习…

python-29-零基础自学python-json、函数等存取用户数据+验证用户信息

学习内容:《python编程:从入门到实践》第二版 知识点: 如何验证用户、try-except-else处理异常 if判断、def方法及拆解方法 json引入、存储、读取 return none和return变量返回值很重要 answer 1 和answer “1”在使用后的区别 练习内容…

IDEA创建项目模块右边缺少Maven的解决

一、问题描述 我们在创建项目模块时,创建为Maven工程,创建后只是普通工程,idea右边缺少Mavenue标识管理 如图 二、问题的解决方法 在模块的pom.xml文件,点击选项,添加为Maven工程 如图 至此,创建maven工程…

2-34 小波神经网络采用传统 BP 算法

小波神经网络采用传统 BP 算法,存在收敛速度慢和易陷入局部极小值两个突出弱点。建立了基于遗传算法的小波神经网络股票预测模型 GA-WNN。该模型结合了遗传算法的全局优化搜索能力以及小波神经网络良好的时频局部特性。运用 MATLAB 对拟合和预测过程进行仿真。结果表…

COLING 2024 | AlphaFin:基于LLM的股票预测大模型,显著提高预测能力

COLING 2024 | AlphaFin:基于LLM的股票预测大模型,显著提高预测能力 发布于 2024-06-13 18:31:49 目前,机器学习和深度学习算法(ML&DL)已被广泛应用于股票趋势预测,并取得了显著进展。然而&#xff0c…

CSS在页面中使用的三种方式:行内样式、内嵌式样式表、链接式样式表

CSS样式如何在页面中使用,包含三种方式:行内样式、内嵌式样式表、链接式样式表。 CSS样式的使用系列博文: 《CSS在页面中使用的三种方式:行内样式、内嵌式样式表、链接式样式表》 《CSS选择器:基本选择器、复合选择器、…

Android TabLayout+ViewPager2如何优雅的实现联动详解

一、介绍 Android开发过程中,我们经常会遇到滑动导航栏的做法,之前的做法就是我们通过ViewGroup来转动,然后通过大量的自定义来完成,将导航栏item与viewpage 滑动,达到业务需求 二、现实方案 通过介绍,我…

Springboot 校园安全通事件报告小程序-计算机毕业设计源码02445

Springboot 校园安全通事件报告小程序系统 摘 要 随着中国经济的飞速增长,消费者的智能化水平不断提高,许多智能手机和相关的软件正在得到更多的关注和支持。其中,校园安全通事件报告小程序系统更是深得消费者的喜爱,它的出现极大…

揭秘|SSL证书年度费用:网络安全预算规划指南

在数字化时代,网络安全已成为企业不可或缺的一部分。对于任何在线业务而言,保护客户数据和维护网站安全至关重要。其中,SSL(Secure Sockets Layer)证书扮演着关键角色,它通过加密网站与用户之间的通信来确保…

[JS]Generator

介绍 Generator函数是 ES6 提供的一种异步编程解决方案, async是该方案的语法糖 核心语法 Generator对象由生成器函数返回, 并且它符合可迭代协议和迭代器协议 生成器函数在执行时能暂停, 后面又从暂停处继续执行 <script>// 1.定义生成器函数function* testGenerato…

前端实现一键复制功能

1、下载插件 npm i vue-clipboard32.0.0 2、在需要复制的文件中引入插件并使用&#xff1a; JS: import useClipboard from "vue-clipboard3"; const { toClipboard } useClipboard(); HTML: <el-tooltip content"复制内容" placement"top&…

继承和多态(上)

目录 继承 继承方式 切片&#xff08;切割&#xff09; 重定义&#xff08;隐藏&#xff09; 继承的6个默认成员函数 继承与友元&#xff0c;静态成员 菱形继承 菱形继承的冗余和二义性 继承和组合 继承 什么是继承&#xff1f; 是代码复用的一种手段。 语法&#xff…

生物科技食品公司企业网站模板带手机端:完整源代码包及搭建教程

系统概述 本模板设计秉承“科技引领健康&#xff0c;绿色塑造未来”的理念&#xff0c;融合生物科技的先进性与食品行业的健康属性&#xff0c;通过简洁大气的界面布局、清新自然的色彩搭配以及流畅的用户体验&#xff0c;展现企业的专业实力与品牌形象。无论是产品展示、企业…

Java 实验四:类和对象的应用

一、实验目的 1、掌握类的声明、对象的创建、方法的定义和调用、构造函数的使用。 二、实验环境 1、windows11; 2、JDK1.8,集成开发环境Eclipse。 三、实验内容 &#xff08;一&#xff09;定义一个表示学生信息的类Student ①类Student的成员变量&#xff1a; sNo …

Java 客户端操作 Redis 命令(端口号映射方法,命令演示,注意事项)

文章目录 开放端口号问题引入依赖验证连接通用命令使用set 和 get 命令的使用exists 和 del 命令的使用keys 命令的使用expire 和 ttl 命令type 命令的使用 String 类型命令使用mset 和 mget 命令getrange 和 setrange 命令append 命令incr 和 decr 命令 list 类型命令使用lpus…