⑴ 單片機按鍵去抖動有哪些方法
在按鍵上增加電容去除干擾,在按鍵上串一個電阻也可以解決靜電或者是其他干擾對按鍵造成的干擾。
軟體去抖動也是一種非常常見的去抖動的方法,就是對按鍵進行多次的檢測,每次檢測都被按下,才認為按鍵被按下。軟體去抖動要採用多次採集的方法,中間的間隔可以使用延時或者使用分時的思想來進行去抖動,一般的軟體去抖中都是用分時思想去抖動。
(1)怎麼使51單片機抖動擴展閱讀:
注意事項:
按鍵穩定閉合時間長短是由操作人員決定的,通常都會在100ms以上,刻意快速按的話能達到40-50ms左右,很難再低了。抖動時間是由按鍵的機械特性決定的,一般都會在10ms以內。
為了確保程序對按鍵的一次閉合或者一次斷開只響應一次,必須進行按鍵的消抖處理。當檢測到按鍵狀態變化時,不是立即去響應動作,而是先等待閉合或斷開穩定後再進行處理。
利用電容的充放電特性來對抖動過程中產生的電壓毛刺進行平滑處理,從而實現消抖。但實際應用中,這種方式的效果往往不是很好,而且還增加了成本和電路復雜度,所以實際中使用的並不多。
⑵ 51單片機外部中斷下降沿去抖動。。。。。。
在中斷裡面,關閉中斷,實為敗筆。
因為在本中斷期間,並不可能再發生本中斷。
外部中斷,可選為下降沿觸發,這樣一次下降沿,就只會產生一次中斷。
想使用外部中斷,就是要利用它的即時反應的特點,這就要求輸入的信號不要抖動。
為了避免在瞬間產生多次下降沿,應該在外部電路中加一個消抖電路。
否則,本來是希望發生一次中斷,就會產生多次響應。
在中斷函數中,也可以加上延時,進行消抖,就像加上delay(10000);,
但是,這樣就降低了中斷的靈敏度,延時期間再真的有中斷,也不會響應。
實際上,這就是不倫不類的四不像程序。
⑶ AT89C51單片機:簡述在使用普通按鍵的時候,為什麼要進行去抖動處理,怎麼處理
從機械按鍵的結構來看,在機械按鍵接觸的瞬間,會出現接觸或者是沒有接觸的情況。在機械按鍵老化的時候,或者在其他干擾的情況下都會出現按鍵被誤觸發的情況。
去除機械按鍵這種抖動的措施有硬體方法,還有軟體方法,硬體方法就是在按鍵上增加電容去除干擾。在按鍵上串一個電阻也可以解決靜電或者是其他干擾對按鍵造成的干擾。軟體去抖動也是一種非常常見的去抖動的方法,就是對按鍵進行多次的檢測,每次檢測都被按下才認為按鍵被按下。
(3)怎麼使51單片機抖動擴展閱讀:
單片機使用注意事項:
室外使用的單片機系統或電源線,信號線從室外架空引入室內的要考慮系統的防雷擊問題,氣體放電管TVS,這類元器件要和抗共模和抗差模干擾的電感配合使用以提高抗干擾效果。
典型的信號隔離是光電隔離。屏蔽則是用來隔離空間輻射的,對雜訊特別大的部件,如開關電源,用金屬盒罩起來。對特別怕干擾的模擬電路,如高靈敏度的弱信號放大電路可屏蔽起來。而重要的是金屬屏蔽本身必須接真正的地。
⑷ C51單片機按鍵為什麼會產生抖動
由於單片機的工作頻率比較高,在按鍵按下去的過程中和按鍵松開的過程中,都有可能產生連續的電平脈沖,從而使其I/O口發生連續的電平變化,為了防止程序誤動作,就用軟體來實現消抖動的動作。
⑸ 51單片機,用按鍵實現外部中斷,軟體如何去抖
外部中斷的一般都是採用延時程序,而且延時程序一般是利用定時器做10~15ms的延時去抖,來實現的,而且時間不是特別精確,單片機書上和有關資料上應該都有我寫一個參考一下:
void DelayMS(unsigned char a)
{int i;
for(;a>0;a--)
for(i=110;i>0;i--);
}延時約為a毫秒,不過不夠准確,可以通過keil軟體或者匯編來確立更精確的延時時間!
在中斷執行前先做判斷:用if語句看看引腳的電平,如果沒有跳變,那麼再延時判斷,如果還沒有跳變那麼再延時,如此重復;
等到電平跳變了,延時看看是不是電平收其他非操作性因素引起的,比如說電源抖動,延時之後再判斷如果的確是跳變了,可以進行中斷後的操作了!
⑹ 51單片機用獨立按鍵進入中斷怎麼去抖動
你這是模擬,還是實物,處理方法是不同的。
外部中斷,還是用下降沿觸發好處理,IT0=1; //下降沿觸發
電平觸發,處理不好,就是去抖動也沒用,效果是一樣的抖動。
中斷按鍵,加delay也不好處理。
最簡單的方法是硬體上加去抖動電路。
⑺ 51單片機定時器消抖的問題。高手進
ms++;
if(key==0)key_num++;
if(ms==15) //15秒刷新一次
{
if(key_num>10) //15秒鍾如果低電平持續時間大於10秒就認為按鍵按下,而不是抖動
key_statue=1; //按鍵標識位置1
ms=0;
key_num=0;
}
這部分有問題,改為:
if(key==0)
{
key_num++;
}
else
{
key_num=0;
}
if(key_num>10) //如果低電平持續時間大於10ms就認為按鍵按下,而不是抖動
{
key_statue=1; //按鍵標識位置1
}
⑻ 單片機中什麼是抖動如何消除抖動
單片機中抖動是按鍵所用的開關都是機械彈性開關,當機械觸點斷開、閉合時,由於機械觸點的彈性作用,一個按鍵開關在閉合時不會馬上就穩定的接通,在斷開時也不會一下子徹底斷開,而是在閉合和斷開的瞬間伴隨了一連串的抖動。利用電容的充放電特性來對抖動過程中產生的電壓毛刺進行平滑處理,從而實現消抖。
按鍵穩定閉合時間長短是由操作人員決定的,通常都會在100ms以上,刻意快速按的話能達到40-50ms左右,很難再低了。
抖動時間是由按鍵的機械特性決定的,一般都會在10ms以內,為了確保程序對按鍵的一次閉合或者一次斷開只響應一次,必須進行按鍵的消抖處理。
當檢測到按鍵狀態變化時,不是立即去響應動作,而是先等待閉合或斷開穩定後再進行處理。按鍵消抖可分為硬體消抖和軟體消抖。
(8)怎麼使51單片機抖動擴展閱讀
單片機在電子技術中的開發,主要包括CPU開發、程序開發、 存儲器開發、計算機開發及C語言程序開發,同時得到開發能夠保證單片機在十分復雜的計算機與控制環境中可以正常有序的進行,這就需要相關人員採取一定的措施:
(1)CPU開發。開發單片機中的CPU匯流排寬度,能夠有效完善單片機信息處理功能緩慢的問題,提高信息處理效率與速度,開發改進中央處理器的實際結構,能夠做到同時運行2-3個CPU,從而大大提高單片機的整體性能。
(2)程序開發。嵌入式系統的合理應用得到了大力推廣,對程序進行開發時要求能夠自動執行各種指令,這樣可以快速准確地採集外部數據,提高單片機的應用效率。
(3)存儲器開發。單片機的發展應著眼於內存,加強對基於傳統內存讀寫功能的新內存的探索,使其既能實現靜態讀寫又能實現動態讀寫,從而顯著提高存儲性能。
(4)計算機開發。進一步優化和開發單機片應激即分析,並應用計算機系統,通過連接通信數據,實現數據傳遞。
⑼ 在線採納51單片機按鍵去抖的問題
我感覺多半是你得到的信息有誤,應該沒有這個技術。
關於掃描,矩陣鍵盤需要用掃描的方式去監控,但是處理抖動仍然靠延時,延時至少是當下最有效的辦法。
抖動的實質是輸入信號有高頻雜波(相對於按鍵操作頻率),目前只有濾波技術能消掉高頻雜波。延時算一種數字濾波技術,當然還有硬體濾波技術,最簡單的就是復位按鍵電路,用RC實現的濾波電路消掉了抖動。所以可以這么說,沒有濾波功能的電路或者鍵處理程序是無法消掉鍵盤延遲抖動的。
掃描本身不是一個濾波技術,盡管加了延遲的矩陣鍵盤掃描程序可以處理掉鍵盤抖動,但是起作用的不是掃描,而是延遲,因此不能叫做掃描去抖動。
⑽ 幫我修改個51單片機機消除抖動C語言程序;
你好!在key函數內加上延時就能防止抖動,num 是按鍵返回的鍵值