智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2503|回复: 6
打印 上一主题 下一主题

[控制类] MC9S128XS连矩阵键盘为什么总有一行不灵

[复制链接]

2

主题

17

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
412
威望
263
贡献
87
兑换币
107
注册时间
2012-9-26
在线时间
31 小时
跳转到指定楼层
1#
发表于 2013-6-20 05:42:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
10贡献
哪位大神,我最近做个矩阵键盘控制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;
        }

}
  }

2

主题

17

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
412
威望
263
贡献
87
兑换币
107
注册时间
2012-9-26
在线时间
31 小时
2#
 楼主| 发表于 2013-6-20 06:18:32 | 只看该作者
我找到原因了,给B口配置上拉电阻就可以了
回复

使用道具 举报

30

主题

585

帖子

1

精华

等待验证会员

积分
-8838
威望
-9931
贡献
77
兑换币
46
注册时间
2012-6-23
在线时间
508 小时
3#
发表于 2013-6-20 12:38:49 | 只看该作者
浅爱你得心 发表于 2013-6-20 06:18
我找到原因了,给B口配置上拉电阻就可以了

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

使用道具 举报

30

主题

585

帖子

1

精华

等待验证会员

积分
-8838
威望
-9931
贡献
77
兑换币
46
注册时间
2012-6-23
在线时间
508 小时
4#
发表于 2013-6-20 12:40:01 | 只看该作者
帅哥能留下你的芳名和电话吗
回复

使用道具 举报

17

主题

280

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2298

优秀会员奖章活跃会员奖章

威望
1496
贡献
218
兑换币
575
注册时间
2012-9-26
在线时间
292 小时
5#
发表于 2013-6-20 13:51:13 | 只看该作者
吢冇紷蒠 发表于 2013-6-20 12:38
你好帅哟哥哥,我爱死你了

兰博基尼,我喜欢
回复

使用道具 举报

30

主题

585

帖子

1

精华

等待验证会员

积分
-8838
威望
-9931
贡献
77
兑换币
46
注册时间
2012-6-23
在线时间
508 小时
6#
发表于 2013-6-20 13:54:34 | 只看该作者
luomusic 发表于 2013-6-20 13:51
兰博基尼,我喜欢

保时捷啊
回复

使用道具 举报

2

主题

17

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
412
威望
263
贡献
87
兑换币
107
注册时间
2012-9-26
在线时间
31 小时
7#
 楼主| 发表于 2013-6-20 15:05:36 | 只看该作者
吢冇紷蒠 发表于 2013-6-20 12:38
你好帅哟哥哥,我爱死你了

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

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-27 18:52 , Processed in 0.068541 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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