51单片机蜂鸣器的使用
【摘要】 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档@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)