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

51单片机——蜂鸣器

1、蜂鸣器简介

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

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

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

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

2、驱动电路

三极管驱动

NPN高电平导通                                                                PNP低电平导通

        

集成电路驱动

3、ULN2003

每对达林顿晶体管是有两个三极管开关复合在一起的,所以又叫做复合管,可以增大驱动能力

COM为公共端口,下图中三角形接小圆形表示非门,输入1时输出为0。

4、蜂鸣器播放提示音

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);}}
}

Buzzer.c

#include <REGX52.H>
#include <INTRINS.H>//蜂鸣器端口:
sbit Buzzer=P1^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

Nixie.c

#include <REGX52.H>
#include "Delay.h"//数码管段码表
unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};/*** @brief  数码管显示* @param  Location 要显示的位置,范围:1~8* @param  Number 要显示的数字,范围:段码表索引范围* @retval 无*/
void Nixie(unsigned char Location,Number)
{switch(Location)		//位码输出{case 1:P2_4=1;P2_3=1;P2_2=1;break;case 2:P2_4=1;P2_3=1;P2_2=0;break;case 3:P2_4=1;P2_3=0;P2_2=1;break;case 4:P2_4=1;P2_3=0;P2_2=0;break;case 5:P2_4=0;P2_3=1;P2_2=1;break;case 6:P2_4=0;P2_3=1;P2_2=0;break;case 7:P2_4=0;P2_3=0;P2_2=1;break;case 8:P2_4=0;P2_3=0;P2_2=0;break;}P0=NixieTable[Number];	//段码输出
//	Delay(1);				//显示一段时间
//	P0=0x00;				//段码清0,消影
}

Nixie.h

#ifndef __NIXIE_H__
#define __NIXIE_H__void Nixie(unsigned char Location,Number);#endif

 


http://www.mrgr.cn/news/17086.html

相关文章:

  • 基于BP神经网络的项目风险识别,BP神经网络训练窗口详解,BP神经网络详细原理
  • 【AI学习笔记】AIGC,AI绘画 ComfyUI+ComfyUI Manager安装
  • AcWing 902. 最短编辑距离
  • 最大交换
  • GD - EmbeddedBuilder_v1.4.1.23782 - PWM官方工程功能记录
  • vscode写markdown(引入html及css语法)
  • 滑模控制2021年12月8日
  • 【MySQL数据库管理问答题】第14章 使用 MySQL InnoDB 集群实现高可用性
  • Driver.js——实现页面引导
  • 深度学习速通系列:Bert模型vs大型语言模型(LLM)
  • 团队比赛时如何给小组记分?
  • 并发编程之CountDownLatchSemaphore原理与应用
  • 算法数学加油站:一元高斯分布(正态分布)Python精美科研绘图(PDF、CDF、PPF、ECDF曲线;QQ图)
  • Git 使用指南 --- 版本管理
  • 【荒原之梦考研数学】考研没有人支持,怎么办?
  • python pyqt statusBar 完整的操作方法详细说明和代码举例
  • 编译原理概述
  • 八皇后问题代码实现(java,递归)
  • ubuntu通过smba访问华为设备
  • 【面试经验】腾讯面试题:在QQ增加电商购物场景,拼多多、京东、淘宝怎么选