51单片机入门之蜂鸣器

本篇介绍51单片机中的蜂鸣器模块介绍

开发板型号:STC165

一、蜂鸣器原理图

51单片机入门之蜂鸣器_第1张图片

51单片机驱动蜂鸣器的程序如下:

#include 

// 定义蜂鸣器控制端口
sbit BUZZER = P1^0;

void main()
{
    // 循环控制蜂鸣器闪烁
    while(1)
    {
        // 蜂鸣器响
        BUZZER = 0;
        // 延时一段时间
        delay(100);
        // 蜂鸣器不响
        BUZZER = 1;
        // 延时一段时间
        delay(100);
    }
}

// 延时函数
void delay(unsigned int i)
{
    unsigned int j, k;
    for(j = i; j > 0; j--)
        for(k = 110; k > 0; k--);
}

在程序中,我们首先定义了蜂鸣器控制端口为P1^0,然后使用while循环来控制蜂鸣器的闪烁。在循环体中,我们先使蜂鸣器响,然后延时一段时间,再使蜂鸣器不响,再延时一段时间,然后再次循环。这样就可以让蜂鸣器不断的闪烁了。

延时函数delay()是通过嵌套循环实现的,可以根据需要自行调整延时时间。

二、下面来说一下蜂鸣器音量大小和音色的控制

        蜂鸣器发出的声音可以简单地看作是有间隔的不断震动来产生大小甚至的音色不同的警报声。

声音的大小可以通过高电平和低电平持续时间的比例来控制声音大小。

比如说当蜂鸣器响的时候延时为A,不响的时候延时为B。此时我就可以控制A/B的值来控制声音的大小。

而音色则可以通过控制振动的频率来控制。

声音大小的控制好理解,下面主要来介绍频率的控制。

首先,频率=1/周期

所以,我们可以通过控制周期来控制频率。

而周期的控制就是控制蜂鸣器响的时长加上蜂鸣器不响的时长之和就是响一次的周期。

你可能感兴趣的:(51,51单片机,嵌入式硬件,单片机)