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

原理简介

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

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

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

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

电路图详解

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

(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)否则,返回一个错误码值,提示出错

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

调试过程及要点

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

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

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

  1. 【深度学习】数形结合的图像处理(文末介绍了一种新型网络)

    [深度学习]数形结合的图像处理(文末介绍了一种新型网络) 文章目录 [深度学习]数形结合的图像处理(文末介绍了一种新型网络) 前言: OpenCV介绍 1 读取图像 2 修改图像尺寸 3 矩阵操作处理 ...

  2. 4x3矩阵键盘扫描法c语言,四种4*4矩阵键盘的扫描方法

    第一种:这种方法就是郭天祥书上教的扫描方法,很容易理解,但是程序比较长. P2=0xfe://给第一列送低电平 temp=P2: temp=temp&0xf0; while(temp!=0xf ...

  3. 隆重介绍!一款新型基于姿势的人像实例分割框架

    全文共2493字,预计学习时长15分钟或更长 拍摄:Jezael Melgoza 来源:Unsplash 近年来,由于现实应用需求大,在计算机视觉领域有关"人"的研究层出不穷,实体 ...

  4. (文献学习笔记)一种新型磁悬浮飞轮用永磁偏置径向磁轴承

    文献摘要 研究背景:现有径向磁轴承结构电励磁磁路耦合的特点 研究内容:分析一种新型磁悬浮飞轮用永磁偏置径向磁轴承结构及其工作原理:计算磁轴承的永磁磁路和电励磁磁路,得出磁轴承的数学模型,给出主要参数的 ...

  5. 平板 刷 linux系统,在Linux系统上安装NotePad++的三种方法介绍

    本文介绍在Linux操作系统上安装NotePad++的三种方法,使用Snap.Wine和NotePadQQ.这里要说的是:由于像Wine和Snap软件包这样的工具,在Linux上运行的Notepad+ ...

  6. linux终端下载notepad,在Linux系统上安装NotePad++的三种方法介绍

    本文介绍在Linux操作系统上安装NotePad++的三种方法,使用Snap.Wine和NotePadQQ.这里要说的是:由于像Wine和Snap软件包这样的工具,在Linux上运行的Notepad+ ...

  7. Linux curl使用简单介绍

    http://www.linuxidc.com/Linux/2008-01/10891.htm -------------------------------------------------- L ...

  8. 分布式锁简单入门以及三种实现方式介绍(滴滴)

    很多小伙伴在学习Java的时候,总是感觉Java多线程在实际的业务中很少使用,以至于不会花太多的时间去学习,技术债不断累积!等到了一定程度的时候对于与Java多线程相关的东西就很难理解,今天需要探讨的 ...

  9. linux 运行eve,EVE-NG简单入门介绍

    此篇文章简单的介绍下模拟器EVE-NG的使用,具体包括Dynamips设备导入与运行,IOL设备的导入与运行,QEMU设备的导入与运行,客户端软件的安装,物理网络与虚拟网络的结合等. 导入镜像 Dyn ...

最新文章

  1. 觉SLAM的主要功能模块分析
  2. mysql 最大链接数 max_connections 设置
  3. Flex 布局 - 容器
  4. 开源sip客户端 linux,开源SIP服务器 Kamailio
  5. 01_SQlite数据库简介
  6. GitHub 发布 2018 年开源项目趋势预测
  7. 【SpringCloud】Spring cloud Alibaba Sentinel 系统规则
  8. UWP ListView 绑定 单击 选中项 颜色
  9. Vue 混合、自定义指令、插件
  10. tcp/ip源代码(17)——ip_fragment
  11. 软件评测师备考经验分享
  12. NOI试题(题目+答案)(二)
  13. 《Adobe Photoshop CS5中文版经典教程(全彩版)》目录—导读
  14. C# 如何给Word文档设置背景颜色和背景图片
  15. 韩国利用三星区块链技术打击海关诈骗
  16. python输出10以内的素数,并写出合数的因子
  17. 本题要求实现一个函数,可统计任一整数中某个位数出现的次数。例如-21252中,2出现了3次,则该函数应该返回3。
  18. 今日单词|长期主义 (Day 1)
  19. 创业公司分配股权时,如何计算每个人的贡献?
  20. 公司吊销法人上黑名单怎么解决?如何解决公司撤销法人黑名单的问题?

热门文章

  1. [普通物理]波的能量与干涉
  2. Windows 10 删除桌面右键菜单项
  3. 光纤通信系统根据传输距离不同的分类
  4. Typora去除红色波浪线
  5. RYU+Mininet的SDN架构-设计校园网络(三)
  6. ace布置小作业: 制作一个简单的电话号码归属地查询软件:JSON解析和Volly发送get请求...
  7. linux调试器——gdb
  8. C文件操作、读写文件 C++文件读写、文件操作
  9. 单片机毕设 stm32智能语音垃圾分类系统
  10. 百度云下载速度慢,怎样用迅雷下载百度云中的资源——2016-5-22最新最实用