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

📄 car01.lst

📁 启动定时保护无线加按键设定
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.02   CAR01                                                                 09/04/2011 23:23:06 PAGE 1   


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

line level    source

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

  52          void go_along_right(void)       {       go_along();delay(14);turn_right();delay(2);     }//偏右直走               
  53          void go_along_slow_r(void)      {       go_along();delay(9);stop();delay(20);   }//低直走(避障用到)              
  54          void go_back_slow(void)         {       go_back();delay(10);stop();delay(25);   }//低速后(避障用到)                 
  55          void go_along_left(void)        {       go_along();delay(10);turn_left();delay(1);      }
  56          void turn_left_go(void)         {       turn_cleft();delay(1);turn_left();delay(7);     }//       
  57          void turn_left_go1(void)        {       turn_cleft();delay(3);stop();delay(6);turn_left();delay(5);     }
  58          void turn_left_go_low(void)     {turn_cleft();delay(4);stop();delay(8);turn_left();delay(5);stop();delay(1);}
  59          
  60          void turn_left_tan(void)        {turn_cleft();delay(3);turn_left();delay(10);stop();delay(2);}//低弹      
  61          
  62          void turn_right_go(void)        {       turn_cright();delay(4);turn_right();delay(7);}//
  63          
  64          
  65          void go_along_right_lowlow(void){go_along();delay(3);stop();delay(9);turn_right();delay(2);stop();delay(9)
             -;}
  66          void turn_right_go_verylow(void){turn_cright();delay(2);stop();delay(9);turn_right();delay(7);stop();delay
             -(9);}
  67          void turn_left_verylow(void){turn_left();delay(6);stop();delay(20);}
  68          
  69          void turn_left_low(void)        {       turn_left_go();delay(10);stop();delay(8);       }
  70          //********************************************************************************************************
             -********//
  71          
  72          void zhuanwan4(void)//4步拟合曲线           
  73          {                                                                          
  74   1              go_along();delay(240);turn_left_low();delay(85);stop();delay(100);              
  75   1              go_along();delay(240);stop();delay(50);turn_left_go();delay(160);               
  76   1              go_along();delay(130);stop();delay(50);turn_left_go();delay(160);
  77   1              go_along();delay(100);stop();delay(50);turn_left_go();delay(100);
  78   1              while((right!=1)&&(left!=1)){go_along();}stop();delay(50);go_back();delay(50);turn_left_go();delay(10);
  79   1      }
  80          void  zhuanwan3(void)//3步拟合曲线          
  81          {
  82   1              go_along();delay(280);turn_left_go();delay(70);stop();delay(60);                
  83   1              go_along();delay(200);stop();delay(50);turn_left_go();delay(200);               
  84   1              go_along();delay(130);stop();delay(50);turn_left_go();delay(180);
  85   1              while(right!=1){go_along();}stop();delay(50);go_back();delay(50);turn_left_go();delay(10);
  86   1      }
  87          void xunji_bizhang_normal(void)//避障走法正常循迹                   
  88          {                                                                                                                                 
  89   1                      if(left==0&&right==0)
  90   1                      {
  91   2                       go_along_right();
  92   2                      } 
  93   1                      if(left==0&&right==1)        
  94   1              {
  95   2                   turn_left_go1();
  96   2                      }
  97   1                      if(left==1&&right==0)        
  98   1                      {
  99   2                      turn_right_go();
 100   2              }
 101   1                      if(left==1&&right==1)        
 102   1              {
 103   2                       go_along_right();
 104   2              }
 105   1      }
 106          void xunji_bizhang_low_speed(void)//低速避障循迹                           
 107          {
 108   1                      if(left==0&&right==0)
 109   1                      {
 110   2                       go_along_right();delay(5);stop();delay(95);
C51 COMPILER V8.02   CAR01                                                                 09/04/2011 23:23:06 PAGE 3   

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

 173   2                {
 174   3                      xunji_bizhang_normal();
 175   3                }
 176   2      

⌨️ 快捷键说明

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