单片机键盘扫描程序解释 拜求大师详解

来源:百度知道 编辑:UC知道 时间:2024/06/23 22:09:14
unsigned int old,new,push,rel,temp;
unsigned char clmn_pat;
void key(void)
{for(clmn_pat=0x10;clmn_pat<>0;clmn_pat<<1)
P1=P1&clmu_pat;
P1=P1|0xof;
new=(new<<4)|((~P1)&0x0f);
}
if((temp=new^old)>0)
{ push=temp&new;
rel=temp&old;
old=-new;
}
}
由于是刚学,原理不太清楚,希望能把最基本的原理给解释一下,谢谢。

for(clmn_pat=0x10;clmn_pat<>0;clmn_pat<<1
这句没看到懂,坐等高手。。。。。

回复1楼的:
for(clmn_pat=0x10;clmn_pat<>0;clmn_pat<<1)
这个是初始值为0x10,然后连续左移,知道左移后的结果等于0的时候,才跳出循环.