#include<reg52.h>
#define uc unsigned char;
#define ui unsigned int;
ui x,y,z;
void delay(z)
{
for(x=z;x>0;x--)
for(y=100;y>0;y--);
}
uc ge,shi,wei;
unsigned char code num[]=
{
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x5e,0x79,0x71,0x40,0x00
};
ui va=16,val,vah;
void keyscan()
{
P1=0x0f;
if(P1!=0x0f)
{
delay(20);
switch(P1)
{
case 0x07:
val=0;break;
case 0x0b:
val=1;break;
case 0x0d:
val=2;break;
case 0x0e:
val=3;break;
};
P1=~P1;
P1=P1&0xf0;
switch(P1)
{
case 0x70:
vah=0;break;
case 0xb0:
vah=1;break;
case 0xd0:
vah=2;break;
case 0xe0:
vah=3;break;
};
while(P1!=P1);
va=vah*4+val;
}
}void main()
{
while(1)
{
keyscan();
P0=num[va];
P2=0xdf;
}
}
|