矩阵键盘有什么用_矩阵键盘有何用途

电子常识

2573人已加入

描述

  什么是矩阵键盘

  矩阵键盘是单片机外部设备中所使用的排布类似于矩阵的键盘组。矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。

  矩阵键盘的组成结构

  在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。

  矩阵键盘有何用途

  矩阵键盘的用途很广,比如:计算器,遥控器,触摸屏ID产品,银行的提钱机,密码输入器。

  当键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图1所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。故在需要的键数比较多时,采用矩阵法来做键盘是更合理的方案。

矩阵键盘

  矩阵键盘在单片机工程中的应用

  以51单片机为例,矩阵键盘接于P2口。在图1中可以看出,用了8个I/O口,实现了16个按键的识别。很明显在按键数目较多的应用场合,矩阵式键盘形式与独立键盘形式相比较,可以节省很多的I/O口资源。

  键盘在实际应用过程中,按键的闭合和断开过程中会产生抖动过程,其抖动的时间长短和开关的机械特性密切有关,一般为5~10ms。由于抖动过程的存在,对单片机识别按键是一种干扰。这时我们要想办法消除按键的抖动,常用的消抖方法有两种:一种是软件消抖,其基本思路如下:单片机在第一次检测到有按键按下时,比如说该按键所对应的信号线为低电平,执行一段延时10ms的程序以后,确认该信号线的电平状态是否仍为低电平,如果确认其信号线的电平状态为低电平,则确认该信号线有按键按下。当按键松开时,信号线的电平状态由低电平变为高电平,执行一段延时10ms的程序以后,检测该信号线电平状态为高电平,则说明松开按键。此方法利用软件延时的方法躲过了按键的抖动期,实现了按键消抖的目的。还有一种按键消抖的方法就是在按键的两侧并联一瓷片电容。该瓷片电容可以平滑按键抖动时的电平波形。其电路原理图如图2所示。

矩阵键盘
矩阵键盘

  在单片机实际应用工程中,常用C语言编程,下面列出一段按键识别程序的实际应用例程。

  voidkey_scan(void)

  {

  Temp1=0;//8位无符号变量

  P2=0xF0;//列为高电平行为低电平

  delay_ms(5);//按键消抖延时

  Temp1=P2;//读P2口

  Temp1=Temp1&0xF0;//屏蔽低四位

  Temp1=~((Temp1》》4)|0xF0);

  if(Temp1==1)//P2.4被拉低

  key=1;

  elseif(Temp1==2)//P2.5被拉低

  key=2;

  elseif(Temp1==4)//P2.6被拉低

  key=3;

  elseif(Temp1==8)//P2.7被拉低

  key=4;

  else

  key=16;

  P2=0x0F;//行为高电平列为低电平

  delay_ms(5);//按键消抖延时时间

  Temp1=P2;//读P2口

  Temp1=Temp1&0x0F;

  Temp1=~(Temp1|0xF0);

  if(Temp1==1)//P2.0被拉低

  key=key+0;

  elseif(Temp1==2)//P2.1被拉低

  key=key+4;

  elseif(Temp1==4)//P2.2被拉低

  key=key+8;

  elseif(Temp1==8)//P2.3被拉低

  key=key+12;

  else

  key=16;//全部按键均可识别

  }

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分