單片機獨立按鍵學習

獨立按鍵介紹

輕觸開關是一種電子開關,使用時,輕輕按開關按鈕就可使開關接通,當鬆開手時,開關斷開。如下圖:

在這裏插入圖片描述
在這裏插入圖片描述
“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集成環境圖
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章