大侠 大侠!!! C51单片机 单个按键 短按抬起和长按两功能程序怎么写,弄了好久都没弄出来

2024-11-05 11:35:25
推荐回答(1个)
回答1:

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)
}

试试看。