標題: 超聲波測距hc-sr04 [打印本頁]

作者: 山本山    時間: 2020-4-1 15:10
標題: 超聲波測距hc-sr04
#include "common.h"
#include "HC-SR04.h"
#include "timer.h"


typedef unsigned int u16;          //對數(shù)據(jù)類型進行聲明定義
typedef unsigned char u8;



unsigned long S = 0;                //距離緩存變量
unsigned long time = 0;                //時間緩存變量

//函數(shù)聲明
void count(void);                        //計算距離

  sbit LED1=P3^0;
   sbit LED2=P3^2;

   void delay(u16 i)
{
        while(i--);       
}

/* 主函數(shù) */
void main(void)
{
        InitTimer0();                //定時器0初始化

        while(1)
        {
                count();                //測距

                if(S>=10 && S<=40)                //如果在10CM~40CM范圍,led1動作
                {
                LED1=1;
                LED2=0;
                delay(50000);
               
                }
                else                                                //如果超出10CM~40CM范圍,led2動作
        {LED1=0;
          LED2=1;
       
                delay(50000); }
        }
}
/* 計算測距 */
void count(void)
{
        start_ranging();        //啟動一次超聲波
        while(!Echo);                //等待超聲波模塊輸出IO拉高
        TR0 = 1;                        //開啟定時器計時
        while(Echo);                //等待超聲波模塊輸出IO拉低
        TR0 = 0;                         //關(guān)閉定時器計時
       
        /* 計算距離 */
        time = TH0 * 256 + TL0;        //得到的時間
        TH0 = 0;                                //定時計數(shù)器清零       
        TL0 = 0;
       
        S =(time * 1.87) / 100;        //算出來是CM                               
}















                  


超聲波測距.zip

34.69 KB, 下載次數(shù): 14, 下載積分: 黑幣 -5

超聲波測距






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1