|
#include "HCSR04.h"
#define uchar unsigned char
#define uint unsigned int
int distance;
sbit Trig = P2^1;
sbit Echo = P2^2;
void Delay10us()
{
TMOD=0x10;
TH0=0x3c;
TL0=0xb0 ;
TH0=(65536-10000)/256; //10ms
TL0=(65536-10000)%256;
EA=1;
TR0 = 1;
while(!TF0);
TF0 = 0;
}
unsigned int RunOnce()
{
unsigned int time;
Trig = 0;
Trig = 1;
Delay10us();
Trig = 0;
while(!Echo)
{
TH0 = 0;
TL0 = 0;
TR0 = 1;
}
while(Echo)
{
TR0 = 0;
time = TH0*256 + TL0;
TH0 = 0;
TL0 = 0;
}
distance = time * 0.018;
return distance;
}
void TimerOisr() interrupt 1 using 1
{
TH1=(65536-10000)/256;
TL1=(65536-10000)%256;
}
|
|