This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

用msp430g2553怎样扫描4*4键盘,并读取键盘值

Other Parts Discussed in Thread: MSP430G2553

用msp430g2553怎样扫描4*4键盘,并读取键盘值

  • 是不是刚涉及此类涉及开发。这个都不了解。大概给你讲讲,确定好端口后,将4个设为行,4个设为列,先固定第一列的电平,然后扫第一行的按键,然后再固定第二列的电平扫第二行,这样以此类推。既可以了。还是多看看网络资料或者买本书吧。

  • 这是网上一个程序例子,楼上的分析很到位,可以结合这个例子修改到G系列,关键要自己理解学会修改~

    void  Delay()
    {
      uint  i,j; 
      for(i=3;i>0;i--)
      for(j=112;j>0;j--);  
    }

    uchar key_check()
    {
      uchar  xh=0x01;
      uchar  i,val;
      uchar  temp,tp;
      for(i=0;i<4;i++)
      {
        P1=~xh;
        Delay();
        temp=P1;
        if((temp&0xf0)!=0xf0)  //如果有键按下
        {
             tp=temp&0xf0;     //查看高四位哪个为低电平
          switch(tp)
          {
            case 0x70:val=i*4;break;        //判断位置,计算键值
              case 0xb0:val=i*4+1;break;
                case 0xd0:val=i*4+2;break;
                  case 0xe0:val=i*4+3;break;
                     default: break;
           }
         }
        xh<<=1;
      }
      return val;    //返回键值
    }