通过接收低电平的时间测距来输出IO口的值,大神看看哪有问题
#include <reg52.h>
#define uint unsigned int
sbit jieshou=P2^4;
sbit p0=P1^0;
sbit p1=P1^4;
sbit p2=P1^2;
sbit p3=P1^3;
uint s=0;
uint time=0;
void juli()
{
jieshou=1;
while(jieshou==1);
TR0=1;
while(jieshou==0);
TR0=0;
time=TH0*256+TL0;
TH0=0;
TL0=0;
s=(time*1.7)/100;
}
void main(void)
{
TMOD=0x09;
TH0=0;
TL0=0;
TR0=0;
P2=0XFF;
while(1)
{
P1=0xff;
juli();
if((s>15)&&(s<17))
{
p0=0;
}
else
{
if((s<=10000)&&(s>60000))
{
p1=0;
}
else
{
if((s<140000)&&(s>130000))
{
p2=0;
}
else
p3=0;
}
}
}
}
#include <reg52.h>
#define uint unsigned int
sbit jieshou=P2^4;
sbit p0=P1^0;
sbit p1=P1^4;
sbit p2=P1^2;
sbit p3=P1^3;
uint s=0;
uint time=0;
void juli()
{
jieshou=1;
while(jieshou==1);
TR0=1;
while(jieshou==0);
TR0=0;
time=TH0*256+TL0;
TH0=0;
TL0=0;
s=(time*1.7)/100;
}
void main(void)
{
TMOD=0x09;
TH0=0;
TL0=0;
TR0=0;
P2=0XFF;
while(1)
{
P1=0xff;
juli();
if((s>15)&&(s<17))
{
p0=0;
}
else
{
if((s<=10000)&&(s>60000))
{
p1=0;
}
else
{
if((s<140000)&&(s>130000))
{
p2=0;
}
else
p3=0;
}
}
}
}