LINUX矩阵键盘简单介绍,介绍一种新型的矩阵键盘电路

这款新型的矩阵键盘电路,把传统的矩阵键盘与单片机的中断结合起来,提高了按键输入的响应,同时利用数码管作为显示终端,显示输入的按键值。

原理简介

普通的4X4矩阵键盘接口原理图如下图所示,可以控制16按键的输入。为了读者更好的理解消化,这里再将矩阵键盘的扫描原理做一下简单介绍,电路上用单片机的PO口高四位控制键盘的行扫描,低四位控制列扫描。行线通过上拉电阻接到+5V上,无按键时,行线处于高电平状态;有键按下,行线电平状态将由与此行线相连的列线电平决定。列线电平为低,则行线电平为低;列线电平为高,则行线电平为高。

举例说明,首先送扫描码“PO:Oxfe”,即PO:1111-1110,如图1,首先扫描第四列(POO -列),高四位设置成高电平。此时,如果第四行与第四列交叉的按键被按下,即“0”按键按下,则PO=0111_1110,因为当这个按键被按下之后,第四行被第四列的扫描码电平短路,导致读取的P07位被拉低到低电平。这就是矩阵键盘的扫描原理,如果扫描第四列的时候,对应的行没有按键,就继续扫描第三列(“Oxfd”),直到找到按下的按键为止。

7018355bb506b723ca86d8f451e6e84e.png

单片机系统中,键盘和显示通常都是作为人机接口部分,因此,这部分的相应时间要求很高,即按下按键之后,马上就要求单片机进行相应的处理,普通情况的矩阵按键电路,需要不停的扫描按键的状态,不仅浪费系统CPU的资源,而且一旦在扫描周期之外,有按键按下,系统将检测不到此时的按键输入,实时性效果不好。如下图所示,系统周期T分为Tl键盘检测周期和T2其他程序周期,如果在其他程序周期内,有按键按下的话,系统将检测不到此时的按键。

b2eed473ab123b15c20a2bbc97a5de95.png

下图为中断式键盘的输入原理,在整个程序周期T内任何时刻,如果有按键按下,将会产生一个中断输出,从而进入到中断服务程序执行优先级更高的按键扫描任务,读取键值之后,可以根据返回值做不同的处理,与上图相比,提高系统的按键响应时间,实时性效果更佳。

b820cb632d36e22cb69191c8ad434157.png

电路图详解

此矩阵键盘,在传统的矩阵键盘的输出端加了一个四输入与门芯片74HC21,,芯片管脚图如下左图所示,真值表如下右图所示。当A、B、C、D四路输入有一个为低电平的时候,输出为低电平。将74HC21的输出端接到单片机的0中断P32管脚上,这样在有任何一个按键按下的情况下,系统都会进入中断服务程序,提高了键盘响应时间,在系统实时性要求较高的情况下非常实用。上图为中断式矩阵键盘原理图。

b4b8d194d501424982a2c12c132b0159.png

e9b95becb294dadcdf6af161d7a5ab84.png

(1)外部中断0的中断服务程序

(3)置标志位为1

(5)读取按键值子程序

(7)定义程序中使用的变量

(8)变量预置初值,准备扫描按键

(9)循环扫描4次,逐行扫描

(11)PO端口附变量的值

(12)、(13)延时一段时间

(14)判断是否有按键按下

(16)如果有按键按下,读取PO口按键的状态

(17)跳出扫描循环,已经读取到按键值

(19)如果当前行没有按键按下,循环左移一位,扫描下一行

(20)key变量赋值Oxff,为读取PO口做准备

(22)扫描结束后,循环16次查表比较读取的按键的对应码值

(23)如果找到对应的码值

(24)返回当前读取的按键值

(25)否则,返回一个错误码值,提示出错

主程序流程图如下图所示。

6c2de0f41884212d79f8e98fa1c0edc7.png

调试过程及要点

首先,接好硬件设备,将开发板通过串口线连接到电脑端,接好USB电源线或者直流Sv电源线。之后打开下载软件,选择生成的key. hex文件,进行下载(注意冷启动,先点击下载,之后再给单片机系统上电)。程序下载之后,可以按下开发板上的4X4按键中的任意一个,并注意观察数码管上的显示。

采用四输入与门芯片74HC21与单片机的中断相连,大大地提高了系统的键盘输入响应时间,在一些对系统的实时性要求较高的场合有很好的应用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值