51单片机–键盘识别

  单片机的键盘由于介入了人为操作,并不都是机器按流程跑,所以必须考虑到人的操作时长远大于机器周期,所以对于键盘状态的检测必须是写在while中,进行循环检测,这些需要实时检测的状态是:从没有按下到按下,和从已经按下到松手。而为了可以使while中的循环可以跳出,进入while的判断语句中的变量要在while循环中再次赋值,而这个赋值必须是与新状态相关的。

P3=0xfe;
   temp=P3;
   temp=temp&0xf0;
   while(temp!=0xf0)
    {
     delay(5);
     temp=P3;
     temp=temp&0xf0;
     while(temp!=0xf0)
     {
      temp=P3;
     switch(temp)
      {
       case 0xee:num=1;
        break;
       case 0xde:num=2;
        break;
       case 0xbe:num=3;
        break;
       case 0x7e:num=4;
        break;
      }
     while(temp!=0xf0)
      {
       temp=P3;
       temp=temp&0xf0;
      }
     }
就如最后一个while,这是用来检测松手操作,没有松手就会进入while中循环,只有循环中赋判断语句中的变量被不停地附松手的值,等到松手是才可以跳出while
以上是51单片机–键盘识别的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>