打印

节约单片机端口资源的键盘电路(分享)

[复制链接]
3110|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lijay|  楼主 | 2007-2-2 10:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、这里以3根I/O线为例,普通接法只能接3个键,即使是采用改进后的组合接法,最多也只能接7个链,本文介绍的电路是在组合接法的基础上增加了3个二极管,并采用了新的接法。其软件处理使用了端口访问和扫描检测两种方法,从而使按键数可达到16个,同时由于采用了组合逻辑来直接对端口进行读取,因此极大地简经了程序的处理过程,同时也节省了宝贵的存储器和CPU运算资源。图1是该电路的电路原理图。


2 软件过程和程序

该电路在程序处理时,由处理器首先向I/O1~I/O3写高电平,然后读入。如果非全“1”,说明,K0~K6中有键按下,此时可根据读入的端口状态判断键的状态,如果读入的结果为全“1”,则I/O1~I/O3轮流输出低电平,再读入,这样就可根据另外两根I/O线的状态来判别是K7~K15中的哪一个键被按下。重复调用键盘处理子程序可将读取的键值与上次的值进行比较,甚至两次读数相同为止,这样即可消除按键抖动所造成的误读。

相关帖子

沙发
xiaopet| | 2007-2-2 11:07 | 只看该作者

不错,不错!

是好东西,不过IO口上接三个上拉电阻会好些吧。

使用特权

评论回复
板凳
lijay|  楼主 | 2007-2-2 11:09 | 只看该作者

按键没必要接上拉电阻

使用特权

评论回复
地板
工控秀才| | 2007-2-2 13:06 | 只看该作者

同意三楼的说法

同意三楼的说法,不加上拉,我也看不明白的,输入悬空是什么电平呢?
不过的确是不错的东西,谢谢分享!

使用特权

评论回复
5
lixun00| | 2007-2-2 13:22 | 只看该作者

very good!

使用特权

评论回复
6
IC1008| | 2007-2-2 13:52 | 只看该作者

MCU 内部有上拉的了

使用特权

评论回复
7
cypjgbz| | 2007-2-2 16:11 | 只看该作者

好东西////////

好东西////////

使用特权

评论回复
8
taoest| | 2007-2-2 20:33 | 只看该作者

无法识别组合键

无法识别组合键,如果同时按下两个按钮,会出现错判。

使用特权

评论回复
9
gyt| | 2007-2-2 21:49 | 只看该作者

聪明

非常聪明的办法。

使用特权

评论回复
10
lijay|  楼主 | 2007-2-3 08:14 | 只看该作者

9楼说的没错

但是键盘多了也许也就用不着组合键了,呵呵

使用特权

评论回复
11
DM_man| | 2010-4-16 18:56 | 只看该作者
标记

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

43

帖子

0

粉丝