独立按键介绍
轻触开关是一种电子开关,使用时,轻轻按开关按钮就可使开关接通,当松开手时,开关断开。如下图:
“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集成环境图