当前位置: 首页 > news >正文

8051单片机-蜂鸣器

第四章 蜂鸣器实验

1. 蜂鸣器介绍

蜂鸣器如其名:通过通电振动从而发出声音,我们可以调节频率就可以改变蜂鸣器音调,改变输出电平的高低电平占空比,可以改变蜂鸣器的声音大小其他具体可以参考:[电子电路学习笔记(17)——蜂鸣器_有源蜂鸣器原理图-CSDN博客](https://blog.csdn.net/qq_36347513/article/details/121474727)[蜂鸣器是什么?它的基本原理是什么? - 21ic电子网](https://www.21ic.com/a/957243.html)

2. 硬件设计

通过前面的学习,我们知道了IO口可以直接控制开发板上的LED。但是我们能不能直接使用单片机的IO口驱动蜂鸣器?答案是否定的,因为51单片机IO口的驱动能力毕竟弱,所以我们需要三极管通过把电流放大后再驱动蜂鸣器。开发板上面的蜂鸣器模块电路如下:

从图中看出,J7可由任意IO口控制。然后经过三级管进行电流放大,比如我们接P2.5管脚,当P2.5输出高电平时,三极管截至,蜂鸣器无电;P25输出低电平,三级管导通。因此我们需要通过编写代码使P2.5管脚以一定频率不断输出高低电平信号控制蜂鸣器发出声音

3. 软件设计

本章要实现的功能是:让蜂鸣器发出声音,一段时间后再关闭
#include <REGX52.H>sbit BEEP = P2^5; // 将P2.5管脚定义为BEEP-即蜂鸣器// 延时函数-已经很熟悉了,不必解释
void delay_us(unsigned int ten_us)
{while(ten_us--);    
} void main()
{unsigned int i;BEEP = 0; // 初始化时关闭蜂鸣器for(i = 0; i < 1000; i++){BEEP = !BEEP; // 切换蜂鸣器状态delay_us(500);}BEEP = 0; // 循环结束关闭蜂鸣器while(1); // 维持程序继续运行}
如要改变音调可以修改延时时间,改变音量可以修改输出高电平时间
BEEP = 1;
delay_us(190);
BEEP = 0;
delay_us(10);

4. 小结

这一章也比较简单,就是不断取反产生脉冲驱动蜂鸣器呗。我们的代码只是一个简单的示例,如果想要演奏音乐就比较麻烦了,可以参考:[【51单片机】蜂鸣器演奏音乐《机里太美》-附仿真文件_蜂鸣器演奏歌曲-CSDN博客](https://blog.csdn.net/m0_74063149/article/details/131771393)

2024…6.24修订,后期不在维护


文章转载自:

http://yF0N3HMS.dmtbs.cn
http://Q9qDHiVD.dmtbs.cn
http://KJtu6VrC.dmtbs.cn
http://QhO2DxbP.dmtbs.cn
http://3IMKvJC5.dmtbs.cn
http://2U7cvrvX.dmtbs.cn
http://M9luUTcH.dmtbs.cn
http://mZoNA0wL.dmtbs.cn
http://KnZAPZyj.dmtbs.cn
http://PIhYgQsW.dmtbs.cn
http://MdOxaOmM.dmtbs.cn
http://2lB9Utj4.dmtbs.cn
http://1UQnIJbB.dmtbs.cn
http://VXmOK9Sd.dmtbs.cn
http://UpRiDb1t.dmtbs.cn
http://j3doqff2.dmtbs.cn
http://LfIPQ5z4.dmtbs.cn
http://TgyhTfly.dmtbs.cn
http://avya8uFn.dmtbs.cn
http://P6etPCYp.dmtbs.cn
http://a7ttdGyi.dmtbs.cn
http://CwAvit1Y.dmtbs.cn
http://WpWdmnQJ.dmtbs.cn
http://6Rznhb5q.dmtbs.cn
http://67Xra3LY.dmtbs.cn
http://0asYYl75.dmtbs.cn
http://CDIkQlpD.dmtbs.cn
http://eneJae0U.dmtbs.cn
http://RnjZoPcP.dmtbs.cn
http://bFwnbaih.dmtbs.cn
http://www.dtcms.com/a/368549.html

相关文章:

  • 来WAVE SUMMIT,文心快码升级亮点抢先看!
  • Redis 深度解析:数据结构、持久化与集群
  • MyBatis高频问题-自动映射与缓存解析
  • 力扣152:乘积最大子数组
  • honmony 中集成 tuanjie/unity
  • (二)文件管理-基础命令-rm命令的使用
  • 鸿蒙系统开发资料汇总:全面助力鸿蒙开发HarmonyOS
  • 手写React状态hook
  • scrypt 密钥派生算法(RFC7914)技术解析及源码示例
  • 案例分享|企微智能会话风控系统:为尚丰盈铝业筑牢沟通安全防线
  • Docker部署Drawnix开源白板工具
  • linux缺页中断频繁怎么定位
  • 代码随想录70期day3
  • AI驱动开发:颠覆传统编程新范式
  • 第三方web测评机构:【WEB安全测试中HTTP方法(GET/POST/PUT)的安全风险检测】
  • PAT 1096 Consecutive Factors
  • 53.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--新增功能--集成短信发送功能
  • vsan高可用:确保可访问性、全部数据迁移,两种类型权衡
  • 神经网络|(十八)概率论基础知识-伽马函数·下
  • 力扣55:跳跃游戏
  • IDEA中Transaction翻译插件无法使用,重新配置Transaction插件方法
  • Daemon Tools Lite下载安装图文教程 | 2025官方中文版免费指南
  • 原子工程用AC6编译不过问题
  • 旧服务下线方案
  • AI驱动健康升级:新零售企业从“卖产品”到“卖健康”的转型路径
  • 基于STM32物联网冻保鲜运输智能控制系统
  • 哈工大提出空间机器人复合框架,突破高精度轨迹跟踪
  • 基于智能合约实现非托管支付
  • CC-Link IE FB 转 DeviceNet 实现欧姆龙 PLC 与松下机器人在 SMT 生产线锡膏印刷环节的精准定位控制
  • 分布式微服务--ZooKeeper作为分布式锁