久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4514|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

51單片機實現(xiàn)不同按鍵不同功能源程序 按鍵延遲

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:11498 發(fā)表于 2019-6-18 11:35 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
家里的壁掛管線機的一個程序,有2個抽水泵,一個是水位計控制水箱水泵,水位計是SW,有水位1,無水0。另外一個泵就是排水水泵,按鍵按下之后排水開始,然后延時關(guān)閉。加熱也是一樣,按下加熱,延時關(guān)閉,F(xiàn)在的問題是,水位計自動上下水的程序?qū)懥酥,按鍵就會有點延遲,必須要長按才能有反應(yīng),這個是與水位計有水位長期觸發(fā)按鍵有關(guān)。還有就是,按鍵1按下后,馬上再按按鍵2,是沒有反應(yīng)的,必須要按鍵1的程序執(zhí)行完之后再按按鍵2才有反應(yīng)。
想知道怎么樣才能讓按鍵水位各不干擾,按下執(zhí)行程序再按別的按鍵能同時執(zhí)行別的程序。

單片機源程序如下:
  1. void main()
  2. {
  3.         while(1)
  4.         {
  5.                         if(sw==0)                         //sw水位開關(guān) 無水位1秒后抽水
  6.                         {                                         
  7.                                 delay(1000);                 
  8.                                 if(sw==0)                 
  9.                                 {
  10.                                         sb1=1;                  //泵1運行
  11.                                 }
  12.                         }

  13.                         if(sw==1)                         //有水位1秒后關(guān)泵
  14.                         {
  15.                                 delay(1000);                 
  16.                                 if(sw==1)                 
  17.                                 {
  18.                                         sb1=0;                  //泵1停止
  19.                                 }
  20.                         }


  21.                         if(aj1==0)                         //按鍵1
  22.                         {
  23.                                 delay(10);                 
  24.                                 if(aj1==0)                 
  25.                                 {
  26.                                         while(!aj1);//等待按鍵釋放
  27.                                         sb2=1;                  //泵2運行
  28.                                         delay(5000);
  29.                                         sb2=0;                  //泵2停止
  30.                                 }
  31.                         }

  32.                         if(aj2==0)                         //按鍵2
  33.                         {
  34.                                 delay(10);                 
  35.                                 if(aj2==0)                 
  36.                                 {
  37.                                         while(!aj2);//等待按鍵釋放
  38.                                         jr=1;                  //加熱運行
  39.                                         delay(15000);
  40.                                         jr=0;                  //加熱停止
  41.                                                 
  42.                                 }
  43.                         }

  44.         }

  45. }
復(fù)制代碼



評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:66287 發(fā)表于 2019-6-25 08:58 | 只看該作者
在定時器中斷中檢測按鍵,再置位相應(yīng)標志,再在主程序中執(zhí)行相應(yīng)動作即可。
萬不可在程序中出現(xiàn)類似delay(1000);  之類的東西!
回復(fù)

使用道具 舉報

板凳
ID:565305 發(fā)表于 2019-6-25 10:18 | 只看該作者
多浪費個變量做按住的計時,main 循環(huán)中要加 delay_ms 以劃分時間片

按住計時大致寫法是:( 假設(shè) 按住時 key=0 ,松手時 key=1 。 key_count 是 s8 類型,初值為 0)

有了 key_count 就可以玩不少花樣,比方說去抖、判斷按下瞬間、判斷松開瞬間。而且 main 程序邏輯并未阻塞,只是靠 count 做計數(shù),下述代碼對并發(fā)性事務(wù)毫無阻塞。
if( key==0)
{  if(key_count==0) do_press_key(); if(key_count<100) key_count++; }
else
{  if(key_count>0) do_release_key();  key_count=0; }

(補充:例如去抖需要8毫秒,并且 main 循環(huán)每 ms 呼叫上述代碼,就需要修改為下述形式

    if( key==0)
    {  if(key_count==8) do_press_key(); if(key_count<100) key_count++; }
    else
    {  if(key_count>8) do_release_key();  key_count=0; }


回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久五月婷 | 国产精品视频在线观看 | 国产精品久久久久久52avav | 精品国产乱码久久久久久中文 | 喷水毛片 | 激情a| 国产色在线| 精品九九九 | 国产视频2021| 在线免费观看视频黄 | 午夜二区| 99视频在线| 国产小视频在线 | 91免费在线 | 亚洲a人 | 久久精品一级 | 激情久久网| 国产免费一区二区三区 | 中文字幕欧美一区 | 羞羞视频在线免费 | 欧美精品一区二区三区一线天视频 | 国产在线精品一区二区 | 国产精品a久久久久 | 欧美高清视频一区 | 一级做a爰片性色毛片16 | 看片91 | 国产99久久精品一区二区300 | 黄色大片在线视频 | 免费在线观看一区二区三区 | 国产综合久久久久久鬼色 | 欧美激情欧美激情在线五月 | 日本一二三区电影 | 亚洲一区二区三区免费在线观看 | 国产精品久久久久久久久久99 | 女女百合av大片一区二区三区九县 | www国产成人 | 视频一区二区在线观看 | 国产激情在线观看视频 | 国产亚洲精品一区二区三区 | 成人av片在线观看 | 视频一区二区三区中文字幕 |