C51-流水灯+蜂鸣器实验程序
注意:请结合前面已发布文章一起阅读,因为前面已经提及到的不再重复讲述。
1 项目需求
基于STC89C52单片机,进行蜂鸣器控制实验,并将蜂鸣器加入到上一期中的流水灯实验中,配合流水灯的节奏来发出声音。
2 蜂鸣器
2.1 蜂鸣器介绍
蜂鸣器分为有源蜂鸣器和无源蜂鸣器两种。
- 有源蜂鸣器
- 底部封装没有电路板,是使用黑胶封闭的;
- 有源的“源”是振荡源,指蜂鸣器内部自带振荡源;因此,只要一通电就会发出声音;
- 因为自带振荡电路,所以价格比无源蜂鸣器高;
- 程序控制简单、方便。
- 无源蜂鸣器
- 底部封装有电路板,不是使用黑胶封闭的;
- 直流信号无法使无源蜂鸣器发声,必须使用2~5KHz的方波驱动;
- 因为无自带的振荡电路,所以价格比有源蜂鸣器低;
- 声音频率可控,可以发出“多来米发梭拉西”的效果。
2.2 硬件原理图分析
蜂鸣器工作电流通常较大,无法通过单片机的I/O口直接驱动,需要通过放大器(即图中Q1-8550三极管)对电流进行放大,以驱动蜂鸣器。
根据电路原理图可知,当单片机P2.3输出低电平时,有源蜂鸣器发出声音;当输出高电平时,蜂鸣器关闭。

3 项目实施
3.1 代码编写
以下通过3种方式实现了对蜂鸣器的控制,且将蜂鸣器加入到上一期中的流水灯实验中,配合流水灯的节奏来发出声音。
/************************************
功能:(1)蜂鸣器实验;
(2)且在上期流水灯实验中加入蜂鸣器。
作者:eCoderY 时间:2024.01.20
************************************/
#include <reg52.h>
#define SWITCH_METHOD (2) /* 1,2,3 */
/* 方式1:寄存器操作打开、关闭蜂鸣器IO口 */
#if(SWITCH_METHOD == 1)
#define ON_BEEZER do{
P2 = 0xf7;}while(0);
#define OFF_BEEZER do{
P2

本文介绍了如何在基于STC89C52的C51单片机项目中,将蜂鸣器(有源和无源)集成到流水灯实验中,通过不同的编程方法实现蜂鸣器的控制,以及观察不同情况下的实验现象。
最低0.47元/天 解锁文章
3213

被折叠的 条评论
为什么被折叠?



