0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

矩阵键盘的检测和独立按键的区别

h1654155971.7688 来源:未知 作者:李倩 2018-04-25 08:51 次阅读

这次我接着上次的说,讲一下 复合按键和 矩阵键盘。

先说矩阵键盘,因为我写的组合键代码是在矩阵键盘的基础上写的,当然在独立按键上写组合键更简单一些。所以当你矩阵键盘的组合键会写的时候,你在独立按键上的组合键也就会写了。

矩阵键盘的检测和独立按键有很大的区别,但是究其本质还是一样的。

先看一下矩阵键盘的原理图:

矩阵键盘原理图

由于矩阵键盘中每一个按键的两个接线口都是接在IO口上的,所以我们就必须在软件里面控制单片机在每个独立按键的两端加上不同的电平。

【注】:独立按键很简单,直接在一端接地就行了。

从上面的原理图中可以看出 P1 口的高四位控制 行,第四位控制 列;所以我们就可以写 P1 = 0X0F 或者写 P1 = 0XF0,这样就实现了在每一个独立按键两端加上不同的电平。

代码编写流程和独立按键一样,第一步要先检测到按键按下,根据上面的原理图,矩阵键盘检测按键是否按下只要给 P1 口赋值 0X0F,然后检测 P1 口的值是否还是 0X0F即可。

之后就要消除抖动,消除抖动的方法还是一样,延时一段时间即可,如图:

单片机矩阵键盘消除抖动

之后就判断具体是哪个按键按下就行了。

【注】矩阵键盘复杂就是复杂在这里。

判断到底是哪个按键按下的思路有两种:

1、逐行扫描

逐行扫描就是说先扫描第一行中的哪个按键按下了,如果没有再扫描第二行,看一下是不是第二行里的某个按键按下了,如果还没有找到按下的那个按键,那么就继续扫描第三行、第四行,知道找出哪个按键被按下了。这个代码实现比较简单,而且这种扫描方法不怎么常用,效率不高,所以这里我就不写了。

2、行列扫描

行列扫描就是说先扫描所有的行,确定是哪一行的按键被按下了,之后再扫描所有的列,找出哪一列有按键被按下了,这样只要扫描两次就可以确定出到底是哪个按键被按下了。

具体代码实现如下:

1、行扫描:

单片机矩阵键盘行扫描

2、列扫描:

单片机矩阵键盘列扫描

最后别忘了按键的松开检测:

单片机矩阵键盘按键松开检测

这样矩阵键盘的编写就说完了,下面说组合键,写第七篇的时候我给它起名字叫复合按键,现在觉得不太好,要不就叫组合键吧。

组合键就是说当按住一个按键的同时再按另一个按键的时候,会有不同的效果。比如:Ctrl+C是复制、Shift+数字键可以敲出特殊字符等等。

代码编写思路就是:当按住第一个按键的时候,只要这个按键不松开就一直检测能够和它组合的按键,根据按键的不同组合实现不同的效果。

代码如下:

单片机矩阵键盘组合键

大家对照代码仔细看一下就明白了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6032

    文章

    44513

    浏览量

    632731
  • 矩阵键盘
    +关注

    关注

    7

    文章

    206

    浏览量

    31431

原文标题:51单片机--矩阵键盘

文章出处:【微信号:weixin21ic,微信公众号:21ic电子网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    区别独立按键矩阵按键

    独立按键矩阵按键有什么区别
    发表于 07-30 11:55

    单片机独立按键矩阵键盘概念及原理

    的逻辑处理办法。每次只处理一个按键,期间对任何按键的操作对系统不产生影响,且无论一次按键时间有多长,系统仅执行一次按键功能程序。c.准确输出按键
    发表于 11-30 16:32

    独立键盘检测矩阵键盘检测

    独立键盘检测矩阵键盘检测一、独立
    发表于 07-20 06:20

    独立按键编程

    使用单片机外部中断来处理按键1.9.8.矩阵键盘的原理1.9.9.矩阵键盘编程实战第二部分、章节介绍1.9.1.
    发表于 11-22 08:09

    矩阵键盘独立键盘的原理介绍

    学到矩阵键盘这一块对网上别人写的C代码有些疑问,希望有能看到的大牛帮助解答。矩阵键盘独立键盘
    发表于 01-13 08:10

    单片机独立按键矩阵键盘的原理是什么?

    单片机独立按键矩阵键盘的原理是什么?键盘的工作方式是什么?
    发表于 01-18 07:31

    矩阵键盘检测独立按键与单片机连接

    4.2 矩阵键盘检测独立按键与单片机连接时,每个按键都需要单片机的一个I/O口,若单片机系统需要
    发表于 02-22 06:14

    矩阵按键按键独立按键检测有什么不同的地方?

    矩阵按键按键独立按键检测有什么不同的地方
    发表于 10-11 08:05

    矩阵键盘实现按键显示

    矩阵键盘实现按键显示源程序。
    发表于 12-23 14:20 30次下载

    第四棵--KEY独立键盘矩阵键盘检测

    独立键盘矩阵键盘检测,十分详细。适合新手。
    发表于 09-01 11:44 0次下载

    使用单片机C语言实现独立按键检测矩阵键盘操作的资料和程序

    实现独立按键检测矩阵键盘操作。完成本文所需硬件:基于C51系列单片机的开发板(本文是基于STC12C5A60S2处理器的一款开发板),带
    发表于 07-16 17:39 2次下载
    使用单片机C语言实现<b class='flag-5'>独立</b><b class='flag-5'>按键</b><b class='flag-5'>检测</b>与<b class='flag-5'>矩阵</b><b class='flag-5'>键盘</b>操作的资料和程序

    矩阵键盘按键识别方法_矩阵键盘扫描程序

    矩阵键盘按键识别方法来自简单日记网精选推荐。在学习有关矩阵键盘的时候,往往要学会矩阵
    的头像 发表于 04-20 09:39 3.4w次阅读

    51单片机按键检测--独立按键矩阵键盘

    按键,每个按键对应一个IO口,通过循环或者中断去检测,这种方法常用于按键个数较少得时候。如果按键的个数较多,每个
    发表于 11-12 11:06 15次下载
    51单片机<b class='flag-5'>按键</b><b class='flag-5'>检测</b>--<b class='flag-5'>独立</b><b class='flag-5'>按键</b>与<b class='flag-5'>矩阵</b><b class='flag-5'>键盘</b>

    51单片机键盘接口-独立按键矩阵按键

    51单片机键盘接口-独立按键矩阵按键按键的分类键输入原理
    发表于 11-12 12:36 13次下载
    51单片机<b class='flag-5'>键盘</b>接口-<b class='flag-5'>独立</b><b class='flag-5'>按键</b>和<b class='flag-5'>矩阵</b><b class='flag-5'>按键</b>

    单片机AT89C51--7.按键(独立按键矩阵按键)

    单片机AT89C51--7.按键1.键盘类型1.1 编码键盘1.2 非编码键盘2.独立键盘
    发表于 11-25 14:51 14次下载
    单片机AT89C51--7.<b class='flag-5'>按键</b>(<b class='flag-5'>独立</b><b class='flag-5'>按键</b>,<b class='flag-5'>矩阵</b><b class='flag-5'>按键</b>)