獨立按鍵介紹
輕觸開關是一種電子開關,使用時,輕輕按開關按鈕就可使開關接通,當鬆開手時,開關斷開。如下圖:
“1,2”和“3,4”管腳之間距離短,初始不導通,“1,3”和“2,4”管腳之間距離長,初始值導通。
當按鍵按下時,距離短的會變爲導通,距離長的會變爲不導通,所以就可以利用按鍵這一特性來控制其他的事物。
例如管腳1接單片機的一個引腳,管腳2接地。當按鍵被按下時,就會給這個引腳一個低電平。如果不按,單片機的這個引腳默認的是高電平。
按鍵的抖動現象
按鍵在閉合和打開時,觸點會出現抖動現象
具體有兩種消抖方法,硬件消抖和軟件消抖,
硬件消抖是通過充放電延時時間來進行消抖,但成本高,一個按鍵就需要(一個電阻與一個電源),所以一般選擇軟件消抖,軟件消抖時間一般爲10ms。
硬件消抖電路圖
獨立按鍵簡單程序
#include<reg51.h> //定義頭文件
typedef unsigned char uchar; //宏定義
typedef unsigned int uint;
sbit LED=P2^0; //定義引腳
sbit K1=P3^1;
void delay(uchar i) //延時函數 i=1時 延時10us
{
while(i--);
}
void Key() //按鍵處理子函數
{
if(K1==0) //判斷P3.1口是否爲0
{
delay(1000); //消抖
if(K1==0) //再次判斷P3.1口是否已經爲0
{
LED=~LED; //使LED狀態翻轉
}
while(! K1); //鬆開按鍵
}
}
void main() //主函數
{
while(1)
{
Key(); //調用子函數
}
delay(100); //延時
}
proteus集成環境圖