#include <8051.h>
#define keyport P1 //定义控制端口
void main(void)
{
unsigned char x,y; //define index x y for matrix z
int z[4][3]={7,8,9,
4,5,6,
1,2,3,
12,0,14};
while(1)
{
keyport=0xf0; //set P1.4-P1.7 as 1, P1.0-P1.3 as 0
if(keyport!=0xf0)
{
switch(keyport)
{
case 0x70:x=0;break;
case 0xb0:x=1;break;
case 0xd0:x=2;break;
case 0xe0:x=3;break;
}
}
keyport=0x0f; //set P1.4-P1.7 as 0, P1.0-P1.3 as 1
if(keyport!=0x0f)
{
switch(keyport)
{
case 0x0b:y=0;break;
case 0x0d:y=1;break;
case 0x0e:y=2;break;
}
}
P2=z[x][y]; //输出被按键盘值
}