标题:
小车循迹加壁障程序
[打印本页]
作者:
我是小白兔
时间:
2018-5-10 21:44
标题:
小车循迹加壁障程序
#include<reg52.h>
/*out1=0;out2=1;out3=0;out4=1;->前进 1.2右 3.4左(此处适用于我自己做的小车,你们需要自己调试)*/
sbit out1=P0^0;
sbit out2=P0^1;
sbit out3=P0^2;
sbit out4=P0^3;
/*l左光电开关r右光电开关*/
sbit l=P1^4;
sbit r=P1^5;
sbit bz=P2^0;
void forward();//前进
void back();//后退
void right();//右转
void left();//左转
void stop();//停
void delay(unsigned int a); //延时函数
void jsforward();//减速前进
void xunji();//寻迹程序函数
void main()
{
while(1)
{
if(bz==0)
{
stop();
delay(5000);
while(bz==0)
{
xunji();
}
}
if(bz==1)
xunji();
}
}
void xunji()
{
if(l==0&&r==0)//扫描到白色红外反射回来,检测出低电平0;扫描到黑色红外被吸收不反射,检测出高电平1
{
jsforward();
}
else if(l==1&&r==0)
{
left();
}
else if(l==0&&r==1)
{
right();
}
else if(l==1&&r==1)
{
stop();
}
}
void forward()//前进
{
out1=0;
out2=1;
out3=0;
out4=1;
}
void back()//后退
{
out1=1;
out2=0;
out3=1;
out4=0;
}
void right()//右转
{
out1=1;
out2=0;
out3=0;
out4=1;
}
void left()//左转
{
out1=0;
out2=1;
out3=1;
out4=0;
}
void stop()//停
{
out1=1;
out2=1;
out3=1;
out4=1;
}
void delay(unsigned int a) //延时函数
{
unsigned char b;
for(;a>0;a--)
for(b=100;b>0;b--);
}
void jsforward()//减速前进
{
forward();
delay(1);
stop();
delay(2);
}
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1