蓝桥杯单片机01-流水灯的实现
一、电路原理
通过P2寄存器的高三位给138译码器打通LED的Y4C通道,P0寄存器才能通过锁存器对LED
进行控制。LED为低电平点亮。
138译码器简易真值表
P0寄存器输出什么锁存器同步输出什么。
二、代码
#include "reg52.h"
sbit HC138_A = P2^5;
sbit HC138_B = P2^6;
sbit HC138_C = P2^7;
unsigned char i = 0;
void Delay(unsigned int t)
{
while(t--);
while(t--);
while(t--);
while(t--);
}
void LED_Init()//打通LED通道
{
HC138_C = 1;
HC138_B = 0;
HC138_A = 0;
}
void main()
{
while(1)
{
LED_Init();
for(i = 1; i <= 3; i++)//让一整排LED灯交替亮灭三下
{
P0 = 0x00;
Delay(90000);
P0 = 0xff;
Delay(90000);
}
for(i = 1; i<=8; i++)//LED从左到右依次点亮
{
P0 = 0xff << i;
Delay(90000);
}
for(i = 1; i<=8; i++)//LED从左到右依次熄灭
{
P0 = ~(0xff << i);
Delay(90000);
}
}
}
总结
实训任务参考小蜜蜂老师,学会了138译码器和锁存器的基本原理。