<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

        PIC18F4520單片機超聲波測距主要部分程序

        作者:huqin   來源:本站原創   點擊數:  更新時間:2014年04月03日   【字體:
        測試環境MPLAB IDE v8.73a
        單片機型號PIC18F4520
        所需器件超聲波模塊
        電路連接圖如下:


        超聲波測距子函數:
        unsigned int chaosheng()

         unsigned int temp1,temp2;//定義兩個無符號整型的變量用于存儲距離值
         INPUT = 1;
         delay(50);//延時
         INPUT = 0;
         while(!OUTPUT);//當超聲波的輸出引腳輸出高電平時,打開定時器0,開始計時
         TMR1ON = 1;
         while(OUTPUT);//當超聲波的輸出引腳輸出低電平時,關閉定時器0,停止計時
         TMR1ON = 0;
         //計算超聲波測出的距離
         temp1 = TMR1L;//將TMR1的低8位賦值給temp1變量
         temp2 = TMR1H;//將TMR1的高8位賦值給temp2變量
         temp2 = (temp2 << 8) + temp1;//temp2左移8位,加上temp1
         TMR1H = 0;//TMR1的高8位清零,為下一次測距做準備
         TMR1L = 0;//TMR1的低8位清零,為下一次測距做準備
         
         //距離 = 時間/2 * 速度
         //距離:distance;時間:temp2/2單位為μs;速度:340m/s
         //這里注意下單位,需要進行換算讓最終距離的單位為cm/s
         distance = temp2 * 1.7/100;//有一定的誤差,可以軟件填補誤差,根據實測值,在右側的表達式上加減一誤差數值。
           
         return distance;//返回超聲波測得的距離值,這里的distance為全局變量,可以在其他程序中用到,例如液晶顯示部分,可以作為實參傳遞給其對應程序,用于顯示。
         
        }

        最后:很欣賞Google的面試題:用3句話向老太太講清楚什么是數據庫。喬布斯說:“最好的東西就是關注簡單”,因為簡單的東西比復雜的東西更難做到。
        關閉窗口

        相關文章

        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮