從硬體電路和軟體方面進行按鍵消抖

2021-10-02 12:34:49 字數 674 閱讀 2220

什麼是按鍵抖動及按鍵抖動產生的原因?

最近在專案中用到了機械彈性開關,這種開關在按下時候不會馬上就有穩定的接通,在彈開時候也不會馬上斷開,在按下和彈開的瞬間會產生一系列抖動。而我專案中stm32晶元是通過中斷對按鍵進行判斷的,當晶元檢測到上公升沿時認為按鍵按下一次,因為存在開關抖動,所以一次按鍵操作會被誤認為多次,因此需要對按鍵進行消抖處理。抖動狀態圖如下所示:

抖動時間一般在10ms以內,根據這個時間在專案中從硬體和軟體兩個方面進行消抖處理。

硬體消抖

方式:在電路中併聯乙個電容,電容容量為0.1uf即可。

原理:利用電容兩端的電壓不能突變的特性,將其併聯在機械觸點兩端,消除接觸抖動產生的毛刺電壓,並且電容需要一定的充放電時間,充放電時間大於抖動時間,以此實現硬體消抖。

軟體消抖

當檢測到按鍵狀態變化後,先等待乙個 10ms(抖動時間) 左右的延時時間,讓抖動消失後再進行一次按鍵狀態檢測,如果與剛才檢測到的狀態相同,認為按鍵已經按下。

所謂「軟體」和「硬體」

當你做關於硬體的驅動開發時,你一定會用到很多操作硬體的介面函式,如通過對埠的操作可以對硬碟進行讀寫操作 系統提供的中斷也可以在顯示裝置上顯示出一些字元和圖形.等等 作為軟體工程師,我們都知道,高階語言編寫的程式最後編譯後的binary都是0,1,1,0等組成的二進位制檔案。那麼軟體編譯後的 軟體 概...

硬體斷點和軟體斷點

硬體斷點和軟體斷點 在嵌入式開發 經常用到 jtag 器。jtag 器可以滿足嵌入式程式除錯的基本要求 斷點設定 單步除錯 記憶體編輯 變數 暫存器觀測等。而斷點設定是 jtag 器最基本的除錯功能。使用者需要系統在設定斷點處停下來後再進行除錯。斷點根據原理和用途不同又分為幾個不同的種類。斷點可分為...

mysql資料庫查詢優化,該從哪幾個方面進行優化?

當mysql資料庫中資料越來越多的時候,或許我們會發現查詢的效率越來越低了,可能低到令人髮指的地步,僅僅查詢幾條資料就要要十幾秒甚至幾十秒鐘,這是十分致命的,如果使用者訪問你的 十幾秒過去了資料都載入不出來,那麼造成的使用者流失是不可想象的。於是乎,我們就要分析是什麼造成了資料庫查詢效率低下。一般來...