一 原理图分析
二 三八译码器工作原理
三八译码器: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();
}