【蓝桥杯-点灯】

基础的点灯

通过74HC138译码器实现三路输入控制八路互斥的低有效输出

如下:

ABC输出
000Y0
001Y1
010Y2
011Y3
100Y4
101Y5
110Y6
111Y7

通过74HC573锁存器控制LED的亮灭

如下:

0E(默认接地)LED1~D8Q1~Q8
XX高阻
X不变

实现代码:

/*
 * @Author: 青衫签 
 * @Date: 2022-10-23 13:07:11
 */
#include <stc15.h>
/*引脚定义*/
sbit HC138_A = P2 ^ 5;
sbit HC138_B = P2 ^ 6;
sbit HC138_C = P2 ^ 7;

/*延时函数*/
void Delay(unsigned int t)
{
	while (t--)
	{
	};
	while (t--)
	{
	};
}
/*do led*/
void LED_RUN()
{
	unsigned int i = 0;
	HC138_A = 0;
	HC138_B = 0;
	HC138_C = 1;
	
	for (i = 0; i <=8; i++)
	{
		Delay(3000);
		P0 = 0xff << i; //0xff每次向左移i位
		Delay(3000);
	}

	// Delay(6000);
	// P0=0XFF;
	// Delay(6000);
}

/*主函数入口*/
void main()
{
	while (1)
	{
		LED_RUN();
	}
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

番茄拌饭酱

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

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

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

打赏作者

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

抵扣说明:

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

余额充值