登录  | 立即注册

游客您好!登录后享受更多精彩

扫一扫,访问微社区

QQ登录

只需一步,快速开始

开启左侧

[寒假笔记] 矩阵按键检测

[复制链接]
发表于 2017-1-24 18:10:31 | 显示全部楼层 |阅读模式
学习笔记
学习科目: c51
学习安排: \\\\\\\\\\
开始时间: 2017-01-24
结束时间:
4x4矩阵按键检测方法

鉴于逐行(列)扫描检测比较常见在此不予赘述.

按键检测关键在于削抖处理,本着能用软件解绝就不用硬件的原则.介绍两种软件处理按键削抖方法,说是两种,但本质上没什么区别都是鉴于按键抖动时间,跳过抖动时间(注意非等待),取理论稳定时间检测.

在此之前先说下区别于逐行(列)扫描检测的另一种方法--高低电平翻转法(假设按键接在P1)

P10 key1key2 key3key4
P11 key5 key6 key7 key8
P12 key9 key10 key11 key12
P13 key13 key14 key15 key16
\ P14 P15 P16 P17



若MCU置P1=0xf0(即P10~P13为 低电平/0; P14~P17为 高电平/1 );    假设此时仅key3被按下(即相当于P10与P16直接相连) 则由 (&)线与关系 ,P16会变为 低电平/0.   那么此刻MCU可检测到P16~P14分别为 1 0 1 1;  之后立刻 若MCU置P1=0x0f,  同理可知 此时MCU可检测到P13~P10分别为 1 1 1 0 . 好了到此合并可得到一个数据-- 1 0 1 1 1 1 1 0 B(即0xBE) 这就是key3按下时的对应标识(键码) , 同样类似直角坐标系 16个按键都有自己独立的键码 只要我们取按键稳定时间进行上述检测 就可以得到键码再一对照就可以准确得知哪个按键被按下.   下面进入真正的主题
1.计时法

矩阵按键.png

2.按键状态机检测

按键状态机检测.png

PS:如有疑问请留言,我们可以共同谈论.





好懒~~不想说~~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表