谁能帮看一下我写的超声波测距程序哪里有问题
时间:10-02
整理:3721RD
点击:
#include<reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit trig=P3^6;
sbit echo=P3^7;
sbit dula=P2^6;
sbit wela=P3^7;
sbit sj=P1^4;
uchar temp=0;
uchar a,b,c,s,t,m,n,o;
uchar flag;
uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};
void delay(uchar z)
{
uchar x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void display(m,n,o)
{
wela=1;
P0=0xbf;
wela=0;
dula=1;
P0=table[m];
dula=0;
wela=1;
P0=0xdf;
wela=0;
dula=1;
P0=table[n];
dula=0;
wela=1;
P0=0xef;
wela=0;
dula=1;
P0=table[o];
dula=0;
}
void count()
{
t=TH0*256+TL0;
s=(t*340)/20000;
if(s>450)
{
flag=0;
display(5,5,5);
}
else
{
a=s/100;
b=s%100/10;
c=s%10;
display(a,b,c);
}
}
void start()
{
trig=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
trig=0;
}
void main()
{
while(1)
{
delay(5);
start();
TMOD=0x01;
TH0=0;
TL0=0;
EA=1;
ET0=1;
TR0=1;
while(1)
{
start();
if(temp==1)
{
temp=0;
count();
}
}
}
}
void time() interrupt 1
{
TH0=0;
TL0=0;
echo=0;
if(echo==1)
temp=1;
else
temp=0;
}
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit trig=P3^6;
sbit echo=P3^7;
sbit dula=P2^6;
sbit wela=P3^7;
sbit sj=P1^4;
uchar temp=0;
uchar a,b,c,s,t,m,n,o;
uchar flag;
uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};
void delay(uchar z)
{
uchar x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void display(m,n,o)
{
wela=1;
P0=0xbf;
wela=0;
dula=1;
P0=table[m];
dula=0;
wela=1;
P0=0xdf;
wela=0;
dula=1;
P0=table[n];
dula=0;
wela=1;
P0=0xef;
wela=0;
dula=1;
P0=table[o];
dula=0;
}
void count()
{
t=TH0*256+TL0;
s=(t*340)/20000;
if(s>450)
{
flag=0;
display(5,5,5);
}
else
{
a=s/100;
b=s%100/10;
c=s%10;
display(a,b,c);
}
}
void start()
{
trig=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
trig=0;
}
void main()
{
while(1)
{
delay(5);
start();
TMOD=0x01;
TH0=0;
TL0=0;
EA=1;
ET0=1;
TR0=1;
while(1)
{
start();
if(temp==1)
{
temp=0;
count();
}
}
}
}
void time() interrupt 1
{
TH0=0;
TL0=0;
echo=0;
if(echo==1)
temp=1;
else
temp=0;
}
菜鸟路过…………
飘过,不会
Trig引脚应该周期性给点评
不知道啊(我也不会)
知道 晚啦
?我以前做过,看到迟了
正在做,不过还是不明白
正在研究,还得请教啊!
t怎么是uchar型的?
啊啊啊啊,不晓得啊!