uchar keyscan() { uchar cord_h,cord_l;//行列值 P3=0x0f; //没加这句,按键没反应,为什么?? cord_l=P3&0x0f; // if(cord_l!=0x0f) { debouncer(); //去抖 if(cord_l!=0x0f) { cord_l=P3&0x0f; //列值 P3=cord_l|0xf0; // cord_h=P3&0xf0; //行值 return(cord_h+cord_l); } } return(0xff); }
不明白这句 P3=0x0f; // 这样一赋值后那在后面当中P3岂不是一直为 0f,,那在下面取行值时 P3=cord_l|0xf0; // cord_h=P3&0xf0; //行值
p3高四位在上面已经为0了,,这两句有何用??高四位不是还是0吗?又怎能取的行值??
请多多指教啊,,
|