线反转法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4x4线反转法程序设计
线反转法的具体操作步骤:
(1)将行线作为输出线,列线作为输入线。

置输出线全部为0,此时列线中呈低电平0的为按键所在的列,如果全部都不是0,则没有键按下。

(2)将第一步反过来,将列线作为输出线,行线作为输入线。

置输出线全部为0,此时行线中呈低电平0的为按键所在的列。

至此,便确定了按键的位置(x,y)。

(3)一次按键处理。

有时为了保证一次按键只进行一次按键处理,可以判断按键是否释放,如果按键释放则开始执行按键操作。

同样,在实际应用中也应该采用软件延时的方法来jinx那个去抖动处理。

此时可以在第一步与第二步之间加上延时语句,在第二步中即判断了是否抖动,也可以直接得到按键的位置。

int keyscan(void)
{
int key,temp;
P1=0x0f;
delay();
temp=P1;
temp=temp&0x0f;
temp=~(temp|0xf0);
if(temp==1)
key=0;
else if(temp==2)
key=1;
else if(temp==4)
key=2;
else if(temp==8)
key=3;
else
key=16;
P1=0xf0;
delay()
temp=P1;
temp=temp&0xf0;
temp=~((temp>>4)|0xf0);
if(temp==1)
key=key+0;
else if(temp==2)
key=key+4;
else if(temp==4)
key=key+8;
else if(temp==8)
key=key+12;
else
key=16;
return key; }。

相关文档
最新文档