51_蓝桥杯_led流水灯

一 原理图分析

二 三八译码器工作原理

三八译码器:3个输入控制8路互斥的低电平有效输出。

C

B

A

输出

0

0

0

Y0

0

0

1

Y1

0

1

0

Y2

0

1

1

Y3

1

0

0

Y4

1

0

1

Y5

1

1

0

Y6

1

1

1

Y7

三 锁存器工作原理

锁存器:当使能端LE为高时,输出同步,LE为低时,输出数据被锁存。

OE

LE

输入

输出

1

1

L

L

1

1

H

H

1

0

X

H

四 或非门原理

输入

输入

输出

A

B

C

1

1

0

1

0

0

0

1

0

0

0

1

五 代码

#include "reg52.h"sbit HC138_A = P2^5;
sbit HC138_B = P2^6;
sbit HC138_C = P2^7;void Delay(unsignde int t)
{while(t--);while(t--);
}//实现延时功能的函数void liushuideng()
{unsigned char i;//定义char型变量HC138_C = 1;HC138_B = 0;HC138_A = 0;//输出Y4for(i=0;i<3;i++){P0 = 0x00;//实现了全亮Delay(60000);Delay(60000);//延时P0 = 0xff;//实现了全灭Delay(60000);Delay(60000);//延时}由全灭到全亮,循环3次for(i=0;i<=8;i++){P0 = 0xff<<i;//实现了由全灭到全亮Delay(60000);Delay(60000);//延时}实现了由全灭,再逐个点亮for(i=0;i<=8;i++){P0 = 0x00<<i;//实现了由全亮到全灭Delay(60000);Delay(60000);//延时}实现了由全亮,再逐个灭}//实现了又全亮到全灭,再逐个亮起,再逐个灭掉的函数功能void main()
{while(1)
{liushuideng();
}