单片机按键消抖处理方法

  • 格式:doc
  • 大小:40.35 KB
  • 文档页数:2

下载文档原格式

  / 2
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机按键消抖处理方法(非软件延时)

以STC89C51单片机为例,STC89C51的P1.0、P1.1、P1.2分别接了3个按键。下面代码为按键扫描处理部分函数,此部分代码通俗易懂,方便移植。

简单解释一下代码的含义:

定义一个含有3个元素的整形数组(静态变量),分别储存3个按键连续16次的状态。

Main函数不断的循环执行本函数刷新KeyDelay数组的状态,以KeyDelay[0]对应的P1.0为例,当按键没有按下的时候,KeyDelay[0]为0,即KeyDelay[0]变量的所有位均为0,

当该按键按下的时候,连续16次扫描便会使KeyDelay[0]变为0xffff(所有位都是1),

而当按下或者释放产生抖动时,那么连续16次扫描后不可能所有位都为0或都为1。

所以便可以用这种方法来进行软件消抖。

文档由胡保进编写。