51单片机蜂鸣器的使用

举报
yd_274589494 发表于 2023/07/27 17:41:28 2023/07/27
【摘要】 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档@TOC 前言本文旨在介绍如何使用51单片机驱动蜂鸣器。 一、有源蜂鸣器和无源蜂鸣器的区别有源蜂鸣器是一种电子元件,它可以通过电源来发出声音,而无源蜂鸣器则是一种机械元件,它可以通过外力来发出声音。有源蜂鸣器可以发出更清晰的声音,而无源蜂鸣器发出的声音更加模糊。有源蜂鸣器只需要控制电平的高低就可以驱动蜂鸣器,而无源蜂鸣器的操作相...

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

@TOC


前言

本文旨在介绍如何使用51单片机驱动蜂鸣器。

一、有源蜂鸣器和无源蜂鸣器的区别

有源蜂鸣器是一种电子元件,它可以通过电源来发出声音,而无源蜂鸣器则是一种机械元件,它可以通过外力来发出声音。有源蜂鸣器可以发出更清晰的声音,而无源蜂鸣器发出的声音更加模糊。
有源蜂鸣器只需要控制电平的高低就可以驱动蜂鸣器,而无源蜂鸣器的操作相对来说会稍微复杂一点,需要控制其发出声音的频率和强度。
有源蜂鸣器:
在这里插入图片描述
无源蜂鸣器:
在这里插入图片描述
外表上有源蜂鸣器是有贴纸的而无源蜂鸣器是没有贴纸的,大家在购买时可以根据这个判断。
我们使用的板子上的蜂鸣器是无源蜂鸣器。

二、代码编写

板子蜂鸣器原理图如下:

在这里插入图片描述

驱动蜂鸣器是非常简单的,这里我们使用普中给的例程代码我就不做编写了。
只需要通过延时来产生一定的脉冲频率即可驱动无源源蜂鸣器。


#include "reg52.h"

typedef unsigned int u16;	//对系统默认数据类型进行重定义
typedef unsigned char u8;

sbit BEEP=P2^5;	//将P2.5管脚定义为BEEP

/*******************************************************************************
* 函 数 名       : delay_10us
* 函数功能		 : 延时函数,ten_us=1时,大约延时10us
* 输    入       : ten_us
* 输    出    	 : 无
*******************************************************************************/
void delay_10us(u16 ten_us)
{
	while(ten_us--);	
}

void main()
{	
	u16 i=2000;

	while(1)
	{
	   	while(i--)//循环2000次
		{
			BEEP=!BEEP;//产生一定频率的脉冲信号
			delay_10us(100);
		}
		i=0;//清零
		BEEP=0;//关闭蜂鸣器
	}		
}

总结

文章介绍了51单片机的硬件结构,以及如何使用51单片机的指令来控制蜂鸣器的发声,并且给出了实际的程序代码。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。