您的位置: 首页 >游戏 >

5个IO口最多能扫描多少个按键

2022-06-12 18:30:51 编辑:毕晴蓝 来源:
导读 大家好,小科来为大家解答以上问题。5个IO口最多能扫描多少个按键这个很多人还不知道,现在让我们一起来看看吧!1、在做项目(项目)的时候,

大家好,小科来为大家解答以上问题。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

本站除标明“本站原创”外所有信息均转载自互联网 版权归原作者所有。