第1个回答 2021-10-11
uchar x[16]={
0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,
0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77};
uchar scan() //扫描键值的子程序
{
key = 16;
P1 = 0xf0; scan0 = P1;
P1 = 0x0f; scan1 = P1;
k1 = scan0 | scan1; //第一次读出按键
if(k1 != 0xff) { //如果键按下
delay1ms(20); //延时
P1 = 0xf0; scan0 = P1;
P1 = 0x0f; scan1 = P1;
k2 = scan0 | scan1; //第二次读出按键
if(k1 == k2) { //如果两次按键相同
for(m = 0; m < 16; m++) //查键值表
if(k1 == x[m]) key = m;
}
}
return(key);
}