找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2190|回复: 7
打印 上一主题 下一主题
收起左侧

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;
}


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

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:393605 发表于 2018-12-12 22:26 | 只看该作者
要进行按键消抖动
回复

使用道具 举报

板凳
ID:104779 发表于 2018-12-12 23:43 | 只看该作者
是不是多了个else    return 0xFF;??????
回复

使用道具 举报

地板
ID:104779 发表于 2018-12-12 23:44 | 只看该作者
是不是多了一个else
   return 0xFF;????
回复

使用道具 举报

5#
ID:213173 发表于 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;
}
回复

使用道具 举报

6#
ID:434526 发表于 2018-12-13 13:24 | 只看该作者
hozhiwen 发表于 2018-12-12 23:43
是不是多了个else    return 0xFF;??????

没有多,这个如果只有三个io口,就是P5IN&0x07就可以用,但是把0x07改为0xEF就用不了了,不知道为啥,三个按键的就可以,一加到七个就不行了,不知道是哪里错了,难受
回复

使用道具 举报

7#
ID:434526 发表于 2018-12-13 13:27 | 只看该作者

emmmm,可是这个按键扫描弄成三个就可以用(P5IN&0X07),但是弄成七个就不行了(P5IN&0XEF),我也不知道为啥,把三个改成七个是我自己改的,然后改成七个后,示波器就没有反映了,连前三个按键也没反应了
回复

使用道具 举报

8#
ID:434526 发表于 2018-12-13 13:34 | 只看该作者
wulin 发表于 2018-12-13 06:07
unsigned char ReadKey(void)
{
        unsigned char temp;

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表