【51单片机】蜂鸣器(江科大)

11.1蜂鸣器

1.蜂鸣器介绍

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

· 蜂鸣器按驱动方式可分为有源蜂鸣器和无源蜂鸣器

· 有源蜂鸣器:内部自带振荡源,将正负极接上直流电压即可持续发声,频率固定

· 无源蜂鸣器:内部不带振荡源,需要控制器提供振荡脉冲才可发声,调整提供振荡脉冲的频率,可发出不同频率的声音
本开发板使用的是无源蜂鸣器

2.常用驱动电路

不能直接用IO口驱动蜂鸣器,因为蜂鸣器所需的电流较大,直接用IO口一般不足以提供相应的电流,需要放大电路。

1.三极管驱动(大多数情况下都用三极管来驱动)
在这里插入图片描述
2.集成电路驱动(本开发板使用)
蜂鸣器在这里插入图片描述
在这里插入图片描述
ULN2003是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成。

ULN2003逻辑框图如下:
在这里插入图片描述
对应IO口直接有个非门,也就是说如果1号口输入1,则16号口输出0。相应的P25输入1,BEEP输出0。

因为使用的是无源蜂鸣器,所以BEEP口需要输入脉冲信号,而不是简单的高电平或者低电平

Buzzer.c

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

Buzzer.h

#ifndef __BUZZER_H__
#define __BUZZER_H__void Buzzer_Time(unsigned int ms);#endif

main.c

#include <REGX52.H>
#include "Delay.h"
#include "Key.h"
#include "Nixie.h"
#include "Buzzer.h"unsigned char KeyNum;void main()
{Nixie(1,0);while(1){KeyNum=Key();if(KeyNum){Buzzer_Time(100);Nixie(1,KeyNum);}}
}

现象:按下按键1-4,第一个数码管会显示1-4
注意:按下按键时可能会出现数码管闪一次就熄灭的情况,将NixieShowNum函数的最后两行删除即可
蜂鸣器标准的频率是1000Hz,所以可以延迟500us,通过STC-ISP软件生成500us的延时函数

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

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

相关文章

【谁说0基础小白不能开发游戏!点这里,国家首批架构师亲授开发技巧!】

很多同学都想要在入行前有项目经验 但一直都不知道如何获取 所以我们为想要获取项目经验的同学 提供了不同游戏类型 能体现不同能力的训练营 让你在没入行前就拥有 让面试官眼前一亮的游戏Demo 《一周学会ARPG游戏开发》 《元气骑士》全屏弹幕攻击集训营 《潜行机器人》…

山西电力市场日前价格预测【2024-02-13】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2024-02-13&#xff09;山西电力市场全天平均日前电价为178.29元/MWh。其中&#xff0c;最高日前电价为455.64元/MWh&#xff0c;预计出现在19:00。最低日前电价为0.00元/MWh&#xff0c;预计出…

C++ STL: list使用及源码剖析

list使用 list常用函数及使用&#xff08;1&#xff09; #include <iostream> #include <list> #include <algorithm>int main() {// 创建liststd::list<int> myList {5, 2, 9, 1, 5, 6};// 打印liststd::cout << "Original list: &quo…

《剑指Offer》笔记题解思路技巧优化 Java版本——新版leetcode_Part_2

《剑指Offer》笔记&题解&思路&技巧&优化_Part_2 &#x1f60d;&#x1f60d;&#x1f60d; 相知&#x1f64c;&#x1f64c;&#x1f64c; 相识&#x1f353;&#x1f353;&#x1f353;广度优先搜索BFS&#x1f353;&#x1f353;&#x1f353;深度优先搜索DF…

petalinux2018.3安装步骤

1、虚拟机安装ubuntu-16.04.7-desktop-amd64.iso &#xff08;注意&#xff1a;安装ubuntu-18.04.6-desktop-amd64.iso和ubuntu-16.04.6-desktop-i386.iso会报以下错误&#xff09; environment: line 314: ((: 10 #15~1 > 10 #3: syntax error in expression (error toke…

挑战杯 python图像检索系统设计与实现

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; python图像检索系统设计与实现 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;4分 该项目较为新颖&#xff0c…

第20讲投票帖子排行实现

后端&#xff1a; /*** 投票选型Controller控制器* author java1234_小锋 &#xff08;公众号&#xff1a;java1234&#xff09;* site www.java1234.vip* company 南通小锋网络科技有限公司*/ RestController RequestMapping("/voteItem") public class VoteItemCo…

【Go语言】Go项目工程管理

GO 项目工程管理&#xff08;Go Modules&#xff09; Go 1.11 版本开始&#xff0c;官方提供了 Go Modules 进行项目管理&#xff0c;Go 1.13开始&#xff0c;Go项目默认使用 Go Modules 进行项目管理。 使用 Go Modules的好处是不再需要依赖 GOPATH&#xff0c;可以在任意位…

Spring Boot 笔记 019 创建接口_文件上传

1.1 创建阿里OSS bucket OSS Java SDK 兼容性和示例代码_对象存储(OSS)-阿里云帮助中心 (aliyun.com) 1.2 编写工具类 package com.geji.utils;import com.aliyun.oss.ClientException; import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; import com.aliyun…

线段树总结

线段树的定义 线段树&#xff08;Segment Tree&#xff09;是一种二叉搜索树&#xff0c;与区间树相似&#xff0c;它将一个区间划分成一些单元区间&#xff0c;每个单元区间对应线段树中的一个叶结点。使用线段树可以快速地查找某一个节点在若干条线段中出现的次数&#xff0c…

代码随想录 Leetcode406. 根据身高重建队列

题目&#xff1a; 代码(首刷看解析 2024年2月15日&#xff09;&#xff1a; class Solution { static bool cmp(const vector<int>& A, const vector<int>& B) {if(A[0] B[0]) return A[1] < B[1];return A[0] > B[0]; } public:vector<vector&…

HTML5+CSS3+JS小实例:锥形渐变彩虹按钮

实例:锥形渐变彩虹按钮 技术栈:HTML+CSS+JS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /…