搜索
bottom↓
回复: 14

刚想到的一种少量IO识别多个按键的办法

[复制链接]

出0入0汤圆

发表于 2013-12-20 17:35:27 | 显示全部楼层 |阅读模式
本帖最后由 lcw_swust 于 2013-12-20 22:06 编辑

电路如下:

思路是利用RC充电时间来确定键值。
程序处理:
IO2置为推挽输出低电平,IO1内部(或外部)上拉输入,当有任一按键按下时,IO1都会变低;
此时MCU已经知道有按键按下了,接着IO1设置为推挽输出高电平,IO2置为高阻输入,等待IO2变高;
当IO2变高后,根据等待时间来确定键值。
重复上面的步骤。
缺点:
软件较复杂。
IO2由低变高期间按键若有突然放开,则会影响充电时间,也许可以通过多次测量来保证精度。
这个只是设想,还未实验过,也许一个IO口也可以用这种RC充电的方法来识别多个按键。

----------------------------------------------------------
下面是简化版:

只用一个IO(可以用中断脚),但是每个电阻都不一样大;
如果取值合适,还能实现组合键。
IO设为内部(或在外部另加)上拉输入,当有任一按键按下时,IO都会变低(可引发中断);
将IO设为推挽输出高电平,对C放完电后再设为高阻输入,测量IO变低需要的时间,由这个时间确定键值。
要注意的是,这种电路可靠性不高,因为按键的抖动、接触电阻会对结果有影响。
-------------------------------------------------------------
再来一个用IO口多一些的:

(图中为4*4,但是应该容易做到8*8)
原理同四线电阻式触摸屏一样,用电阻的串联代替了触摸屏本身的电阻。
这种方式需要用4个IO口,其中需要有两个带ADC功能。
这种方式的优点是可以测量按键的接触电阻,可减少误识别。(TSC2046的手册中有介绍如何测量接触电阻)
缺点就是程序处理要稍微复杂些。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2013-12-20 17:40:08 | 显示全部楼层
和使用一路ADC的按键原理基本相同。

出0入96汤圆

发表于 2013-12-20 18:38:52 | 显示全部楼层
实际应用时不好弄,容易出错,

出0入0汤圆

发表于 2013-12-20 20:33:52 | 显示全部楼层
呵呵  没用过

出0入4汤圆

发表于 2013-12-20 20:38:32 | 显示全部楼层
等用一段时间,按键表面氧化,你就会分不清临近的了.另外,电路中由于电容,电阻都有误判,实际像你这样接这么多,在不同的电路板中,是不能完全正确识别的.

出0入0汤圆

 楼主| 发表于 2013-12-20 21:20:23 | 显示全部楼层
shandian 发表于 2013-12-20 17:40
和使用一路ADC的按键原理基本相同。

嗯,的确是。

出0入0汤圆

 楼主| 发表于 2013-12-20 21:20:53 | 显示全部楼层
laujc 发表于 2013-12-20 20:38
等用一段时间,按键表面氧化,你就会分不清临近的了.另外,电路中由于电容,电阻都有误判,实际像你这样接这么多 ...

的确,接触电阻是个问题。

出0入4汤圆

发表于 2013-12-20 21:29:12 | 显示全部楼层
lcw_swust 发表于 2013-12-20 21:20
的确,接触电阻是个问题。

以前同事在产品是做过,当时用的是ADC口检3个按键,后来批量后,反应有极少一部分有问题.
基本都是按键用久后,接触电阻变大,叠加到检测电阻上,导致识别有时不正确.

出0入0汤圆

发表于 2013-12-20 22:13:11 | 显示全部楼层
简单 的才是最好的

出0入0汤圆

发表于 2013-12-28 17:28:05 | 显示全部楼层
也可以扩展I/O做,1个8255能把8个I/O扩展成3*8=24个,差不多能满足各种场合

出0入0汤圆

发表于 2013-12-31 09:55:37 | 显示全部楼层
开关量检测才是长久可靠之道

出0入0汤圆

发表于 2014-1-2 09:00:13 | 显示全部楼层
好多电视机上的AD按键,时间长了都误判.

出0入0汤圆

发表于 2014-1-2 09:19:49 | 显示全部楼层
dgdzas 发表于 2014-1-2 09:00
好多电视机上的AD按键,时间长了都误判.

的确是这样  消费者恨得咬牙的事

出0入0汤圆

发表于 2014-1-2 09:43:09 | 显示全部楼层
每个按键的反应时间都不一样。也不可靠。

出0入0汤圆

发表于 2014-1-9 09:29:30 来自手机 | 显示全部楼层
这种方式不好,我家电磁炉经常须换按键,否则就不是你这的功能
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 07:21

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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