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