找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1554|回复: 1
收起左侧

智能寻迹小车

[复制链接]
ID:291220 发表于 2018-8-12 10:57 | 显示全部楼层 |阅读模式
#include <reg52.h>

unsigned char zkb1=0 ;   
unsigned char zkb2=0 ;
unsigned char t=0;

sbit ENB_zuoqian=P0^0;      
sbit IN1_zuoqian=P0^2;      
sbit IN2_zuoqian=P0^1;

sbit ENA_youqian=P1^0;
sbit IN1_youqian=P1^2;
sbit IN2_youqian=P1^1;

sbit ENA_zuohou=P0^5;      
sbit IN1_zuohou=P0^3;      
sbit IN2_zuohou=P0^4;      

sbit ENB_youhou=P1^5;
sbit IN1_youhou=P1^3;
sbit IN2_youhou=P1^4;

sbit s1=P2^0;
sbit s2=P2^1;
sbit s3=P2^2;
sbit s4=P2^3;
sbit s5=P2^4;

void car_go()
{
IN1_zuoqian=0;      
IN2_zuoqian=1;
IN1_youqian=0;
IN2_youqian=1;
IN1_zuohou=1;      
IN2_zuohou=0;
IN1_youhou=1;
IN2_youhou=0;
zkb1=100;
zkb2=100;
}
void car_left()
{
IN1_zuoqian=0;      
IN2_zuoqian=1;
IN1_youqian=0;
IN2_youqian=1;
IN1_zuohou=1;      
IN2_zuohou=0;
IN1_youhou=1;
IN2_youhou=0;
zkb1=0;
zkb2=60;
}
void car_left2()
{
IN1_zuoqian=1;      
IN2_zuoqian=0;
IN1_youqian=0;
IN2_youqian=1;
IN1_zuohou=0;      
IN2_zuohou=1;
IN1_youhou=1;
IN2_youhou=0;
zkb1=40;
zkb2=80;
}
  void car_right()
{
IN1_zuoqian=0;      
IN2_zuoqian=1;
IN1_youqian=0;
IN2_youqian=1;
IN1_zuohou=1;      
IN2_zuohou=0;
IN1_youhou=1;
IN2_youhou=0;
zkb1=60;
zkb2=0;
}
  void car_right2()
{
IN1_zuoqian=0;      
IN2_zuoqian=1;
IN1_youqian=1;
IN2_youqian=0;
IN1_zuohou=1;      
IN2_zuohou=0;
IN1_youhou=0;
IN2_youhou=1;
zkb1=80;
zkb2=40;
}
void init()
{  TMOD=0x01;
   TH0=(65536-100)/256;
   TL0=(65536-100)%256;
   EA=1;
   ET0=1;
   TR0=1;
}
void timer0() interrupt 1
{   
    TH0=(65536-100)/256;
   TL0=(65536-100)%256;
  if(t<zkb1)
        {ENB_zuoqian=1; ENA_zuohou=1;}
  else
        { ENB_zuoqian=0; ENA_zuohou=0;}
  if(t<zkb2)
        { ENA_youqian=1; ENB_youhou=1;}
  else
        {ENA_youqian=0; ENB_youhou=0;}
        t++;
  if(t>=100)
    {t=0;}
}
void main()
{
        init();
  zkb1=100;
  zkb2=100;       
        while(1)
        {
                  IN1_zuoqian=0;       ENB_zuoqian=1;
      IN2_zuoqian=1;
      IN1_youqian=0;       ENA_youqian=1;
      IN2_youqian=1;
      IN1_zuohou=0;         ENA_zuohou=1;
      IN2_zuohou=1;   
      IN1_youhou=0;        ENB_youhou=1;
      IN2_youhou=1;
                        while(1)
                        {
               
                if(s1 == 0 && s2 == 0&& s3 == 1&& s4 == 0&& s5 == 0)
                {
                        car_go();
                }
                if(s1 == 1 && s2 == 1&& s3 == 1&& s4 == 1&& s5 == 1)
                {
                        car_go();
                }
                if(s1 == 0 && s2 == 1&& s3 == 1&& s4 == 1&& s5 == 0)
                {
                        car_go();
                }
                if(s1 == 1 && s2 == 0&& s3 == 0&& s4 == 0&& s5 == 0)
                {
                       
                        car_left2();
                          if(s1 == 0 && s2 == 0&& s3 == 0&& s4 == 0&& s5 == 0)
                                car_left2();
                         
                }
                if(s1 == 0 && s2 == 1&& s3 == 0&& s4 == 0&& s5 == 0)
                {
                        car_left();
                           if(s1 == 0 && s2 == 0&& s3 == 0&& s4 == 0&& s5 == 0)
                                car_left();
                         
                }
                if(s1 == 1 && s2 == 1&& s3 == 1&& s4 == 0&& s5 == 0)
                {
                        car_left2();
                        if(s1 == 0 && s2 == 0&& s3 == 0&& s4 == 0&& s5 == 0)
                                car_left2();
                       
                }
                if(s1 == 1 && s2 == 1&& s3 == 0&& s4 == 0&& s5 == 0)
                {
                car_left2();
                        if(s1 == 0 && s2 == 0&& s3 == 0&& s4 == 0&& s5 == 0)
                                car_left2();
                       
                }
                if(s1 == 0 && s2 == 1&& s3 == 1&& s4 == 0&& s5 == 0)
                {
           car_left2();
                        if(s1 == 0 && s2 == 0&& s3 == 0&& s4 == 0&& s5 == 0)
                                car_left2();
                       
                }
          if(s1 == 0 && s2 == 0&& s3 == 0&& s4 == 0&& s5 == 1)
                {
                        car_right2();
                        if(s1 == 0 && s2 == 0&& s3 == 0&& s4 == 0&& s5 == 0)
                                car_right2();
                       
                }
       
                if(s1 == 0 && s2 == 0&& s3 == 0&& s4 == 1&& s5 == 0)
                {
           car_right();
                        if(s1 == 0 && s2 == 0&& s3 == 0&& s4 == 0&& s5 == 0)
                                car_right();
               
                }
          if(s1 == 0 && s2 == 0&& s3 == 0&& s4 == 1&& s5 == 1)
                {
                        car_right2();
                        if(s1 == 0 && s2 == 0&& s3 == 0&& s4 == 0&& s5 == 0)
                                car_right2();
                       
                }
       
                if(s1 == 0 && s2 == 0&& s3 == 1&& s4 == 1&& s5 == 0)
                {
                car_right2();
                        if(s1 == 0 && s2 == 0&& s3 == 0&& s4 == 0&& s5 == 0)
                                car_right2();
                       
                }
               
        if(s1 == 0 && s2 == 0&& s3 == 1&& s4 == 1&& s5 == 1)
                {
                        car_right2();
                       
                        if(s1 == 0 && s2 == 0&& s3 == 0&& s4 == 0&& s5 == 0)
                        car_right2();
                }
        }
       
        }
}


回复

使用道具 举报

ID:1 发表于 2018-8-12 14:22 | 显示全部楼层
补全说明与图纸后即可获得积分
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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