专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

51单片机--键盘识别

作者:liht1634   来源:转自liht1634   点击数:  更新时间:2014年07月28日   【字体:

  单片机的键盘由于介入了人为操作,并不都是机器按流程跑,所以必须考虑到人的操作时长远大于机器周期,所以对于键盘状态的检测必须是写在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
关闭窗口

相关文章