學習單片機的時候想必大家都接觸過按鍵,按鍵是一個人機交互的接口設備,在剛開始接觸的時候 簡單也是 直接的辦法就是將按鍵直接接到一個 I/O 口上,然后檢測 I/O 上的電平變化,假設按鍵另一端接在 GND 上,則一旦檢測到低電平就認為是按鍵觸發了(此處假設已經進行了去抖,軟件去抖也好,硬件去抖也好),乍一看,no problem!而且還是 very good!其實這對于初學者而言確實是入門的不二選擇,但對大佬而言就是錯誤的設計思想。
問題出在去檢測 I/O 口這個過程,CPU 必須每隔一段時間檢測,一般用定時器去實現,間隔時間太長了達不到實時的性能,時間太短了有浪費 CPU 資源,因為在很多場合按鍵處于觸發的時間段時相當少的,比如學校的自動圈存機,一般情況下時沒人用的,那就意味著 CPU 每間隔時間去查看 I/O 是非常不合理的,只有當按鍵按下采取查看,這才是 合理的方式。
這樣就必須引入外部中斷的設計方案,一個按鍵的設計原理圖如下:
如果有兩個甚至多個按鍵,那如何弄了,很簡單,使用或門來解決這個問題。電路圖如下:
-
人機交互
+關注
關注
12文章
1217瀏覽量
55531 -
單片機
+關注
關注
6043文章
44622瀏覽量
638519 -
電平
+關注
關注
5文章
361瀏覽量
40006
發布評論請先 登錄
相關推薦
評論