第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修订,后期不在维护