微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 矩阵键盘问题

矩阵键盘问题

时间:10-02 整理:3721RD 点击:
通常关于4*4矩阵键盘的扫描检测程序是这样的:
void keyscan()
{
        unsigned char temp,key;
        P3=0xfe;
         temp=P3;
        temp=temp&0xf0;
       if(temp!=0xf0)
        {
             delayms(10);
             temp=P3;
             temp=temp&0xf0;
              if(temp!=0xf0)
                {
                     temp=P3;
                      switch(temp)
                       {
                             case 0xee:
                               key=0;
                                break;
                       ..//省略其他扫描
                   }
                  while(temp!=0xf0)
                      {
                           temp=P3;
                          temp=temp&0xf0;
                      }
                     display(key);
           }
    }
这里  if(temp!=0xf0) 这句话承担最终的检测判定角色,我不懂,按照C语言的规则,temp是个变量,跟P3应该不相关啊,P3把值赋给temp后,P3应该是不变的,之后temp的值应该跟P3就脱离关系了,但为什么这里把P3赋值给temp后,就可以根据temp的值来判定P3 I/O口的值呢?求大家指点

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top