我用的是51單片機開發板,我想把HC-SR04超距檢測的結果在LCD1602上顯示,但數據檢測很不好,總在01234這幾個之徘徊。
大佬們看看我寫的HC-SR04模塊哪里有錯誤,要改進哪里:
#include <REGX51.H>
#include "Delay.h"
sbit Trig=P1^7;
sbit Echo=P1^6;
void Timer_Init()
{
TMOD |= 0x01;
TH0 = 0;
TL0 = 0;
TR0=0;
}
/*
初始化
*/
void HC_Init()
{
Trig=0;
Echo=0;
Timer_Init();
}
unsigned int HC_Getdistance()
{
unsigned char time,distance;
Trig=1;
Delay10us();
Trig=0;
while(Echo==0);
TR0=1;
while(Echo==1);
TR0=0;
time=(256*TH0+TL0)*1.085;
TH0 = 0;
TL0 = 0;
distance=time*17/100;
Delay_ms(80);
return distance;
}
|