51单片机之独立按键

#include "reg52.h"
#include "intrins.h"

typedef unsigned int ui;
typedef unsigned char uc;
//#define led P2  //×¢Ò⣡£¡²»¼Ó";"
//sbit beep=P1^5;
sbit led=P2^0;
sbit k1=P3^1;
void delay(ui i)
{
	while(i--);
}
void keypros()
{
	if(k1==0)
	{
		delay(1000);//10ms
		if(k1==0)
		{
			led=~led;
		}
		while(!k1);
	}
	
}
void main()
{
	led=1;
	while(1)
	{
		keypros();
	}
}


51单片机之独立按键_第1张图片

软件去抖动方法:
1,先设置 IO 口为高电平(由于开发板 IO 都有上拉电阻,所以默认 IO 为高
电平)。
2,读取 IO 口电平确认是否有按键按下。
3,如有 IO 电平为低电平后,延时几个毫秒。
4,再读取该 IO 电平,如果任然为低电平,说明对应按键按下。
5,执行相应按键的程序。
 

你可能感兴趣的:(单片机)