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

📄 1.lst

📁 以keil为开发平台,开发的用于小车寻线,避障的C语言程序.
💻 LST
字号:
C51 COMPILER V7.06   1                                                                     11/21/2007 22:33:16 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE 1
OBJECT MODULE PLACED IN 1.OBJ
COMPILER INVOKED BY: D:\keil C51_V706完全破解版\安装后\C51\BIN\C51.EXE 1.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <reg51.h>
   2          #define uint unsigned int
   3          
   4            sbit P0_0=P0^0;       //左1传感器输入端口初始化
   5            sbit P0_1=P0^1;       //左2传感器输入端口初始化
   6            sbit P0_2=P0^2;       //右2传感器输入端口初始化
   7            sbit P0_3=P0^3;       //右1传感器输入端口初始化
   8             
   9            sbit P0_6=P0^6;       //取物传感器输入端口初始化 
  10            
  11            sbit P1_0=P1^0;       //取物驱动芯片始能端初始化
  12            sbit P1_2=P1^2;       //out3端口初始化
  13            sbit P1_3=P1^3;       //out4端口初始化
  14            
  15            sbit P1_6=P1^6;       //避障传感器输入端口初始化
  16            
  17            sbit P2_0=P2^0;       //寻线驱动芯片始能端初始化
  18            sbit P2_1=P2^1;       //寻线驱动芯片始能端初始化
  19            sbit P2_2=P2^2;       //out1端口初始化
  20            sbit P2_3=P2^3;       //out2端口初始化
  21            sbit P2_4=P2^4;       //out3端口初始化
  22            sbit P2_5=P2^5;       //out4端口初始化
  23          
  24          void delay(uint j)       //延时子程序
  25          { 
  26   1        uint k;
  27   1        for(k=0;k<j;k++);
  28   1      }
  29          
  30          void turnleft()           //左转子程序
  31          {
  32   1       P2_0=0;
  33   1       P2_1=1;
  34   1       P2_2=0;
  35   1       P2_3=0;
  36   1       P2_4=1;
  37   1       P2_5=0;
  38   1      }
  39          
  40          void turnright()         //右转子程序
  41          {
  42   1       P2_0=1;
  43   1       P2_1=0;
  44   1       P2_2=1;
  45   1       P2_3=0;
  46   1       P2_4=0;
  47   1       P2_5=0;
  48   1      }
  49          
  50          void go()                 //直走程序
  51          {
  52   1       P2_0=1;
  53   1       P2_1=1;
  54   1       P2_2=1;
  55   1       P2_3=0;
C51 COMPILER V7.06   1                                                                     11/21/2007 22:33:16 PAGE 2   

  56   1       P2_4=1;
  57   1       P2_5=0;
  58   1      }
  59          
  60          void back()              //后退子程序 
  61          {
  62   1       P2_0=1;
  63   1       P2_1=1;
  64   1       P2_2=0;
  65   1       P2_3=1;
  66   1       P2_4=0;
  67   1       P2_5=1;
  68   1       }
  69          
  70          void stop()              //停止子程序  
  71          {
  72   1       P2_0=0;
  73   1       P2_1=0;
  74   1       P2_2=0;
  75   1       P2_3=0;
  76   1       P2_4=0;
  77   1       P2_5=0;
  78   1      }
  79          
  80          void in()              //取物杆收回子程序
  81          {
  82   1       P1_0=1;       
  83   1       P1_2=1;       
  84   1       P1_3=0;
  85   1      }
  86          
  87          void out()             //取物杆放开子程序
  88          {
  89   1       P1_0=1;       
  90   1       P1_2=0;       
  91   1       P1_3=1; 
  92   1      }
  93          
  94          void getthing()       //取物子程序
  95          {
  96   1        stop();
  97   1       
  98   1        
  99   1        in();
 100   1        delay(20000);
 101   1        delay(15000);
 102   1       
 103   1        
 104   1         out();
 105   1        delay(18000);
 106   1        delay(13000);
 107   1       
 108   1        
 109   1        P1_0=0;       
 110   1        P1_2=0;       
 111   1        P1_3=0; 
 112   1      }
 113          
 114          void alongline()           // 寻线程序
 115          {
 116   1         if(P0_0==1||P0_1==1)      //左边传感器检测到白线
 117   1         {
C51 COMPILER V7.06   1                                                                     11/21/2007 22:33:16 PAGE 3   

 118   2          turnleft();
 119   2          }
 120   1         else if(P0_2==1||P0_3==1)     //右边传感器检测到白线
 121   1         {
 122   2          turnright();
 123   2          }    
 124   1              else    
 125   1              {
 126   2               go();
 127   2              }
 128   1                        
 129   1       }
 130          
 131          
 132           void arounding()            //避障子程序
 133          {
 134   1        back();
 135   1        delay(500000);
 136   1        delay(500000);
 137   1        
 138   1        in();
 139   1        delay(20000);
 140   1        delay(15000);
 141   1        P1_0=0;       
 142   1        P1_2=0;       
 143   1        P1_3=0; 
 144   1      
 145   1        
 146   1        turnright();
 147   1        delay(50000);
 148   1        delay(20000);
 149   1        delay(20000);
 150   1        
 151   1        
 152   1        
 153   1        stop();
 154   1        delay(50000);
 155   1        
 156   1        go();
 157   1        delay(200000);
 158   1        
 159   1        delay(245000);
 160   1        
 161   1        
 162   1        
 163   1        stop();
 164   1        delay(50000);
 165   1       
 166   1        turnleft();
 167   1        delay(50000);
 168   1        delay(25000);
 169   1        delay(25000);
 170   1        
 171   1        
 172   1        
 173   1         stop();
 174   1        delay(50000);
 175   1        
 176   1        go();
 177   1        delay(500000);
 178   1        delay(500000);
 179   1        delay(500000);
C51 COMPILER V7.06   1                                                                     11/21/2007 22:33:16 PAGE 4   

 180   1        delay(500000);
 181   1        delay(500000);
 182   1        delay(500000);
 183   1        
 184   1        
 185   1        
 186   1        
 187   1        while(1)
 188   1        {stop();}
 189   1      }
 190          
 191          void main()              //主程序
 192          { 
 193   1        TMOD=0x02;            //用于T0,工作模式2
 194   1        TH0=0x1a;             
 195   1        TL0=0x1a;
 196   1        
 197   1        EA=1;                 //开中断
 198   1        ET0=1;                //允许TF0中断
 199   1        TR0=1;                //启动关闭控制位
 200   1        
 201   1        while(1)
 202   1       {
 203   2        if(P0_6==0)
 204   2        getthing();        
 205   2        else if(P1_6==0)
 206   2        arounding();
 207   2             else
 208   2             alongline();           
 209   2       }
 210   1      }
 211          
 212          
 213          
 214          void Pwm()interrupt 1        //定时中断调速子程序
 215          {
 216   1      unsigned int i;
 217   1      
 218   1      P2_0=0;
 219   1      P2_1=0;
 220   1      
 221   1      for(i=2;i>0;i--);
 222   1      
 223   1      P2_0=1;
 224   1      P2_1=1;
 225   1      }
 226           


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    365    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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