C51 短按抬起开关 和 长按开关 程序怎么写,求教

短按松手后 开 LED1 ,下次短按键松手后关闭LED1
长按键2S无松手 开 LED2 ,如无松手继续按键超过4S,LED2的状态不变.
下次长按键2S无松手后关闭LED2

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()。

温馨提示:内容为网友见解,仅供参考
无其他回答

C51 短按抬起开关 和 长按开关 程序怎么写,求教
led1;\/\/即如果短时间过后,按键松开,记为短按。取反led1 else\/\/若短时间内还按着 { delays(2);\/\/过2s再次检测 if(key==1)\/\/若此时key还为1,这说明为长按 { led2=!led2;\/\/长按,取反led2 while(key);\/\/检测完长按后,就用循环等待按键松开。 \/\/这样你...

C51单片机 单个按键 短按抬起和长按两功能程序怎么写
按键按下后启动定时器!在2个定时器中断内分别控制两个LED灯的开关!

基于MCU控制的无极交流调光控制器设计
对两个调光按键的处理有两种方式:一种是每次按键,无论时间的长短,都只调整一个台阶(亮或暗);另一种是随按键时间的不同,调整方法不同:短按只调整一个台阶,长按可以连续调整。如前面所述,由于本设计中的台阶数为95(N=95),如果使用前一种方式,操作太麻烦,所以用后者较为合理。2 各单元...

相似回答