找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 651|回复: 7
收起左侧

求分享51单片机ADC检测按键单击、双击、长按程序

[复制链接]
ID:350682 发表于 2024-10-30 11:35 | 显示全部楼层 |阅读模式
请问一下,用51的ADC检测两个按键实现按键单击、双击、长按,有没有好的程序呀?无按键,电压3V;按键1,电压0V;按键2,电压1.5V。
回复

使用道具 举报

ID:161164 发表于 2024-10-30 16:34 | 显示全部楼层
2024-10-30_163408.png
回复

使用道具 举报

ID:1109793 发表于 2024-10-31 08:16 | 显示全部楼层
尽量不要用ADC,当开关漏电或者接触电阻增加时,就容易出错
回复

使用道具 举报

ID:996773 发表于 2024-10-31 09:13 | 显示全部楼层
尽量不要用ADC,当老板说手头紧,兜里掏出更便宜没有adc单片机,玩毛线,程序又得改
回复

使用道具 举报

ID:350682 发表于 2024-10-31 10:02 | 显示全部楼层
xiaobendan001 发表于 2024-10-31 08:16
尽量不要用ADC,当开关漏电或者接触电阻增加时,就容易出错

因为要节约IO口,所以只能这样做了
回复

使用道具 举报

ID:1133081 发表于 2024-10-31 19:12 | 显示全部楼层
piscest_x 发表于 2024-10-31 10:02
因为要节约IO口,所以只能这样做了

将ADC返回值做较宽范围判断即可,假设十位ADC返回值0~1023,小于340按键1有效,340~680按键2有效,大于680算没有按。至于单击、双击、长按就按常规的时间计数方式编程。论坛资料很多,搜一下。
回复

使用道具 举报

ID:1034262 发表于 2024-10-31 21:52 | 显示全部楼层
可以参考STC实验箱的电路,ADC读16个键挺好,按键的接触电阻只要不是超过1K欧姆,就不会有啥影响,按下、释放、双击、长按,都是软件处理而已。
回复

使用道具 举报

ID:57657 发表于 2024-10-31 23:19 | 显示全部楼层
piscest_x 发表于 2024-10-31 10:02
因为要节约IO口,所以只能这样做了

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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