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

📄 slave.lst

📁 全国电子大赛智能小车赛题
💻 LST
字号:
C51 COMPILER V7.06   SLAVE                                                                 12/12/2008 21:09:44 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE SLAVE
OBJECT MODULE PLACED IN slave.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE slave.c DEBUG OBJECTEXTEND

stmt level    source

   1          #include<reg51.h>
   2          #include<intrins.h>
   3          #define uchar   unsigned char
   4          #define uint    unsigned int
   5          
   6          uchar flag;
   7          uint speed;
   8          uchar moterflag;
   9          uchar a=0;
  10          
  11          sbit moter=P2^3;
  12          sbit left=P2^1;
  13          sbit right=P2^0;
  14          sbit moter2=P2^2;
  15          
  16          
  17          
  18          
  19          void goon()
  20          {
  21   1              if(moterflag%15)moter=1;//全速前进
  22   1                      else moter=0;
  23   1              left=0;
  24   1              right=0;//不转向
  25   1      }
  26          
  27          void turnleft()
  28          {
  29   1              if(moterflag%7) moter=1;//减速前进*/
  30   1                      else moter=0;
  31   1                      left=1;
  32   1                      right=0;//转向  
  33   1      }
  34          
  35          void turnleftl()
  36          {
  37   1              if(moterflag%10)moter=1;
  38   1                      else moter=0;//减速前进
  39   1                      left=1;
  40   1                      right=0;//转向
  41   1      }
  42          
  43          
  44          
  45          void turnright()
  46          {
  47   1              if(moterflag%7)moter=1;
  48   1                      else moter=0;//减速前进*/
  49   1                      left=0;
  50   1                      right=1;//转向
  51   1      }
  52          
  53          void turnrightl()
  54          {
  55   1              if(moterflag%10)moter=1;
C51 COMPILER V7.06   SLAVE                                                                 12/12/2008 21:09:44 PAGE 2   

  56   1                      else moter=0;//减速前进
  57   1                      left=0;
  58   1                      right=1;//转向
  59   1      }
  60          void stop()
  61          {
  62   1              P2=0x00;
  63   1      //      EA=0;
  64   1      //      TI=0;
  65   1      //      SBUF=0x88;      
  66   1      //      while(!TI);
  67   1      //      TI=0;
  68   1      //      EA=1;
  69   1              
  70   1      }
  71          
  72          
  73          void serchlight()//寻光
  74          {
  75   1                      if(P0&0x07==0x07)//没到黑线就寻光,否则停车
  76   1                      {
  77   2                              switch(0x1f&P1)
  78   2                              {
  79   3                                      case 0x01:turnleft();
  80   3                                              break;
  81   3                                      case 0x02:turnleftl();
  82   3                                              break;
  83   3                                      case 0x04:goon();
  84   3                                              break;
  85   3                                      case 0x08:turnrightl();
  86   3                                              break;
  87   3                                      case 0x10:turnright();
  88   3                                              break;
  89   3                                      case 0x0d:stop();//
  90   3                                              break;
  91   3                                      case 0x01f:stop();//
  92   3                                              break;
  93   3                                      default:goon();
  94   3                                              break;
  95   3                              }       
  96   2                      }
  97   1              else 
  98   1              {
  99   2                      ES=0;
 100   2                      TI=0;
 101   2                      SBUF=0x88;
 102   2                      while(!TI);
 103   2                      TI=0;
 104   2                      ES=1;
 105   2                      stop();
 106   2                 }
 107   1      }
 108          
 109          
 110          void serchline()        //寻线
 111          {
 112   1              uchar i;
 113   1              P0=0xff;
 114   1              for(i=10;i==0,i--;);
 115   1      
 116   1                      switch(0x07&P0)
 117   1                      {
C51 COMPILER V7.06   SLAVE                                                                 12/12/2008 21:09:44 PAGE 3   

 118   2                              case 0x04:
 119   2                              {
 120   3                                      turnrightl();
 121   3                                      a=0x07&P0;
 122   3                              }
 123   2                      break;  
 124   2                              case 0x06:
 125   2                              {
 126   3                                      turnrightl();
 127   3                                      a=0x07&P0;
 128   3                              }
 129   2                      break;
 130   2                              case 0x05:
 131   2                              {
 132   3                                      goon();
 133   3                              }
 134   2                      break;
 135   2                              case 0x01:
 136   2                              {
 137   3                                      turnleftl();
 138   3                                      a=0x07&P0;
 139   3                              }
 140   2                      break;
 141   2                              case 0x03:
 142   2                              {
 143   3                                      turnleftl();
 144   3                                      a=0x07&P0;
 145   3                              }
 146   2      
 147   2                                      break;  
 148   2                              case 0x00:goon();
 149   2                      break;
 150   2      
 151   2      
 152   2                              case 0x07:
 153   2                              {
 154   3                                      if(a==0x04)turnright();
 155   3                                      if(a==0x06)turnrightl();
 156   3                                      if(a==0x03)turnleft();
 157   3                                      if(a==0x01)turnleftl();
 158   3                                      if(a==0)goon();
 159   3                              }
 160   2                              
 161   2                      break;
 162   2                                      
 163   2                              default:goon();
 164   2                      break;  
 165   2                      }
 166   1      }
 167          
 168          
 169          
 170          void supsound() //超声波
 171          {
 172   1              //      goon();
 173   1                      uchar i;
 174   1      //              INT1=0;
 175   1              //      goon();
 176   1              //      INT1=1;
 177   1              //      i=0;
 178   1              //      for(i;i<20;i++);
 179   1              //      ET0=1;
C51 COMPILER V7.06   SLAVE                                                                 12/12/2008 21:09:44 PAGE 4   

 180   1              //      i=0;
 181   1              //      for(i;i<255;i++);
 182   1              //      ET0=0;
 183   1              //      P1=0xff;
 184   1                      i=0;
 185   1                      for(i;i<10;i++);
 186   1                      if(0x1f&P1)flag=0x44;
 187   1                              else turnrightl();
 188   1      }
 189          
 190          
 191          
 192          
 193          
 194          void main()
 195          {
 196   1              TMOD=0x21;
 197   1      
 198   1              TH0=(1000)/256;
 199   1              TL0=(1000)%256;
 200   1              TH1=0xfd;
 201   1              TL1=0xfd;
 202   1      
 203   1      //      SM0=1;
 204   1      //      SM1=0;
 205   1      
 206   1              SCON=0x50;
 207   1              PCON=0;
 208   1              IT0=1;
 209   1              PS=1;
 210   1      //      PT0=1;
 211   1      //      PX0=1;
 212   1              EA=1;
 213   1      //      ET1=1;
 214   1              ET0=1;
 215   1              ES=1;
 216   1      //      EX0=1;
 217   1      
 218   1              TI=0;
 219   1              RI=0;
 220   1      
 221   1              TR1=1;
 222   1              TR0=1;
 223   1      
 224   1              flag=0x11;
 225   1              moter=0;
 226   1              moter2=0;
 227   1              speed=60000;
 228   1              //a=0x05;
 229   1              while(1)
 230   1              {
 231   2              //      uchar x;
 232   2                      //for(x=500;x>0;x--)goon();
 233   2                      switch(flag)
 234   2                      {
 235   3                              case 0x11: serchline();
 236   3                                      break;
 237   3                              case 0x22: supsound();
 238   3                                      break;
 239   3                              case 0x44:serchlight();
 240   3                                      break;
 241   3                              case 0x88: stop();
C51 COMPILER V7.06   SLAVE                                                                 12/12/2008 21:09:44 PAGE 5   

 242   3                                      break;
 243   3                      //      default:goon();
 244   3                      //              break;
 245   3                      }
 246   2              }       
 247   1      }
 248          
 249          
 250          void timer0int() interrupt 1
 251          {
 252   1              TR0=0;
 253   1              TH0=(speed)/256;
 254   1              TL0=(speed)%256;
 255   1              moterflag++;
 256   1              TR0=1;
 257   1      
 258   1      }
 259          
 260          void    int0() interrupt 0
 261          {
 262   1              //      turnleft();     
 263   1              _nop_();
 264   1              _nop_();
 265   1              _nop_();
 266   1              _nop_();
 267   1              _nop_();
 268   1              _nop_();
 269   1              _nop_();
 270   1      //      _nop_();
 271   1              if(INT0)turnleft();
 272   1              
 273   1      }
 274          
 275          void uartint() interrupt 4
 276          {
 277   1      //      RI=0;
 278   1              uchar i;
 279   1                      ES=0;
 280   1              flag=SBUF;
 281   1              for(i=10;i>0;i--);
 282   1              
 283   1      
 284   1      //      SBUF=flag;
 285   1              //SBUF=0x55;
 286   1      //      while(!TI);
 287   1              TI=0;
 288   1              RI=0;
 289   1              ES=1;
 290   1      }
 291          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    481    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      5    ----
   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 + -