您的当前位置:首页正文

51单片机之独立按键

2024-11-19 来源:个人技术集锦

根据电路也可以知道:

 

当按键按下去的时候,电路导通,此时电路连通,为低电平0;

当松开按键,电路断开,为高电平1。

我们在手动按键的时候,由于机械抖动或是其它一些非人为的因素很有可能会造成误识别,一般手动按下一次键然后接着释放,按键两片金属膜接触的时间大约为50ms 左右,在按下瞬间到稳定的时间为5-10ms,在松开的瞬间到稳定的时间也为5-10ms。

独立键盘程序示例:

#include "reg52.h"
 
typedef unsigned char u8;
typedef unsigned int u16;
 
sbit led = P28; //设置灯的控制IO口
sbit k1  = P33; //设置按键的控制IO口 INT1
	
void delay(u16 i) //延时函数
{
    while(i--);
}	
 
void keyprocess()
{
	if(k1 == 0) //判断按键是否按下
	{
	    delay(1000); //延时消抖
	    if(k1 == 0)  //再次判断按键是否按下
	    {
	        led = 1; //如果按键按下,则灯亮
	    }
	    else
	    {
	        led = 0; //如果按键没有按下,则灯灭
	    }
	
	}
}
 
void main()
{
   led = 0; //初始灯灭
   while(1)
   {
   keyprocess(); //处理按键事件
   }
}

显示全文