【蓝桥杯】独立按键控制LED灯及消抖

按键在闭合或断开时,触点会有抖动现象,大部分是通过软件处理,也可用硬件处理。

#include

unsigned char num=0;
unsigned char flag=0; //标记值
bit S7=0,S6=0,S5=0,S4=0; //bit 的取值范围为1~10

void delayms(int ms); //定义时间函数
void keyscan(); //定义按键函数

//主函数

void main()
{
P2=0XA0;P0=0X00;P2=0X80;P0=0XFF; //初始化程序,关闭蜂鸣器
while(1)
{
keyscan(); //调用按键函数

	if(S7= =1)
	{
		S7=0;
		P0=~(1<

}

//定义按键函数

void keyscan()
{
if(P30= =0)
{
delayms(5);
if(P30= =0)
{
S7=1;
}
while(!P30);
}
else if(P31= =0)
{
delayms(5);
if(P31= =0)
{
S6=1;
}
while(!P31);
}
else if(P32= =0)
{
delayms(5);
if(P32= =0)
{
S5=1;
}
while(!P32);
}
else if(P33= =0)
{
delayms(5);
if(P33= =0)
{
S4=1;
}
while(!P33);
}
}

//延时函数

void delayms(int ms)
{
int i,j;
for(i=ms;i>0;i–)
for(j=845;j>0;j–);
}

你可能感兴趣的:(小白)