前言
大家好吖,欢迎来到 YY 滴单片机系列 ,热烈欢迎! 本章主要内容面向接触过单片机的老铁
- 本章是51LCD单片机设计的一个环节,完整可前往相应博客查看完整
- 传送门
欢迎订阅 YY滴C++专栏!更多干货持续更新!以下是传送门!
- YY的《C++》专栏
- YY的《C++11》专栏
- YY的《Linux》专栏
- YY的《数据结构》专栏
- YY的《C语言基础》专栏
- YY的《初学者易错点》专栏
- YY的《小小知识点》专栏
- YY的《单片机期末速过》专栏
- YY的《C++期末速过》专栏
- YY的《单片机》专栏
- YY的《STM32》专栏
- YY的《数据库》专栏
- YY的《数据库原理》专栏
目录
- 三.【控制LED状态】
- 1.按键抖动问题
- 2.我们要采用【时间延迟】的原理规避这一现象
三.【控制LED状态】
1.按键抖动问题
- 我们发现中间存在:
- 2个抖动时间段(按下时)(松开时)
- 1个中间时间段
- 我们要采用【时间延迟】的原理规避这一现象
2.我们要采用【时间延迟】的原理规避这一现象
- 自定义延时子程序传送门:传送门
- 我们在第一个抖动时间段(按下时)设置一个延时程序
- 在中间时间段时,设置一个判断按键状态的while循环
while(P3_1==0);
,使他实现【到达中间时间段,停下等待按钮状态:实现按下进入循环,松手跳出循环继续程序】- 我们在第二个抖动时间段(松手时)设置一个延时程序
#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灯灭并保持;