单片机IO口检测按键

[复制链接]
2200|6
 楼主| chest20090909 发表于 2014-4-28 08:51 | 显示全部楼层 |阅读模式

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应该以一定的频率(最好高 一些,高于人手按键的最快频率)给出 ...

“建议将按键与对应电阻对调。”是指什么
lnulibin 发表于 2014-5-5 17:04 | 显示全部楼层
本帖最后由 lnulibin 于 2014-5-5 17:06 编辑

ffvfvf

本帖子中包含更多资源

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

×
兰天白云 发表于 2014-5-10 17:29 | 显示全部楼层
不改电路也可以,对按键进行滤波,比如每隔20毫秒检测一次按键,只有联续检测到3次按键按下,才判定本按键按键按下
 楼主| chest20090909 发表于 2014-5-12 08:38 | 显示全部楼层
谢谢各位,已经解决了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

121

主题

632

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部