单片机独立按键学习

独立按键介绍

轻触开关是一种电子开关,使用时,轻轻按开关按钮就可使开关接通,当松开手时,开关断开。如下图:

在这里插入图片描述
在这里插入图片描述
“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集成环境图
在这里插入图片描述

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