【導(dǎo)讀】學(xué)習(xí)單片機的時候想必大家都接觸過按鍵,按鍵是一個人機交互的接口設(shè)備,在剛開始接觸的時候 簡單也是 直接的辦法就是將按鍵直接接到一個 I/O 口上,然后檢測 I/O 上的電平變化,假設(shè)按鍵另一端接在 GND 上,則一旦檢測到低電平就認為是按鍵觸發(fā)了(此處假設(shè)已經(jīng)進行了去抖,軟件去抖也好,硬件去抖也好)。
學(xué)習(xí)單片機的時候想必大家都接觸過按鍵,按鍵是一個人機交互的接口設(shè)備,在剛開始接觸的時候 簡單也是 直接的辦法就是將按鍵直接接到一個 I/O 口上,然后檢測 I/O 上的電平變化,假設(shè)按鍵另一端接在 GND 上,則一旦檢測到低電平就認為是按鍵觸發(fā)了(此處假設(shè)已經(jīng)進行了去抖,軟件去抖也好,硬件去抖也好)。乍一看,no problem!而且還是 very good!其實這對于初學(xué)者而言確實是入門的不二選擇,但對大佬而言就是錯誤的設(shè)計思想。
問題出在去檢測 I/O 口這個過程,CPU 必須每隔一段時間檢測,一般用定時器去實現(xiàn),間隔時間太長了達不到實時的性能,時間太短了有浪費 CPU 資源,因為在很多場合按鍵處于觸發(fā)的時間段時相當少的,比如學(xué)校的自動圈存機,一般情況下時沒人用的,那就意味著 CPU 每間隔時間去查看 I/O 是非常不合理的,只有當按鍵按下采取查看,這才是 合理的方式。
這樣就必須引入外部中斷的設(shè)計方案,一個按鍵的設(shè)計原理圖如下:
如果有兩個甚至多個按鍵,那如何弄了,很簡單,使用或門來解決這個問題。電路圖如下:
免責聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請電話或者郵箱聯(lián)系小編進行侵刪。