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

📄 duojiceshi.lst

📁 六足机器人程序
💻 LST
字号:
C51 COMPILER V7.06   DUOJICESHI                                                            06/06/2011 15:56:51 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE DUOJICESHI
OBJECT MODULE PLACED IN duojiceshi.OBJ
COMPILER INVOKED BY: D:\软件\工具\C51\BIN\C51.EXE duojiceshi.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
   2          #include <intrins.h>
   3          sbit PWM=P1^0;    //定义LED端口
   4          sbit PWM1=P1^1;
   5          sbit PWM2=P1^2;
   6          int  a;   //定时器中断计数
   7          int m,n,o; //前进标志参数
   8          int flag  ;  //动作执行标志
   9          int i,j,k; //后退标志参数
  10          int e,f,g; //右转标志参数
  11          int flag1,flag2;   // 执行次数标志
  12          
  13          void Init_Timer1(void)
  14          {
  15   1       TMOD |= 0x10;    //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响 
  16   1       TH1=0xFF;      //给定初值,这里使用定时器最大值从0开始计数一直到65535溢出
  17   1       TL1=0xA3;
  18   1       EA=1;            //总中断打开
  19   1       ET1=1;           //定时器中断打开
  20   1       TR1=1;           //定时器开关打开   传感器控制端定义
  21   1      IT0=1;       //下降沿触发
  22   1         EX0=1;
  23   1      }
  24          
  25          void delay(unsigned int t)
  26          
  27          {
  28   1      while(--t);
  29   1      
  30   1      
  31   1      }
  32          void zuotuiqian ()       //定义左腿往前迈   同时中间腿撑起
  33          {
  34   1             if (a<7)
  35   1                 {
  36   2             PWM2=1;
  37   2             PWM=1;
  38   2                 }
  39   1                 else if (a>7&&a<20)
  40   1                 {
  41   2                 PWM2=0;
  42   2             PWM=1;   
  43   2                 }
  44   1             else if (a>20&&a<200)
  45   1                 {
  46   2             PWM2=0;
  47   2                 PWM=0;
  48   2                 }
  49   1             else if (a==200)
  50   1                 {
  51   2             a=0;
  52   2                 m++;
  53   2             }
  54   1      
  55   1      
C51 COMPILER V7.06   DUOJICESHI                                                            06/06/2011 15:56:51 PAGE 2   

  56   1            
  57   1      }
  58          
  59          
  60          void youtuiqian()          //定义右腿往前迈 同时中间腿撑起
  61          {
  62   1                if (a<5)
  63   1                        {
  64   2                PWM=1;
  65   2                PWM1=1;
  66   2                        }
  67   1                else if (a>5&&a<14)
  68   1                        {
  69   2                PWM=0;
  70   2                        PWM1=1;
  71   2                        }
  72   1                        else if (a>14&&a<200)
  73   1                        {
  74   2                        PWM=0;
  75   2                        PWM1=0;
  76   2                        }
  77   1                else if (a==200)
  78   1                        {
  79   2                a=0;
  80   2                        n++;
  81   2                        }
  82   1      }
  83          
  84          
  85          void qianmai()           //定义左右腿同时往前迈  实现前进的动作
  86          {
  87   1           
  88   1                if (a<5) 
  89   1                        {
  90   2                PWM1=1;
  91   2                        PWM2=1;
  92   2                        }
  93   1                        else if (a>5&&a<14)
  94   1                        {
  95   2                        PWM1=0;
  96   2                        PWM2=1;
  97   2                        }
  98   1                        else if (a>14&&a<200)
  99   1                        {
 100   2                        PWM1=0;
 101   2                        PWM2=0;
 102   2                        }
 103   1                else if (a==200)
 104   1                {
 105   2                        a=0;
 106   2                o++;
 107   2      
 108   2                        }
 109   1      
 110   1      }
 111          
 112          
 113          void qianjin()              //  前进动作整合  
 114          {
 115   1      
 116   1          m=0;
 117   1               n=0;
C51 COMPILER V7.06   DUOJICESHI                                                            06/06/2011 15:56:51 PAGE 3   

 118   1               o=0;
 119   1               flag++;
 120   1         while(1)
 121   1        {  
 122   2         
 123   2            if(m<30)
 124   2            zuotuiqian();
 125   2            else 
 126   2            {      
 127   3              if (n<30)
 128   3              youtuiqian();
 129   3                      else
 130   3                  { 
 131   4                   if (o<30)
 132   4                   qianmai();
 133   4                     else 
 134   4                    break;
 135   4                   }
 136   3            }
 137   2      
 138   2         }
 139   1      }
 140          
 141          
 142          void zuotuihou()           // 定义左腿往后迈 同时中间腿撑起
 143          {
 144   1      
 145   1             if (a<14 ) 
 146   1                 {
 147   2             PWM2=1;
 148   2                 PWM=1;
 149   2                 }
 150   1                 else if (a>14&&a<20)
 151   1                 {
 152   2                 PWM2=0;
 153   2                 PWM=1;
 154   2                 }
 155   1             else if (a>20&&a<200)
 156   1                 {
 157   2             PWM=0;
 158   2                 PWM2=0;
 159   2                 }
 160   1             else if (a==200)
 161   1                 {
 162   2             a=0;
 163   2             i++;
 164   2             }
 165   1                  
 166   1      }
 167          
 168          
 169          void youtuihou()              //定义右腿往后迈  同时中间腿撑起
 170          {
 171   1          
 172   1                if (a<5)
 173   1                        {
 174   2                        PWM1=1;
 175   2                PWM=1;
 176   2                        }
 177   1                        else if (a>5&&a<7)
 178   1                        {
 179   2                        PWM=0;
C51 COMPILER V7.06   DUOJICESHI                                                            06/06/2011 15:56:51 PAGE 4   

 180   2                        PWM1=1;
 181   2                        }
 182   1                else if (a>7&&a<200)
 183   1                        {
 184   2                PWM=0;
 185   2                        PWM1=0;
 186   2                        }
 187   1                else if (a==200)
 188   1                {
 189   2                        a=0;
 190   2                        j++;
 191   2                        }
 192   1      
 193   1      }
 194          
 195          void houmai()                 //定义左右腿同时往前迈   实现后退的动作
 196          {
 197   1      
 198   1               
 199   1             if (a<7)
 200   1             {
 201   2                 PWM2=1;
 202   2                 PWM1=1;
 203   2                 }
 204   1                 else if (a>7&&a<14)
 205   1                 {
 206   2                 PWM2=0;
 207   2                 PWM1=1;
 208   2                 }
 209   1             else if (a>14&&a<200)
 210   1                 {
 211   2             PWM2=0;
 212   2             PWM1=0;
 213   2                 }
 214   1             else if (a==200)
 215   1            { 
 216   2                a=0;
 217   2                k++;
 218   2      
 219   2                }
 220   1      
 221   1      }
 222          
 223          
 224          void houtui()                 //后退动作整合
 225          {
 226   1      
 227   1          i=0;
 228   1              j=0;
 229   1               k=0;
 230   1                        flag1++;
 231   1         while(1)
 232   1        {  
 233   2         
 234   2            if(i<30)
 235   2           zuotuihou();
 236   2            else 
 237   2            {      
 238   3              if (j<30)
 239   3              youtuihou();
 240   3                      else
 241   3                  { 
C51 COMPILER V7.06   DUOJICESHI                                                            06/06/2011 15:56:51 PAGE 5   

 242   4                   if (k<30)
 243   4                   houmai();
 244   4                     else 
 245   4                    break;
 246   4                   }
 247   3            }
 248   2      
 249   2         }
 250   1      
 251   1      }
 252          
 253          void youzhuan1()        // 左腿往前迈   中间腿撑起
 254          {
 255   1        
 256   1           if (a<7)
 257   1                 {
 258   2             PWM2=1;
 259   2             PWM=1;
 260   2                 }
 261   1                 else if (a>7&&a<20)
 262   1                 {
 263   2                 PWM2=0;
 264   2             PWM=1;   
 265   2                 }
 266   1             else if (a>20&&a<200)
 267   1                 {
 268   2             PWM2=0;
 269   2                 PWM=0;
 270   2                 }
 271   1             else if (a==200)
 272   1                 {
 273   2             a=0;
 274   2                 e++;
 275   2             }
 276   1      
 277   1      }
 278          
 279          void youzhuan2()         //右腿往后迈  同时中间腿撑起
 280          {
 281   1             if (a<5)
 282   1                        {
 283   2                        PWM1=1;
 284   2                PWM=1;
 285   2                        }
 286   1                        else if (a>5&&a<7)
 287   1                        {
 288   2                        PWM=0;
 289   2                        PWM1=1;
 290   2                        }
 291   1                else if (a>7&&a<200)
 292   1                        {
 293   2                PWM=0;
 294   2                        PWM1=0;
 295   2                        }
 296   1                else if (a==200)
 297   1                {
 298   2                        a=0;
 299   2                        f++;
 300   2                        }
 301   1      }
 302          
 303          
C51 COMPILER V7.06   DUOJICESHI                                                            06/06/2011 15:56:51 PAGE 6   

 304          void youzhuan3()
 305          {
 306   1           
 307   1                if (a<14) 
 308   1                        {
 309   2                PWM1=1;
 310   2                        PWM2=1;
 311   2                        }
 312   1                else if (a<200)
 313   1                {
 314   2                        PWM1=0;
 315   2                PWM2=0;
 316   2                        }
 317   1                else if (a==200)
 318   1                {
 319   2                        a=0;
 320   2                        g++;
 321   2                        }
 322   1      
 323   1      }
 324          
 325          void youzhuan()
 326          {
 327   1      
 328   1             e=0;
 329   1                 f=0;
 330   1                 g=0;
 331   1                                flag2++;
 332   1      
 333   1         while(1)
 334   1        {  
 335   2         
 336   2            if(e<30)
 337   2          youzhuan1();
 338   2            else 
 339   2            {      
 340   3              if (f<30)
 341   3              youzhuan2();
 342   3                      else
 343   3                  { 
 344   4                   if (g<30)
 345   4                   youzhuan3();
 346   4                     else 
 347   4                    break;
 348   4                   }
 349   3            }
 350   2      
 351   2         }
 352   1      
 353   1      }
 354          
 355          
 356          
 357          
 358          
 359          
 360          void main()
 361          
 362          {
 363   1      
 364   1       
 365   1      Init_Timer1();
C51 COMPILER V7.06   DUOJICESHI                                                            06/06/2011 15:56:51 PAGE 7   

 366   1      
 367   1      while(1)
 368   1      {
 369   2      if(flag<8)
 370   2      qianjin();
 371   2      else 
 372   2      {
 373   3      if(flag1<4)
 374   3      houtui();
 375   3      else
 376   3      {
 377   4      flag=0;
 378   4      flag1=0;
 379   4      }
 380   3      
 381   3      
 382   3      }
 383   2      
 384   2      
 385   2      }
 386   1      
 387   1      
 388   1      
 389   1      }
 390          
 391          
 392          void Timer1_isr(void) interrupt 3 using 1
 393          {
 394   1       TH1=0xFF;               //中赂持

⌨️ 快捷键说明

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