#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit L1 = P1^4;
sbit L2 = P1^5;
sbit L3 = P1^6;
sbit L4 = P1^7;
uint dis_num[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
uchar dis2[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned int time;
void delay(time)
{
unsigned int j;
for(j = 0;j < time;j++)
{}
}
main()
{
uchar i,j;
uint a,g,s;
while(1)
{
P1 = 0xfe; //初始值,第一行有效
for(i = 0;i <= 3;i++)
{
if(L1 == 0)
{
a = dis_num[i*4 + 0];
P0 = 0xff;
j = 0x40;
s = a / 10;
P0 = dis2[s];
P2 = j;
delay(50);
P0 = 0xff;
g = a % 10;
j = 0x80;
P0 = dis2[g];
P2 = j;
delay(50);
}
if(L2 == 0)
{
a = dis_num[i*4 + 1];
P0 = 0xff;
j = 0x40;
s = a / 10;
P0 = dis2[s];
P2 = j;
delay(50);
P0 = 0xff;
g = a % 10;
j = 0x80;
P0 = dis2[g];
P2 = j;
delay(50);
}
if(L3 == 0)
{
a = dis_num[i*4 + 2];
P0 = 0xff;
j = 0x40;
s = a / 10;
P0 = dis2[s];
P2 = j;
delay(50);
P0 = 0xff;
g = a % 10;
j = 0x80;
P0 = dis2[g];
P2 = j;
delay(50);
}
if(L4 == 0)
{
a = dis_num[i*4 + 3];
P0 = 0xff;
j = 0x40;
s = a / 10;
P0 = dis2[s];
P2 = j;
delay(50);
P0 = 0xff;
g = a % 10;
j = 0x80;
P0 = dis2[g];
P2 = j;
delay(50);
}
P0 = 0xff;
if(i == 0) P1 = 0xfd;
if(i == 1) P1 = 0xfb;
if(i == 2) P1 = 0xf7;
}
}
}