标题:
51单片机实现红外避障小车
[打印本页]
作者:
51小白Ya
时间:
2018-8-3 10:06
标题:
51单片机实现红外避障小车
这下面是我编写的一个红外线避障智能小车的程序,下载
附件是全部程序,谢谢。
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit z=P0^0;//定义红外避障检测端口
sbit q=P0^4;
sbit y=P0^2;
sbit mz=P1^5;//定义电机Mz电平输出端口
sbit IN1=P1^6;
sbit IN2=P1^7;
sbit my=P1^2;//定义电机My电平输出端口
sbit IN3=P1^3;
sbit IN4=P1^4;
void delayms(uint);//声明延时函数
main()//主函数
{
uint i=0;//初始值设定
mz=1;
my=1;
while(1)//无限循环
{
if(z==0&&q==1&&y==1)//表示z方有障碍物 进行y转向
{
for(i=0;i<5;i++)
{
mz=1;
IN1=1;
IN2=0;
my=0;
delayms(100);//状态保持100ms
mz=0;
my=0;
delayms(2);//状态保持2ms
}
}
if(z==1&&q==0&&y==1)//表示前方有障碍物 进行y转向
{
for(i=0;i<5;i++)
{
mz=1;
IN1=1;
IN2=0;
my=0;
delayms(100);//状态保持100ms
mz=0;
my=0;
delayms(2);//状态保持2ms
}
}
if(z==1&&q==1&&y==0)//表示y方有障碍物 进行z转向
{
for(i=0;i<5;i++)
{
mz=0;
my=1;
IN3=1;
IN4=0;
delayms(100);//状态保持100ms
mz=0;
my=0;
delayms(2);//状态保持2ms
}
}
if(z==0&&q==0&&y==1)//表示z前方有障碍物 进行y转向
{
for(i=0;i<5;i++)
{
mz=1;
IN1=1;
IN2=0;
my=0;
delayms(100);//状态保持100ms
mz=0;
my=0;
delayms(2);//状态保持2ms
}
}
if(z==1&&q==0&&y==0)//表示y前方有障碍物 进行z转向
{
for(i=0;i<5;i++)
{
mz=0;
my=1;
IN3=1;
IN4=0;
delayms(100);//状态保持100ms
mz=0;
my=0;
delayms(2);//状态保持2ms
}
}
复制代码
红外避障.doc
2018-8-3 10:06 上传
点击文件名下载附件
下载积分: 黑币 -5
17.5 KB, 下载次数: 54, 下载积分: 黑币 -5
作者:
楚先生
时间:
2020-4-19 16:28
有相关的电路图吗?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1