【51单片机】利用【时间延迟】的原理规避【按键抖动问题】

简介: 【51单片机】利用【时间延迟】的原理规避【按键抖动问题】

前言

大家好吖,欢迎来到 YY 滴单片机系列 ,热烈欢迎! 本章主要内容面向接触过单片机的老铁

三.【控制LED状态】

1.按键抖动问题

  • 我们发现中间存在:
  • 2个抖动时间段(按下时)(松开时)
  • 1个中间时间段
  • 我们要采用【时间延迟】的原理规避这一现象


2.我们要采用【时间延迟】的原理规避这一现象

  • 自定义延时子程序传送门:传送门
  1. 我们在第一个抖动时间段(按下时)设置一个延时程序
  1. 在中间时间段时,设置一个判断按键状态的while循环while(P3_1==0);,使他实现【到达中间时间段,停下等待按钮状态:实现按下进入循环,松手跳出循环继续程序】
  2. 我们在第二个抖动时间段(松手时)设置一个延时程序
#include <REGX52.H>

void Delay(unsigned int xms)    
{
  unsigned char i, j;

  while(xms)
  {
    i = 2;
    j = 239;
    do
    {
      while (--j);
    } while (--i);
     xms--;
  }
}

void main()
{
     while(1)
    {
      if(P3_1==0)//按下
      {   
          Delay(20);//在前一段抖动时间延时
          
          while(P3_1==0);//到达中间时间段,停下等待按钮状态:实现按下进入循环,松手跳出循环继续程序
          
          Delay(20);//在后一段抖动时间延时
        
          P2_0=~P2_0;//取反
      }
    }
}
  • 现象:我们烧写入单片机后,可以发现按下k1按键,d1灯亮并保持;再次按下,d1灯灭并保持;
相关文章
|
2月前
【51单片机】独立按键,每个按键不同功能,数码管数值的加减,控制流水灯模式,包含按键消抖,数码显示,流水灯
【51单片机】独立按键,每个按键不同功能,数码管数值的加减,控制流水灯模式,包含按键消抖,数码显示,流水灯
|
2月前
【51单片机】在LCD1602上显示时间:包含按键进行校准时间+闹钟功能:按键设置闹钟响铃时间,以及响铃的时间长度
【51单片机】在LCD1602上显示时间:包含按键进行校准时间+闹钟功能:按键设置闹钟响铃时间,以及响铃的时间长度
|
2月前
51单片机用汇编语言实现独立按键检测,每个按键有不同功能,包含按键消抖程序
51单片机用汇编语言实现独立按键检测,每个按键有不同功能,包含按键消抖程序
|
2月前
|
C语言
【51单片机】LCD1602显示字符串,时间、时间+按键校准、秒表计时的功能代码。
【51单片机】LCD1602显示字符串,时间、时间+按键校准、秒表计时的功能代码。
|
3月前
|
传感器 存储 程序员
《单片机原理与应用及C51编程技术》期末复习笔记
《单片机原理与应用及C51编程技术》期末复习笔记
|
5月前
|
传感器
51单片机循迹小车原理介绍和代码示例
51单片机循迹小车原理介绍和代码示例
51单片机循迹小车原理介绍和代码示例
|
5月前
|
存储 芯片
【期末不挂科-单片机考前速过系列P11】(第十一章:15题速过串行口的工作原理和应用)经典例题盘点(带图解析)
【期末不挂科-单片机考前速过系列P11】(第十一章:15题速过串行口的工作原理和应用)经典例题盘点(带图解析)
【51单片机】自定义动态数码管显示(设计思路&原理&代码演示)
【51单片机】自定义动态数码管显示(设计思路&原理&代码演示)
【51单片机】静态数码管显示(设计思路&原理&代码演示)
【51单片机】静态数码管显示(设计思路&原理&代码演示)
【51单片机】Kn独立按键控制【LED亮灭】【LED状态】【LED二进制式显示】【LED不断移位】(4)
【51单片机】Kn独立按键控制【LED亮灭】【LED状态】【LED二进制式显示】【LED不断移位】(4)