【增强版TX-1C 51单片机开发板试用体验】+矩阵键盘

  • sun5304
  • LV3工程师
  • |      2017-11-07 17:05:22
  • 浏览量 1536
  • 回复:2
本帖最后由 sun5304 于 2017-11-7 17:03 编辑 2.jpg 最近学习了开发板上的键盘检测原理及应用实现,现在将这一部分的学习体验分享如下: 键盘分编码键盘和非编码键盘,在单片机开发板上靠软件编程来识别的称为非编码键盘。而非编码键盘又分为:独立键盘和行列式(又称为矩阵式)键盘。 单片机检测键盘按键的原理是:单片机的I/O口既可作为输出也可作为输入使用,当检测按键时用的是它的输入功能。我们把按键的一端接地,另一端与单片机的某个I/O口相连,开始时先给I/O口赋一高电平,然后让单片机不断地检测该I/0口是否变为低电平。当按键闭合时,即相当于该I/O口通过按键与地相连,变成低电平,程序一旦检测到I/O口变为低电平则说明按键被按下,然后执行相应的指令。(图一) 矩阵键盘每个按键的两端都与单片机I/O 口相连,因此在检测时需人为通过单片机I/O口送出低电平。检测时,先送一列为低电平,其余几列全为高电平(此时我们确定了列数),然后立即轮流检测一次各行是否有低电平,若检测到某一行为低电平(这时我们又确定了行数),则我们便可确认当前被按下的键是哪一行哪一列的;用同样的方法轮流送各列一次低电平,再轮流检测一次各行是否变为低电平,这样既可检测完所有的按键。当有按键被按下时便可判断出按下的是哪一个键。当然我们也可以先将行线置低电平,扫描列是否有低电平。这就是矩阵键盘检测的原理和方法。 但是按键在按下和释放的瞬间会产生抖动现象,抖动时间的长短和按键的机械特性有关,一般为5~10ms。通常我们手动按下按键然后立即释放,这个动作稳定闭合的时间超过20ms。因此单片机在检测键盘是否按下时都要加上去抖动操作,以免影响对键盘检测的稳定性。通常我们用软件延时的方法就能很容易解决抖动问题。(图二) 从图一可以看到矩阵键盘的4行分别与单片机的P3.0~P3.3相连,矩阵键盘的4列分别与单片机的P3.4~P3.7相连。按键检测流程图如图三。 在开发板上试验,按键号S6~S21分别对应数码管显示:0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f。(图四) 数码管静态显示和动态显示的学习体验和试验,等过几天再来分享。
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:2
great_CC 2017-11-07
不错,点赞。
0   回复
举报
发布
Linux小学童 2017-11-07
矩阵键盘就是省IO。
0   回复
举报
发布
x
收藏成功!点击 我的收藏 查看收藏的全部帖子