矩阵键盘扫描时遇到了问题

2019-07-15 19:55发布

C语言编程,利用51单片机控制一些东西,矩阵键盘扫描时遇到了问题,可以计算出键值号,比如key=1,但是如果我再按一下1号键,key还是等于1,那么我该怎么判断同一个键被连续按了多少次呢?热心人帮帮我,谢谢了!!!作为奖励给大家一本很好的电子书,《世界是平的--21世纪简史》
The World is Flat.pdf 下载积分: 积分 -1 分
1.6 MB, 下载次数: 48, 下载积分: 积分 -1 分
世界是平的(完整).pdf 下载积分: 积分 -1 分
1.31 MB, 下载次数: 50, 下载积分: 积分 -1 分
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
13条回答
blueli
2019-07-16 07:29
每次都安相同的按键呢?以下是键盘扫描函数
uchar scan_key()
{
uchar hang,lie;
P2=0X0F;
if(P2!=0X0F)
delayms(10);
if(P2!=0X0F)
{
   switch(P2&0X0F)
   {
             case 0x0e:hang=0;break;
          case 0x0d:hang=1;break;
          case 0x0b:hang=2;break;
          case 0x07:hang=3;break;
   }
   P2=0XF0;
   switch(P2&0XF0)
   {
             case 0xe0:lie=0;break;
          case 0xd0:lie=1;break;
          case 0xb0:lie=2;break;
          case 0x70:lie=3;break;
   
   }
   P2=0X0F;
   while(P2!=0X0F);
   key=hang*4+lie;
}
return(key);
}
每次扫描完都有一个键值号,比如按下一键。则key一直就是1,在没按其它键的的时候,键值号不变,我如果连续按一键,就是一直按相同的键,键值号就一直是1,那我怎么计算出这同一个键被按了多少次?谢谢你持续的回答!

一周热门 更多>