『51单片机』蜂鸣器

  • 🚩 WRITE IN FRONT 🚩       

  • 🔎 介绍:"謓泽"正在路上朝着"攻城狮"方向"前进四" 🔎
  • 🏅 荣誉:2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评百大博主、华为云享专家、阿里云专家博主、掘金优秀创作者、全网粉丝量8w+、个人社区人数累计4w+、全网访问量100w+ 🏅
  • 🆔 本文章内容由 謓泽 原创 如需相关转载请提前告知博主 ⚠
  • 📑 创作时间:2022 年 11 月 2 日 📅
  • 📝 个人主页:謓泽的博客 📃
  • 📣 专栏系列:【51单片机】系列_謓泽的博客📃
  • 🙌 Gitee:謓泽 (wsxsx) - Gitee.com ⭐️
  • 🎁 点赞👍+ 收藏⭐️+ 留言📝​
  • ✉️ 我们并非登上我们所选择的舞台,演出并非我们所选择的剧本 📩

简介

蜂鸣器是一种只能将电信号转换为声信号的器件,常用来产生设备的按键音、报警音等提示音。

蜂鸣器按照驱动方式可以分为有源蜂鸣器和无源蜂鸣器。

有源蜂鸣器:内部自带振荡源,将正负极街上直流电压(达到要求)即可持续发出声音,频率固定的。

无源蜂鸣器:内部不带振荡源,需要控制器提供振荡脉冲才可以持续发出声音。调整提供脉冲的振荡脉冲频率可以发出不同频率的声音的(设计的时候不能让无源蜂鸣器一直处于通电状态当中)开发板使用的就是无源蜂鸣器。

注→蜂鸣器只能发出一种鸣叫的声音(音色是只有一种的不能发出像其它乐理的声音)

驱动电路

NPN三极管⇢高电平触发。

PNP三极管⇢低电平触发。

注→在三极管的基极信号当中,这里的基极电阻的范围1k~10k都是可以的。

集成电路驱动:VCC连接了一个电阻再连接到蜂鸣器的一根引脚另一个脚的(BZ)的网络编号另一头连接到了五线四相步进电机(ULN2003)连接到OUT5(BZ)P15是单片机的引脚相当于控制信号。注:在这里的话给P15(高电平"1")的话是有驱动的,原因是里面有一个(非门)如下图原理图所示↓那么我们要让我们的单片机蜂鸣器响应也非常的简单我们给BZ低电平即可。

UN2003()﹣达令顿管阵列

乐理 

在学习蜂鸣器的同时我们也需要掌握一些基础的乐理这样我们就可以使用蜂鸣器来演奏不同的歌曲了。下面是钢琴键盘的无限谱对照表如下↓

降记号(b)表示将基本音级的音高降低半音,根据该记号所在的线或间而降音。

还原记号:表示把已经升高或降低的音还原。

升记号(#)表示将基本音级的音高升高半音,根据该记号所在的线或间而降音。

如下是音符,像我们最熟知的小⭐⭐基本以四分音符为一拍的。

我们可以列一个时间的基准值假设为0.5(s)那么二分音符就是1s、全音符就是2s。八分音符就是0.25(s)依次类推,从上述我们观察可以得出都是以2倍为β倍的。

红色框线中向上弯曲的曲线叫延音线,它可以将两个或两个以上相同音高的音符相连,在钢琴演奏时作爲一个音符,它的拍值等于这些音符的拍值总和。当然延音线也可以用向下弯曲的曲线表示。

音频与频率对照表 

通过上述的音频与频率对照表根据频率(HZ)的值可以控制定时器产生相应频率的计时。如何用单片机产生频率就可以用定时器+中断。

周期的单位(s):T = 1/f(频率) 由于转换的时间单位数值比较小(s)单位的话,那么我们把周期时间单位转换成(us)乘以10^6次方。

注⇢在这里周期/2(us)是因为一个周期的占空比是(50%)也就是半个周期的高电平以及半个周期的低电平。重装载值就是定时器当中计数值在这里总数是65535us减去的数字是溢出差值这个就是决定了它的一个音调频率的一个值了。在写程序的时候我们可以把这些存放进数组当中去。然后获取相对应的值放到定时器中断当中即可。如果对这个定时器不熟悉或者是忘了的话可以看博主前面的文章哟(●'◡'●)

蜂鸣器发声

让蜂鸣器响应发声的话特别容易我们只需要把IO口翻转一下即可。

#include <REGX52.H>
sbit Buzzer = P1^5;
int main(void)
{Buzzer=!Buzzer;
}

显然上述代码是不允许让蜂鸣器持续发生的,因为我们只是翻转了一次IO口相当于没有发出声音。所以我们需要用到循环和延迟保证让它翻转的时间够长。如下代码所示↓

#include <REGX52.H>
sbit Buzzer = P1^5;
void Delay(unsigned int xms)
{unsigned char i, j;while(xms--){i = 2;j = 239;do{while (--j);} while (--i);}
}
int main(void)
{unsigned int i;while(1){for(i=0;i<500;i++){Buzzer=!Buzzer;Delay(1);}}
}

在上述代码当中是每隔1ms可以翻转一次IO口电平。

周期时间为高电平1ms低电平1ms一个周期时间为2ms。频率f=1/T=500HZ。

这里循环1次是1ms。那么这里的i<500就会以500HZ的频率响应500ms。

同理如果我们改成i<100的话会以100HZ的频率响应100ms。

Buzzer模块化

#include <REGX52.H>
#include <INTRINS.H>//蜂鸣器端口:
sbit Buzzer=P1^5;/*** @brief  蜂鸣器私有延时函数,延时500us* @param  无* @retval 无*/
void Buzzer_Delay500us()		//@12.000MHz
{unsigned char i;_nop_();i = 247;while (--i);
}/*** @brief  蜂鸣器发声* @param  ms 发声的时长(ms),范围:0~32767* @retval 无*/
void Buzzer_Time(unsigned int ms)
{unsigned int i;for(i=0;i<ms*2;i++){Buzzer=!Buzzer;Buzzer_Delay500us();//f=1/1ms=1000HZ,一个时间周期翻转两次。}
}

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

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

相关文章

OpenHarmony实战:轻量级系统之配置其他子系统

除上述子系统之外&#xff0c;还有一些必要但是无需进行移植的子系统。如&#xff1a;分布式任务调度子系统、DFX子系统。 这些子系统添加方式比较简单&#xff0c;在“vendor/MyVendorCompany/MyProduct/config.json”文件中进行如下配置即可&#xff1a; {"subsystem&…

专有钉钉微应用埋点以及本地调试埋点总结

最近在对接浙政钉&#xff0c;稳定性监控、通用采集 SDK、基础埋点、基础埋点&#xff0c;每次发布上去&#xff0c;工作人员那边反馈抓取不到信息 稳定性监控代码、通用采集 SDK index.html <!-- 流量稳定监控 S 关于埋点上线打开--><script src"https://wpk-…

IDEA 中能提高开发效率的插件

目录 前言 插件 Rainbow Brackets AceJump POJO to JSON Json Helper MybatisX Maven Helper PlantUML Integration TONYYI Lingma 前言 IDEA 里又很多好用的插件可以帮助我们提升开发效率&#xff0c;这里罗列下自己开发过程中常用的插件&#xff0c;善于利用插件&…

【第十一届大唐杯全国大学生新一代信息通信技术大赛】赛题分析

赛道一 一等奖 7% 二等奖 15% 三等奖 25% 赛道二 参考文档&#xff1a; 《第十一届大唐杯全国大学生新一代信息通信技术大赛&#xff08;产教融合5G创新应用设计&#xff09;专项赛说明.pdf》 一等奖&#xff1a;7% 二等奖&#xff1a;10% 三等奖&#xff1a;20% 赛项一&am…

unity工程输出的log在哪里?

在编辑器里进行活动输出的log位置&#xff1a; C:\Users\username\AppData\Local\Unity\Editor\Editor.log ------------------------------------ 已经打包完成&#xff0c;形成的exe运行后的log位置&#xff1a; C:\Users\xxx用户\AppData\LocalLow\xx公司\xx项目

销售与营销的区别:从手中到心中

一、引言 在商界&#xff0c;销售和营销常常被视为同义词&#xff0c;但实际上它们各自扮演着不同的角色。简而言之&#xff0c;销售是将产品送到客户手里&#xff0c;而营销则是将产品送到客户心里。这种微妙的差异对于企业的成功至关重要。正如彼得德鲁克所说&#xff1a;“…

Redis安装-Docker

安装redis的docker容器 1、创建redis挂载目录 mkdir -p /liuchaoxu/redis/{data,conf}2、复制配置文件 在 /liuchaoxu/redis/conf 目录中创建文件 redis.conf&#xff0c;文件从 redis-6.2.7.tar.gz 中解压获取 修改默认配置(从上至下依次)&#xff1a; #bind 127.0.0.1 …

游戏引擎中的物理应用

一、 角色控制器 Character Controller和普通的动态对象&#xff08;Dynamic Actor &#xff09;是不同的&#xff0c;主要的三个特点是: 它拥有可控制的刚体间的交互假设它是有无穷的摩擦力&#xff08;可以站停在位置上&#xff09;&#xff0c;没有弹性加速和刹车几乎立即…

《QT实用小工具·十》本地存储空间大小控件

1、概述 源码放在文章末尾 本地存储空间大小控件&#xff0c;反应电脑存储情况&#xff1a; 可自动加载本地存储设备的总容量/已用容量。进度条显示已用容量。支持所有操作系统。增加U盘或者SD卡到达信号。 下面是demo演示&#xff1a; 项目部分代码如下&#xff1a; #if…

vue项目引入微信sdk: npm install weixin-js-sdk --save报错

网上查到要用淘宝的镜像 同事告知旧 域名&#xff1a;https://registry.npm.taobao.org/已经不能再使用 使用 npm config set registry http://registry.npmmirror.com

css心跳动画

图标引入 <img class"icon" src"heart.svg" alt"" srcset""> CSS代码 <style>.icon {animation:bpm 1s linear,pulse 0.75s 1s linear infinite;}keyframes pulse {from,75%,to {transform: scale(1);}25% {transform:…

极简云验证 download.php 文件读取漏洞复现

0x01 产品简介 极简云验证是一款开源的网络验证系统&#xff0c;支持多应用卡密生成&#xff1a;卡密生成 单码卡密 次数卡密 会员卡密 积分卡密、卡密管理 卡密长度 卡密封禁 批量生成 批量导出 自定义卡密前缀等&#xff1b;支持多应用多用户管理&#xff1a;应用备注 应用版…

智能仪器驱动企业数字化转型 迈向智慧未来!

在当今数字化时代&#xff0c;企业正面临着前所未有的挑战和机遇。为了在竞争激烈的市场中立足并实现可持续发展&#xff0c;数字化转型已成为企业的当务之急。智能仪器作为数字化转型的核心驱动力&#xff0c;以其卓越的性能和创新的技术&#xff0c;为企业开启了通向智慧未来…

C_C++数据的在内存中的分布

C/C内存分布 在编程世界中&#xff0c;C和C语言一直以其强大的性能和灵活性著称。然而&#xff0c;这种强大和灵活的背后&#xff0c;离不开对内存分布的深入理解和熟练掌握。本文将详细介绍C/C程序中的内存分布&#xff0c;包括栈、堆和全局变量的存储区域。下面是c/c中&…

基于OrangePi Zero2的智能家居项目(开发阶段)

智能家居项目的软件实现 紧接上文 基于OrangePi Zero2的智能家居项目&#xff08;准备阶段&#xff09;-CSDN博客 目录 一、项目整体设计 1.1项目整体设计 1.2具体划分 二、开发工作的前期准备 1、进行分类&#xff0c;并用Makefile文件进行管理 参考&#xff1a;自己创…

基于单片机的智能报站系统仿真设计

**单片机设计介绍&#xff0c;基于单片机的智能报站系统仿真设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的智能报站系统仿真设计概要是关于采用单片机技术实现公交车报站功能的系统设计概述。以下是对该设计的…

Unity 学习日记 13.地形系统

下载源码 UnityPackage 1.地形对象Terrain 目录 1.地形对象Terrain 2.设置地形纹理 3.拔高地形地貌 4. 绘制树和草 5.为地形加入水 6.加入角色并跑步 7.加入水声 右键创建3D地形&#xff1a; 依次对应下面的按钮 || 2.设置地形纹理 下载资源包 下载资源包后&#x…

vue2+element-ui 实现OSS分片上传+取消上传

遇到问题&#xff1a;项目中需要上传500MB以上的视频。一开始使用上传组件el-upload&#xff0c;调用后台接口&#xff0c;但是出现了onprogress显示百分百后接口一直pending&#xff0c;过了很多秒后接口才通&#xff0c;如果遇到大文件的话&#xff0c;接口就会报超时。 解决…

基于卷积神经网络的苹果等级分类系统(pytorch框架)【python源码+UI界面+前端界面+功能源码详解】

功能演示&#xff1a; 苹果等级分类系统&#xff0c;基于vgg16&#xff0c;resnet50卷积神经网络&#xff08;pytorch框架&#xff09;_哔哩哔哩_bilibili &#xff08;一&#xff09;简介 基于卷积神经网络的苹果等级分类系统是在pytorch框架下实现的&#xff0c;系统中有两…

redis 集群 (主从复制 哨兵模式 cluster)

目录 一 主从复制 &#xff08;一&#xff09;相关理论 1&#xff0c;主从复制定义 2&#xff0c;主从复制的作用 3&#xff0c;主从复制架构图 4 sync 同步过程 5&#xff0c;主从复制流程 &#xff08;二&#xff09; 实验模拟 1&#xff0c; 实验环境 2, 修…