51单片机玩转物联网基础篇04-蜂鸣器

前言

上一节,我们完成了按键操作,本节我们学习使用蜂鸣器,首先我们介绍下蜂鸣器,然后完成实验:上电后默认驱动频率为5KHZ,通过KEY1控制驱动频率为1KHZ ,蜂鸣器,KEY2控制驱动频率为 2KHZ,可以听到不同的效果。

一、基础知识

1.蜂鸣器简介

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。

蜂鸣器按照原理来分可以分为有源蜂鸣器和无缘蜂鸣器,有源蜂鸣器和无源蜂鸣器并不是说蜂鸣器内部是否含有电源,这里的有源和无源是指内部是否含有RC震荡电路。想要无源蜂鸣器发声,需提供一定频率的脉冲信号; 想要有源蜂鸣器发声, 只需提供电源即可。蜂鸣器频率一般在1.5-5KHz 之间,有源蜂鸣器的实物如下图所示:
在这里插入图片描述

2.硬件设计

打开硬件设计电路,蜂鸣器相关电路如下
在这里插入图片描述
注意:不可以用单片机I/O口直接驱动蜂鸣器发声,因为I/O口驱动负载能力有限,通常蜂鸣器正常工作,需要通过30mA左右电流,因此我们使用三极管放大电路解决这个问题,采用放大电路后, 51 单片机的 IO 口只需要提供不到 1mA 的电流就可控制蜂鸣器。

二、实例

1.创建工程

将上一节工程复制出来,并修改名字为03-beep
在这里插入图片描述

2.修改程序

#include<reg51.h> //头文件
#include <intrins.h>

sbit Buzzer=P3^7; //定义P3.7为喇叭驱动端 
sbit key1 = P2^4;
sbit key2 = P2^5;

void Delay500us()        //500us延迟函数,用于产生1KHZ信号
{
    unsigned char i;
    nop();
    i = 227;
    while (--i);
}
void Delay250us()        //250us延迟函数,用于产生2KHZ信号
{
    unsigned char i;
    nop();
    i = 112;
    while (--i);
}
void delay_ms(int ms)
{
    int val = 110;
    for (;ms >0; ms--)
    {
        while(val--);
    }
}
void Delay100us()        //@11.0592MHz
{
    unsigned char i;
    nop();
    i = 43;
    while (--i);
}
main() //主函数
{
    while(1)
    {
    if (key1 == 0 || key2 == 0)
        {
            delay_ms(10);
            if (key1 == 0)
                Delay500us(); // 1KHZ
            else if(key2 == 0)
                Delay250us(); // 2KHZ
        }else
        {
            Delay100us(); // 5KHZ
        }
        Buzzer=~Buzzer; //喇叭驱动位取反
    }
}

程序中检测KEY1和KEY2的状态,当按下KEY1时候,修改蜂鸣器驱动频率为1KHZ,KEY2按键按下时候,蜂鸣器驱动频率为2KHZ,可以听到不同的声音效果。

注意:软件精确延时时间可以利用STC-ISP工具实现。
在这里插入图片描述

三、结语

如您在使用过程中有任何问题,请加QQ群进一步交流。

QQ交流群:906015840 (备注:物联网项目交流)

源码获取:扫描下方二维码,关注公众号,回复"51单片机"即可

硬件获取:淘宝搜索店铺"小驿物联"。
在这里插入图片描述
一叶孤沙出品:一沙一世界,一叶一菩提

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

物联网客栈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值