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

怎么用51单片机获取按键按下的时间呢

minzisc 2020-01-19 浏览量:1458
这个按下的时间应该怎么进行检测
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 对于按键的按下时间,我们可以开启MCU的外部中断,在外部中断里面计时稳定的按键按下时间
    • 发布于 2020-02-13
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:5

  • 按下后中断出发后,就延迟计数判断,比如100ms判断一次,直到释放,这样就可以精确到100ms的计算出按下时间。
    • 发布于2020-01-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 有个不怎么准的方法,就是用轮询,在主循环轮询到电平第一次变化时开始定时器计时,再次变化时停止计时
    • 发布于2020-01-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 看你用的那个厂家的芯片和你芯片引脚的配置,可以把这个引脚设置成中断,然后中断开始或者停止计数器,也可以设计成捕获模式,或者干脆就是轮询,但是轮询的时间是不准确的,如果你只是做常安和短按的区别的话,那可以用定时扫描按键,记录按键按下和松开中间扫描的了多少次,这个次数可以当作时长来计算常安和短按,具体的数值需要你在程序里进行调整。
    • 发布于2020-01-22
    • 举报
    • 评论 0
    • 0
    • 0

  • 开启外部中断,按键按下进入中断开启定时器,定时器中断计数器不停加加,主循环检测按键高电平就停止计数器,然后计算计数器的值再换算成时间
    • 发布于2020-02-02
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

怎么用51单片机获取按键按下的时间呢