WPS 2019如何清理云空间?WPS 2019如何将PDF转换为WORD?
WPS 2019如何清理云空间?进入金山文档网页端,点击我的文档勾
2023/04/10
(资料图片)
在上面介绍了使用I/O口点了LED,实际也可以用I/O口做按键检测。这里采用的是P1.0口外接按键到GND。P1.1口外接LED到GND。
P1.0--->按键--->GND。
P1.1--->LED--->GND。
实验程序如下:
#include "stc15.h"void main(){ P11 = 0; // 初始设置P1.1为0 熄灭LED while (1) { if(P10 == 0) // P1.0口检测到按键按下 { P11 = !P11; // P1.1口输出取反 } }}
按钮按下的时候的波形图:
这里发现,按钮按下的时候并没有机械抖动,而是波形直接被拉低了,松开之后也没有抖动,波形也直接恢复了。这里我使用的是这种按钮。
那么在之前的文章《8.树莓派3B+按钮操作)》中介绍的抖动是有问题了。当时在这篇文章中的抖动图:
这个图怎么说呢,在我十年前接触单片机的时候就是这么说的,现在自己有示波器了,实际测试是没有的。那么实际有没有抖动大家还是要以自己的测试为准。按钮检测代码也要以自己的实际电路和程序为准。之前我就是按照接触的别人的知识处理的,在按钮按下的时候等待20ms左右再次判断电平。
if (rpio.read(button_pin) == rpio.LOW) { // 检测到 低电平 rpio.msleep(20); // 按键消抖if (rpio.read(button_pin) == rpio.LOW) { rpio.write(led_pin, rpio.HIGH); // 点亮LED }}
在去年弄树莓派的时候就一直对这个抖动抱有怀疑,现在自己有示波器了,也就证实了之前的怀疑。还是实践出真理。
标签: