2016-2022 All Rights Reserved.平安财经网.复制必究 联系QQ280 715 8082 备案号:闽ICP备19027007号-6
本站除标明“本站原创”外所有信息均转载自互联网 版权归原作者所有。
大家好,小科来为大家解答以上问题。5个IO口最多能扫描多少个按键这个很多人还不知道,现在让我们一起来看看吧!
1、在做项目(项目)的时候,往往需要用到的按键比较多,IO资源又比较紧张,所以就想尽办法在其他模块中节省IO端口,最后挤出一两个IO端口,却发现还是不够用,所以真的没有办法再增加一个IC来扫描按键。
2、一个IC的价格虽然不高,但对于大批量生产、产品利润低的厂商来说,却是一笔巨大的开支!
3、那么,我们能否想出一个更好的密钥扫描方法:使用最少的IO端口,扫描最多的密钥?可以吗?
4、例如:给定五个IO端口,可以扫描多少个按键?有人说2*3=6,如图1所示:
5、图1
6、是的,大多数技术参考书都是这样做的,我们经常这样做:3个IO端口用于行扫描,2个IO端口用于列检测(为了描述方便,我们同意将一个IO端口的输出设置为“0”——称之为“扫一个IO端口”)。
7、行行输出扫描键码,列行检测是否有扫描按键的按键查询方式。
8、扫描键流程:行线上依次输出011、101、110的扫描键值,行线上输出每个扫描键值,列线上检测一次。
9、当列线检测到一个键时,可以结合输出的扫描键值来判断对应的键。
10、但是,5 IO真的只能扫描6键吗?有人说能扫九,很聪明!从行IO和地导出三个键(注意上拉电阻),如图2所示:
11、图二
12、扫键过程:首先检测三行的IO口,扫K1’、K2’、K3’的键,然后按照上面2*3的扫键过程。
13、5个IO端口可以扫描9个按键,足够强大,比6个按键多1/2!
14、动动脑筋。你能再扫几个吗?就几个?一个就行!好了,再想想,就当是被逼出来的吧!图3:
15、图3
16、不多不少,就10把钥匙!这种扫描按键的方式比较少见!太美了!扫键过程:将IO1输出设置为“0”,检测IO2…IO5,如果判断有对应的按键按下,则知道有按键;如果没有按键,继续扫描按键:将IO2的输出设置为“0”,检测IO3、IO4、IO5,判断按键是否被按下,以此类推。
17、这里需要注意的是,当某个IO端口被扫描(输出为“0”)时,不要检测已经被扫描的IO端口。
18、比如此时将IO2的输出设置为“0”,依次检测IO3、IO4、IO5,但不要检测IO1,否则会出问题(为什么,请思考)。
19、你感觉如何?还不错!让我们再看看图3。多么有成就感啊!看,看.你看到了什么?来啊!参见图4:
20、图4
21、真的很强!你看到了20把钥匙!又一个对称的三角形。
22、然而,这样的安排能正确扫描20个按键吗?答案是肯定的:不是!上下三角形相互对称,对称扫过的按键无法区分。
23、你注意到图3分析中提到的几点了吗?(“清扫IO端口时,不要检查已清扫的IO端口,否则会出错”)
24、我们来分析一下图4:当IO1输出“0”时,按下K11或K11’键可以被IO2检测到,但IO2检测无法区分K11和K11’键!同样,无论扫描哪个IO端口,都有两个对称的按键无法区分。
25、我们假设如果能区分对称密钥,就能正常判断密钥。
26、我们在想:有没有单向传导装置?没错。参见图5!
27、图5
28、很聪明的思维!利用二极管的单向导电性区分两个对称密钥。
29、按键扫描思路:对IO端口逐个扫描按键,另外四个IO端口可以分别检测到它们所在的四个按键。
30、这样就不会有图3分析中提到的注意点。
31、够酷了!等等,我们不要满足于现状。让我们再看看图2。是不是有点启发?是的,我们来分析一下“五个IO口的地衍生五键”。
32、看图片6:
33、图6
34、25把钥匙!5个IO端口扫出25个按键!别激动,我们来分析一下它的可行性,通过分析才能使用。
35、假设按键扫描过程:先扫描地面上的五个按键,然后扫描按键,如图5所示。
36、首先将五个按键扫描到地面,判断没有按键,然后逐一扫描IO口。
37、但是,在扫描一个键的IO端口时,如果按下一个接地键,该键可能会被误判,因为接地键比其他键具有更高的响应优先级。
38、比如扫一扫IO1,IO1输出“0”,就在按下K62的时候,IO2检测到有按键,所以无法判断是K11还是K62。
39、我们可以在程序中避免这种对按键的误判:如果IO2检测到一个按键,那么下一步就是判断是否有接地按键被按下,如果没有,那么就可以正确判断是K11。
40、我们总结了扫描键的数量:
41、s=(n-1)* n n-使能二极管
42、s=(n-1)* n/2n-省略二极管。
43、经典?多经典啊!我告诉你一个小道消息:第一个设计这条赛道的人是一位大亨。他(她?)还为此申请了专利!在此我们默默向老板致敬!
44、来源:【微信微信官方账号:硬件攻击狮子】欢迎添加关注!请注明文章来源。
45、支票
本文到此结束,希望对大家有所帮助。
2016-2022 All Rights Reserved.平安财经网.复制必究 联系QQ280 715 8082 备案号:闽ICP备19027007号-6
本站除标明“本站原创”外所有信息均转载自互联网 版权归原作者所有。