微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 矩阵按键扫描麻烦帮忙看看。

矩阵按键扫描麻烦帮忙看看。

时间:10-02 整理:3721RD 点击:
以下程序在protues仿真,按键按下后,会进入while循环,即按理有按键按下低位会有一位被拉低,可是tl读不到,等于0x0f。 谁可以帮忙分析下是什么问题,感谢!


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

你可以在变量窗口看一下 tl 的数据啊,看变没变不就知道了!

你的代码中,  tl=(P2=0x0f)&0x0f,这句话的效果是tl=1;这是你希望的吗?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top