1、74HC138三八译码器
真值表:
(L:低电平 H:高电平 X:状态未定)
E1、E2、E3是芯片使能控制端口,A0、A1、A2是芯片的数据输入端口,Y0-Y7是芯片的数据输出端口。通过真值表可以知道,只有当使能端口E1、E2为低电平(L)E3为高电平(H)的时候,数据的输出端Y才可以被输入端A控制。在此连接方式下,通过对A0-A2口进行编码(0表示低电平、1表示高电平)就可以控制输出端状态(如下表):
A2 | A1 | A0 | 码值 | 选中数据端(默认高电平,选中后变为低电平) |
---|---|---|---|---|
0 | 0 | 0 | 0 | Y0 |
0 | 0 | 1 | 1 | Y1 |
0 | 1 | 0 | 2 | Y2 |
0 | 1 | 1 | 3 | Y3 |
1 | 0 | 0 | 4 | Y4 |
1 | 0 | 1 | 5 | Y5 |
1 | 1 | 0 | 6 | Y6 |
1 | 1 | 1 | 7 | Y7 |
2、74HC573锁存器
74HC573工作原理:
- 八路3态输出的非反转透明锁存器。
- 当锁存使能端LE为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。
真值表:
3、74HC02或非门
4、LED指示灯电路原理
5、实验代码
/****************************************************************
文件名称:Led的基本控制实验
实验现象:首先让8路LED指示灯闪烁3遍然后熄灭,接着依次
点亮LED指示灯,最后依次熄灭指示灯,程序循环实现上述功能。
****************************************************************/
#include "STC15F2K60S2.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--);
}
//led控制程序
void led_proc()
{
unsigned char i;
HC138_A = 0;
HC138_B = 0;
HC138_C = 1;
//闪烁三次
for (i=0;i<3;i++)
{
P0 = 0x00; //低电平点亮
Delay(60000);
Delay(60000);
P0 = 0xff; //关闭LED
Delay(60000);
Delay(60000);
}
//依次点亮LED指示灯
for(i = 0;i<=8;i++)
{
P0 = 0xff << i;
Delay(60000);
Delay(60000);
}
//依次熄灭LED指示灯,将点亮取反即可
for(i = 0;i<=8;i++)
{
P0 = ~(0xff << i);
Delay(60000);
Delay(60000);
}
}
void main()
{
while(1)
{
led_proc();
}
}