總結一下,消抖兩大類方法:
軟體消抖:主要採取當按鍵按下,延時一會,越過訊號不穩定的抖動時間,再次判斷鍵盤是不是按下;
if ( !key)
硬體消抖:主要是對抖動時,連續的進行判斷,判斷是否有「gap」,就是「間隙」;
但是這樣有乙個問題,就是可能延時判斷時,抖動,正好滿足,你的驗證方法,比如說,剛才以下方法判斷3位的,有可能抖動恰好滿足;
所以硬體更好的方法,應該是用乙個計數器,對松鍵和按鍵的抖動脈衝計數,然後分析按鍵的習慣,設定乙個閾值,通過這個閾值就可以判斷出是否是真的抖動。
方法一:rs觸發器
這是用multisim做的乙個,原理是,r,s端都用電阻上拉,開關打到a端,相當與輸入時低電平,打向b的時候,產生乙個低電平抖動,因為是與非門的rs觸發器,r,s全是1的時候,輸出保持不變,所以q立馬就變成1,之後就保持不變了。b到a,同樣的道理,遇到第乙個抖動,r的輸入就立馬變成0,所以q也就為0;
方法二:d觸發器
需要幾位消抖,就用幾個d觸發器,以4位為例子:
實際上就是「濾波」的效果,抖動,肯定有低電平,高電平,分布不均勻,這樣設計相當於,在某段時間內,沒有所謂的gap才可以。
方法三:用狀態轉換圖設計(本實驗採用的方法)
實際上就是極短時間內判斷了三個是不是同時是高電平
非同步訊號的去抖電路及同步電路
如果電路有非同步訊號,就可能使電路進入亞穩態,因為非同步訊號可能處於時鐘訊號建立時間以內 即是輸出不確定的狀態。非同步訊號如果是外部的機械輸入,比如鍵盤等,輸入訊號就會產生機械性地振盪,因此首先需要對此類非同步訊號加乙個去抖電路。可採用如下的基於nand鎖存器的開關去抖電路 假設開關從上撥到下,當開...
FPGA設計 按鍵去抖
按鍵的去抖,是指按鍵在閉合或者鬆開的瞬間伴隨一連串的抖動,這樣的抖動將直接影響設計系統的穩定性,降低相應的靈敏度。因此,必須對抖動進行處理,及消除抖動的影響。在實際工程中有很多消抖的方案,如rs觸發器消抖,電容充放電消抖,軟體消抖。本章利用fpga內部來設計消抖,即採用軟體消抖。按鍵的機械特性,決定...
JS的去抖 節流
在事件被觸發n秒後再執行 如果在這n秒內又被觸發,則重新計時。function debounce fn,delay delay 表現 節流 throttle 規定在乙個單位時間內,只能觸發一次函式。如果這個單位時間內觸發多次函式,只有一次生效。function throttle fn,delay l...