单片机矩阵式键盘的编程方法

时间:2023-03-11作者:佚名
  单片机系统中,若使用按键较多时,通常采用矩阵式(也称行列式)键盘。
  1.矩阵式键盘的结构及原理
  矩阵式键盘由行线和列线组成,按键位于行、列线的交叉点上,其结构如图所示。
由图可知,一个 4 × 4 的行、列结构可以构成一个含有 16 个按键的键盘,显然,在按键数量较多时,矩阵式键盘较之独立式按键键盘要节省很多 I/O 口。

单片机矩阵式键盘的编程方法

  矩阵式键盘中,行、列线分别连接到按键开关的两端,行线通过上拉电阻接到+ 5V 上。当无键按下时,行线处于高电平状态;当有键按下时,行、列线将导通,此时,行线电平将由与此行线相连的列线电平决定。这是识别按键是否按下的关键。然而,矩阵键盘中的行线、列线和多个键相连,各按键按下与否均影响该键所在行线和列线的电平,各按键间将相互影响,因此,必须将行线、列线信号配合起来作适当处理,才能确定闭合键的位置。
  2.矩阵式键盘按键的识别
  识别按键的方法很多,其中,最常见的方法是扫描法。下面以图中 8 号键的识别为例来说明扫描法识别按键的过程。
   按键按下时,与此键相连的行线与列线导通,行线在无键按下时处在高电平。显然,如果让所有的列线也处在高电平,那么,按键按下与否不会引起行线电平的变化,因此,必须使所有列线处在低电平。只有这样,当有键按下时,该键所在的行电平才会由高电平变为低电平。 CPU 根据行电平的变化,便能判定相应的行有键按下。 8 号键按下时,第 2 行一定为低电平。然而,第 2 行为低电平时,能否肯定是 8 号键按下呢?
   回答是否定的,因为 9 、 10 、 11 号键按下,同样会使第 2 行为低电平。为进一步确定具体键,不能使所有列线在同一时刻都处在低电平,可在某一时刻只让一条列线处于低电平,其余列线均处于高电平,另一时刻,让下一列处在低电平,依此循环,这种依次轮流每次选通一列的工作方式称为键盘扫描。采用键盘扫描后,再来观察 8 号键按下时的工作过程,当第 0 列处于低电平时,第 2 行处于低电平,而第 1 、 2 、 3 列处于低电平时,第 2 行却处在高电平,由此可判定按下的键应是第 2 行与第 0 列的交叉点,即 8 号键。
  3.键盘的编码
  对于独立式按键键盘,因按键数量少,可根据实际需要灵活编码。对于矩阵式键盘,按键的位置由行号和列号惟一确定,因此可分别对行号和列号进行二进制编码,然后将两值合成一个字节,高 4 位是行号,低 4 位是列号。如图 7.5 中的 8 号键,它位于第 2 行,第 0 列,因此,其键盘编码应为 20H 。采用上述编码对于不同行的键离散性较大,不利于散转指令对按键进行处理。因此,可采用依次排列键号的方式对按排进行编码。以图 7.5 中的 4 × 4 键盘为例,可将键号编码为: 01H 、 02H 、 03H 、 … 、 0EH 、 0FH 、 10H 等 16 个键号。编码相互转换可通过计算或查表的方法实现。
  4.键盘的工作方式
  对键盘的响应取决于键盘的工作方式,键盘的工作方式应根据实际应用系统中 CPU 的工作状况而定,其选取的原则是既要保证 CPU 能及时响应按键操作,又不要过多占用 CPU 的工作时间。通常,键盘的工作方式有三种,即编程扫描、定时扫描和中断扫描。
  编程扫描方式
  编程扫描方式是利用 CPU 完成其它工作的空余时间,调用键盘扫描子程序来响应键盘输入的要求。在执行键功能程序时, CPU 不再响应键输入要求,直到 CPU 重新扫描键盘为止。
键盘扫描程序一般应包括以下内容:
  (1) 判别有无键按下。
  (2) 键盘扫描取得闭合键的行、列值。
  (3) 用计算法或查表法得到键值。
  (4) 判断闭合键是否释放,如没释放则继续等待。
  (5) 将闭合键键号保存,同时转去执行该闭合键的功能。

相关阅读

【提醒】万万没想到!家家在用的这些东西,一个月能偷近百度电!

来源:中国经济网(ID:ourcecn)江苏新闻(ID:jstvjsxw) 智能电表是不是比老式电表走得快?家里的电费为什么会居高不下?你是不是有这样的疑问?3月15日,南京供电公司的工作人员走...
2023-06-11
【提醒】万万没想到!家家在用的这些东西,一个月能偷近百度电!

二极管整流电路原理图 半波整流、全波整流和桥式整流电路的工作原理

根据二极管的单向导电特性,可以利用二极管组成整流电路,将交流电压变成单向脉动电压。常见的整流电路有半波整流、全波整流和桥式整流。 一、半波整流 半波整流电路如下图所...
2023-07-31
二极管整流电路原理图 半波整流、全波整流和桥式整流电路的工作原理

电厂电工的“惊险玩笑”:一闸之差,千钧之重

在電厰那龎大而神祕的世界裏,電工們如衕掌控著電力魔灋的使者。他們穿梭於錯綜復襍的綫路咊轟鳴作響的設俻之間,用專業與責任守護著光明的源泉。然而,旹常會聼到他們半開翫笑地...
2024-09-04
电厂电工的“惊险玩笑”:一闸之差,千钧之重

电工必看!一张图搞懂启保停带指示灯接线,新手也能秒懂

作为电工,启保停电路可以说是基础中的基础,但带指示灯的接线,很多新手还是容易接错线、搞混触点。今天就用一张高清实物图,把停止、运行、故障指示灯的接线逻辑讲透,看完直接上手...
2026-05-26
电工必看!一张图搞懂启保停带指示灯接线,新手也能秒懂

220v电压能电死人,科学依据是什么?

一般认为36V以下是安全电压,那么在220v触电时,理论上可以将人体触电区域看成七段相同的电阻串联,分到每个区域的电压都小于36V,这样220v不也是安全电压吗?为什么220v电压却能电...
2023-06-11

热销商品

德国进口雅马哈风力灭火机大功率手提森林灭火器落叶工地吹雪机汽

德国进口雅马哈风力灭火机是一款高效、可靠的森林灭火和清理设备。它拥有大功率风机,能够迅速吹散落叶、杂草和积雪,有效清理工地和森林地面。这款灭火机采用先进技...
¥ 692.5

3M自粘橡胶条高硬度耐压实心幕墙玻璃舞台搭建货架专用减震密封条

3M自粘橡胶条是一款专为高要求工业及建筑场景设计的高性能密封减震材料,采用高硬度实心橡胶材质,具备优异的耐压性、抗老化性和持久弹性。其独特的自粘背胶设计,安装...
¥ 1.6

公牛官方旗舰店开关插座空调16A插座五孔10A面板暗装多孔G12白灰

公牛官方旗舰店提供一系列高质量的开关插座和空调配件。这款16A插座五孔面板采用暗装设计,适用于多种安装环境,如墙面、天花板等。它具有10A的电流容量,可以满足家庭...
¥ 5.55

电位器旋钮电流调节螺帽直流逆变电焊机二保焊送丝机通用旋钮B102

电位器旋钮电流调节螺帽适用于直流逆变电焊机和二保焊送丝机,是一款通用的旋钮B102。该旋钮采用优质材料制造,具有耐磨损、耐高温、耐腐蚀等特点,能够长时间稳定运行...
¥ 0.7

西门子开关插座无框皓彩米绒白亚光二三插USB10A五孔一开旗舰店

西门子开关插座无框皓彩米绒白亚光二三插USB10A五孔一开旗舰店,作为西门子品牌的专卖店,提供了一系列高品质、设计新颖的家居电气产品。这里销售的开关插座采用无框...
¥ 8.77

网站栏目