(基于江协科技)51单片机入门:9.蜂鸣器

蜂鸣器

蜂鸣器是一种将电信号转换为声音信号的器件

蜂鸣器按驱动方式分可分:

1.有源蜂鸣器

内部自带震荡源,将正负极接上直流电压即可持续发声,频率固定

2.无源蜂鸣器

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

蜂鸣器的BZ于步进电机模块接通

ULN2003D

会进行取反 7B 给 1 ,7C收到0

7B 给 0 ,7C收到1

所以7B 给 1 才能驱动蜂鸣器

也就是控制P15,去控制蜂鸣器

低音a为基准频率 440

中音a 是低音的两倍 880

高音 a 是低音的4被 1760

低音a和低音a#的差值是 440*2^(1/12)

1/12=0.083

2^0.083=1.0592

440*1.0592=466.048

1.矩阵按键按下驱动蜂鸣器

cpp 复制代码
#include <REGX52.H>
#include "key.h"
#include "Delay.h"
sbit buzzer = P2^5;

void lig(int num1,int num2)
{
	unsigned char arr[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F };
	switch(num1)
	{
		case 1:P2_4=0,P2_3=0,P2_2=0;break;
		case 2:P2_4=0,P2_3=0,P2_2=1;break;
		case 3:P2_4=0,P2_3=1,P2_2=0;break;
		case 4:P2_4=0,P2_3=1,P2_2=1;break;
		case 5:P2_4=1,P2_3=0,P2_2=0;break;
		case 6:P2_4=1,P2_3=0,P2_2=1;break;
		case 7:P2_4=1,P2_3=1,P2_2=0;break;
		case 8:P2_4=1,P2_3=1,P2_2=1;break;
	}
	P0 = arr[num2];
}


int main()
{
	unsigned char ret_key = 0;
	unsigned int i = 0;
	while(1)
	{
		ret_key = key();
		if(ret_key)
		{
			for(i = 0; i < 500; i++)
			{
					buzzer = !buzzer;
					Delay(1);
			}
		lig(1,ret_key%10);
		}
	}
	return 0;
}
相关推荐
Hello_Damon_Nikola4 分钟前
HT2813从入门到精通
单片机·嵌入式硬件·物联网
天空'之城43 分钟前
单片机基础核心知识点汇总(二)
单片机·嵌入式硬件
恒锐丰-罗生1 小时前
宽压降压电源新选择|CN8610 60V/1A 异步降压芯片,车载 / 工业 IoT 一站式解决方案
嵌入式硬件·硬件工程
恒锐丰-罗生1 小时前
宽压降压新标杆!CN8810 4.5~100V 高压 DCM 异步降压芯片,车载 / 工业 IoT 全能电源方案
嵌入式硬件·硬件工程
Deepsek20051 小时前
鸿蒙系统回退至4.3操作指南(手机端操作)
经验分享·科技·华为·微信·智能手机·harmonyos
Devlab10 小时前
LVGL设计大师——网页版anyui来了!!
嵌入式硬件·物联网·低代码·ui·iot
企鹅的企13 小时前
2027北京AI健康科技与智慧医疗展官方精准邀约进行中
人工智能·科技
瀚香生物科技14 小时前
一个螺环、两个手性中心:复杂氮杂螺环羧酸的合成与质控要点
科技
zlinear数据采集卡16 小时前
D223上位机C#开发实战:从帧解析到波形显示的完整实现
开发语言·arm开发·嵌入式硬件·fpga开发·开源·c#
ACP广源盛1392462567316 小时前
蚂蚁百灵 Ling‑3.0‑flash 开源 + 昇腾 0‑Day 原生适配@ACP#GSV9001E 在国产算力矩阵中的机会与落地场景
大数据·人工智能·分布式·单片机·嵌入式硬件