|
/*********************超聲波測(cè)距程序*****************************/
void send_wave()
{
c_send = 1; //10us的高電平觸發(fā)
delay();
c_send = 0;
TH0 = 0; //給定時(shí)器0清零
TL0 = 0;
TR0 = 0; //關(guān)定時(shí)器0定時(shí)
while(!c_recive); //當(dāng)c_recive為零時(shí)等待
TR0=1;
while(c_recive) //當(dāng)c_recive為1計(jì)數(shù)并等待
{
flag_time0 = TH0 * 256 + TL0;
if((flag_time0 > 40000)) //當(dāng)超聲波超過(guò)測(cè)量范圍時(shí),顯示3個(gè)888
{
TR0 = 0;
flag_csb_juli = 2;
distance = 888;
break ;
}
else
{
flag_csb_juli = 1;
}
}
if(flag_csb_juli == 1)
{
TR0=0; //關(guān)定時(shí)器0定時(shí)
distance = flag_time0;
distance *= 0.017; // 0.017 = 340M / 2 = 170M = 0.017M 算出來(lái)是米
if(distance > 600) //距離 = 速度 * 時(shí)間
{
distance = 888; //如果大于3.8m就超出超聲波的量程
}
}
}
|
評(píng)分
-
查看全部評(píng)分
|