打印
[C语言]

求程序指导

[复制链接]
811|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jys01|  楼主 | 2017-1-10 11:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
矩阵按键扫描,按如下程序在protues里测试,程序进入while(tl==0x0f),没法进入switch,迷惑,求大神点拨,感谢!
P2=0xf0;
if(P2!=0xf0)
{
        delay(10);
        if(P2!=0xf0) {th=P2;kb=1;}
        while(kb)
        {
                tl=(P2=0x0f)&0x0f;
                while(tl==0x0f){P1=0x04;}
                temp=th|tl;temp^=0xff;temp=~temp;
                P1=0x01;
                switch(temp)
                {
                        case 0x11: key_v=7;break;        //第一行
                        case 0x12: key_v=4;break;        //第二行
                        case 0x14: key_v=1;break;        //第三行
                        case 0x18: key_v=10;break;        //第四行
                        case 0x10: P2=0X02;break;
                        default : break;
                }
                kb=0;
        }

相关帖子

沙发
柏谕| | 2017-1-10 17:24 | 只看该作者
进入while(tl==0x0f)之后一直在while里循环,所以没有往下执行

使用特权

评论回复
板凳
杨爱林林| | 2017-1-11 09:02 | 只看该作者
tl一直等于0f,卡在那里了

使用特权

评论回复
地板
徕泽| | 2017-1-12 19:52 | 只看该作者
tl=(P2=0x0f)&0x0f;这句话执行完tll就等于0x0f,所以就一直执行while循环了。
我是徕泽,一名电子爱好者,互相学习,共同进步!
更多技术问题交流加我微信:WM87140182
(我的头像就是我的二维码)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝