WPS?2019如何清理云空間?WPS 2019如何將PDF轉(zhuǎn)換為WORD?
WPS 2019如何清理云空間?進入金山文檔網(wǎng)頁端,點擊我的文檔勾
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; // 初始設(shè)置P1.1為0 熄滅LED while (1) { if(P10 == 0) // P1.0口檢測到按鍵按下 { P11 = !P11; // P1.1口輸出取反 } }}
按鈕按下的時候的波形圖:
這里發(fā)現(xiàn),按鈕按下的時候并沒有機械抖動,而是波形直接被拉低了,松開之后也沒有抖動,波形也直接恢復了。這里我使用的是這種按鈕。
那么在之前的文章《8.樹莓派3B+按鈕操作)》中介紹的抖動是有問題了。當時在這篇文章中的抖動圖:
這個圖怎么說呢,在我十年前接觸單片機的時候就是這么說的,現(xiàn)在自己有示波器了,實際測試是沒有的。那么實際有沒有抖動大家還是要以自己的測試為準。按鈕檢測代碼也要以自己的實際電路和程序為準。之前我就是按照接觸的別人的知識處理的,在按鈕按下的時候等待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 }}
在去年弄樹莓派的時候就一直對這個抖動抱有懷疑,現(xiàn)在自己有示波器了,也就證實了之前的懷疑。還是實踐出真理。
標簽: