(二)搞定烦人的蜂鸣器和继电器


内容:

1.38译码器–74HC138

2.或非门–74HC02

3.锁存器–M74HC573M1R

4.非门(复合管-达林顿结构-ULN2003)

呈现代码


提供proteus 仿真

资源网盘链接:

链接:https://pan.baidu.com/s/1XbxxYbm1DMEoM5C3zfvbmg
提取码:zhua

在这里插入图片描述


38译码器–74HC138

在这里插入图片描述

这里原理大家自行去了解

仅提供自己的见解

**简单分析:需要Y1路输出(低电平有效也就是0),Y1对应的编号为1,则1对应的三个二进制数为:001,则P27-P25赋值就为001,P2剩余位补0,即P2赋值0x20;

例如:需求Y5输出0,则对应编号5,5的二进制数为101,剩余位补0,则P2 赋值为:0xA0;**

在这里插入图片描述


或非门–74HC02

在这里插入图片描述

个人见解:

简单分析:由于板子上默认WR接GND的,只需Y7-Y4输入为0,则输出就为1

例如 Y5C输出为1,则对应的Y5就为0,同理Y4C输出为1,则对应的Y4就为0


锁存器–M74HC573M1R

在这里插入图片描述
一句话:LE控制“开门或关门”,LE=1,P0的数据可以从D1-7侧送至Q1-7侧,反之不能传送。


非门(复合管-达林顿结构-ULN2003)

在这里插入图片描述

就当作非门使用


关闭蜂鸣器和代开继电器的代码

#include <STC15F2K60S2.H>

typedef unsigned char u8;

void DeviceCtrl(u8 p2data,u8 p0data)
{
	P0 = p0data;	//给数据
	P2 = (P2&0x1f)|p2data;	// (开门)
	P2 &= 0x1f;		//(关门)
}
void main()
{
	DeviceCtrl(0xa0,0x10);//buzz --close   relay --open
	while(1){		
	}
}



----- 如有错误欢迎大家批评指正!!!

  • 17
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小爪.exe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值