⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 car02.lst

📁 启动定时保护无线加按键设定
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.02   CAR02                                                                 09/03/2011 18:17:43 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE CAR02
OBJECT MODULE PLACED IN CAR02.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE CAR02.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include"reg51.h"
   2          sbit p20=P2^0;sbit p21=P2^1;sbit p22=P2^2;sbit p23=P2^3;
   3          //1车P20=1A,P21=1B,P23=2A,P22=2B,2车p20=1A,P21=1B,P22=2A,P23=2B;
   4          sbit left=P3^6;//左寻   
   5          sbit right=P3^7;//右寻  
   6          sbit zhong=P3^5;//黑线探测p35;
   7          sbit qian=P1^6;//前避障    
   8          sbit you=P1^7;//右避障  
   9          sbit jichu=P1^4;  //按键切换功能    接地 直走  接空壁障 或停车  
  10          sbit p15=P1^5;
  11          sbit p27=P2^7;
  12          sbit p32=P3^2;
  13          sbit p26=P2^6;//fmq         
  14          
  15          unsigned char flag_left_or_right,flag_along_right,flag_chaoche,flag_stop,flag_bizhang,flag_xunji_zhuan;//1
             ---left;2--right;
  16          bit flag_change=0,flag_start=0,flag_ok=0;
  17          unsigned int flag=0,timer=0;
  18          unsigned int n;         
  19          unsigned int t;
  20          //********************************************************************************************************
             -**//
  21          void delay1ms()
  22          {
  23   1              unsigned char i,j;      
  24   1              for(i=0;i<10;i++)
  25   1              for(j=0;j<33;j++)
  26   1                 ;             
  27   1      } 
  28          void delay(unsigned int n)//
  29          {
  30   1              unsigned int i;
  31   1              for(i=0;i<n;i++)
  32   1              delay1ms();
  33   1      }
  34          /*
  35          void delay100us()
  36          {
  37                  unsigned char j;        
  38                  for(j=0;j<33;j++)
  39                     ;
  40          }void delayus(unsigned int n)//
  41          {
  42                  unsigned int i;
  43                  for(i=0;i<n;i++)
  44                  delay100us();
  45          }*/
  46          
  47          void send232byte(unsigned char bytebuf)
  48          {
  49   1              SBUF=bytebuf;
  50   1              while(!TI);     
  51   1          TI=0;       
  52   1      }
  53          //********************************************************************************************************
C51 COMPILER V8.02   CAR02                                                                 09/03/2011 18:17:43 PAGE 2   

             -///
  54          //********************************************************************************************************
             -//
  55          void turn_left(void)    {       p20=0;p21=0;p22=1;p23=0;        }//左转
  56          void turn_right(void)   {       p20=1;p21=0;p22=0;p23=0;        }//右转
  57          void turn_cleft(void)   {       p20=0;p21=1;p22=1;p23=0;        }//左原地转
  58          void turn_cright(void)  {       p20=1;p21=0;p22=0;p23=1;        }//右原地转
  59          void go_along(void)             {       p20=1;p21=0;p22=1;p23=0;        }//直走
  60          void go_back(void)              {       p20=0;p21=1;p22=0;p23=1;        }//后
  61          void stop(void)                 {       p20=0;p21=0;p22=0;p23=0;        }//停止
  62          void go_along_right(void)       {       go_along();delay(14);turn_right();delay(2);     }
  63          void go_along_slow_r(void)      {       go_along();delay(10);stop();delay(20);  }
  64          void go_back_slow(void)         {       go_back();delay(10);stop();delay(25);   }
  65          void turn_left_go(void)         {       turn_cleft();delay(3);turn_left();delay(7);     }
  66          void turn_left_go_low(void)     {turn_cleft();delay(4);stop();delay(1);turn_left();delay(5);stop();delay(1);}
  67          void turn_right_go(void)        {       turn_cright();delay(4);turn_right();delay(7);}
  68          void turn_left_low(void)        {       turn_left_go();delay(14);stop();delay(8);       }
  69          void turn_left_go1(void)        {       turn_cleft();delay(3);stop();delay(6);turn_left();delay(5);     }
  70          
  71          void go_along_right_lowlow(void){go_along();delay(3);stop();delay(9);turn_right();delay(2);stop();delay(9)
             -;}
  72          void turn_right_go_verylow(void){turn_cright();delay(2);stop();delay(9);turn_right();delay(7);stop();delay
             -(9);}
  73          void turn_left_verylow(void){turn_left();delay(6);stop();delay(20);}
  74          //void go_along_left(void)      {       go_along();delay(10);turn_left();delay(1);      }
  75          //void turn_right_low(void)     {       turn_right_go();delay(14);stop();delay(8);  }
  76          //********************************************************************************************************
             -//
  77          //********************************************************************************************************
             -//
  78          void xunji_bizhang_normal(void)//避障走法正常循迹                
  79          {
  80   1                      if(left==0&&right==0)
  81   1                      {
  82   2                       go_along_right();
  83   2                      } 
  84   1                      if(left==0&&right==1)        
  85   1              {
  86   2                      turn_left_go();
  87   2                       }
  88   1                      if(left==1&&right==0)        
  89   1                       {
  90   2                      turn_right_go();
  91   2              }
  92   1                      if(left==1&&right==1)        
  93   1              {
  94   2                       go_along_right();
  95   2              }
  96   1      }
  97          void xunji_bizhang_low_speed(void)//低速避障循迹            
  98          {
  99   1                      if(left==0&&right==0)
 100   1                      {
 101   2                       go_along_right();delay(5);stop();delay(95);
 102   2                      } 
 103   1                      if(left==0&&right==1)        
 104   1              {
 105   2                      turn_left_go_low();
 106   2                       }
 107   1                      if(left==1&&right==0)        
 108   1                       {
 109   2                      turn_right_go();
C51 COMPILER V8.02   CAR02                                                                 09/03/2011 18:17:43 PAGE 3   

 110   2              }
 111   1                      if(left==1&&right==1)        
 112   1              {
 113   2                       go_along_right();delay(5);stop();delay(95);
 114   2              }
 115   1      }
 116          void xunji_bizhang_chaoche_over(void)//超车结束后特殊循迹           
 117          {               if(left==0&&right==1)        
 118   1              {
 119   2                      turn_left_go_low();
 120   2                       }
 121   1                      if(right==0)         
 122   1                       {
 123   2                      go_along();delay(15);stop();delay(85);
 124   2              }
 125   1                      if(left==1&&right==1)        
 126   1              {
 127   2                       go_along();delay(15);stop();delay(85);
 128   2              }
 129   1      }
 130          void chaoche_bizhang(void)//避障动作                                     
 131          {
 132   1                      flag_bizhang=1;
 133   1                      while(qian!=1)  {turn_left();}  
 134   1                      stop();delay(500);
 135   1                      go_along();delay(600);
 136   1                      stop();delay(500);
 137   1                      while(you!=1) //如果有再直走;
 138   1                      {go_along_slow_r();}    stop();delay(500);
 139   1                      while(you==1)//转到有   
 140   1                      {turn_right();delay(40);stop();delay(60);}stop();delay(500);
 141   1                      while(you!=1)//转到没有                            
 142   1                      {turn_right();delay(40);stop();delay(60);}stop();delay(500);
 143   1                      while(you==1)//走到有    
 144   1                      {go_along_slow_r();}    stop();delay(500);
 145   1                      while(you!=1)//走到没有          
 146   1                      {go_along_slow_r();}    stop();delay(500);
 147   1                      while(you==1)//退到有       
 148   1                      {go_back_slow();}       stop();delay(500);
 149   1                      while(you!=1)//转到没有 
 150   1                      {turn_right();delay(40);stop();delay(60);}stop();delay(500);
 151   1                      go_along();delay(500);
 152   1                      stop();delay(500);
 153   1                      turn_left();delay(110);                 
 154   1                      stop();delay(1000);
 155   1                      flag_xunji_zhuan=1;
 156   1                      flag_bizhang=0;
 157   1      }
 158          void xunji_bizhang(void)//避障走法循迹函数                
 159          {
 160   1        if(zhong==0)
 161   1        {     
 162   2                if(jichu==0)
 163   2                {
 164   3                      xunji_bizhang_normal();
 165   3                }
 166   2                       if(jichu==1)
 167   2                      {
 168   3                      if(flag_chaoche==0)
 169   3                         {    
 170   4                              xunji_bizhang_normal();
 171   4                         }
C51 COMPILER V8.02   CAR02                                                                 09/03/2011 18:17:43 PAGE 4   

 172   3                          if(flag_chaoche==1)
 173   3                          {
 174   4                                if(flag_xunji_zhuan==0)
 175   4                                 {
 176   5                                      xunji_bizhang_low_speed();
 177   5                                      if(qian==0)
 178   5                                      {
 179   6                                              chaoche_bizhang();
 180   6                                      }
 181   5                                  }
 182   4                              if(flag_xunji_zhuan==1)
 183   4                                {
 184   5                                      xunji_bizhang_chaoche_over();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -