C51-流水灯+蜂鸣器实验程序

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

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 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值