Sei sulla pagina 1di 2

void delay()

{
unsigned int x;
for(x=0;x<10000;x++);
}
unsigned char keys[4][4]={0x0,0x1,0x2,0x3,
0x4,0x5,0x6,0x7,
0x8,0x9,0xA,0xB,
0xC,0xD,0xE,0xF};
while(1)
{
P1 = 0xfe; // ground row0
a = P1 & 0xf0;
a = a | 0x0e;
if(a != 0xfe)
{
b = 0;
break;
}
P1 = 0xfd; // ground row1
a = P1 & 0xf0;
a = a | 0x0d;
if(a != 0xfd)
{
b = 1;
break;
}
P1 = 0xfb; // ground row2
a = P1 & 0xf0;
a = a | 0x0b;
if(a != 0xfb)
{
b = 2;
break;
}
P1 = 0xf7; // ground row3
a = P1 & 0xf0;
a = a | 0x07;
if(a != 0xf7)
{
b = 3;
break;
}
}

if(P1 == (0xef & a))


P2 = keys[b][0];
else if(P1 == (0xdf & a))
P2 = keys[b][1];
else if(P1 == (0xbf & a))
P2 = keys[b][2];
else
P2 = keys[b][3];

Potrebbero piacerti anche