普中51-蜂鸣器实验

蜂鸣器实验

蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型

  1. 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。多谐振荡器由晶体管或集成电路构成,当接通电源后(1.5~15V 直流工 作电压),多谐振荡器起振,输出 1.5~5kHZ 的音频信号,阻抗匹配器推动压电 蜂鸣片发声。
  2. 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电 源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜 片在电磁线圈和磁铁的相互作用下,周期性地振动发声。
  3. 其实一句话就可概括它们之间的区别,想要压电式蜂鸣器发声,需提供一定 频率的脉冲信号;想要电磁式蜂鸣器发声,只需提供电源即可。
  4. 这次我们使用的蜂鸣器是无源蜂鸣器,属于压电式蜂鸣器类型。这里说 的有源和无源,并不是指电源的意思,而是指蜂鸣器内部是否含有振荡电路,有 源蜂鸣器内部自带振荡电路,只需提供电源即可发声,而无源蜂鸣器则需提供一 定频率的脉冲信号才能发声,频率大小通常在 1.5-5KHz 之间。
    如图所示:
    在这里插入图片描述
    前面我们使用IO口直接控制开发板上的LED灯,那么蜂鸣器我们是否也可以使用IO口进行控制?其实是不能的,因为51单片机IO口的驱动能力较弱(即使外接上拉电阻),而蜂鸣器驱动需要约30MA,所以非常困难,即使可以驱动,那对于整个芯片的其实IO剩下驱动能力就更加弱甚至无法工作。所以不能直接使用IO口来驱动蜂鸣器,而是通过三极管把电流放大之后在驱动蜂鸣器。这样51单片机只需要提供不到1ma的电流就可以控制蜂鸣器。也常说51单片机是用来做控制的,而不是驱动

从图中可以看出,蜂鸣器控制管脚直接连接到 51 单片机的 P2.5 管脚上。图 中并没有使用三极管进行电流放大,而是使用 ULN2003 芯片来驱动,这里我们只需知道当 P25 输出高电 平,BEEP 则输出低电平;当 P25 输出低电平,BEEP 则输出高电平,类似一个非 门。 开发板上使用的是无源蜂鸣器,它需要一定频率的脉冲(高低电平)才会发 声,因此需要让 P25 脚以一定频率不断输出高低电平信号才能控制蜂鸣器发出声音。

实验一

#include "reg52.h"
sbit BEEP = P2^5; //将P2.5管脚重新定义为BEEP
typedef unsigned int u16;//对系统默认数据类型重新命名
typedef unsigned char u8;void delay_10us(u16 ten_us){//延时函数,当ten_us = 1 是 延时大约10uswhile(ten_us--);
}
void main(){u16 i = 2000;while(1){while(i--){//循环两千次BEEP = !BEEP;//产生一定频率的脉冲信号delay_10us(100);//延时1ms}i = 0;//清零循环参数BEEP = 0;//关闭蜂鸣器}}

若要改变音调可以修改延时时间,但要注意频率不能太大或者太小,具体大 家可以试着调试。若要改变音量,可以修改 BEEP 输出高电平时间。如下:

BEEP = !BEEP;//产生一定频率的脉冲信号
delay_10us(100);//延时1ms
BEEP = !BEEP;//产生一定频率的脉冲信号
delay_10us(190);
BEEP = !BEEP;//产生一定频率的脉冲信号
delay_10us(50);

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

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

相关文章

React TypeScript | 快速了解 antd 的使用

1. 安装: 就像安装其他插件库一样,在项目文件夹下执行: npm install antd --save如果你安装了 yarn,也可以执行: yarn add antd2. 引用 import { Button, Tooltip } from "antd"; import "antd/dis…

自然语言处理应用(一):情感分析

情感分析 随着在线社交媒体和评论平台的快速发展,大量评论的数据被记录下来。这些数据具有支持决策过程的巨大潜力。 情感分析(sentiment analysis)研究人们在文本中 (如产品评论、博客评论和论坛讨论等)“隐藏”的情…

云原生服务无状态(Stateless)特性的实现

文章目录 为何要使用无状态服务?无状态服务的实现方法1. 会话状态外部化2. 负载均衡3. 自动伸缩4. 容器编排5. 数据存储6. 安全性 示例:使用Spring Boot实现无状态服务结论 🎉欢迎来到云计算技术应用专栏~云原生服务无状态(Statel…

地理地形sdk:Tatuk GIS Developer Kernel for .NET Crack

Tatuk GIS Developer Kernel for .NET 是一个变体,它是受控代码和 .NET GIS SDK,用于为用户 Windows 操作系统创建专业 GIS 软件的过程。它被认为是一个完全针对Win Forms 的.NET CIL,WPF 框架是针对C# 以及VB.NET、VC、Oxy 以及最终与.NET 的…

VUE之滚动条参数设置

/*css主要部分的样式*/ /*定义滚动条宽高及背景,宽高分别对应横竖滚动条的尺寸*/ ::-webkit-scrollbar {width: 6px; /*对垂直流动条有效*/height: 6px; /*对水平流动条有效*/ }/*定义滚动条的轨道颜色、内阴影及圆角*/ ::-webkit-scrollbar-track{border-radius: 4…

删除安装Google Chrome浏览器时捆绑安装的Google 文档、表格、幻灯片、Gmail、Google 云端硬盘、YouTube网址链接(Mac)

删除安装Google Chrome浏览器时捆绑安装的Google 文档、表格、幻灯片、Gmail、Google 云端硬盘、YouTube网址链接(Mac) Mac mini操作系统,安装完 Google Chrome 浏览器以后,单击 启动台 桌面左下角的“显示应用程序”,我们发现捆绑安装了 Goo…

MySQL

文章目录 1.Mysql1.1 为什么学习数据库1.2 什么是数据库1.3 数据库分类1.4 Mysql简介1.5 安装Mysql1.6 安装Sqlyog1.7 连接数据库 2.操作数据库2.1 操作数据库2.2 数据库的列类型2.3 数据库字段属性(重点)2.4 创建数据库表(重点)2…

Java 使用 EMQX 实现物联网 MQTT 通信

一、介绍 1、MQTT MQTT(Message Queuing Telemetry Transport, 消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于&#xff…

Leetcode算法入门与数组丨3. 数组基础

文章目录 前言1 数组简介2 数组的基本操作2.1 访问元素2.2 查找元素2.3 插入元素2.4 改变元素2.5 删除元素 3 总结task03task04 前言 Datawhale组队学习丨9月Leetcode算法入门与数组丨打卡笔记 这篇博客是一个 入门型 的文章,主要是自己学习的一个记录。 内容会参…

13-RocketMQ主从同步(HA实现)源码原理

目录 HAClient端 Master端 AcceptSocketService实现原理 HAConnection实现原理 ReadSocketService WriteSocketService GroupTransferService实现原理 五大线程的协调关系 HAClient端 首先要去connect一下master,从而建立一个SocketChannel连接通道&#x…

不知道有用没用的Api

encodeURIComponent(https://www.baidu.com/?name啊啊啊) decodeURIComponent(https%3A%2F%2Fwww.baidu.com%2F%3Fname%3D%E5%95%8A%E5%95%8A%E5%95%8A) encodeURI(https://www.baidu.com/?name啊啊啊) decodeURI(https://www.baidu.com/?name%E5%95%8A%E5%95%8A%E5%95%8A) …

面试核心技巧--spring篇

答题技巧: 总:当前问题的是那些具体点 分:1、2、3、4突出重点, 避重就轻:没有重点 一个问题能占用面试官多少时间?问的越多可能露馅越多 当面试官问到一个你熟悉的点的时候,一定要尽量拖时间 什么是底层实现&#…