打印

单片机IO口检测按键

[复制链接]
1897|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

S1通过RC4高电平检测,S2通过RC3高电平检测,S3通过RC3给高电平检测RC4是否为高电平来检测,用S3来控制LED亮灭(检测到S3按下时IO控制的LED会亮,再次检测S3按下时LED会灭),测试中发现按按S3时正常,按S1或S2过程中有时会影响S3控制的LED的亮灭(比如LED是亮的,在没按S3情况下,有时按S2或S2过程中,LED会灭),是不是按键检测步骤有什么问题,请老师指导下,谢谢。
沙发
lnulibin| | 2014-4-28 12:21 | 只看该作者
本帖最后由 lnulibin 于 2014-4-28 12:22 编辑

检测S3前应该确保S1和S2没有按下。
另外RC3应该以一定的频率(最好高 一些,高于人手按键的最快频率)给出高电平,如RC4接收到该频率的波才能认为是S3按下。即使如此,在理论上也不能确保对S3的检测完全没有错误。

最后,建议将按键与对应电阻对调。

使用特权

评论回复
板凳
zhimagod| | 2014-4-28 15:38 | 只看该作者
这个电路……有点无语的赶脚
不修改电路的话那就
先将RC4设输入RC3设输出赋值1,检测RC4电平;然后RC3设输入,RC4设输出并赋值1,检测RC3
重复多次后综合结果判断哪个按键按下
另外检测周期的话不要低于RC电路的充放电周期

使用特权

评论回复
地板
chest20090909|  楼主 | 2014-5-4 11:44 | 只看该作者
lnulibin 发表于 2014-4-28 12:21
检测S3前应该确保S1和S2没有按下。
另外RC3应该以一定的频率(最好高 一些,高于人手按键的最快频率)给出 ...

“建议将按键与对应电阻对调。”是指什么

使用特权

评论回复
5
lnulibin| | 2014-5-5 17:04 | 只看该作者
本帖最后由 lnulibin 于 2014-5-5 17:06 编辑

ffvfvf

使用特权

评论回复
6
兰天白云| | 2014-5-10 17:29 | 只看该作者
不改电路也可以,对按键进行滤波,比如每隔20毫秒检测一次按键,只有联续检测到3次按键按下,才判定本按键按键按下

使用特权

评论回复
7
chest20090909|  楼主 | 2014-5-12 08:38 | 只看该作者
谢谢各位,已经解决了

使用特权

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

本版积分规则

121

主题

632

帖子

4

粉丝