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

📄 stepmotor.lst

📁 全国机器人机械创新大赛的程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 248          void main(void)
 249          {
 250   1              P0M1=0xFF;
 251   1              P0M2=0x00;      //P0口做寻迹传感器接口,仅为输入
 252   1              P1M1=0x0c;
 253   1              P1M2=0xf3;      //P1.0、P1.1(2个继电器吸合控制口,对应电机PWM输出口分别为OCA和OCD)设为推挽输出
 254   1          P2M1=0x89;
 255   1          P2M2=0x76;  //P2.3(READKEY)、P2.0(CAPTURE_b)和P2.7(CAPTURE_a)仅输入,其它推挽输出。
 256   1              IP0H=IP0H&0xFD;
 257   1              IP0=IP0&0xFD;   //将定时器0中断优先级降最低
 258   1              init();
 259   1              InitCCU();
 260   1          rEEPROM();
 261   1          SPI_ini();
 262   1              TIME_ini();
 263   1          IP_ini();
 264   1              TCR20=0x86;
 265   1              while(1)
 266   1              {   
 267   2                      power_A=0;
 268   2                      stop_B();
 269   2                      //while((wait==1)&&(wait_down==1)&&(A_up==1)&&(A_down==1)&&(B_up==1)&&(B_down==1));
 270   2                      //while((wait==1)&&(wait_down==1));//等待按键
 271   2                      //while(wait_down==1);
 272   2      
 273   2      /*              if(A_up==0)
 274   2                      {
 275   2                              direct_A=1;//正转主轴上升
 276   2                              power_A=1;
 277   2                              while(A_up==0);
 278   2                              power_A=0;
 279   2                      }
 280   2                      else if(A_down==0)
 281   2                      {
 282   2                              direct_A=0;//正转主轴上升
 283   2                              power_A=1;
 284   2                              while(A_down==0);
 285   2                              power_A=0;
 286   2                      }
 287   2                      else if(B_up==0)
 288   2                      {
 289   2                              direct_B=1;//前脚前移,电机正转
 290   2                              start_B();      
 291   2                              while(B_up==0);
 292   2                              direct_B=0;
 293   2                              Delays(15);
 294   2                              stop_B();
 295   2                      }
 296   2                      else if(B_down==0)
 297   2                      {
 298   2                              direct_B=0;//后脚前移,电机反转
 299   2                              start_B();
 300   2                              while(B_down==0);
 301   2                              direct_B=1;
C51 COMPILER V7.09   STEPMOTOR                                                             04/29/2007 19:22:53 PAGE 6   

 302   2                              Delays(15);
 303   2                              stop_B();
 304   2                      }         */
 305   2      
 306   2                      if(A_up==0)                                          
 307   2                      {
 308   3                              direct_A=1;//正转主轴上升
 309   3                              power_A=1;
 310   3                              while((A_up==0)&&(sw6==1));
 311   3                              power_A=0;
 312   3                              //Delays(400);                              
 313   3                              while(A_up==0)
 314   3                              {
 315   4                                      if(A_down==0)
 316   4                                              power_A=1;
 317   4                                      while((A_up==0)&&(A_down==0)&&(sw5==1));
 318   4                                      power_A=0;
 319   4                                      //Delays(400);                        
 320   4                                      break;
 321   4                              }               
 322   3                      }
 323   2                      else if(A_down==0)
 324   2                      {
 325   3                              direct_A=0;//正转主轴上升
 326   3                              power_A=1;
 327   3                              while((A_down==0)&&(sw7==1));
 328   3                              power_A=0;
 329   3                              //Delays(400);                        
 330   3                      }
 331   2                      else if(B_up==0)
 332   2                      {
 333   3                              direct_B=1;//前脚前移,电机正转
 334   3                              start_B();      
 335   3                              while((B_up==0)&&(sw1==1)&&(sw4==1));
 336   3                              stop_B();
 337   3                              //Delays(20);
 338   3                          direct_B=0;
 339   3                              //Delays(200);                       
 340   3                      }
 341   2                      else if(B_down==0)
 342   2                      {
 343   3                              direct_B=0;//后脚前移,电机反转
 344   3                              start_B();
 345   3      //                      while((B_down==0)&&(sw2==1)&&(sw3==1));
 346   3                              while((B_down==0)&&(sw3==1));
 347   3                              stop_B();
 348   3                      //      Delays(20);
 349   3                              direct_B=1;
 350   3                      //      Delays(200);                    
 351   3                      }
 352   2                      else if(wait==0)
 353   2                      {
 354   3                              /************************************************/
 355   3                              //启动上楼 
 356   3                              direct_A=1;//正转主轴上升
 357   3                              power_A=1;
 358   3                              Delays(3000);
 359   3                              power_A=0;
 360   3                              
 361   3                              while(wait==1);//等待按键
 362   3              
 363   3                              direct_B=1;//前脚前移,电机正转
C51 COMPILER V7.09   STEPMOTOR                                                             04/29/2007 19:22:53 PAGE 7   

 364   3                              start_B();      
 365   3                              while(sw1==1);
 366   3                              stop_B();
 367   3                              Delays(20);
 368   3                              direct_B=0;
 369   3                              //power_B=0;
 370   3              
 371   3                              direct_A=0;//反转下降
 372   3                              power_A=1;
 373   3                              while(sw7==1);
 374   3                              power_A=0;
 375   3              
 376   3                              direct_B=0;//后脚前移,电机反转
 377   3                              start_B();
 378   3                              while(sw2==1);
 379   3                              stop_B();
 380   3                              Delays(20);
 381   3                              direct_B=1;
 382   3                              //启动结束     
 383   3      /*
 384   3                              flag_over=1;
 385   3              
 386   3                              while(flag_over)
 387   3                              {
 388   3                                      direct_A=1;//正转主轴上升
 389   3                                      power_A=1;
 390   3                                      while(sw6==1);
 391   3                                      power_A=0;
 392   3              
 393   3                                      direct_B=1;//前脚前移,电机正转
 394   3                                      start_B();
 395   3                                      while((sw1==1)&&(sw4==1));
 396   3                                      if(sw4==0)
 397   3                                              flag_over=0;
 398   3                                      direct_B=0;
 399   3                                      Delays(15);
 400   3                                      stop_B();
 401   3                                      if(flag_over==0)
 402   3                                              break;  
 403   3              
 404   3                                      direct_A=0;//反转下降
 405   3                                      power_A=1;
 406   3                                      while(sw7==1);
 407   3                                      power_A=0;
 408   3              
 409   3                                      direct_B=0;//后脚前移,电机反转
 410   3                                      start_B();
 411   3                                      while(sw2==1);
 412   3                                      direct_B=1;
 413   3                                      Delays(15);
 414   3                                      stop_B();
 415   3                              }
 416   3      */
 417   3                              flag_over=CS[0]-1;                                     
 418   3              
 419   3                              while(flag_over)
 420   3                              {
 421   4                                      direct_A=1;//正转主轴上升
 422   4                                      power_A=1;
 423   4                                      while(sw6==1);
 424   4                                      power_A=0;
 425   4              
C51 COMPILER V7.09   STEPMOTOR                                                             04/29/2007 19:22:53 PAGE 8   

 426   4                                      direct_B=1;//前脚前移,电机正转
 427   4                                      start_B();
 428   4                                      while(sw1==1);
 429   4                                      stop_B();
 430   4                                      Delays(20);
 431   4                                      direct_B=0;
 432   4      
 433   4                                      direct_A=0;//反转下降
 434   4                                      power_A=1;
 435   4                                      while(sw7==1);
 436   4                                      power_A=0;
 437   4              
 438   4                                      direct_B=0;//后脚前移,电机反转
 439   4                                      start_B();
 440   4                                      while(sw2==1);
 441   4                                      stop_B();
 442   4                                      Delays(20);
 443   4                                      direct_B=1;
 444   4                                      
 445   4                                      flag_over--;
 446   4                                      row++;
 447   4                              }    
 448   3                              direct_A=1;//正转主轴上升
 449   3                              power_A=1;
 450   3                              while(sw5==1);
 451   3                              power_A=0;
 452   3              
 453   3                              while(wait==1);//等待按键
 454   3                              
 455   3                              direct_B=1;//前脚前移,电机正转
 456   3                              start_B();
 457   3                              while(sw4==1);
 458   3                              stop_B();
 459   3                              Delays(20);
 460   3                              direct_B=0;
 461   3      
 462   3                              direct_A=0;//反转下降
 463   3                              power_A=1;
 464   3                              while(sw7==1);
 465   3                              power_A=0;
 466   3      
 467   3                              direct_B=0;//后脚前移,电机反转
 468   3                              start_B();
 469   3                              while(sw3==1);
 470   3                              stop_B();
 471   3                              Delays(20);
 472   3                              direct_B=1;
 473   3                      }
 474   2                      else if(wait_down==0)
 475   2                      {
 476   3                              direct_B=1;//前脚前移,电机正转
 477   3                              start_B();      
 478   3                              while(sw4==1);
 479   3                              stop_B();
 480   3                              Delays(20);
 481   3                              direct_B=0;
 482   3                              
 483   3                              direct_A=1;//正转主轴上升
 484   3                              power_A=1;
 485   3                              while(sw5==1);
 486   3                              power_A=0;
 487   3      
C51 COMPILER V7.09   STEPMOTOR                                                             04/29/2007 19:22:53 PAGE 9   

 488   3      //                      while(wait_down==1);//等待按键
 489   3      /*                      
 490   3                              direct_A=0;//反转下降
 491   3                              power_A=1;
 492   3                              while(sw6==0);
 493   3                              power_A=0;
 494   3      */
 495   3                              direct_B=0;//后脚前移,电机反转
 496   3                              start_B();
 497   3                              while(sw3==1);
 498   3                              stop_B();
 499   3                              Delays(20);
 500   3                              direct_B=1;
 501   3      
 502   3                              while(wait_down==1);//等待按键
 503   3      
 504   3                              direct_A=0;//反转下降
 505   3                              power_A=1;

⌨️ 快捷键说明

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