电子工程师技术服务社区
- 社区首页
- 下载
- C语言中状态机编程.docx
资料描述
按键消抖
通常按键所用的开关都是机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹
性作用,一个按键开关在闭合时不会马上就稳定的接通,在断开时也不会一下子彻底断开,
而是在闭合和断开的瞬间伴随了一连串的抖动,如下图所示。
按键稳定闭合时间长短是由操作人员决定的, 通常都会在 100ms 以上,刻意快速按的话
能达到 40-50ms 左右,很难再低了。抖动时间是由按键的机械特性决定的,一般都会在 10ms
以内,为了确保程序对按键的一次闭合或者一次断开只响应一次,必须进行按键的消抖处理。
当检测到按键状态变化时,不是立即去响应动作,而是先等待闭合或断开稳定后再进行处理。
硬件消抖:就是在按键上并联一个电容,如图下图所示,利用电容的充放电特性来对抖动
过程中产生的电压毛刺进行平滑处理,从而实现消抖。但实际应用中,这种方式的效果往往
不是很好,而且还增加了成本和电路复杂度,所以实际中使用的并不多。
库函数和寄存器版本的按键这一章讲的都差不多,目前我能力有限,也找不出比原子哥更好的按键程序,基本都是差不多的,后期学了串口和定时器中断那些再写个比较综合点的程序。下面附上很好的状态机编程的资料,有需要的可以了解学习一下。