单片机检测stc没反应_51单片机玩转物联网基础篇04-蜂鸣器

7a24dd9e6838ae907a4ffcf9239691c3.png

前言

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

一、基础知识

1.蜂鸣器简介

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

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

5280728808baa6fff4594e6b11a7f17f.png

2.硬件设计

打开硬件设计电路,蜂鸣器相关电路如下

b2c4c67e4ca5b2e681a508e0c2e34ba1.png

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

二、实例

1.创建工程

将上一节工程复制出来,并修改名字为03-beep

4b4634ab63782c31b9375291fb2cd9c3.png

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工具实现。

b346f1c29599267928ba1ccf1897b0ab.png

硬件获取:某宝搜索小驿物联,链接如下

51单片机物联网开发板 STC89C52RC实验板支持连云​item.taobao.com
cf3585de2cc132096a73020255a21f03.png

一叶孤沙出品:一沙一世界,一叶一菩提

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值