老哥学习网 - www.lg9.cn 2024年04月26日 14:57 星期五
当前位置 首页 >心情日记 >

【单片机中的矩阵键盘编程】矩阵键盘的编单片机控制编程原理

发布时间:2019-01-25 07:31:46 浏览数:

  摘 要: 在单片机操作中,常需要通过键盘来输入信息,单片机通过读取I/0口的值来判断按键情况,并由此来进行下一步操作,而利用矩阵键盘操作,提高I/0口的利用率。   关键词: 矩阵键盘;单片机;按键;程序
  中图分类号:TP311.52 文献标识码:A 文章编号:1671-7597(2012)0310172-01
  
  0 引言
  在许多智能化设备中,常常需要人机交换界面,而通过矩阵键盘可以完成输入操作。本文中就矩阵键盘的电路接口及软件编程进行了分析。矩阵键盘在使用中硬件连接方便,编程简单,价格低廉,稳定性好,得到广泛应用。
  1 接口电路设计
  对于独立键盘,8个I/0口只能接8个按键。而矩阵键盘,按键排列成矩形,一般为4*4矩阵,有4行4列,共16个交叉点,按键接在交叉点上。这时用8个I/0口可接16个按键0~F(如下图),大大提高了I/0口的利用率。
   4*4键盘上,每个按键开关的两端分别接行线和列线,其中行线和+5V电源之间接上拉电阻。在没有按键按下时,行线和列线是不相连的,当有按键按下时,列线的电平会随行线电平值而改变(如下图),通过单片机检测到的I/0口值,判断有键按下,并通过软件判别按下去的为哪个键。
  
  2 软件编程
  对于矩阵键盘的编程大概包含以下几个步骤:首先判断有无按键按下,若有,则进行延时消抖动,再次判断,确实有键按下,判断按下的为哪个键,最后检测释放。如何判断按键是关键,下面我们以反转扫描法介绍编程思路:先对P3口进行赋值0xf0,即高低四位分别为高低电平,如果有键按下,则高四位中有一位会被拉低,读取P3口的值,把它赋给一个中间变量w,此时行就确定了;再给P3口赋值0x0f,即高低四位分别为低高电平,如果有键按下则低四位中对应的位会被拉低,再读取P3口的值,赋给另一个中间变量x,这样按键的行和列都确定了,然后再对变量w和x进行“按位与”操作得到一个值y,根据y的值来判断按下的键。按键从0~F分别是0xee、0xde、0xbe、0x7e、0xed、0xdd、0xbd、0x7d、0xeb、0xdb、0xbb、0x7b、0xe7、0xd7、0xb7、0x77。在主程序中直接调用此按键子程序即可。按键子程序如下:
  void anjian()
  {
   while(1)
   {
   P3=0x0f;
   w=P3;
   P3=0xf0;
   x=P3;
   y=(w&0x0f)+(x&0xf0);
   switch(y)
   {
   case 0xee: j=0; break;
   case 0xde:j=1; break;
   case 0xbe:j=2; break;
   case 0x7e:j=3; break;
   case 0xed:j=4; break;
   case 0xdd:j=5; break;
   case 0xbd:j=6; break;
   case 0x7d:j=7; break;
   case 0xeb:j=8; break;
   case 0xdb:j=9; break;
   case 0xbb:j=10; break;
   case 0x7b:j=11; break;
   case 0xe7:j=12; break;
   case 0xd7:j=13; break;
   case 0xb7:j=14; break;
   case 0x77:j=15; break;
   }
   if(i!=0)
   {
   while(P3!=0xf0);
   delay(5);
   break;
   }
   }
  }
  3 结论
  使用矩阵键盘可以更好地利用单片机的I/0口,提高了I/0口的利用率,使单片机可以连接更多的模块,实现更多的功能。在当今工业化社会中得到更大的发展。
  参考文献:
  [1]刘春龙、张炜,单片机控制装置安装与调试[M].高等教育出版社,2010.3.
  [2]仝为民、徐日生,智能化键盘的设计,电测与仪表,2000,37(10):
  35-36.
  [3]张俊谟,单片机中级教程[M].北京航空航天大学出版社,2006.10.

推荐访问:矩阵 机中 键盘 编程

相关文章:

Top