4.0 蜂鸣器 _ [AT89C51/2] [从零开始的单片机]

蜂鸣器介绍

蜂鸣器分为压电式蜂鸣器和电磁式蜂鸣器。
压电式蜂鸣器需要电压、一定频率的脉冲信号;电磁式蜂鸣器需要电源即可。
开发板上面是压电式蜂鸣器,是无源蜂鸣器(无振荡电路),因此可以手动改变蜂鸣器的频率产生不同音色、音调,而改变高低电平占比可以改变声音大小。

硬件设计

压电式蜂鸣器需要的电压不可能由单片机的I/O口提供,因为I/O口的驱动能力很弱(加上上拉电阻也不强),在开发板原理图上:
五线四项步进电机
蜂鸣器
开发板原理图中,P2^5引脚直接连接蜂鸣器,并不是直接连接单片机,也没有先连接到三极管放大,还使用UNL2003芯片驱动。
给UNL2003芯片的P2^5端口输入低电平时,BEEP输出高电平,输入高电平时,BEEP输出低电平(类似非门电路)
无源蜂鸣器需要一定频率的脉冲信号(高低电平),因此需要P2^5管脚不断输出高低电平信号。

软件设计

#include "reg52.h"//响声周期与频率的影响条件???

typedef unsigned char u8;
typedef unsigned int u16;

sbit BEEP = P2^5;

void delay(u16 i)
{
	while (i--);
}

void main()
{
	u16 i= 500;//定义一个变量i,形式为整形,代表发声时间.
	while(1)
	{
		while(i--)//时间i从2000递减,并不是死循环!而是不断递减后退出循环
		{
			BEEP = !BEEP;//对蜂鸣器按位取反,高低电平不断变化,生成脉冲信号
			delay(100);//数字乘10us,周期为其2倍
		}
		i = 0;//清零
		BEEP = 0;//虽然是0,但是不表示开启,而是关闭(非门电路)
	}
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值