江科大51单片机笔记【10】蜂鸣器(上)

news2025/3/11 5:54:03

一、蜂鸣器

1.原理

  • 蜂鸣器是一种将电信号转换为声音信号的器件,常同来产生设备的按键音、报警音等提示信号
  • 蜂鸣器按驱动方式可分为有源蜂鸣器和无源蜂鸣器(外观基本一样)
  • 有源蜂鸣器:内部自带振荡源,将正负极接上直流电压即可持续发声,频率固定
  • 无源蜂鸣器:内部不带振荡源,需要控制器提供振荡脉冲才可发生,调整提供振荡脉冲的频率,可发出不同频率的声音

我们开发板用的是无源蜂鸣器

以下三种符号都是蜂鸣器

低电平触发的蜂鸣器模块

2.驱动电路

  • 三极管驱动

左图是NPN,有图是PNP

以左图举例,当b口(R1所在口)给高电平时,三极管导通,即VCC接到蜂鸣器上,当b口(R1所在口)给低电平时,三极管截止,即蜂鸣器接地。三极管就相当于一个开关。相当于我们只用在b口给信号,驱动交给c口(VCC所在口)的VCC(我们指挥别人干活)。有图就是相反,给低电平导通,给高电平截止。

  • 集成电路驱动

我们单片机采用,因为单片机的IO口不能直接驱动蜂鸣器,就需要经过一个芯片(下面详细介绍)

3.ULN2003

达林顿晶体管就是两对三级管开关复合在一起,增大驱动能力

ULN2003是一个单片高电压、高电流的达林顿晶体管阵列集成电路,是由7对NPN达林顿晶体管组成的。此电路主要用于继电器驱动器,字锤驱动器等等

中间的三角带一个圈是非门,即给1输出0,给0输出1

一般情况下负载都是像红线这样接,只有给1经过非门输出0才能驱动

ULN2003一般用于驱动步进电机(在我们单片机就是驱动无线四相步进单片机 )

二、声乐部分(如何模拟乐谱的频率)

弹钢琴最主要的是音高和按的时长两部分

1.音高

每一组相同的音间隔相差八度

相邻两个音是半音的关系,这里的音指的是每个键上面的黑色部分和白色部分,都算一个音,即一个键算一个全音,一个键有两个半音,即黑白部分。(白色和白色相邻也是半音的关系)

相邻两个键是全音的关系

从左往右每一个组就是升高八度的关系,以中间的小字1组为例,右边的小字2组对应的音就是升高了八度,左边的小字组就是降低了八度

在简谱中降低一个八度就在下面标一个点,两个就标两个;升高一个八度就在上面标一个点,两个就标两个

黑白键的区分:“#”对应是升高,“b”对应是降低,如果在简谱中的数字头上左边标“#”,就弹数字对应的键上的右边部分,即升高半音

2.时长

横线就是表示的时长,横线占了一个拍子的时间,例:弹5的时间是弹6的时间的两倍

从左到右以此是

全音符,二分音符,四分音符(圈),八分音符,十六分音符,三十二分音符

一般是以四分音符为基准

如上图中的单个数字就是一个四分音符,后面带有一条横线的数字就是二分音符,如果是全音符就在后面加三条横线,这条线就叫增音线

但如果要表示八分音符,就得在数字下面加一条横线,这条线就叫减音线

3.看简谱

1= D是调号,就等于是D调,如果是C调的话全部都是弹白键,其他调才会用到黑键

4/4是拍号,从下往上读,叫以四分音符为一拍,每小节有四拍,一个竖线分割为一个小节,每一个小节都保证是四分音符

数字的右下边有一个点表附点,表示时长是该数字原本的时长+1/2(该数字原本的时长

数字的下边有横线就表示时长是该数字原本的时长-1/2(该数字原本的时长),如果相邻两个数字下边都有横线,就会把他们连接在一起

相邻数字的上边有线连接在一起叫延音线,代表是这两个音是一直按下去不放的

三、单片机知识

这三组就代表我们键盘上三个小节的音符,分别对应前面的小字组,小字组1,小字组2

也包括黑键,每一组刚好有十二个按键,刚好对上十二个频率  

我们以上图中低音6为基准(440hz),可以看到中音6(880hz)刚好是低音6的两倍,中间相隔十二个音符,这正好是以2的十二平分率

下面教怎么确认单片机产生的频率

我们利用定时器中断来产生中断

这里假设我们单片机是12T,机器周期是震荡周期(晶振)的1/12,一个机器周期我们定时器的计数值+1,也就是说定时器+1的时间是1us,而我们翻转IO口两次才算一个周期,也就是说翻转一次的时间是半个周期

而我们的计数器重装载值就是最大次数溢出的次数(2的16次方)减去总翻转时间,然后再把高八位取出来放在TH0上,把低八位取出来放在TL0上

总而言之,我们就是要求计时器的重装载值,先找出每个音符对应的评论,然后求出周期,再求出周期/2,取整(方便运算),最后再求出重装载值

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

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

相关文章

最新版本WebContext构造函数-避坑

import org.thymeleaf.context.IWebContext; import org.thymeleaf.context.WebContext; 当你想把页面信息全部获取出来存到redis缓存中使用时,SpringWebContext在Spring5中报错 SpringWebContext ctx new SpringWebContext(request, response,request.getServlet…

忘记dedecms后台超级管理员账号和密码的解决方案

解决方案: 方案一、数据库修改: 1、前提是您能登录到数据库后台,登录MySQL数据库管理工具(如phpMyAdmin) 2、打开数据库中的 dede_admin 表,找到管理员记录,将 pwd 字段的值改成 f297a57a5a7…

Kubernetes中的 iptables 规则介绍

#作者:邓伟 文章目录 一、Kubernetes 网络模型概述二、iptables 基础知识三、Kubernetes 中的 iptables 应用四、查看和调试 iptables 规则五、总结 在 Kubernetes 集群中,iptables 是一个核心组件, 用于实现服务发现和网络策略。iptables 通…

Windows 11下Git Bash执行cURL脚本400问题、CMD/PowerShell不能执行多行文本等问题记录及解决方案

问题 在Postman里可成功执行的POST请求: 找到Postman的Code 因为cURL基本上算是行业标准,所以Postman默认选中cURL,支持切换不同的开发语言: 点击上图右上角的复制按钮,得到cURL脚本。 Windows 11家庭版&#xff…

利用LLMs准确预测旋转机械(如轴承)的剩余使用寿命(RUL)

研究背景 研究问题:如何准确预测旋转机械(如轴承)的剩余使用寿命(RUL),这对于设备可靠性和减少工业系统中的意外故障至关重要。研究难点:该问题的研究难点包括:训练和测试阶段数据分布不一致、长期RUL预测的泛化能力有限。相关工作:现有工作主要包括基于模型的方法、数…

记录小白使用 Cursor 开发第一个微信小程序(二):创建项目、编译、预览、发布(250308)

文章目录 记录小白使用 Cursor 开发第一个微信小程序(二):创建项目、编译、预览、发布(250308)一、创建项目1.1 生成提示词1.2 生成代码 二、编译预览2.1 导入项目2.2 编译预览 三、发布3.1 在微信开发者工具进行上传3…

游戏引擎学习第146天

音高变化使得对齐读取变得不可能,我们可以支持循环声音了。 我们今天的目标是完成之前一段时间所做的音频代码。这个项目并不依赖任何引擎或库,而是一个教育项目,目的是展示从头到尾运行一个游戏所需要的全部代码。无论你对什么方面感兴趣&a…

Java 大视界 -- Java 大数据在智能体育赛事运动员表现分析与训练优化中的应用(122)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…

线性代数之矩阵特征值与特征向量的数值求解方法

文章目录 前言1. 幂迭代法(Power Iteration)幂法与反幂法求解矩阵特征值幂法求最大特征值编程实现补充说明 2. 逆幂迭代法(Inverse Iteration)移位反幂法 3. QR 算法(QR Algorithm)——稠密矩阵理论推导编程…

SparkAi系统体验

DeepSeek-R1-671B大模型满血版私有化部署高可用教程-SparkAi系统集成图文教程 一、SparkAI是什么二、功能模块介绍系统快速体验 三、系统功能模块3.1 AI全模型支持/插件系统3.2 AI智能体应用3.3 AI专业绘画3.4 AI视频生成3.5 Dall-E2/E3/E4绘画3.6 智能思维导图生成3.7 AI绘画广…

视频录像机视频通道是指什么

视频录像机的视频通道是指摄像机在监控矩阵或硬盘录像机设备上的视频输入的物理位置。 与摄像头数量关系:在视频监控系统中,有多少个摄像头就需要多少路视频通道,通道数量决定了视频录像机可接入摄像头的数量,一般硬盘录像机有4路…

【Unity】 HTFramework框架(六十一)Project窗口文件夹锁定器

更新日期:2025年3月7日。 Github源码:[点我获取源码] Gitee源码:[点我获取源码] 索引 Project窗口文件夹锁定器框架文件夹锁定自定义文件夹锁定限制条件 Project窗口文件夹锁定器 在Project窗口中,文件夹锁定器能够为任何文件夹加…

INFINI Labs 产品更新 | Easysearch 增加异步搜索等新特性

INFINI Labs 产品更新发布!此次更新,Easysearch 增加了新的功能和数据类型,包括 wildcard 数据类型、Point in time 搜索 API、异步搜索 API、数值和日期字段的 doc-values 搜索支持,Console 新增了日志查询功能。 INFINI Easyse…

3.6c语言

#define _CRT_SECURE_NO_WARNINGS #include <math.h> #include <stdio.h> int main() {int sum 0,i,j;for (j 1; j < 1000; j){sum 0;for (i 1; i < j; i){if (j % i 0){sum i;} }if (sum j){printf("%d是完数\n", j);}}return 0; }#de…

Docker基础篇——Ubuntu下Docker安装

大家好我是木木&#xff0c;在当今快速发展的云计算与云原生时代&#xff0c;容器化技术蓬勃兴起&#xff0c;Docker 作为实现容器化的主流工具之一&#xff0c;为开发者和运维人员带来了极大的便捷 。下面我们一起进行Docker安装。 Docker的官方Ubuntu安装文档&#xff0c;如…

postman接口请求中的 Raw是什么

前言 在现代的网络开发中&#xff0c;API 的使用已经成为数据交换的核心方式之一。然而&#xff0c;在与 API 打交道时&#xff0c;关于如何发送请求体&#xff08;body&#xff09;内容类型的问题常常困扰着开发者们&#xff0c;尤其是“raw”和“json”这两个术语之间的区别…

最新版本TOMCAT+IntelliJ IDEA+MAVEN项目创建(JAVAWEB)

前期所需&#xff1a; 1.apache-tomcat-10.1.18-windows-x64&#xff08;tomcat 10.1.8版本或者差不多新的版本都可以&#xff09; 2.IntelliJ idea 24年版本 或更高版本 3.已经配置好MAVEN了&#xff08;一定先配置MAVEN再搞TOMCAT会事半功倍很多&#xff09; 如果有没配置…

【Linux学习笔记】Linux基本指令分析和权限的概念

【Linux学习笔记】Linux基本指令分析和权限的概念 &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;Linux学习笔记 文章目录 【Linux学习笔记】Linux基本指令分析和权限的概念前言一. 指令的分析1.1 alias 指令1.2 grep 指令1.3 zip/unzip 指…

Leetcode 刷题记录 05 —— 普通数组

本系列为笔者的 Leetcode 刷题记录&#xff0c;顺序为 Hot 100 题官方顺序&#xff0c;根据标签命名&#xff0c;记录笔者总结的做题思路&#xff0c;附部分代码解释和疑问解答。 目录 01 最大子数组和 方法一&#xff1a;动态规划&#xff08;卡达尼算法&#xff09; 方法…

【LLM】kimi 1.5模型架构和训练流程

note 推出两个多模态模型&#xff0c;深度思考模型 long-CoT 对标 o1&#xff0c;通用模型 short-CoT 模型对标 gpt-4o。 文章目录 note一、kimi 1.5模型训练流程预训练SFT训练long-CoT SFTRL训练long2short 小结Reference 一、kimi 1.5模型训练流程 推出两个多模态模型&…