找回密码
 立即注册

QQ登录

只需一步,快速开始

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

寻迹小车程序

[复制链接]
跳转到指定楼层
楼主
ID:469687 发表于 2019-1-17 15:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*赛道边框黑,赛道白*/
#include <reg52.h>  
/****L298N硬件连接***/  
sbit ENA = P1^0;
sbit ENB = P1^1;  
sbit IN4 = P1^2;  /*1*/  
sbit IN3 = P1^3;  /*0*/
sbit IN2 = P1^4;  /*1*/
sbit IN1 = P1^5;  /*0*/

sbit left3 = P0^0;  
sbit left2 = P0^1;
sbit left1 = P0^2;  
sbit right1= P0^3;  
sbit right2= P0^4;
sbit right3= P0^5;
unsigned char zkb1 = 0;  
unsigned char zkb2 = 0;  
unsigned char t = 0;  
  
  
void init()  
{  
    EA = 1;  
    TMOD |= 0x01;  
    TH0 =(65536 - 100) / 256;  
    TL0 = (65536 - 100)% 256;     
    ET0 = 1;  
    TR0 = 1;  
}  
  
void timer0() interrupt 1  
{  
  
    TH0 = (65536 - 100) / 256;  
    TL0 = (65536 - 100) % 256;  
         
    if(t < zkb1)  
         
      ENA = 1;         
      else         
      ENA = 0;                 
      
     
    if(t < zkb2)  
      
        
      {  
          ENB = 1;  
      }  
      else   
        
          ENB = 0;  
        
        
    ++t;  
    if(t >= 100)  
    {  
        t = 0;  
    }            
}
  
  
void turn_left1()  
{  
    zkb1 = 30;  
    zkb2 = 0;   
}  
void turn_left2()  
{  
    zkb1 = 0;  
    zkb2 = 50;   
}
void turn_left3()  
{  
    zkb1 = 0;  
    zkb2 = 50;   
}

  
void turn_right1()  
{  
    zkb1 =0;  
    zkb2 =50;
}
void turn_right2()  
{  
    zkb1 =50;  
    zkb2 =0;
}
void turn_right3()  
{  
    zkb1 =30;  
    zkb2 =0;
}
void turn_qianjin()  
{  
    zkb1 =80;  
    zkb2 =80;
}

/****主函数部分***/
void main()  
{  
    init();  
  zkb1 = 70;  
  zkb2 = 70;  
    IN1 = 0;  
    IN2 = 1;  
    IN3 = 1;  
    IN4 = 0;  
    while(1)  
   {
  if((left3==1)&&(left2==0)&&(right3==0)&&(right2==0)&&(right1==0))
     turn_left3() ;
     if((left3==0)&&(left2==1)&&(right3==0)&&(right2==0)&&(right1==0))
     turn_left2() ;
  if((left3==0)&&(left2==0)&&(left1==0)&&(right3==0)&&(right2==0)&&(right1==0))
     turn_left1() ;
     if((left3==0)&&(left2==0)&&(left1==0)&&(right3==1)&&(right2==0))     
    turn_right3();
  if((left3==0)&&(left2==0)&&(left1==0)&&(right3==0)&&(right2==1))     
    turn_right2();
  if((left3==0)&&(left2==0)&&(left1==0)&&(right3==0)&&(right2==0)&&(right1==0))     
    turn_right1();
  if((left3==0)&&(left2==0)&&(left1==1)&&(right3==0)&&(right2==0)&&(right1==1))
   {
    turn_qianjin() ;
   }
   }
}


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

使用道具 举报

沙发
ID:1 发表于 2019-1-18 01:21 | 只看该作者
补全原理图或者详细说明一下电路连接即可获得100+黑币
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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