第6章 蜂鸣器实验

第六章 蜂鸣器实验

1. 蜂鸣器介绍

蜂鸣器如其名:通过通电振动从而发出声音,我们可以调节频率就可以改变蜂鸣器音调,改变输出电平的高低电平占空比,可以改变蜂鸣器的声音大小

其他具体可以参考:电子电路学习笔记(17)——蜂鸣器_有源蜂鸣器原理图-CSDN博客蜂鸣器是什么?它的基本原理是什么? - 21ic电子网

2. 硬件设计

通过前面的学习,我们知道了IO口可以直接控制开发板上的LED。但是我们能不能直接使用单片机的IO口驱动蜂鸣器?答案是否定的,因为51单片机IO口的驱动能力毕竟弱,所以我们需要三极管通过把电流放大后再驱动蜂鸣器。

开发板上面的蜂鸣器模块电路如下:

从图中看出,J7可由任意IO口控制。然后经过三级管进行电流放大,比如我们接P2.5管脚,当P2.5输出高电平时,三极管截至,蜂鸣器无电;P25输出低电平,三级管导通。

因此我们需要通过编写代码使P2.5管脚以一定频率不断输出高低电平信号控制蜂鸣器发出声音

3. 软件设计

本章要实现的功能是:让蜂鸣器发出声音,一段时间后再关闭

#include <REGX52.H>

sbit BEEP = P2^5; // 将P2.5管脚定义为BEEP-即蜂鸣器

// 延时函数-已经很熟悉了,不必解释
void delay_us(unsigned int ten_us)
{
    while(ten_us--);    
} 

void main()
{
    unsigned int i;

    BEEP = 0; // 初始化时关闭蜂鸣器

    for(i = 0; i < 1000; i++)
    {
        BEEP = !BEEP; // 切换蜂鸣器状态
        delay_us(500);
    }

    BEEP = 0; // 循环结束关闭蜂鸣器

    while(1); // 维持程序继续运行

}

如要改变音调可以修改延时时间,改变音量可以修改输出高电平时间

BEEP = 1;
delay_us(190);
BEEP = 0;
delay_us(10);

4. 小结

这一章也比较简单,就是不断取反产生脉冲驱动蜂鸣器呗。我们的代码只是一个简单的示例,如果想要演奏音乐就比较麻烦了,可以参考:【51单片机】蜂鸣器演奏音乐《机里太美》-附仿真文件_蜂鸣器演奏歌曲-CSDN博客


2024..6.24修订,后期不在维护

posted @ 2024-08-18 10:46  hazy1k  阅读(17)  评论(1编辑  收藏  举报