请问个关于C51上矩阵键盘的问题
我看书上写矩阵键盘的代码时都是用扫描的方法,
然后根据获取的数据进行判断。我有个疑问:
为什么不可以直接通过读矩阵键盘的输出数据
进行判断?因为当按下某个矩阵键盘上的键,
那么对应的行、列都为低电平,可是不知道
为什么代码运行时检测不出来。请问为什么?
能说说理由吗?
请看我的代码(但是运行不能成功,不知道是为什么):
unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};
void main()
{
while(1)
{
switch(P3) //P3口接在矩阵键盘上
{
case 0x7e:P0=table[0];break;
case 0xbe:P0=table[1];break;
case 0xde:P0=table[2];break;
case 0xee:P0=table[3];break;
case 0x7d:P0=table[4];break;
case 0xbd:P0=table[5];break;
case 0xdd:P0=table[6];break;
case 0xed:P0=table[7];break;
case 0x7b:P0=table[8];break;
case 0xbb:P0=table[9];break;
case 0xdb:P0=table[10];break;
case 0xeb:P0=table[11];break;
case 0x77:P0=table[12];break;
case 0xb7:P0=table[13];break;
case 0xd7:P0=table[15];break;
case 0xe7:P0=table[15];break;
default:P0=table[15];break;
}
}
}