单键开关? #include "reg51.h" /*----------此程序仅作演示用,按键操作部分精简,并不十分严谨。-------------*/ int n=0; //按键去抖动状态变量 sbit key=P0^0; //定义按键开关输入gpio sbit led=P0^1; //定义输出gpio,此处以led为例 void main(void) //主函数 { while(1) //主函数循环 { if(key==0)n++; //按键按下,低电平有效 if(n>=100)n=100; //当100个循环周期检测都为按下状态。则保持n值 if(n==100&&key==1) //当按键抬起时,执行操作,并恢复初始态。 { led=~led; //输出状态为当前状态取反。如果现在是0,则输出改变为1,下一次则是0;如此循环。 n=0; //清除状态记录。 } } } |
什么是使合两次灯灭灯亮?是按键动一次灯亮,再动一次灯灭吗? |