#include
#define uint unsigned int
#define uchar unsigned char
unsigned char value[6]={16,16,16,16,16,16};
uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0};
uchar table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};
////////////////////////////////////////////////////////
void delay(unsigned int cnt)
{
while(--cnt);
}
///////////////////////////////////////////////////////
void keyscan()
{
// P3=0;
// i=i& 0x3f;
/*
if(!P3^0) value[0]=1;else value[0]=16;
if(!P3^1) value[1]=2;else value[1]=16;
if(!P3^2) value[2]=3;else value[2]=16;
if(!P3^3) value[3]=4;else value[3]=16;
if(!P3^4) value[4]=5;else value[4]=16;
if(!P3^5) value[5]=6;else value[5]=16;
*/
if(P3^0==1) value[0]=16;else value[0]=1;delay(20);
if(P3^1==1) value[1]=16;else value[1]=2;delay(20);
if(P3^2==1) value[2]=16;else value[2]=3;delay(20);
if(P3^3==1) value[3]=16;else value[3]=4;delay(20);
if(P3^4==1) value[4]=16;else value[4]=5;delay(20);
if(P3^5==1) value[5]=16;else value[5]=6;delay(20);
}
void disp(uchar num1,uchar num2,uchar num3,uchar num4,uchar num5,uchar num6)
{
P0=~table[num1];//显示第一个数码管
P2=0x01;//0001 0000
delay(8000);
P0=~table[num2];//显示第二个数码管
P2=0x02;//0010 0000
delay(8000);
P0=~table[num3];//显示第三个数码管
P2=0x04;//0100 0000
delay(8000);
P0=~table[num4];//显示第四个数码管
P2=0x08;//1000 0000
delay(5000);
P0=~table[num5];//显示第wu个数码管
P2=0x10;//1000 0000
delay(5000);
P0=~table[num6];//显示第liu个数码管
P2=0x20;//1000 0000
delay(5000);
}
///////////////////////////////////////////////////////
main()
{
while(1)
{
keyscan();
disp(value[0],value[1],value[2],value[3],value[4],value[5]);
}
}