标题: MSP430单片机按键扫描程序不能工作 [打印本页]

作者: lys123    时间: 2018-12-12 21:44
标题: MSP430单片机按键扫描程序不能工作

仅按键部分代码:
unsigned char ReadKey(void)
  {
     unsigned char temp;
     temp=P5IN&0xEF;
     if(temp!=0xEF)
{
    delayus(10);
    if(temp==(P5IN&0xEF))
       {
   return temp;
       }
       else
       return 0xFF;
   }
   else
   return 0xFF;
}


为什么这个代码不能对七个按键进行扫描呢,求大神解答


作者: YANHONGFEI1    时间: 2018-12-12 22:26
要进行按键消抖动
作者: hozhiwen    时间: 2018-12-12 23:43
是不是多了个else    return 0xFF;??????
作者: hozhiwen    时间: 2018-12-12 23:44
是不是多了一个else
   return 0xFF;????

作者: wulin    时间: 2018-12-13 06:07
unsigned char ReadKey(void)
{
        unsigned char temp;
        temp=P5IN&0xEF;
        if(temp!=0xEF)
        {
                delayus(10);
                if(temp!=0xEF)
                        return temp;
                else
                return 0xFF;
        }
        return 0xFF;
}
作者: lys123    时间: 2018-12-13 13:24
hozhiwen 发表于 2018-12-12 23:43
是不是多了个else    return 0xFF;??????

没有多,这个如果只有三个io口,就是P5IN&0x07就可以用,但是把0x07改为0xEF就用不了了,不知道为啥,三个按键的就可以,一加到七个就不行了,不知道是哪里错了,难受
作者: lys123    时间: 2018-12-13 13:27
YANHONGFEI1 发表于 2018-12-12 22:26
要进行按键消抖动

emmmm,可是这个按键扫描弄成三个就可以用(P5IN&0X07),但是弄成七个就不行了(P5IN&0XEF),我也不知道为啥,把三个改成七个是我自己改的,然后改成七个后,示波器就没有反映了,连前三个按键也没反应了
作者: lys123    时间: 2018-12-13 13:34
wulin 发表于 2018-12-13 06:07
unsigned char ReadKey(void)
{
        unsigned char temp;

先谢谢你的回答哈,不过你的也是跟我的一样,就是把你的这个代码改为(P5IN&0X07)就可以用,但是弄成(P5IN&0XEF)就扫描不了了emmmmm,不知道为啥,我的那个代码也是,弄成三个按键就可以用,但是改为七个按键就不行了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1