标题: 求分享51单片机ADC检测按键单击、双击、长按程序 [打印本页]

作者: piscest_x    时间: 2024-10-30 11:35
标题: 求分享51单片机ADC检测按键单击、双击、长按程序
请问一下,用51的ADC检测两个按键实现按键单击、双击、长按,有没有好的程序呀?无按键,电压3V;按键1,电压0V;按键2,电压1.5V。

作者: lkc8210    时间: 2024-10-30 16:34


作者: xiaobendan001    时间: 2024-10-31 08:16
尽量不要用ADC,当开关漏电或者接触电阻增加时,就容易出错
作者: hi等你    时间: 2024-10-31 09:13
尽量不要用ADC,当老板说手头紧,兜里掏出更便宜没有adc单片机,玩毛线,程序又得改
作者: piscest_x    时间: 2024-10-31 10:02
xiaobendan001 发表于 2024-10-31 08:16
尽量不要用ADC,当开关漏电或者接触电阻增加时,就容易出错

因为要节约IO口,所以只能这样做了
作者: WL0123    时间: 2024-10-31 19:12
piscest_x 发表于 2024-10-31 10:02
因为要节约IO口,所以只能这样做了

将ADC返回值做较宽范围判断即可,假设十位ADC返回值0~1023,小于340按键1有效,340~680按键2有效,大于680算没有按。至于单击、双击、长按就按常规的时间计数方式编程。论坛资料很多,搜一下。
作者: coody_sz    时间: 2024-10-31 21:52
可以参考STC实验箱的电路,ADC读16个键挺好,按键的接触电阻只要不是超过1K欧姆,就不会有啥影响,按下、释放、双击、长按,都是软件处理而已。
作者: npn    时间: 2024-10-31 23:19
piscest_x 发表于 2024-10-31 10:02
因为要节约IO口,所以只能这样做了

ADC受到电磁干扰或多个按键同时按下容易识别错误,用74HC165可以识别无穷多个按键同时按下。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1