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

📄 main.lst

📁 机器人走白线程序 包括加速 减速 转弯函数 开发工具 keil c 
💻 LST
字号:
C51 COMPILER V7.06   MAIN                                                                  04/26/2004 11:35:46 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil1\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          ///////////////////////////////
   2          //main()//
   3          ////////////////////////////////
   4          #include "mydefine.h"
   5          #include "intrins.h"
   6          #define WaitTime 60
   7          bdata unsigned char State;
   8          //bit State_0,State_1,State_2,State_3;
   9          sbit State_0 = State^0;
  10          sbit State_1 = State^1;
  11          sbit State_2 = State^2;
  12          sbit State_3 = State^3;
  13          unsigned int SpeedRight = 4,SpeedLeft = 4;
  14          unsigned int OldSpeedRight ,OldSpeedLeft ;
  15          //bdata unsigned int PWM_0,PWM_1;
  16          data unsigned int pwm[16]=
  17          {0x0000,// pwm[0] = 0x0000;  //0000 0000 0000 0000
  18           0x0001,// pwm[1] = 0x0001;  //0000 0000 0000 0001
  19           0x0101,// pwm[2] = 0x0101;  //0000 0001 0000 0001
  20           0x0821,// pwm[3] = 0x0821;  //0000 1000 0010 0001
  21           0x1111,// pwm[4] = 0x1111;  //0001 0001 0001 0001
  22           0x2245,// pwm[5] = 0x2245;  //0010 0010 0100 1001
  23           0x2525,// pwm[6] = 0x2525;  //0010 0101 0010 0101
  24           0x52aa,// pwm[7] = 0x52aa;  //0101 0010 1010 1010
  25           0x5555,// pwm[8] = 0x5555;  //0101 0101 0101 0101          
  26           0xad55,// pwm[9] = 0xad55;  //1010 1101 0101 0101
  27           0xdada,// pwm[10] = 0xdada; //1101 1010 1101 1010
  28           0xddb6,// pwm[11] = 0xddb6; //1101 1101 1011 0110
  29           0xeeee,// pwm[12] = 0xeeee; //1110 1110 1110 1110
  30           0xf7de,// pwm[13] = 0xf7de; //1111 0111 1101 1110
  31           0xfefe,// pwm[14] = 0xfefe; //1111 1110 1111 1110
  32          // 0xfffe,// pwm[15] = 0xfffe; //1111 1111 1111 1110
  33           0xffff};// pwm[15] = 0xffff; //1111 1111 1111 1111
  34          bdata unsigned char OldState,OtherState;
  35          unsigned int flag;
  36          void main(void)
  37          {       
  38   1              
  39   1              Initialize();
  40   1              State = 0x00;
  41   1              OldState = State;
  42   1              DirectionLeft = 0;
  43   1              DirectionRight = 0;
  44   1              OldSpeedLeft = SpeedLeft;
  45   1              OldSpeedRight = SpeedRight;
  46   1              SpeedLeft = 15;
  47   1              SpeedRight = 15;
  48   1      //      Delay(5000);
  49   1              
  50   1          Run();
  51   1              while(1)
  52   1       {
  53   2                              DirectionRight = 0;
  54   2                              DirectionLeft = 0;
  55   2                              Run();
C51 COMPILER V7.06   MAIN                                                                  04/26/2004 11:35:46 PAGE 2   

  56   2                              Run_at(12,Right);
  57   2                              Run_at(12,Left);
  58   2                              Delay(5000);
  59   2                              Stop();
  60   2      //                      Delay(500);
  61   2      //                      DirectionRight = 0;
  62   2      //                      DirectionLeft = 0;
  63   2      //                      Run();
  64   2      //                      Run_at(5,Right);
  65   2      //                      Run_at(5,Left);
  66   2                              Delay(5000);
  67   2      
  68   2                              DirectionRight = 1;
  69   2                              DirectionLeft = 1;
  70   2                              Run();
  71   2                              Run_at(10,Right);
  72   2                              Run_at(10,Left);
  73   2                              Delay(5000);
  74   2                              Stop();
  75   2                              Delay(5000);
  76   2      
  77   2      
  78   2       }
  79   1      
  80   1      }//end of main()
  81          
  82          
  83          
  84          
  85          
  86          void  Initialize (void)
  87          {
  88   1              P3 = 0xff;        /*speed-up pull-ups*/
  89   1              P1_6 = 0;
  90   1              
  91   1              P1 = 0xff;
  92   1              
  93   1      /* Timer0 Initialize  */
  94   1          TMOD = 0x01;
  95   1              TH0  = 0xfe;
  96   1          TL0  = 0xd4;
  97   1          ET0  = 0;
  98   1              TR0  = 0;
  99   1      /* Timer1 Initialize  */
 100   1      /* Timer2 Initialize  */
 101   1      
 102   1      /* Out0 Initialize  */
 103   1          
 104   1      /* Out1 Initialize  */
 105   1      
 106   1      /* ALL interrupt */
 107   1          EA  =  1;
 108   1      
 109   1      }
 110          
 111          
 112          void Delay(unsigned int time)  //time /ms
 113          {unsigned int i;
 114   1        register unsigned char j;
 115   1              time*=2;
 116   1               for (i=0;i<time;i++)
 117   1       {_nop_ ();
C51 COMPILER V7.06   MAIN                                                                  04/26/2004 11:35:46 PAGE 3   

 118   2        for (j=0;j<197;j++)
 119   2         {_nop_ ();
 120   3          _nop_ ();
 121   3         }
 122   2        }
 123   1      } 
 124          
 125          
 126          void Run()
 127          {   
 128   1              _nop_();
 129   1              _nop_();
 130   1              PWM_0 = pwm[SpeedLeft];
 131   1              PWM_1 = pwm[SpeedRight];
 132   1          DriveLeftMo1 = 0;
 133   1          DriveLeftMo2 =0;
 134   1              DriveRightMo1 =0;
 135   1              DriveRightMo2 =0;       
 136   1              ET0 = 1;  //Timer 0 open
 137   1          TR0 = 1; //Timer 0 begins
 138   1              _nop_();
 139   1              _nop_();
 140   1      }
 141          
 142          void Run_at(unsigned int Speed,bit Motor)
 143          {
 144   1       if(Motor==1)
 145   1              { OldSpeedLeft = SpeedLeft;
 146   2                SpeedLeft =Speed;
 147   2          }
 148   1        else
 149   1              { OldSpeedRight = SpeedRight;
 150   2                SpeedRight =Speed;
 151   2          }
 152   1        Run_in();     
 153   1      }
 154          
 155          void Run_in()
 156          {   if(SpeedLeft!=OldSpeedLeft)
 157   1            PWM_0 = pwm[SpeedLeft];
 158   1              if(SpeedRight!=OldSpeedRight)
 159   1            PWM_1 = pwm[SpeedRight];
 160   1          _nop_();
 161   1              _nop_();
 162   1      }
 163          
 164          
 165          void Stop()
 166          {
 167   1              DriveLeftMo1 = 0;
 168   1              DriveLeftMo2 = 0;
 169   1              DriveRightMo1 = 0;
 170   1              DriveRightMo2 = 0;
 171   1              TR0 = 0;
 172   1              ET0 = 0;
 173   1              TF0 = 0;
 174   1              _nop_();
 175   1              _nop_();
 176   1      }
 177          
 178          
 179          void SpeedUp(unsigned int Delta,bit Motor) 
C51 COMPILER V7.06   MAIN                                                                  04/26/2004 11:35:46 PAGE 4   

 180          {  int x,y;
 181   1              x = SpeedLeft + Delta;
 182   1              y = SpeedRight + Delta;
 183   1        if(Motor==1)
 184   1              { OldSpeedLeft = SpeedLeft;
 185   2                      if(x<=15)
 186   2                      {SpeedLeft +=Delta;}
 187   2          }
 188   1        else
 189   1              { OldSpeedRight = SpeedRight;
 190   2                      if(y<=15)
 191   2                      {SpeedRight +=Delta;    }
 192   2          }
 193   1              
 194   1              
 195   1        Run_in();
 196   1              _nop_();
 197   1              _nop_();
 198   1      }
 199          
 200          
 201          void SpeedDown(unsigned int Delta,bit Motor) 
 202          { 
 203   1          int x,y;
 204   1          
 205   1              x = SpeedLeft  - Delta;
 206   1              y = SpeedRight - Delta;
 207   1        if(Motor==1) 
 208   1              {OldSpeedLeft = SpeedLeft;
 209   2                      if(x>=1)
 210   2                  {SpeedLeft -=Delta;}
 211   2              }
 212   1        else 
 213   1              {OldSpeedRight = SpeedRight;
 214   2                      if(y>=1)
 215   2                      {SpeedRight -=Delta;}
 216   2          }
 217   1      
 218   1              Run_in();
 219   1               _nop_();
 220   1              _nop_();
 221   1      }
 222          


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


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

⌨️ 快捷键说明

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