昨天的文章介绍了LED和在51单片机上打开LED的方法,今天我们就来了解通过51单片机的独立按键模块来控制LED的状态

处理机械特性的按键抖动问题

在独立按键中,最主要的是处理按键的机械抖动问题。
由于独立按键使用轻触开关这种元器件,因为它内部的机械特性,按下和松开的时候会出现短暂抖动,要处理这个问题的话可以设计电路来过滤这个抖动,但是对于我这个新手来说,这个方法实行起来太困难了,所以江协科技说了,除了设计过滤抖动的电路的这个硬件方式之外,还可以使用软件方法来处理这个问题。
软件方法的关键在于用延时函数来跳过按键的按下抖动和松开抖动
Delay(20);
while(P3_1==0);
Delay(20);

程序内容

按下独立按键不放LED亮起,松开按键LED熄灭

unknown_2025.12.09-14.51.png

按一下独立按键LED亮起,再按一下LED熄灭

unknown_2025.12.09-14.53.png

按一下独立按键LED模组显示8位二进制从0000 0000到1111 1111的自加操作,因为我的开发板原因,实现这个功能时,要将开发板倒转一下方向食用

unknown_2025.12.10-21.44.png

按下独立按键K1,LED亮起状态向左移动;按下独立按键K2,LED亮起状态向右移动,还是我的开发板原因,实现这个功能是,实际效果与逻辑上是相反的

unknown_2025.12.10-21.48.png