大侠 大侠!!! C51单片机 单个按键 短按抬起和长按两功能程序怎么写,弄了好久都没弄出来 5
短按松手后开LED1,下次短按键松手后关闭LED1长按键2S无松手开LED2,如无松手继续按键超过4S,LED2的状态不变.下次长按键2S无松手后关闭LED2.大侠请教:...
短按松手后 开 LED1 ,下次短按键松手后关闭LED1
长按键2S无松手 开 LED2 ,如无松手继续按键超过4S,LED2的状态不变.
下次长按键2S无松手后关闭LED2.
大侠请教: 展开
长按键2S无松手 开 LED2 ,如无松手继续按键超过4S,LED2的状态不变.
下次长按键2S无松手后关闭LED2.
大侠请教: 展开
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)
}
试试看。
{
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)
}
试试看。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
宿兴电子
2024-10-18 广告
2024-10-18 广告
联系我们一、有无震荡源 无源这里的“源”不是指电源,而是指震荡源。也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。 二、价格不同 有源蜂鸣器往比无源蜂鸣器贵,就是因为里面多个震荡...
点击进入详情页
本回答由宿兴电子提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询