|
#include "common.h"
#include "HC-SR04.h"
#include "timer.h"
typedef unsigned int u16; //對(duì)數(shù)據(jù)類型進(jìn)行聲明定義
typedef unsigned char u8;
unsigned long S = 0; //距離緩存變量
unsigned long time = 0; //時(shí)間緩存變量
//函數(shù)聲明
void count(void); //計(jì)算距離
sbit LED1=P3^0;
sbit LED2=P3^2;
void delay(u16 i)
{
while(i--);
}
/* 主函數(shù) */
void main(void)
{
InitTimer0(); //定時(shí)器0初始化
while(1)
{
count(); //測(cè)距
if(S>=10 && S<=40) //如果在10CM~40CM范圍,led1動(dòng)作
{
LED1=1;
LED2=0;
delay(50000);
}
else //如果超出10CM~40CM范圍,led2動(dòng)作
{LED1=0;
LED2=1;
delay(50000); }
}
}
/* 計(jì)算測(cè)距 */
void count(void)
{
start_ranging(); //啟動(dòng)一次超聲波
while(!Echo); //等待超聲波模塊輸出IO拉高
TR0 = 1; //開啟定時(shí)器計(jì)時(shí)
while(Echo); //等待超聲波模塊輸出IO拉低
TR0 = 0; //關(guān)閉定時(shí)器計(jì)時(shí)
/* 計(jì)算距離 */
time = TH0 * 256 + TL0; //得到的時(shí)間
TH0 = 0; //定時(shí)計(jì)數(shù)器清零
TL0 = 0;
S =(time * 1.87) / 100; //算出來是CM
}
|
-
-
超聲波測(cè)距.zip
2020-4-1 15:10 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
34.69 KB, 下載次數(shù): 14, 下載積分: 黑幣 -5
超聲波測(cè)距
|