#include<reg51.h>
#include<intrins.h>
sbit P1_0=P1^0;
sbit P1_1=P1^1;
sbit P1_2=P1^2;
#define uint unsigned int
#define uchar unsigned char
uchar i=0,n=0;
uchar code seg[]={ //七段码表
0x3f,0x06,0x5b,0x4f,0x66, //0~4
0x6d,0x7d,0x07,0x7f,0x6f,0x3f}; //5~9
uchar b[6]={0,0,0,0,0,0};
void delay_10us(uchar n)
{do
{ _nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}while(--n);
}
void delay_ms(uint n)
{do delay_10us(131);
while(--n);
}
void butt()
{
uchar but1,but2,but3;
but1=P1_0;
but2=P1_1;
but3=P1_2;
while(but1==0)
{
delay_ms(10);
but1=P1_0;
if(but1==0)
{but1=P1_0;
i++;
}
if(i==4) i=0;
while(but1==0){ but1=P1_0;}
n=0;
}
while(but2==0)
{
delay_ms(10);
but2=P1_1;
if(but2==0)
{but2=P1_1;
b[i]++;
}
if(b[i]==10) b[i]=0;
while(but2==0){ but2=P1_1;}
n=0;
}
while(but3==0)
{
delay_ms(10);
but3=P1_2;
if(but3==0)
{but3=P1_2;
b[i]--;
}
if(b[i]==-1) b[i]=9;
while(but3==0){ but3=P1_2;}
n=0;
}
if(n==0)
{TI=0;
SBUF=seg[b[0]];
while(TI==0);
TI=0;
SBUF=seg[b[1]];
while(TI==0);
TI=0;
SBUF=seg[b[2]];
while(TI==0);
TI=0;
SBUF=seg[b[3]];
while(TI==0);
n=1;
}
}
void main()
{
while(1)
{butt();}
}