1樓:匿名使用者
主函式。void main (void)
unsigned char num=0;
key_add=1; /按鍵輸入埠電平。
置高。key_dec=1;
while (1) /主迴圈。
if(!key_add) /如果檢測到低電平,說明按鍵按下。
delayms(10); 延時去抖,一般10-20msif(!key_add) /再次確認按鍵是否按下,沒有按下則退出。
while(!key_add);/如果確認按下按鍵等待按鍵釋放,沒有釋放則一直等待。
if(num<9) /加操作。
num++;
if(!key_dec) /如果檢測到低電平,說明按鍵按下。
delayms(10); 延時去抖,一般10-20msif(!key_dec) /再次確認按鍵是否按下,沒有按下則退出。
while(!key_dec);/如果確認按下按鍵等待按鍵釋放,沒有釋放則一直等待。
if(num>0) /減操作。
num--;
主迴圈中新增其他需要一直工作的程式。
2樓:網友
一種簡單的方法是,把這個按鍵放到微控制器的一箇中斷口上(下降沿觸發),然後建乙個變數,放到該中斷函式中,進行加1運算。
3樓:匿名使用者
寫程式的時候不加鬆手檢測!
51微控制器 獨立按鍵按下去 再放開才算按鍵一次 計算按鍵次數 程式應該怎麼寫?
4樓:禿賊
你好!因為按鍵操作涉及暫存器配置和按鍵防抖,因此寫了你也不一定用得上。而且你這個的邏輯比較簡單,建議自己寫。主要注意幾個地方就可以了:
按鍵i/o口電平的配置:要結合硬體電路確認按鍵是低電平觸發還是高電平觸發。在程式中設定正確的i/o口電平。
i/o口的輸入輸出狀態的配置:i/o口作為按鍵輸入必須是準雙向模式或輸入模式,這個不同微控制器配置暫存器方式不同但大同小異。
按鍵防抖:在按鍵按下時有時會有短暫的接觸不良,因此會多次判斷按鍵按下和斷開,因此一般在按鍵按下或斷開時增加幾十毫秒的防抖處理,具體就是連續多個迴圈判斷按鍵是否是乙個狀態,如果狀態不變,再進行下一步處理。
微控制器點陣怎麼實現左移右移,謝謝
include unsigned char code tab 8 列選通控制,0有效 unsigned char tab1 4 8 6 7 8 9unsigned char tt 0 unsigned char i,jk i定義列,j定義行,k定義移動變數 void delay void main ...
微控制器智慧小車轉向如何控制,微控制器和怎麼樣實現對智慧小車的控制
常見的是差動轉向,就是一個輪子比另外一個輪子轉速快或者慢。詳情參考中國電子diy之家有關小車製作例項 那要bai看你是用舵機變向還是用差動變du向 使兩zhi個輪子的速度不同 dao。舵機變向適用於四 版輪小車 前面兩權輪舵機控制,後面兩輪由同一電機帶動 差動驅動適合三輪小車 前面一萬向輪,後兩輪各...
怎麼用RS232實現微控制器多機通訊
rs232無法實現多機通訊,你可以用max485晶片設計485通訊就能實現多機通訊了。232的硬體標準無法實現多機通訊,你可以檢視相關檔案,用485 有 連線 bai 多個 rs232 的 模組 請看du 武漢鴻偉光電zhi e232h4 4路rs 232高速隔離集線轉換器特點dao 實現一個串內口...