亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4448|回復: 4
打印 上一主題 下一主題
收起左側(cè)

STC15F2K60S2單片機調(diào)試超聲波HC-SR04測距經(jīng)驗

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:235200 發(fā)表于 2019-8-5 22:27 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
   經(jīng)過一天的調(diào)試,終于把STC15F2K60S2單片機測量超聲波HC-SR04的程序搞定,主要存在問題是:
  1、單片機時鐘設置為22.1184MHz,而且采取1T模式運行時,觸發(fā)信號維持10us以上時間要采用延時函數(shù) Delay_us(250)并一定達到10us以上。
  2、等待回聲接收的引腳echo要開啟接收,即echo=1;
  3、觸發(fā)信號發(fā)出后不能馬上開啟計數(shù)器計數(shù),一定要等到有回聲信號時(echo被置為高)才開啟,為了防止回聲信號一直不出現(xiàn),增加超時退出。
  4、測量時間(echo維持高電平時間)也增加超時退出,否則程序出現(xiàn)死機。
  5、禁止定時計數(shù)后要軟件清除一次中斷標志,因是檢測到echo回聲停止,此時不一定出現(xiàn)中斷(默認中斷清除)
  6、為保證測量精度,TH1TL1中的計數(shù)值要減去初值并除以22,因計數(shù)22次為1us。
具體子函數(shù)如下:
/*------------------------------------------------
     超聲波模塊觸發(fā)信號
------------------------------------------------*/
void trigger()
{
    trig=0;
          NOP(21);                             //延時  
    trig=1;
    Delay_us(250);                       //至少10us高電平
          trig=0;
}


/*------------------------------------------------
      超聲波模塊距離測試函數(shù)
------------------------------------------------*/
void measuring()      //晶振22.1184MHz
{  
           uint Return_time;                   //超聲波返回時間
    uint Wait_time;
          TL1 = 0x33;                                      //設置定時初值         2ms定時
          TH1 = 0x53;                                      //設置定時初值
          echo=1;                             //等待回聲(開啟輸入)
          trig=1;                             //初始狀態(tài)
          Ping_count=0;                       //時間計數(shù)初值
          trigger();                          //觸發(fā)
          Wait_time=0;
          while ((!echo)&(Wait_time++<10000)); //觸發(fā)后等待echo出現(xiàn)高電平或超時不出現(xiàn)高電平
    TR1 = 1;                            //啟動定時計數(shù)器T1
          Wait_time=0;
    while((echo)&(Wait_time++<10000));  //等待echo=0或超時不出現(xiàn)低電平
    TR1 = 0;                             //停止計數(shù)
          TF1 = 0;                             //因不是響應中斷停止,故軟件清除
    Return_time = (TH1<< 8) + TL1;
    Return_time = (Return_time - 0x5333)/22;     //多計時us部分    計數(shù)22次為1us
    Return_time = 2000*Ping_count + Return_time; //計算總時間,單位是微秒
    distance = 34.0*Return_time/200;             //計算距離為mm:(34毫米*時間/200)
}

評分

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

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:586048 發(fā)表于 2019-8-5 23:16 | 只看該作者
試試看,最近也在調(diào)試超聲波,隨便問一下樓主精度怎么樣
回復

使用道具 舉報

板凳
ID:235200 發(fā)表于 2019-8-6 22:37 | 只看該作者
誤差2mm
回復

使用道具 舉報

地板
ID:438451 發(fā)表于 2019-11-8 20:34 | 只看該作者
樓主有沒有具體的例程啊
回復

使用道具 舉報

5#
ID:669104 發(fā)表于 2019-12-20 22:14 來自觸屏版 | 只看該作者
能具體講講怎么用keil調(diào)試的嗎
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表