单片机按键去抖动程序设计思路

单片机按键去抖动程序设计思路 2007-11-08 18:33 单片机按键去抖动程序设计思路

在单片机应用系统设计中,人机界面部分的友好程度,很大一部 分取决于键盘处理程序。在按键时按得快了没有反应,按慢了一连响 应几次,总给人紧迫感或迟钝感,不能使人满意。 用以下思路设计的键处理程序取得了满意效果。 判断有没有键值: 1.若有键值: 判断是否为首次按下: A:若首次按下:判断是否与上次按下的键值相同 a.若相同再判断:是否已经按下了 300ms? 1).若已经按下 300ms 则将此键做为连键处理。 2).若不是连键则判断:是否按下 20ms? 1>.若确认按下 20ms,得到有效键值等待弹起 2>. 若不是按下 20ms 直接结束处理(ret)。 b.若不相同则将标志清零结束处理(ret)。 B:若不是首次按下:将键值暂存起来,标志置位结束处理。 2.若无键值: 判断是否有键值已被确认 A.若有键已被确认:判断按键是否首次抬起 a.若首次抬起:判断抬起延时时间(20ms)是否到达 1>.若延时到则将标志处理结束处理。 2>.若延时未到直接结束处理(ret)。 b.若非首次抬起:直接结束处理(ret)。 B.若没有键被确认:直接结束处理(ret)。 具体程序实现流程图如下:(所有延时均为非阻塞式延时) Lcll scan_key----为调用键扫描程序;


相关文档

单片机51 去抖按键程序
单片机按键程序设计
状态机思路在单片机程序设计中的应用
谈谈我的单片机编程思路
单片机按键简单会变编程
单片机编程按键
单片机键盘接口程序设计
单片机 电子钟(显示 键盘 去抖)程序
单片机两个独立按键编程
单片机教程25课单片机键盘接口程序设计
电脑版