



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
最近在笔记本EC中使用到了18*8矩阵键盘,我原本以为这应该是很简单的实现原理:按下某个键时有一根行线与一根列线电平变化。简单地举个例子,比如18根列线为C0C17,8根行线和R0R7, 初始时所有的26线全为高电平, 按下按键A时R0和C0为低电平,按下按键B时R0和C1为低电平, 按下按键C时R1和C0为低电平, 按下按键D时R1和C1和低电平,以此类推。这个实现原理看起来似乎非常准确又设计简便。然而, 仔细想想这样的设计在检测多个按键同时按下时是有BUG存在的,比如当检测到R0、R1、C0、C1这4根线全为低时你根本无法判断A,B,C,D这4个按键到底被同时按了几个, AD、ABD、ACD、BC、ABC、BCD、ABCD这些组合都是可能的。为了解决这个问题,矩阵键盘采用了另外一种方式,逐行扫描方式,为方便理解,我们采用4*4的矩阵键盘来分析。首先看下原理图: P10P13是4根设计成输出口的行线,P14P17是4根设计成输入口的列线。如此的设计该怎样区别是什么按键被按下了呢?判断方法如下:1 扫描P10行:a) 将P10P13输出为0 、1、1、1b) 读P14P17这4个输入口的电平。如果S0S3都没被按下,则因为P14P17都是上拉到VCC,所以都为高;如果有1个被按下比如是S1,则因P10输出为低,所以S1开关导通后P16应为低;如果有2个按下比如是S1,S2,则P16与P17应为低。c) 根据P14P17的电平即可得知S0S3中共有几个按键被按下。2 扫描P11行:a) 将P10P13输出为1 、0、1、1b) 读P14P17这4个输入口的电平。如果S4S7都没被按下,则因为P14P17都是上拉到VCC,所以都为高;如果有1个被按下比如是S5,则因P10输出为低,所以S5开关导通后P16应为低;如果有2个按下比如是S5,S6,则P16与P17应为低。c) 根据P14P17的电平即可得知S4S7中共有几个按键被按下。3 扫描P12行:将P10P13输出为1 、1、0、1,其他步骤同上。4 扫描P13行:将P10P13输出为1 、1、1、0,其他步骤同上。通过这4行的扫描,我们已经能够确定S0S15这16个按键当前的状态了。 C语言实现如下:void key_scan() /键盘扫描函数 int i;unsigned char n, row, rowmask ;row = 1;for(i=0; i4; i+) /共扫描4条行线 rowmask = (rowi); /i=0时,rowmask=0xfe, i=1时rowmask=0xfdP1=rowmask; n = P1;n &= 0xf0;if(n != 0xf0) Delay();/防抖动 P1=rowmask; n = P1;n &= 0xf0;if(n != 0xf0) switch(n) case 0xE0:/S(3+i*4)按下 break; case 0xD0:/S(2+i*4)按下 break; case 0xB0:/S(1+i*4)按下 break; case 0x70:/S(0+i*4)按下 break; void Delay() /延时函数 int i,j;for(i=0; i100; i+) for(j=0; j100; j+);本文来自CSDN博客
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 老年人理财基本知识培训课件
- 老年人液体疗法课件
- 酿酒专业知识培训课程课件
- 实验:探究加速度与物体受力、物体质量的关系(复习讲义)-2026年高考物理一轮复习(北京专用)解析版
- 完形填空(10空)原卷版-2023学年八年级英语下学期
- 实数性质与实数运算(3大知识点+10大典例+变式训练+过关检测)原卷版-2025年新八年级数学暑假提升讲义(北师大版)
- 第四单元 第九课 中国与国际组织2026年高三政治第一轮总复习
- 酸碱中和反应的说课课件
- 人教版八年级英语上册同步讲义 Unit4 Section A(含答案解析)
- 老山界优翼课件
- 2025年全国企业员工全面质量管理知识竞赛题库(试题及答案)
- 2025年电信人工智能学习考试题库(含答案)
- 2025成人肠造口护理
- 修补墙体合同范本
- 开学第一课 教学设计-2024-2025学年七年级上学期道德与法治部编版
- 有机肥采购合同书
- 团建活动申请书
- 压力疏导培训课件
- 肠造口回纳手术
- 篮球场改造工程施工组织设计方案
- 业务知识演讲稿:“三重一大”事项集体决策制度规范运用的思考
评论
0/150
提交评论