• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

51单片机长按短按双击识别

yhj416606438 2020-12-04 浏览量:798
怎么识别按键的这三种状态,可以使用定时器实现,有没有程序参考
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 这个,其实你需要先设立一个标准,即什么算是长按,什么算是短按,什么算是双击,然后再说实现判断的事情。

    比如长按和短按的区别可以是

    按下后,在1秒内没有放开的算是长按,否则算短按

    在1秒内2次按下就是双击

    这样一来标准有了,代码实现就清楚了,

    无非就是 按键触发中断开始计数,如果在1秒内释放了算短按,否则为长按,如果在1秒内触发了2次(需要有临时状态标志变量为参考),则为双击。

    • 发布于 2020-12-04
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:3
  • 可以用定时器加状态机实现的。网络搜索菜农的零耗时按键。还有一些开源的按键识别框架也是可以使用的。
    • 发布于2020-12-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 程序的话自行用状态机写一个就行,不难

    在51单片机上面,可以用一个定时器记录系统到目前为止运行时间,以ms为单位,然后在主循环里面循环检测那个IO的电平,电平出现变化则开始用一个变量1保存当前运行时间,然后再次变化的时候用变量2保存运行时间,这样两个变量相减得到按键按下的时间

    • 发布于2020-12-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 用个定时器就可以吧,定时器里计一下按下的时间间隔
    • 发布于2020-12-23
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

51单片机长按短按双击识别