智能车制作

标题: MC9S128XS连矩阵键盘为什么总有一行不灵 [打印本页]

作者: 浅爱你得心    时间: 2013-6-20 05:42
标题: MC9S128XS连矩阵键盘为什么总有一行不灵
哪位大神,我最近做个矩阵键盘控制128控制电机的转动,我矩阵键盘是拿郭天祥的矩阵程序改的,不知道为什么,最后一行总是不灵敏,其他行都好着,不过有时得多按几下才可行,我用了一个LED作为标志看按键是否按下,可最后一行不知道为什么,不是灯不亮,就是一按下一直亮好久才灭。
void keyscan()
{
uchar temp;
DDRB=0Xff;     //1为输出0为输入
PORTB=0xfe;    //将第一行线置低电平,其余线全为高电平
DDRB=0x0f;
temp=PORTB;
temp=temp&0xf0;

if(temp!=0xf0)
{ delayms(10);
  temp=PORTB;
temp=temp&0xf0;
if(temp!=0xf0)
  {  //DDRB=0x0f;
          temp=PORTB;
         switch(temp)
         {
         case 0xeeED=0;tf=1;break;          //右下角
         case 0xde:LED=0;tf=2;break;
         case 0xbe:LED=0;tf=3;break;
         case 0x7e:LED=0;tf=11;break;
          
         }
         while(temp!=0xf0)
         {
          temp=PORTB;
          temp=temp&0xf0;
               
         }
//        tf=0;
   LED=1;
        }

}
DDRB=0xff;
PORTB=0xfd;
DDRB=0X0F;
temp=PORTB;
temp=temp&0xf0;

if(temp!=0xf0)
{ delayms(10);
  temp=PORTB;
temp=temp&0xf0;
if(temp!=0xf0)
  {
           temp=PORTB;
         switch(temp)
         {
         case 0xed:LED=0;tf=4;break;          //右下角
         case 0xdd:LED=0;tf=5;break;
         case 0xbd:LED=0;tf=6;break;
         case 0x7d:LED=0;tf=12;break;

         }
         while(temp!=0xf0)
         {
          temp=PORTB;
          temp=temp&0xf0;
               
         }
//        tf=0;
   LED=1;
        }

}
DDRB=0XFF;
PORTB=0xfb;
DDRB=0X0F;
temp=PORTB;
temp=temp&0xf0;

if(temp!=0xf0)
{ delayms(10);
  temp=PORTB;
temp=temp&0xf0;
if(temp!=0xf0)
  {
           temp=PORTB;
         switch(temp)
         {
         case 0xeb:LED=0;tf=7;break;          //右下角
         case 0xdb:LED=0;tf=8;break;
         case 0xbb:LED=0;tf=9;break;
         case 0x7b:LED=0;tf=13;break;

         }
         while(temp!=0xf0)
         {
          temp=PORTB;
          temp=temp&0xf0;
               
         }
//        tf=0;
   LED=1;
        }

}
DDRB=0xff;
PORTB=0xf7;
DDRB=0x0f;
temp=PORTB;
temp=temp&0xf0;

if(temp!=0xf0)
{ delayms(30);
  temp=PORTB;
temp=temp&0xf0;
if(temp!=0xf0)
  {
           temp=PORTB;
         switch(temp)
         {
         case 0xe7:LED=0,tf=0;break;          //右下角
         case 0xd7:LED=0;tf=15;break;
         case 0xb7:LED=0;tf=16;break;
         case 0x77:LED=0;tf=14;break;

         }
         while(temp!=0xf0)
         {
          temp=PORTB;
          temp=temp&0xf0;
               
         }
   LED=1;
        }

}
  }


作者: 浅爱你得心    时间: 2013-6-20 06:18
我找到原因了,给B口配置上拉电阻就可以了

作者: 吢冇紷蒠    时间: 2013-6-20 12:38
浅爱你得心 发表于 2013-6-20 06:18
我找到原因了,给B口配置上拉电阻就可以了

你好帅哟哥哥,我爱死你了

作者: 吢冇紷蒠    时间: 2013-6-20 12:40
帅哥能留下你的芳名和电话吗
作者: luomusic    时间: 2013-6-20 13:51
吢冇紷蒠 发表于 2013-6-20 12:38
你好帅哟哥哥,我爱死你了

兰博基尼,我喜欢

作者: 吢冇紷蒠    时间: 2013-6-20 13:54
luomusic 发表于 2013-6-20 13:51
兰博基尼,我喜欢

保时捷啊
作者: 浅爱你得心    时间: 2013-6-20 15:05
吢冇紷蒠 发表于 2013-6-20 12:38
你好帅哟哥哥,我爱死你了

赵亮,正常点,我对你没性趣……





欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2