继电器与蜂鸣器

一、元器件介绍:

二、相关芯片介绍

1.四大芯片

译码器(74HC138)、锁存器(74HC573)、或非门(74HC02)、驱动芯片(ULN2003)

2.了解

①:因单片机IO口的驱动能力有限,不足以驱动蜂鸣器、继电器中的线圈,所以需要驱动芯片来增加驱动能力。②:因板子上外设多,IO数量不够,需要通过”译码器-锁存器“结构,让数据控制口P0分时控制外设。(74HC138、74HC573、74HC02)

3.电路分析及芯片详解

①:ULN2003

 

 内部为非门加上二极管(起保护作用),想让蜂鸣器响,就要给N BUZZ端0,即ULN2003中的7给1,即Q6输出为1,再看74HC573芯片。

②:74HC573

 

 LE有类似门锁的功能,LE=1时,P0口的数据可以送到输出端,LE=0时,数据不能流过。因此,想要Q6=1,需要让P06=1且Y5C=1,Y5C连接的是74HC02(或非门)

③:74HC02:

 因为J13中我们选择的是2和3相连的IO模式,所以WR=0,因此,想要Y5C输出为1,Y5就要等于0,Y5连接的是74HC138译码器。

④:74HC138译码器

 

由真值表得,P2的765三个口选择哪个,哪个输出端就为0。

 三、继电器

继电器与蜂鸣器的分析一样,N-RELAY端=0时,K1与3相连,L10亮,开始工作。N-RELAY=1时,继电器不吸合,电路处于悬空状态。

 四、程序

①:程序控制顺序

P0输出→打开锁存器(P27 P26 P25输出控制)→关闭锁存器(让控制外设的数据稳定){原则:在打开锁存器之前,需要保持P0数据的稳定;在关闭锁存器之后,才可以操作P0改变数据。}

②.代码

#include <STC15F2K60S2.H>
#include <intrins.h>

unsigned char buzzer_ctrl;           //定义全局变量,控制蜂鸣器
unsigned char relay_ctrl;			//定义全局变量,控制蜂鸣器

void vSystem_Init(void)
{
	  buzzer_ctrl=0;          //通过对变量的赋值,控制开还是关。0是关,1是开
	  relay_ctrl=1;
	  P0=(buzzer_ctrl<<6)|(relay_ctrl<<4);
	  P2=0xa0;   //打开锁存器,控制ULN2003输出
	  P2=0;      //关闭锁存器,让74HC573输出保持稳定
}

void main()
{
    vSystem_Init();
    while(1);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值