有关单片机键盘的讨论

2019-07-15 20:10发布

void timer() interrupt 1
{
        static uint time1=0;
    TH0 = 0xFC;
        TL0 = 0x67;
        keystart=0xf0;
    if(keystart!=0xf0)
        {
            time1++;
                if(time1>=4&&keystart!=0xf0)
           {
              keystart=0xf0;//为什么这里keystart还要被赋值0xf0呢?(这是我在网上搜的)这样的话后面                   的 switch语句就没什么作用了吗(keystart只能为0xf0
              switch(keystart)
                  {
                     case 0x70:value=0;break;
                         case 0xb0:value=4;break;
                         case 0xd0:value=8;break;
                         case 0xe0:value=12;break;
                         default:break;
                  }
                     keystart=0x0f;
                  switch(keystart)
                  {
                     case 0x07:value+=0;break;
                         case 0xb0:value+=1;break;
                         case 0xd0:value+=2;break;
                         case 0xe0:value+=3;break;
                         default:break;
                  }
                  time1=0;
                  a=0;
                }
        }                       
}

键盘电路图.png
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。