普中51单片机:蜂鸣器的简单使用(十一)

news2024/9/22 3:42:59

在这里插入图片描述

文章目录

  • 引言
  • 蜂鸣器的分类
  • 工作原理
    • 无源蜂鸣器
      • 压电式蜂鸣器:
      • 电磁式蜂鸣器:
  • 电路符号及应用
  • 代码演示——无源蜂鸣器

引言

蜂鸣器是一种常见的电子音响器件,广泛应用于各种电子产品中。它们能够发出不同频率的声音,用于警报、提醒、音乐播放等场景。

蜂鸣器的分类

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

  1. 有源蜂鸣器(自激式蜂鸣器):内部带有驱动线路,只需通电即可发声。这些蜂鸣器通常比无源蜂鸣器更昂贵,但程序控制方便。
  2. 无源蜂鸣器(他激式蜂鸣器):需要外部驱动,通常使用方波信号来激活。它们便宜且声音频率可控。

工作原理

有源蜂鸣器是一种自包含振荡器的设备,它能够直接将直流电源转换为声音。其内部结构主要包括振荡器、电磁线圈、磁铁和振动膜片。当电源接通时,振荡器开始工作,产生一个周期性的音频信号。音频信号电流通过电磁线圈,产生磁场。这个磁场与磁铁相互作用,吸引或排斥振动膜片。振动膜片在磁场的作用下快速振动,这种振动通过空气传播,形成我们可以听到的声音。

无源蜂鸣器

无源蜂鸣器需要外部电路提供脉冲信号才能工作。它通常由压电陶瓷片或电磁振片和共振腔组成。根据其工作方式的不同,无源蜂鸣器又可分为压电式蜂鸣器和电磁式蜂鸣器。

压电式蜂鸣器:

  • 压电蜂鸣器内部包含一个压电陶瓷片。
  • 当外部施加电压时,压电陶瓷片会振动,产生声音。
  • 压电蜂鸣器的工作原理类似于压电传感器,通过电压变化来激发振动。

电磁式蜂鸣器:

  • 电磁蜂鸣器内部包含一个线圈和一个铁质震动片。
  • 当交变电流通过线圈时,线圈产生磁场,吸引铁质震动片并使其振动。
  • 震动片的振动在空气中形成周期性的压缩波动,从而产生声音。

不论是压电蜂鸣器还是电磁蜂鸣器,它们在工作时都需要外部的电源供应和相应的电路控制。通过改变输入的电压、频率或触发信号,可以控制蜂鸣器的声音频率和强度,实现不同的音调和音量效果。

电路符号及应用

蜂鸣器在电路中的符号如下图所示,英文名为"Buzzer"
在这里插入图片描述
一般单片机的IO口的驱动能力不足以直接驱动蜂鸣器,因此通常采用放大电路,例如三极管放大电流,或者使用ULN2003D集成电路驱动蜂鸣器。
在这里插入图片描述

代码演示——无源蜂鸣器

下面是一段使用C语言编写的代码,演示如何通过单片机驱动无源蜂鸣器。

#include <REGX52.H>
#include <intrins.h>

sbit FMQ_BEEP = P2^5;

void DelayXms(unsigned int xms)	//@12.000MHz
{
	unsigned char data i, j;
	
	while(xms)
	{
		i = 2;
		j = 239;
		do
		{
			while (--j);
		} while (--i);
		xms--;
	}
}

void main()
{
	unsigned int i = 3000;
	while(1)
	{
		while(i--)
		{
			FMQ_BEEP = !FMQ_BEEP;
			DelayXms(100);
		}
		i = 0;
	}
}

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

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

相关文章

AI软件测试|人工智能测试中对抗样本生成攻略

从医疗诊断、自动驾驶到智能家居&#xff0c;人工智能技术为各个行业领域带来无限可能的同时&#xff0c;挑战也日益显现。特别是在人工智能安全领域&#xff0c;随着恶意攻击和数据欺骗的不断演变&#xff0c;确保AI系统的安全性和可靠性成为亟需解决的重要问题&#xff0c;对…

【游戏制作】使用Python创建一个完整的2048游戏项目

目录 项目运行展示 项目概述 项目目标 项目结构 安装依赖 代码实现 1. 导入库 2. 创建 Game2048 类 3. 设置UI界面 4. 加载二维码图片 5. 创建菜单 6. 游戏逻辑和功能 7. 运行应用 总结 创建一个完整的2048游戏项目 项目运行展示 项目概述 在这个项目中&#xff…

常用sql:删除表中重复的数据

在平常的开发工作中&#xff0c;我们可能经常需要对表进行操作。比如某些数据重复了&#xff0c;那么可能需要删除掉重复的数据&#xff0c;保证数据根据业务字段属性相同的数据只有一条&#xff0c;那么应该如何做呢&#xff1f; 1&#xff1a;新建表&#xff1a;用户详情表 …

for循环计算1~100之间3的倍数的数字之和

你要计算1~100之间的数字先得打印出来1~100之间的数字然后在判断是不是3的倍数然后在打印出数字&#xff0c;代码如下 #include<stdio.h> int main() {int i 0;for (i 1; i < 100; i){if (i % 3 0){printf("%d ", i);}}return 0; }

Intellij IDEA多模块分组 实现move to group

新版本idea&#xff0c;没有了move to group的功能&#xff0c;导致模块很多的时候不能分组。2018版本有。 这个分组是虚拟的&#xff0c;不会在磁盘中实际存在。 要实现这个功能&#xff0c;只需要改modules.xml即可。 步骤 1. 找到配置文件 .idea目录下的moudules.xml 2.…

GeoServer GIS 服务器(geoServer离线地图服务器搭建)

文章目录 引言I GeoServer 安装部署版本选择基于war包进行部署II geoServer配置2.1 geoServer新建工作区2.2 geoServer 新建数据源2.3 geoServer图层发布和图层编辑2.4 指定存储层的坐标系2.5 geoServer图层样式2.6 图层组的创建GIS基础知识GeoServerWMTSEPSGEPSG3857相关的数据…

Cadence学习笔记(十三)--设置边框与异形铺铜

直接导入板框用小眼睛可以看到所有的都是线的属性&#xff1a; 那么如何让它变成板框呢&#xff1f;这里先跳转到下图中的层&#xff1a; 将Z--CPOY这一层变成shape区&#xff1a; 之后用Z--copy: Z--COPY设置如下参数&#xff0c;铺铜内缩20mil: 之后选择长方形铺铜就可以了&…

快醒醒,别睡了!...讲《数据分析pandas库》了—/—<5>

一、 1、修改替换变量值 本质上是如何直接指定单元格的问题&#xff0c;只要能准确定位单元地址&#xff0c;就能够做到准确替换。 1.1 对应数值的替换 具体用法如下&#xff1a; replace方法&#xff1a; df.replace(to_replace None :将被替换的原数值&#xff0c;所有…

matlab6.5免安装版,解压即可用【亲测win10可用】

这个版本是咱第一次学matlab的时候用的处女版&#xff0c;如今看着这个界面依然恍如昨日。为甚要分享这种老掉牙古董matlab版本呢&#xff1f;原因在于一款老古董工具箱 —— geatbx。 这款工具箱采用了古老pcode的加密系统加密&#xff0c;而matlab的pcode加密经过几次迭代&a…

数据库开发:MySQL基础(二)

MySQL基础&#xff08;二&#xff09; 一、表的关联关系 在关系型数据库中&#xff0c;表之间可以通过关联关系进行连接和查询。关联关系是指两个或多个表之间的关系&#xff0c;通过共享相同的列或键来建立连接。常见的关联关系有三种类型&#xff1a;一对多关系&#xff0c;…

【机器学习】智驭未来:机器学习如何重塑制造业的转型与升级

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀目录 &#x1f50d;1. 引言&#x1f4d2;2. 机器学习重塑制造业生产流程&#x1f338;预测性维护&#xff1a;减少停机时间&#xff0c;提高设…

JavaScript(17)——事件监听

什么是事件&#xff1f; 事件是在编程时系统内发生的动作或发生的事情&#xff0c;比如用户在网页上单击一个按钮 什么是事件监听&#xff1f; 就是让程序检测是否有事件产生&#xff0c;一旦有事件触发&#xff0c;就立刻调用一个函数做出响应&#xff0c;也称为绑定事件或…

【Linux】进程IO|系统调用|open|write|文件描述符fd|封装|理解一切皆文件

目录 ​编辑 前言 系统调用 open 参数flags 参数mode write 追加方式 read close 文件描述符 打开多个文件并观察其文件描述符 C语言文件操作 理解一切皆文件 理解open操作 前言 各类语言的文件操作其实是对系统调用的封装 我们经常说&#xff0c;创建一个文件&a…

【 C++ 】 一文搞定——引用、内联、命名空间、缺省、重载

前言&#xff1a;这篇文章将带您了解C基础中的知识点——命名空间、引用、内联、缺省、重载 &#x1f618;我的主页&#xff1a;OMGmyhair-CSDN博客 一、命名空间namespace 1.可以嵌套定义&#xff0c;但是只能定义在全局 namespace ly {int student 1;int age 21;void Pr…

剑和沙盒 6 - 线程辱骂 – 使用线程名称进行攻击

强调&#xff1a; 进程注入是攻击者工具包中的重要技术之一。在下面的文章中 解释了如何滥用线程描述 API 来绕过端点保护产品。提出了一种新的注入技术&#xff1a;Thread Name-Calling&#xff0c;并给出了实施保护的相关建议。 介绍 进程注入是攻击者使用的重要技术之一 。…

Go-知识panic

Go-知识panic 1. 介绍2. 工作机制2.1 panic函数2.2 工作流程2.3 总结 3. 原理3.1 数据结构3.2 gopanic没有deferdefer函数处理嵌套defer 4. 总结 Go-知识error :https://blog.csdn.net/a18792721831/article/details/140430350 Go-知识defer : https://blog.csdn.net/a18792721…

单片机基于TXW8301的Wi-Fi Halow物联网控制

目前市面上基于2.4/5.8G wifi通讯信号干扰很频繁&#xff0c;基于Wi-Fi Halow的sub1g wifi既可以绕过干扰还可以达到公里级别控制&#xff0c;并且实现高清图传非常方便。 什么是Wi-Fi Halow&#xff1f;有何优势&#xff1f; 早在2016年3月&#xff0c;Wi-Fi联盟就针对物联网…

YOLO v8目标检测(二)—v8理论与模型推理

YOLO v8目标检测 数据增强 使用场景&#xff1a;在数据加载器加载数据的过程中会使用到数据增强的相关方法&#xff0c;来构造数据集。模型推理方法进行学习之前首先复习了解图像数据增强的相关方法和步骤。 其中在v8的源代码中 augment.py 的源代码文件。它包含了几个用于数据…

【python】python基于 Q-learning 算法的迷宫游戏(源码+论文)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

java项目数据库 mysql 迁移到 达梦

目录 一、下载安装达梦数据库 1、下载 2、解压 3、安装 二、迁移 三、更改SpringBoot 的 yml文件 1、达梦创建用户 2、修改yml 一、下载安装达梦数据库 1、下载 下载地址 https://eco.dameng.com/download/ 点击下载 开发版 (X86平台) , 然后选择操作系统并点击立…