按鍵的介紹:
輕觸開關(guān)是一種電子開關(guān),使用時.輕輕按開關(guān)按鈕就可使開關(guān)接通,當(dāng)松開手時.開關(guān)斷開。我們使用的開關(guān)如下圖:

在一個理想的狀態(tài)下,我們按下按鍵就會使得電位狀態(tài)從低電平編程高電平,高電平編程低電平。
事實(shí)上,按鍵在按下和松開的過程中,會存在一個處于中間值的過程,這個時候會存在一個抖動現(xiàn)象。

為了消除按鍵的抖動現(xiàn)象,我們需要對這一電路進(jìn)行一個修改。
對于消抖,我們可以通過兩個途徑進(jìn)行消抖
1、硬件消抖:
采用一個RC延時充放電的電路進(jìn)行消抖。
工作原理:在RC消抖電路中,電阻起到限制電流流動的作用,電容則用來儲存電荷。當(dāng)輸入信號發(fā)生變化時,電容會通過電阻進(jìn)行充放電,從而實(shí)現(xiàn)對信號的平滑處理。通過合理選擇電阻和電容的數(shù)值,可以達(dá)到最佳的消抖效果。
RC消抖電路的工作方式可以分為兩個階段:充電階段和放電階段。
1,充電階段:當(dāng)輸入信號由低電平變?yōu)楦唠娖綍r,電容開始充電。由于電容的充電時間常數(shù)( t=RC),充電過程并不是瞬間完成的,而是需要一定的時間。在這個過程中,電容會逐漸儲存電荷,輸出信號也會逐漸穩(wěn)定。當(dāng)電容充滿電荷后,輸出信號達(dá)到穩(wěn)定狀態(tài)。
2.放電階段:當(dāng)輸入信號由高電平變?yōu)榈碗娖綍r,電容開始放電。放電過程同樣需要一定的時間,電容會逐漸釋放電荷。在這個過程中,輸出信號會逐漸下降,直到達(dá)到低電平。放電過程的時間也由RC電路的時間常數(shù)決定。

2、軟件消抖:
當(dāng)按鍵被按下時,通過延時時間來判斷按鍵是否按下(即二次確認(rèn)按鍵的狀態(tài))來進(jìn)行消抖

程序編寫:
通過一個按鍵來控制一個燈的啟停狀態(tài)
#include
typedef unsigned char u8;
typedef unsigned int u16;
sbit led=P2^0;
sbit K1=P3^1;
void delay(u16 i) //延時函數(shù)
{
while(i--);
}
void key()
{
if(K1==0)
{
delay(1000); //消抖
if(K1==0)
{
led=~led;
}
while(!K1); //判斷按鍵是否松開
}
}
void main()
{
while(1)
{
key();
}
}
現(xiàn)象展示:
1、當(dāng)我們按下按鍵時,那么LED燈亮

2、當(dāng)我們再次按下按鍵時,LED燈熄滅

-
RC
+關(guān)注
關(guān)注
0文章
239瀏覽量
50468 -
電子開關(guān)
+關(guān)注
關(guān)注
5文章
134瀏覽量
33546 -
按鍵
+關(guān)注
關(guān)注
4文章
229瀏覽量
58422 -
消抖電路
+關(guān)注
關(guān)注
0文章
7瀏覽量
8706 -
輕觸開關(guān)
+關(guān)注
關(guān)注
0文章
81瀏覽量
3040
發(fā)布評論請先 登錄
關(guān)于按鍵抖動問題的解決
消除按鍵抖動的兩種方法分享
如何通過軟件編程實(shí)現(xiàn)消除鍵盤的抖動
運(yùn)用外部中斷函數(shù)消除按鍵抖動
按鍵彈跳消除模塊的原理及應(yīng)用
按鍵彈跳消除模塊的程序設(shè)計與應(yīng)用
STM32F407 按鍵抖動 延時消抖
開關(guān)抖動及消除設(shè)計
按鍵抖動消除verilog設(shè)計

如何消除按鍵的抖動現(xiàn)象
評論