关于电子密码锁键盘扫描的程序...
//键盘扫描程序段
uchar keysacn(void)
{
uchar scancode,tmpcode;
P1=0xf0;
if((P1&0xf0)!=0xf0)//这边操作的结果应该会等于0xf0 的吧?
{
delay(); //延时去抖动
if((P1&0xf0)!=0xf0) //再判断一次
scancode=0xfe;
while((scancode&0x10)!=0) //逐行扫描
{
P1=scancode; //输出行扫描码
if((P10xf0)!=0xf0) //本行有键按下
{
tmpcode=(P1&0xf0)|0x0f;
return((~scancode)+(~tmpcode));
}
else scancode=(scancode<<1)|0x01;//行扫描码左移一位
}
}
return(0); //无键按下
}
哪位可以帮忙讲解一下行列扫描的原理吗?有点看不懂..谢谢了,我是新手啊