矩阵键盘不行

2019-07-16 05:19发布

我的开发板上的矩阵键盘用行列反转扫描法一切正常,但是运用郭天祥老师的方法就不对了   请问是怎么会儿事  程序如下
P2=0xfe;
a=P2;
a=a&0xf0;
while(a!=0xf0)
{
  delay(200);
  a=P2;
     a=a&0xf0;
  while(a!=0xf0)
  {
   a=P2;
   switch(a)
   {
    case 0xee : num1=0;
    break;
    case 0xde : num1=1;
    break;
    case 0xbe : num1=2;
    break;
    case 0x7e : num1=3;
    break;
   }
   while(a!=0xf0)
   {
    a=P2;
    a=a&0xf0;
   }  
  }
}  故障情况是 右边两列矩阵键盘无效
1.jpg
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
骑士城堡
1楼-- · 2019-07-16 20:31
随喜_寻满世界 发表于 2012-7-4 20:33
《我是菜鸟啥也不懂》,我觉得键盘检测要根据具体电路编程序吧。看下你开发板是怎么接的电路,郭老师的电路 ...

我改了呀  郭老师用的P3口 我按我的电路图接的P2口啊
骑士城堡
2楼-- · 2019-07-17 01:09
 发表于 2012-7-5 10:51
可能跟P2^6和P2^7这两个端口有关吧。

应该不是那个问题吧   那行列反转扫描法 一点问题都没有
andyyaoytu
3楼-- · 2019-07-17 03:46
你延时delay(10)
Ignorant_chi杜
4楼-- · 2019-07-17 07:39
等我给个程序你啦!
uchar key()
{
                uchar temp,tepm1;
                P0=0xf0;
                temp=P0;
                P0=0x0f;
                temp1=P0;
                switch(temp|temp1)
                {
                        case 0xee: return 0;
                        case 0xde: return 1;
                        case 0xbe: return 2;
                        case 0x7e: return 3;
       
                         case 0xed; return 4;
                        case 0xdd: return 5;
                        case 0xbd; return 6;
                        case 0x7d; return 7;
                       
                        case 0xed; return 8;
                        case 0xdd: return 9;
                        case 0xbd; return 10;
                        case 0x7d; return 11;
       
                        case 0xed; return 12;
                        case 0xdd: return 13;
                        case 0xbd; return 14;
                        case 0x7d; return 15;
       
                        default: return 16; break;
                }
        }
qazxxcccc
5楼-- · 2019-07-17 13:07
 精彩回答 2  元偷偷看……
小杰杰
6楼-- · 2019-07-17 16:02
有问题啊!!

一周热门 更多>