段选位选在一起 显示数码管,可以节约IO口哦
时间:10-02
整理:3721RD
点击:
//****自己写的,八个IO口显示数码管*****////
#include<reg51.h>
sbit LE=P3^7;
unsigned char disp[4]={1,2,1,7};
unsigned char code tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xbf};// 显示段码值0-9和-
unsigned char wei[4]={0x01,0x02,0x04,0x08};
void delayus(unsigned char a) //延迟
{
unsigned char i,j;
for(i=0;i<a;i++)
for(j=0;j<110;j++);
}
void display() //显示函数
{ unsigned char i;
for(i=0;i<4;i++)
{ P1=0Xff;
LE=1;
P1=wei[i];
LE=0;
P1=tab[disp[i]];
delayus(35);
}
}
main()
{ P1=0XFF;
while(1)
{
display();
delayus(1);
}
}
#include<reg51.h>
sbit LE=P3^7;
unsigned char disp[4]={1,2,1,7};
unsigned char code tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xbf};// 显示段码值0-9和-
unsigned char wei[4]={0x01,0x02,0x04,0x08};
void delayus(unsigned char a) //延迟
{
unsigned char i,j;
for(i=0;i<a;i++)
for(j=0;j<110;j++);
}
void display() //显示函数
{ unsigned char i;
for(i=0;i<4;i++)
{ P1=0Xff;
LE=1;
P1=wei[i];
LE=0;
P1=tab[disp[i]];
delayus(35);
}
}
main()
{ P1=0XFF;
while(1)
{
display();
delayus(1);
}
}

