找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8065|回复: 5
打印 上一主题 下一主题
收起左侧

四路红外模块循迹程序。

[复制链接]
跳转到指定楼层
楼主
ID:147656 发表于 2016-11-27 23:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg51.h>
sbit RSEN2=P1^4;
sbit RSEN1=P1^3;
sbit LSEN1=P1^2;
sbit LSEN2=P1^1;
sbit IN1=P2^0;
sbit IN2=P2^1;
sbit IN3=P2^2;
sbit IN4=P2^3;      
//****************延时函数****************//
int i,j;
void delay(int z)   
{  
for(i=0;i<z;i++)
   for(j=0;j<110;j++);
}
//***************循迹函数*****************//
main()
{
  while(1)
  {
   if((RSEN1==0)&&(RSEN2==0)&&(LSEN1==0)&&(LSEN2==0))   
    { IN1=1,IN3=0,IN2=1,IN4=0; }//*******直行*******//
   else  if((RSEN1==0)&&(RSEN2==0)&&(LSEN1==1)&&(LSEN2==0))
    {
IN1=0,IN3=1,IN2=1,IN4=0;
     delay(30);
} //***左偏1
  else  if((RSEN1==0)&&(RSEN2==0)&&(LSEN1==0)&&(LSEN2==1))
    {
IN1=0,IN3=1,IN2=1,IN4=0;
delay(200);
} //***左偏2
   else  if((RSEN1==1)&&(RSEN2==0)&&(LSEN1==0)&&(LSEN2==0))
    {
  IN1=1,IN3=0,IN2=0,IN4=1;
  delay(30);
  } //***右偏1
   else  if((RSEN1==0)&&(RSEN2==1)&&(LSEN1==0)&&(LSEN2==0))
    {
IN1=1,IN3=0,IN2=0,IN4=1;
delay(200);
  }//***右偏2

   else if((RSEN1==1)&&(RSEN2==1)&&(LSEN1==1)&&(LSEN2==1))
    {IN1=1,IN3=1,IN2=1,IN4=1;}//停止
   
}
}

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:143842 发表于 2016-12-6 00:45 来自手机 | 只看该作者
然后就没了?...这是四轮差速麽
回复

使用道具 举报

板凳
ID:183120 发表于 2017-5-18 16:54 | 只看该作者
楼主试过没
回复

使用道具 举报

地板
ID:219500 发表于 2017-7-22 21:58 | 只看该作者
程序可以吗
回复

使用道具 举报

5#
ID:219529 发表于 2017-8-2 21:17 | 只看该作者
楼主试过没
回复

使用道具 举报

6#
ID:222394 发表于 2017-8-5 18:13 | 只看该作者
不错,但是我觉得可能会出现bug,因为     else if((RSEN1==1)&&(RSEN2==1)&&(LSEN1==1)&&(LSEN2==1))
     {IN1=1,IN3=1,IN2=1,IN4=1;}//停止
这里有问题,因为小车不会四个检测的端口会同时出现高电平,因为小车是移动的,应该在前面赋值四个电机端口初值为0,不然有可能在前面的两个端口检测到黑线时,也就是RSEN1==1 RSEN1==1 LSEN1==0 LSEN1==0,因为没有定义,小车可能会乱跑
   
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表