74HC138真值表(H高,L 低,倒着数)
#include<reg52.h>
#include<intrins.h>
#define LED P0
typedef unsigned int u16; //对数据类型进行定义
typedef unsigned char u8;
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
u16 code num[]={0x3f , 0x06 , 0x5b , 0x4f , 0x66 , //声明0~9的值
0x6d , 0x7d , 0x07 , 0x7f , 0x6f };
void delay(u16 i)
{
while(i--);
}
void run()
{
LSA=1;LSB=1;LSC=1;
LED=num[5];
delay(100);
LSA=0;LSB=1;LSC=1;
LED=num[2];
delay(100);
LSA=1;LSB=0;LSC=1;
LED=num[0];
delay(100);
LSA=0;LSB=0;LSC=1;
LED=num[1];
delay(100);
LSA=1;LSB=1;LSC=0;
LED=num[3];
delay(100);
LSA=0;LSB=1;LSC=0;
LED=num[1];
delay(100);
LSA=1;LSB=0;LSC=0;
LED=num[4];
delay(100);
}
void main()
{
while(1)
{
run(); //数码管显示数字
}
}
数字可任意更改,需要显示八位的话,直接按真值表在代码后面加LSA=0;LSB=0;LSC=0;就行