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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3882|回復: 4
打印 上一主題 下一主題
收起左側

STC15F2K60S2單片機調試超聲波HC-SR04測距經驗

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


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

評分

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

查看全部評分

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久久久久国产 | 久久久新视频 | 伊人网站在线观看 | 国家一级黄色片 | 色综合久 | 日本不卡免费新一二三区 | av黄色网 | 欧美伦理一区 | 99久久99| 中文字幕一区二区三区四区五区 | 国产日产精品一区二区三区四区 | 亚洲三区在线 | 亚洲一区二区三区免费在线观看 | 国产精品一区二区三区久久 | 高清成人免费视频 | 伊人伊人 | 拍真实国产伦偷精品 | 午夜电影福利 | 成人毛片在线视频 | 成人免费在线观看 | 成人在线一区二区 | 欧美日韩一区在线 | 99久久婷婷国产综合精品电影 | 青青草视频网站 | 黑人精品xxx一区一二区 | 免费看av大片 | 中文成人在线 | 午夜影院在线免费观看视频 | 久久一二| 国产成人免费视频网站高清观看视频 | 欧美日韩在线精品 | 午夜影院黄 | 午夜一区 | 蜜桃av鲁一鲁一鲁一鲁 | 日韩精品免费一区二区在线观看 | 久久久精品一区二区三区 | 亚洲午夜av久久乱码 | 九九热精品视频在线观看 | 国产精品日日摸夜夜添夜夜av | 欧美精品在线一区二区三区 | 中文字幕人成人 |