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

如果有兩個甚至多個按鍵,那如何弄了,很簡單,使用或門來解決這個問題。電路圖如下:

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
人機交互
+關注
關注
12文章
1288瀏覽量
57929 -
單片機
+關注
關注
6076文章
45495瀏覽量
670442 -
電平
+關注
關注
5文章
372瀏覽量
41610
發布評論請先 登錄
相關推薦
熱點推薦
單片機設置同一個按鍵兩種功能
單片機設置同一個按鍵兩種功能,利用按鍵來進行界面或者是菜單的切換,公子給出以下思路,僅供參考,如果大家還有其他的更加好的方法,請大家私聊公子,好的東西需要
發表于 07-21 09:04
通過51單片機設計一個簡單的鬧鐘
的,今天把我這次51實驗的程序作為博客生涯的第一篇吧,加油。目標:通過51單片機設計一個簡單的鬧鐘,具體為:可以實現基本時鐘功能,按鍵還能切
發表于 01-13 06:28
stc89s52單片機設計應用原理圖
stc89s52單片機設計應用原理圖 該原理圖包括以下幾個模塊:流水燈模塊、數碼管顯示模塊、溫度傳感器模塊、液晶顯示模塊、串口通信模塊、鍵盤模塊等 原理圖部分截圖
發表于 05-21 15:06
?272次下載
藍橋杯單片機設計與開發組競賽,按鍵
按鍵幾乎也是每次藍橋杯單片機設計與開發組競賽的必考部分,因為這是CT107D開發平臺上僅有的輸入設備之一,而且按鍵也是單片機基礎開發中常見的
發表于 04-13 08:00
?49次下載
使用51單片機設計矩陣按鍵數碼管顯示的超簡潔程序和電路圖免費下載
本文檔的主要內容詳細介紹的是使用51單片機設計矩陣按鍵數碼管顯示的超簡潔程序和電路圖免費下載。
發表于 07-05 17:41
?0次下載
一個按鍵觸發的單片機設計原理圖
評論