LED指示灯的基本控制

本文介绍了74HC138译码器、74HC573锁存器、74HC02或非门的基本功能和使用,以及如何通过它们控制LED指示灯实现LED跑马灯效果。详细展示了编程实例,展示了基础的硬件和软件配合应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、74HC138译码器

三八译码器,指三个输入控制八路互斥的低有效输出。其中八路互斥低有效是指通过控制输入端每次只能控制一路输出为低电平。而左侧三个输入端通过二进制来选择右侧输出端Y0~Y7,P25对应A为最低位,P26对应B为第二位,P27对应C为最高位。

例如,若P2^5=1,P2^6=0,P2^7=1,即代表二进制下的数字101,转换为十进制则为5,即选择输出端Y5。

二、74HC573锁存器

74HC573锁存器是八路3态输出的非反转透明锁存器。其中非反转是指输入和输出保持相同。

当锁存使能端LE为高是,这些器件的锁存输出与输入是同步的。

而当锁存使能LE为低时。数据会被锁存,如下图。

三、74HC02或非门

或非门

或非门是具有多端输入和单端输出的门电路。当任一输入端(或多端)为高电平(逻辑“1”)时,输出就是低电平(逻辑“0”);只有当所有输入端都是低电平(逻辑“0”)时,输出才是高电平(逻辑“1”) 。

74HC02或非门在IO扩展开发模式下WR已经接地。若要Y4C为高电平,则Y4也要为低电平0.

 

四、LED指示灯电路图

在LE为高电平的情况下,控制P0即控制LED亮灭。

五、LED跑马灯代码

#include <REG52.H>
sbit HC138_A=P2^5;//定义管脚
sbit HC138_B=P2^6;
sbit HC138_C=P2^7;
void Delay(unsigned char xms)	//@11.0592MHz//Delay函数
{
	unsigned char data i, j;
 while(xms--){
	
	i = 2;
	j = 199;
	do
	{
		while (--j);
	} while (--i);
}
}
void main()
{
  while(1)
  {
		int i,t;
		HC138_A=0;//选择Y4
		HC138_B=0;
		HC138_C=1;
		for(i=0;i<3;i++)
		{
			P0=0x00;
			Delay(1000);
			P0=0xff;
		}
		for(t=1;t<=8;t++)
		{
			P0=0xff<<t;//移位,使LED逐个亮起
		}
		for(t=1;t<=8;t++)
		{
			P0=~(0xff<<t);
		}
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值