![]() |
發布時間: 2024-5-20 21:53
正文摘要:新手求助:有兩種流水燈形式,想加兩個按鍵切換流水燈模式,按鍵程序搞半天也沒整明白,請高人指點,謝謝!按鍵1執行 void disp0() 按鍵2執行 void disp1() 請大佬們幫幫忙,萬分感謝! 單片機源程序如下: #incl ... |
xiaobendan001 發表于 2024-5-21 09:25 謝謝! |
cheney03 發表于 2024-5-21 08:58 謝謝!我弄一下試試。 |
LaoYuTou 發表于 2024-5-21 08:18 謝謝!剛開始弄,研究一下 |
if(按鍵1)disp0(); if(按鍵2)disp1(); |
先定義兩個按鍵參數sbit k1=P1^6; sbit k2=P1^7; 主函數: if(k1==0) //檢測按鍵K1是否按下{delay(1000); //消除抖動 一般大約10ms if(k1==0) //再次判斷按鍵是否按下{disp0(); //模式1}while(!k1); //檢測按鍵1是否松開 if(k2==0) //檢測按鍵K2是否按下{delay(1000); //消除抖動 一般大約10ms if(k2==0)//再次判斷按鍵是否按下{disp1(); //模式2}while(!k2); //檢測按鍵2是否松開 |
定義按鍵端口 sbit key1 = P1^6; sbit key2 = P1^7; 在主循環中while(1)中改為 { if(!key1) {//可以考慮消抖,仿真中可不用。 disp0(); while(!key1);//等待按鍵釋放 } if(!key2) { disp1(); while(!key2);//等待按鍵釋放 } } 這種方法不是特別推薦,可以額外定義一邊量作為狀態初始為0,按鍵按下后狀態改變(1或2),根據狀態調用對應函數,調用完后變量清零。這相當于只調用一次的任務。 |