#include<stc12c5a.h>
#define uchar unsigned char
#define uint unsigned int
uchar led[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar key[3]={0xfe,0xfd,0xfb};
unsigned char get()
{
uchar x,y,lie,i;
x=0;y=0;
for(i=0;i<3;i++)
{
P1=key[i];
lie=P1&0x38;
if(lie!=0x38)
{
x=i+1;
switch(lie)
{
case 0x30:{y=1;}break;
case 0x28:{y=2;}break;
case 0x18:{y=3;}break;
default:{x=0;}break;
}
break;
}
}
if(x!=0)
return (3*(x-1)+y);
else return 0;
}
void main()
{
uchar play,i;
P2M0=0xff;
P2M1=0x00;
P1M0=0xff;
P1M1=0x00;
while(1)
{
play=get();
switch(play)
{
case 1:
{
P2=led[1];
P0=0x07;
for(i=0;i<100;i++);
}break;
case 2:
{
P2=0x38;
P0=0x0e;
for(i=0;i<100;i++);
P0=0x0f;
P2=0x3f;
P0=0x0d ;
for(i=0;i<100;i++);
P0=0x0f;
P2=0x3e;
P0=0x0b;
for(i=0;i<100;i++);
P0=0x0f;
P2=0x79;
P0=0x07;
for(i=0;i<100;i++);
}break;
case 3:
{
P2=0x6e;
P0=0x0d;
for(i=0;i<100;i++);
P0=0x0f;
P2=0x3f;
P0=0x0b;
for(i=0;i<100;i++);
P0=0x0f;
P2=0x3e;
P0=0x07;
for(i=0;i<100;i++);
}break;
default :{P2=led[0];}break;
}
}
}