C语言中状态机编程.docx

  • 浏览量:718
  • 下载量:2
  • 资料大小:20.76 KB
  • 日期:2015-12-09
  • 上传者:蒙娜丽石
  • 分享
  • 评论
  • 举报
  • 收藏

资料描述

    按键消抖
    通常按键所用的开关都是机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹
    性作用,一个按键开关在闭合时不会马上就稳定的接通,在断开时也不会一下子彻底断开,
    而是在闭合和断开的瞬间伴随了一连串的抖动,如下图所示。

    按键稳定闭合时间长短是由操作人员决定的, 通常都会在 100ms 以上,刻意快速按的话
    能达到 40-50ms 左右,很难再低了。抖动时间是由按键的机械特性决定的,一般都会在 10ms
    以内,为了确保程序对按键的一次闭合或者一次断开只响应一次,必须进行按键的消抖处理。
    当检测到按键状态变化时,不是立即去响应动作,而是先等待闭合或断开稳定后再进行处理。
    硬件消抖:就是在按键上并联一个电容,如图下图所示,利用电容的充放电特性来对抖动
    过程中产生的电压毛刺进行平滑处理,从而实现消抖。但实际应用中,这种方式的效果往往
    不是很好,而且还增加了成本和电路复杂度,所以实际中使用的并不多。

    库函数和寄存器版本的按键这一章讲的都差不多,目前我能力有限,也找不出比原子哥更好的按键程序,基本都是差不多的,后期学了串口和定时器中断那些再写个比较综合点的程序。下面附上很好的状态机编程的资料,有需要的可以了解学习一下。
评论(0)

登录后可评论,请 登录注册

   
相关资料
换一换