一、74HC138译码器
三八译码器,指三个输入控制八路互斥的低有效输出。其中八路互斥低有效是指通过控制输入端每次只能控制一路输出为低电平。而左侧三个输入端通过二进制来选择右侧输出端Y0~Y7,P25对应A为最低位,P26对应B为第二位,P27对应C为最高位。
例如,若P2^5=1,P2^6=0,P2^7=1,即代表二进制下的数字101,转换为十进制则为5,即选择输出端Y5。
二、74HC573锁存器
74HC573锁存器是八路3态输出的非反转透明锁存器。其中非反转是指输入和输出保持相同。
当锁存使能端LE为高是,这些器件的锁存输出与输入是同步的。
而当锁存使能LE为低时。数据会被锁存,如下图。
三、74HC02或非门
或非门
或非门是具有多端输入和单端输出的门电路。当任一输入端(或多端)为高电平(逻辑“1”)时,输出就是低电平(逻辑“0”);只有当所有输入端都是低电平(逻辑“0”)时,输出才是高电平(逻辑“1”) 。
74HC02或非门在IO扩展开发模式下WR已经接地。若要Y4C为高电平,则Y4也要为低电平0.
四、LED指示灯电路图
在LE为高电平的情况下,控制P0即控制LED亮灭。
五、LED跑马灯代码
#include <REG52.H>
sbit HC138_A=P2^5;//定义管脚
sbit HC138_B=P2^6;
sbit HC138_C=P2^7;
void Delay(unsigned char xms) //@11.0592MHz//Delay函数
{
unsigned char data i, j;
while(xms--){
i = 2;
j = 199;
do
{
while (--j);
} while (--i);
}
}
void main()
{
while(1)
{
int i,t;
HC138_A=0;//选择Y4
HC138_B=0;
HC138_C=1;
for(i=0;i<3;i++)
{
P0=0x00;
Delay(1000);
P0=0xff;
}
for(t=1;t<=8;t++)
{
P0=0xff<<t;//移位,使LED逐个亮起
}
for(t=1;t<=8;t++)
{
P0=~(0xff<<t);
}
}
}