我们学校搞了一个智能车大赛。这是程序。HW0代表的是黑白线传感器。HW1是左传感器(红外),HW2是右传感器。FS指的是风扇电机,MH指的是一个灭火程序。现在主要的问题是遇到直角弯道时,经常会出问题。 偶尔会转向反侧很耽误时间。我们也尝试了 尽力调整两个传感器的距离。但是问题 仍然存在。 如果比赛时出现就不好了。这一直是隐患。所以拜托各位大虾。帮忙改改程序吧。小弟我资历尚浅。 先谢过了!
#include <reg52.h>
void go_ahead(void);
void go_back(void);
void go_left(void);
void go_right(void);
void go_MH(void);
void stop(void);
sbit HW0=P0^2;
sbit HW1=P0^1;
sbit HW2=P0^0;
sbit FS =P2^4;
void delay(int t)
{
int a,b;
for(a=0;a<t;a++)
for(b=0;b<120;b++);
}
main()
{
while(1)
{
go_ahead();
if(HW0==0)
{
go_MH();
delay(1000);
}
if(HW1==0)
{
go_right();
delay(1000);
}
if(HW2==0)
{
go_left();
delay(1000);
}
if(HW1==0 && HW2==0)
{
go_back();
delay(1000);
}
}
}
void go_ahead(void)
{
P2=0x05;
}
void go_back(void)
{
P2=0x0A;
}
void go_right(void)
{
P2=0x04;
}
void go_left(void)
{
P2=0x01;
}
void stop(void)
{
P2=0x00;
}
void go_MH(void)
{
stop();
delay(1000);
FS=0;
delay(10000);
}
#include <reg52.h>
void go_ahead(void);
void go_back(void);
void go_left(void);
void go_right(void);
void go_MH(void);
void stop(void);
sbit HW0=P0^2;
sbit HW1=P0^1;
sbit HW2=P0^0;
sbit FS =P2^4;
void delay(int t)
{
int a,b;
for(a=0;a<t;a++)
for(b=0;b<120;b++);
}
main()
{
while(1)
{
go_ahead();
if(HW0==0)
{
go_MH();
delay(1000);
}
if(HW1==0)
{
go_right();
delay(1000);
}
if(HW2==0)
{
go_left();
delay(1000);
}
if(HW1==0 && HW2==0)
{
go_back();
delay(1000);
}
}
}
void go_ahead(void)
{
P2=0x05;
}
void go_back(void)
{
P2=0x0A;
}
void go_right(void)
{
P2=0x04;
}
void go_left(void)
{
P2=0x01;
}
void stop(void)
{
P2=0x00;
}
void go_MH(void)
{
stop();
delay(1000);
FS=0;
delay(10000);
}
