(基于江协科技)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;
}
相关推荐
物联网软硬件开发-轨物科技28 分钟前
【轨物方案】聚焦锯床设备智能化升级,打造工业互联网新范式
运维·科技·物联网
boneStudent3 小时前
Day32:SPI 配置与使用
stm32·单片机·嵌入式硬件
逆小舟3 小时前
【RTOS】处理中断
单片机·嵌入式硬件
lisw054 小时前
人工智能伦理的演进对科技政策有何影响?
人工智能·科技·机器学习
ACP广源盛139246256734 小时前
GSV1015@ACP#1015/2015产品规格详解及产品应用分享
单片机·嵌入式硬件·音视频
三品吉他手会点灯4 小时前
STM32F103学习笔记-19-SysTick-系统定时器(第1节)-功能框图讲解和优先级配置
笔记·stm32·单片机·嵌入式硬件·学习
风哥在风中4 小时前
与防静电腕带完全不同性质:电烙铁必须硬接地,而且良好接地
单片机·嵌入式硬件·智能硬件·esd防护·iot硬件
AI营销实验室6 小时前
AI CRM系统线索打分,原圈科技引爆销售增长
人工智能·科技
小冷Hello6 小时前
迪文屏开发-多国语言-只需一组控件
stm32·单片机·嵌入式硬件
wanhengidc6 小时前
什么是裸金属服务器
运维·服务器·科技·智能手机·云计算