菜鸟求解 矩阵键盘子程序的疑问

[复制链接]
3297|9
 楼主| knight700 发表于 2010-6-24 13:40 | 显示全部楼层 |阅读模式
uchar Keyscan(void)
{
uchar i,j, temp, Buffer[4] = {0xef, 0xdf, 0xbf, 0x7f};
for(j=0; j<4; j++)
   {
      P1 = Buffer[j];
      _nop_();
      _nop_();
      _nop_();
      temp=0x01;                                                                                                                                                                  
      for(i=0; i<4; i++)
      {
           if(!(P1 & temp))
           {
            return (i+j*4);   
            }
         temp <<= 1;
      }
   }
}

以上是矩阵键盘程序中 按键部分的子程序 但是有一些疑问

1  结尾处 temp <<= 1;是什么意思,放在这里什么用
ayb_ice 发表于 2010-6-24 14:01 | 显示全部楼层
从P10开始读直到P07
...
egood 发表于 2010-6-24 14:22 | 显示全部楼层
从 bit0 读直到 bit3
dragon20100708 发表于 2010-6-24 14:34 | 显示全部楼层
学习中
black.lu 发表于 2010-6-24 18:53 | 显示全部楼层
P1 & temp;端口扫描,循环四次就是分别扫描端口P10~P13是否为高电平
dragon20100708 发表于 2010-6-25 15:16 | 显示全部楼层
temp=temp<<1
mqp108 发表于 2010-6-25 20:27 | 显示全部楼层
greg_da 发表于 2010-7-16 17:14 | 显示全部楼层
兄弟,这个程序是附带资料上的吧,哈哈,我刚看完
350304709 发表于 2010-7-16 18:06 | 显示全部楼层
从P1到P4
开始的梦想 发表于 2010-7-18 09:29 | 显示全部楼层
移位扫描
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

15

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部