![]() |
單鍵開關? #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; //清除狀態記錄。 } } } |
什么是使合兩次燈滅燈亮?是按鍵動一次燈亮,再動一次燈滅嗎? |