void main()
{
while(1) {
if(!KEY) { //检测
DelayMS(5); //延时消抖
if(!KEY) { //确认按下
i = 0; flag = 1;
while(!KEY) { //等待按键松开
DelayMS(5); //5ms
i++;
if((i > 400) && flag) {LED2 = ~LED2; flag = 0;} //2s
if(i > 800) break; //4s
}
if(i <= 400) LED1 = ~LED1; //《短按》则 LED1 取反
while(!KEY);
}
}//if(!KEY) //检测
}//while(1)
}
试试看。