51单片机数码管0到F动态显示
#define uchar unsigned char
#define uint unsigned int
sbit du=P2^6;
sbit we=P2^7;
uchar num;
uchar code
table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delays(uint);
void main()
{
we=1;//打开U2锁存器
P0=0xc0;//送入位选信号
we=0;
while(1)
{
du=1;
P0=table[0];
du=0;
P0=0xff;//送位选数据前关闭所有显示,防止打开位选锁存时原来段选数据通过位选锁存器造成混乱
we=1;
P0=0xfe;
we=0;
delays(500);
du=1;
P0=table[1];
du=0;
P0=0xff;//送位选数据前关闭所有显示,防止打开位选锁存时原来段选数据通过位选锁存器造成混乱
we=1;
P0=0xfd;
we=0;
delays(500);
du=1;
P0=table[2];
du=0;
P0=0xff;//送位选数据前关闭所有显示,防止打开位选锁存时原来段选数据通过位选锁存器造成混乱
we=1;
P0=0xfb;
we=0;
delays(500);
du=1;
P0=table[3];
du=0;
P0=0xff;//送位选数据前关闭所有显示,防止打开位选锁存时原来段选数据通过位选锁存器造成混乱
we=1;
P0=0xf7;
we=0;
delays(500);
du=1;
P0=table[4];
du=0;
P0=0xff;//送位选数据前关闭所有显示,防止打开位选锁存时原来段选数据通过位选锁存器造成混乱
we=1;
P0=0xef;
we=0;
delays(500);
du=1;
P0=table[5];
du=0;
P0=0xff;//送位选数据前关闭所有显示,防止打开位选锁存时原来段选数据通过位选锁存器造成混乱
we=1;
P0=0xdf;
we=0;
delays(500);
du=1;
P0=table[6];
du=0;
P0=0xff;//送位选数据前关闭所有显示,防止打开位选锁存时原来段选数据通过位选锁存器造成混乱
we=1;
P0=0xfe;
we=0;
delays(500);
du=1;
P0=table[7];
du=0;
P0=0xff;//送位选数据前关闭所有显示,防止打开位选锁存时原来段选数据通过位选
锁存器造成混乱
we=1;
P0=0xfd;
we=0;
delays(500);
du=1;
P0=table[8];
du=0;
P0=0xff;//送位选数据前关闭所有显示,防止打开位选锁存时原来段选数据通过位选锁存器造成混乱
we=1;
P0=0xfb;
we=0;
delays(500);
du=1;
P0=table[9];
du=0;
P0=0xff;//送位选数据前关闭所有显示,防止打开位选锁存时原来段选数据通过位选锁存器造成混乱
we=1;
P0=0xf7;
we=0;
delays(500);
du=1;
P0=table[10];
du=0;
P0=0xff;//送位选数据前关闭所有显示,防止打开位选锁存时原来段选数据通过位选锁存器造成混乱
we=1;
P0=0xef;
we=0;
delays(500);
du=1;
P0=table[11];
du=0;
P0=0xff;//送位选数据前关闭所有显示,防止打开位选锁存时原来段选数据通过位选锁存器造成混乱
we=1;
P0=0xdf;
we=0;
delays(500);
du=1;
P0=table[12];
du=0;
P0=0xff;//送位选数据前关闭所有显示,防止打开位选锁存时原来段选数据通过位选锁存器造成混乱
we=1;
P0=0xfe;
we=0;
delays(500);
du=1;
P0=table[13];
du=0;
P0=0xff;//送位选数据前关闭所有显示,防止打开位选锁存时原来段选数据通过位选锁存器造成混乱
we=1;
P0=0xfd;
we=0;
delays(500);
du=1;
P0=table[14];
du=0;
P0=0xff;//送位选数据前关闭所有显示,防止打开位选锁存时原来段选数据通过位选锁存器造成混乱
we=1;
P0=0xfb;
we=0;
delays(500);
du=1;
P0=table[15];
du=0;
P0=0xff;//送位选数据前关闭所有显示,防止打开位选锁存时原来段选数据通过位选锁存器造成混乱
we=1;
P0=0xf7;
we=0;
delays(500);
}
}
void delays(uint xs)
{
uint i,j;
for(i=xs;i>0;i--)
for(j=110;j>0;j--);//延时x秒
}
因篇幅问题不能全部显示,请点此查看更多更全内容