设置定时器(建设100ms),在设置一个变量x,(100ms自加1)
假设 x每隔100ms加1
y是按键状态(为1表示按下,为0 表示未按)
z记录按键状态的(初始值0)
b 记录长安 a记录短按
eg:
if(!z)
{
if(y)
{
a=1;
z=1
}
}
else if(x>10)// 1s
{
b=1
}
if(key==1){
delay(10)//小延时防抖
if(key==1)
{
delay(200)//短长分界线
if(key==0)
led1=!led1//即如果短时间过后,按键松开,记为短按。取反led1
else//若短时间内还按着
{
delays(2);//过2s再次检测
if(key==1)//若此时key还为1,这说明为长按
{
led2=!led2//长按,取反led2
while(key)//检测完长按后,就用循环等待按键松开。
//这样你按键按多久,led2的状态都不会变
}
}
}
}
这里设置按键key,按下为=1,松开为=0。这需要你按此接电路。
你还需要一个延时很小的函数delay(),和延时一秒的延时函数delays()。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)