KEY_MATRIX_PORT=0xf7;
jisu=0;
while( KEY_MATRIX_PORT!=0xf7)
{
switch( KEY_MATRIX_PORT)
{
case 0x77:key_is=1;break;
case 0xb7:key_is=5;break;
case 0xd7:key_is=9;break;
case 0xe7:key_is=13;break;
}
jisu=jisu+1;if(jisu>200){break;}
}
KEY_MATRIX_PORT=0xfb;
jisu=0;
while( KEY_MATRIX_PORT!=0xfb)
{
switch( KEY_MATRIX_PORT)
{
case 0x7b:key_is=2;break;
case 0xbb:key_is=6;break;
case 0xdb:key_is=10;break;
case 0xeb:key_is=14;break;
}
jisu=jisu+1;if(jisu>200){break;}
}
KEY_MATRIX_PORT=0xfd;
jisu=0;
while( KEY_MATRIX_PORT!=0xfd)
{
switch( KEY_MATRIX_PORT)
{
case 0x7d:key_is=3;break;
case 0xbd:key_is=7;break;
case 0xdd:key_is=11;break;
case 0xed:key_is=15;break;
}
jisu=jisu+1;if(jisu>200){break;}
}
KEY_MATRIX_PORT=0xfe;
jisu=0;
while( KEY_MATRIX_PORT!=0xfe)
{
switch( KEY_MATRIX_PORT)
{
case 0x7e:key_is=4;break;
case 0xbe:key_is=8;break;
case 0xde:key_is=12;break;
case 0xee:key_is=16;break;
}
jisu=jisu+1;if(jisu>200){break;}
}
return key_is;
}
void main()
{
u8 key=0;
while(1)
{
key=key_matrix();