單片機實現按鍵控制原理

2021-01-12 技術閒聊

本文介紹通過單片機實現按鍵控制一個LED燈,教大家學習按鍵控制原理。

下圖為按鍵連接原理,(PB0-PB3為單片機IO口),每個按鍵輸出端採用上拉電阻,目的是當按鍵斷開時,使單片機輸入埠(PB0-PB3)處於高電平狀態,只有當按鍵按下時才處於低電平。(此文用AVR單片機舉例)

按鍵的基本原理是設置單片機IO口(PB0-PB3)為輸入狀態,如DDRB = 0XF0(方向寄存器,「1」為輸出,「0」為輸入);

單片機一直檢測按鍵埠(PB0-PB3)的狀態,當埠為低電平時(即按鍵按下),實行相應的動作(比如控制LED燈)。

原理就是這麼回事,但是正真實現時,按鍵會有抖動,要進行按鍵去抖,下圖為按鍵按下時的抖動圖。

按鍵實行一個動作過程是需要一定時間的,一般為100mS-1S左右,而一個單片機執行一個機器周期的時間很短,時鐘為10MH的周期為0.1μs,這樣按鍵每一次動作程序就會多次檢測按鍵,出現誤判(一次按下,多次動作)。

按鍵觸點在閉合或者斷開的瞬間會出現抖動,抖動時間一般小於10ms。

(1) 可以使用硬體電路消抖,硬體消抖可以在按鍵與單片機IO口之間加入RS觸發器,原理如下圖所示。

(2)軟體去抖

按鍵抖動的時間間隔也就10ms以內,可以通過軟體進行延時判斷,過濾掉抖動的時間,達到消除抖動的目的。

例:按鍵消抖程序:

Keys ()

{

if(!key) //第1步:判斷是否有按鍵按下,key=0表示按鍵按下

{

delayms(20); //第2步:延時20ms,用於軟體消抖,避開抖動時間

if(!key) //第3步:再次檢測該按鍵是否按下

{

… //按鍵按下的處理程序

}

}

While(!key); //第4步:判斷按鍵動作是否結束(key=1表示按鍵已釋放)

}

例:按鍵控制LED燈程序

相關焦點

  • 單片機紅外電路設計原理
    空調遙控器其實就是一個紅外信號發射裝置,而空調機身具有紅外接收探頭,可以接收遙控器發出的紅外信號並解析,從而實現遙控的功能,電視遙控器也是同樣的原理。現在有很多手機具有紅外功能,通過匹配通訊協議,就能實現手機遙控電視和空調的作用。下面通過硬體和軟體兩個方面來和大家分享,紅外遙控實現的原理。
  • 單片機的按鍵觸發設計原理圖解析
    在學習單片機的時候想必大家都接觸過按鍵,按鍵是一個人機互動的接口設備,在剛開始接觸的時候最簡單也是最直接的辦法就是將按鍵直接接到一個I/O口上,然後檢測I/O上的電平變化,假設按鍵另一端接在GND上,則一旦檢測到低電平就認為是按鍵觸發了(此處假設已經進行了去抖
  • 單片機C語言編程實現對舵機控制
    在智能小車編程過程中,舵機是實現小車避障、循跡的基礎。單片機通過控制舵機實現小車的轉向。本文主要介紹如何使用51單片機實現對舵機進行偏轉角度控制。所使用舵機型號為MG996R,使用晶片為STC89C52。
  • 51單片機玩轉物聯網基礎篇03-獨立按鍵
    前言上一節,我們完成了51單片機控制LED燈,並實現流水燈效果,本節我們學習操作獨立按鍵,並通過兩個按鍵,分別打開和關閉所有LED燈,按鍵作為輸入設備,在系統開發過程中十分常見,一般來說,按鍵可以設置系統參數、控制系統運行狀態。
  • 51單片機對矩陣鍵盤實現16個按鍵操作的設計
    矩陣鍵盤是單片機外部設備中所使用的排布類似於矩陣的鍵盤組。矩陣式結構的鍵盤顯然比直接法要複雜一些,識別也要複雜一些,列線通過電阻接正電源,並將行線所接的單片機的I/O口作為輸出端,而列線所接的I/O口則作為輸入。矩陣鍵盤的優點是節約單片機IO口,例如普通鍵盤8個IO口只能用作8個按鍵,而矩陣鍵盤能作16個按鍵。
  • 51單片機玩轉物聯網基礎篇05-控制繼電器
    前言本節我們開始學習如何使用51單片機控制繼電器,有了繼電器,我們可以使用單片機輸出的低電平控制高電平期間工作,比如繼電器接到220V用電器上,可通過單片機智能控制用電器。2.繼電器控制原理繼電器原理圖如下所示:
  • 用AT89C52單片機作為控制器,設計簡單實用的步進電機控制系統
    作者介紹了基於AT89C52單片機的兩相混合式步進電機控制系統的設計方案,增加了步進電機控制系統設計的靈活性。控制系統採用AT89C52單片機作為控制器,由達林頓功率管BUW49組成的雙H橋式電路作為驅動器,加入按鍵控制及LCD1602顯示。控制系統的電路結構簡單、設計思路清晰。實驗表明,控制系統操作簡單、運行可靠,具有較強的實用性。
  • 單片機控制的密碼鎖設計(含電路圖及源程序)
    單片機控制的密碼鎖設計。AT89S52單片機P1引腳外接獨立式按鍵S1-S8,分別代表數字鍵0-5、確定鍵、取消鍵。單片機從P3.0-P3.3輸出4個信號,分別為1個電磁開鎖驅動信號和密碼錯誤指示、報警輸出、已開鎖指示信號,分別用發光二極體L1-L4指示。P3.4接一有源蜂鳴器,用於實現提示音。基本要求:(1)初始密碼為123450,輸完後按確定鍵開鎖,取消鍵清除所有輸入,每次按鍵有短「滴」聲按鍵提示音。(2)密碼輸入正確後,輸出一個電磁鎖開鎖信號與已開鎖信號,並發出兩聲短「滴」聲提示。
  • 51單片機按鍵控制蜂鳴器啟停程序
    51單片機按鍵控制蜂鳴器啟停程序#include<reg52.h> #define uint unsigned int //宏定義sbit SPK=P3^5; //定義喇叭埠sbit key=
  • 51單片機+PID算法水溫控制系統設計
    本系統設計採用基於PID算法的單片機控制來實現水溫的調控。單片機控制部分採用AT89C51單片機為核心,採用軟體編程,實現用PID算法來控制PWM波的產生,繼而控制電爐的加熱來實現溫度控制。通過編程對PID各參數的調整,來達到提高加溫速度,減小超調的目的。
  • 單片機復位電路原理是什麼 單片機復位電路有哪些?
    那麼問題來了,單片機為什麼需要復位電路呢?單片機復位電路原理是什麼呢?單片機復位電路有哪些種呢?本文將一一為您解答~~~本文引用地址:http://www.eepw.com.cn/article/269787.htm一、單片機復位電路原理- -簡介復位電路,與計算機的清零按鍵類似,卻又存在不同。
  • C8051F020單片機對監控示波器面板的一鍵多義按鍵管理設計
    設計採用高性能單片機C8051F020為控制晶片,監控示波器面板上40個按鍵、3個編碼開關及4個電位器的狀態。分別介紹了鍵盤、編碼開關和電位器的工作原理,以及其與單片機連接的硬體電路及軟體編程的實現。按鍵部分採用一鍵多義的鍵盤程序設計方法,給出了鍵碼匹配子程序流程圖。
  • 單片機復位電路原理是腫麼樣的呢???
    那麼問題來了,單片機為什麼需要復位電路呢?單片機復位電路原理是什麼呢?單片機復位電路有哪些種呢?本文將一一為您解答~~~本文引用地址:http://www.eepw.com.cn/article/269787.htm  復位電路,與計算機的清零按鍵類似,卻又存在不同。
  • 基於NEC單片機的漏電檢測儀表的原理設計
    本文引用地址:http://www.eepw.com.cn/article/271415.htm  漏電檢測原理  對電力系統迴路進行漏電檢測的方法有很多,如絕緣監測裝置,低頻探測法,變頻探測法,霍爾磁式平衡等。本設計採用了霍爾磁式平衡原理,為克服傳感器的剩磁所帶來的對系統檢測到的漏電大小的影響,採取了將零點設計為可以通過按鍵調整的系統。
  • 基於單片機控制的多功能充電系統設計
    1 硬體電路設計 本系統採用移相全橋軟開關電路,即將Boost電路與全橋變換器合成一起組成單級PFC電路,該電路結構簡單、效率高,可以實現對輸入電流的整定,又可以工作在較大功率場合,發揮了全橋電路的優勢。 系統主要由充電主電路和充電控制迴路組成,圖1為多功能充電系統硬體原理圖。
  • 基於89C52單片機的紅外遙控雙模式交通燈控制系統
    摘要:針對實現交通燈系統的雙模式控制的目的。採用以C 編寫程序,設計電路的軟體部分和以89C52 單片機為核心,連同紅外接收模塊、交通燈顯示模塊和其它元器件,設計電路的硬體部分的軟硬體相結合的方法。即軟體部分:在KEIL 環境中編寫並驗證C 程序。
  • 單片機中PWM的原理與控制程序
    PWM 在單片機中的應用是非常廣泛的,它的基本原理很簡單,但往往應用於不同場合上意義也不完全一樣
  • 從零開始學習51單片機(八)獨立按鍵S1實驗3:一鍵控制N個設備
    今天的學習內容是:系統化編程讓一個按鍵能夠控制N個設備獨立按鍵S1的實驗3:在「獨立按鍵S1實驗2」的基礎上進一步改進,讓程序再次優化,學會怎樣將程序模塊化編寫,掌握了程序模塊化編寫,就能夠用一個獨立按鍵同時控制N個設備了
  • 基於51系列單片機的智能照明控制系統設計方案
    目前我國高校的教學樓和學生宿舍的照明系統大多採用定時方式控制,存在電能的大量浪費和照明模式不靈活等問題。本文基於51單片機,通過設置時間、感應光照與聲音,針對教學樓和宿舍的不同需求設定照明狀態,實現對照明系統智能動態的控制。測試結果表明該系統可以在不同條件下改變照明狀態,適應不同場所的需求,達到智能控制的目的。
  • 簡單的4×4行列式鍵盤控制電路設計(三款電路設計原理圖詳解)
    打開APP 簡單的4×4行列式鍵盤控制電路設計(三款電路設計原理圖詳解) 發表於 2018-01-25 16:38:37