描述

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

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

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

矩阵键盘原理图

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

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

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

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

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

单片机矩阵键盘消除抖动

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

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

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

1、逐行扫描

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

2、行列扫描

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

具体代码实现如下:

1、行扫描:

单片机矩阵键盘行扫描

2、列扫描:

单片机矩阵键盘列扫描

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

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

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

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

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

代码如下:

单片机矩阵键盘组合键

打开APP精彩内容

点击阅读全文

矩阵键盘 多键组合 c语言,矩阵键盘的检测和独立按键有很大的区别相关推荐

  1. 矩阵键盘 多键组合 c语言,矩阵键盘多个按键同时按下的问题

    你看看这段程序怎么样?我自己写的. #include #define KEY P1 //按键码,按键之间按位或运算 #define KEY1  0x11 #define KEY2  0x12 #def ...

  2. 计算机各按键的作用,【键盘各个键的功能图解】键盘各个键的功能介绍_键盘各个键的用途...

    2013-05-23 10:59:25 浏览量:1225 电脑键盘是是电脑用户最常使用到的工具了,其中F1到F12这12个F键就有很多人并不熟悉,其实位于键盘顶部的这12个功能键是非常好用的,那么这十 ...

  3. 从零做蓝牙机械键盘——72键自定义位置蓝牙机械键盘

    将尺寸向gh60靠拢.好处是可以便宜的共享好多零部件:底壳儿... qsy 2018年6月7日16:12:42 键盘作为电脑录入设备,现在几乎是人手一把 ,人手几把了.常打字的人一定知道机械键盘的好处 ...

  4. js模拟键盘某个键按下_教你认识电脑键盘上的按键基础篇,轻松认识键盘

    常用的键盘,无论是台式机还是笔记本,除了材质.品牌等差异,基本用法是一样的,今天就带大家认识键盘 1.键盘区域划分,主要有主键盘区.功能区.光标控制区.小键盘区和指示灯区,日常使用最多的是主键盘区,方 ...

  5. 键盘哪个键是锁定计算机,笔记本键盘锁定键在哪_笔记本电脑的“键盘锁”是哪一个键-win7之家...

    大家都知道笔记本电脑中是自带有键盘的,但是有时候可能需要暂时将键盘锁定,那么就可以使用键盘锁来锁定,很多笔记本电脑用户并不知道键盘锁定键在哪,针对这个问题,小编就给大家讲述一下笔记本电脑的" ...

  6. 矩阵键盘线反法C语言,矩阵键盘线反转法实现

    ;project: 线反转法扫描键盘,一位数码显示 ;version:20130611 ;problems: 1.有时出现数码管显示相应数字后变暗闪烁,键盘失灵 ;a.尝试加全部键盘检测完,没有找到则 ...

  7. c语言计算矩阵的加法和乘法,C语言矩阵加法乘法

    并不是很难的问题,但是自己思考测试独立完成的,保存于此,给自己一点鼓励./* Author:SwordAutumn 2015年 04月 08日 星期三 15:35:00 CST */ #include ...

  8. 机械键盘连键测试软件,【机械键盘 ROG Strix ScopeAPP体验】监测|连接|控制|设置_摘要频道_什么值得买...

    机械键盘 ROG Strix ScopeAPP体验(监测|连接|控制|设置) 首先是官方的"享睡Sleepace"APP,打开APP后会引导连接产品,通过界面设计,可以看出香薰灯的 ...

  9. java如何键盘输入文本,用Java语言从键盘中输入内容

    在使用Java的时候,如何用键盘输入代码呢?这里给大家简单介绍一下键盘输入数据的方法. 工具/材料 笔记本.Java编程工具 如果你想在Java中定义一个函数的话,首先我们需要定义一个函数名,即:im ...

最新文章

  1. 这个新型AI电子器件没有硅!北航32岁教授共同一作,能模拟大脑神经元,还登上了Science...
  2. 顺便发现一bug??
  3. BZOJ 1711: [Usaco2007 Open]Dining吃饭
  4. windowsphone开发_APP软件开发用哪些软件比较好
  5. DELPHI获取网卡MAC地址 转
  6. .NET 云原生架构师训练营(模块二 基础巩固 依赖注入)--学习笔记
  7. echarts 弹出放大_Echarts图标增加全屏/放大功能
  8. axis2 默认端口_基于 AXIS2/C 的 C 语言库实现对提供 REST API 的系统进行数据访问...
  9. 使用 Python 实现多进程
  10. Python基础:内置异常(未完待续)
  11. pppoe 服务器 无线,centos搭建pppoe拨号服务器
  12. (jdbc和cmd)sqlite数据迁入mysql(导入导出)
  13. 容器技术Docker K8s 3 容器技术基础-Docker
  14. JLINK 驱动安装和配置ADS使用,ADX调试
  15. 计算矩阵的逆源码(使用伴随矩阵,3×3的矩阵)
  16. mitmproxy监听数据请求并处理数据
  17. TDSQL将发布免费版本,助力国产数据库生态完善
  18. Linux学习之安装配置VM虚拟机
  19. chrome浏览器视频加速插件安装教程
  20. 读书杂抄之《挪威的森林》

热门文章

  1. 使用cryptsetup加密硬盘
  2. 郑州共享美容院小程序开发如何操作?
  3. 可以测试成果的背单词软件,实测背单词最好的软件排名,选了4款最管用的单词软件送给你!...
  4. inter处理器(CPU)的分类
  5. 计算机程序设计员二级证书,大厂计算机程序设计员职业资格证书
  6. C语言第一个程序——一个简单的Hello world!程序
  7. Google Earth Engine(GEE)农作物种植结构提取
  8. 一个中专生在华为面试的真实经历!
  9. 手机里舍不得删除的48条搞笑短信
  10. 你有旧iPhone吗?快来瓜分苹果1800万赔偿款!