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

📄 stepmotor.lst

📁 全国机器人机械创新大赛的程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 506   3                              while(sw6==1);                  //原文件中是sw6==0
 507   3                              power_A=0;
 508   3      
 509   3                              flag_over=CS[1]-1;     //循环次数
 510   3                              row=CS[1];
 511   3                              
 512   3                              while(flag_over)
 513   3                              {
 514   4                                      direct_A=0;//反转下降
 515   4                                      power_A=1;
 516   4                                      Delays(6000);                          //原文件中是4200
 517   4                                      power_A=0;
 518   4      
 519   4                                      direct_B=1;//前脚前移,电机正转
 520   4                                      start_B();      
 521   4                                      while(sw1==1);
 522   4                                      stop_B();
 523   4                                      Delays(20);
 524   4                                      direct_B=0;
 525   4      
 526   4                                      direct_A=0;//反转下降
 527   4                                      power_A=1;
 528   4                                      while(sw7==1);
 529   4                                      power_A=0;
 530   4      
 531   4                                      direct_B=1;//前脚前移,电机正转
 532   4                                      start_B();
 533   4      //                              if(flag_over==1)
 534   4      //                              {
 535   4      //                                      Delays(150);                      //原程序中是while(150)
 536   4      //                              }
 537   4      //                              else
 538   4      //                              {
 539   4                                              while(sw4==1);
 540   4      //                              }
 541   4                                      stop_B();
 542   4                                      Delays(20);
 543   4                                      direct_B=0;                             
 544   4      
 545   4                                      direct_A=1;//正转主轴上升
 546   4                                      power_A=1;
 547   4                                      while(sw6==1);
 548   4                                      power_A=0;
 549   4      
C51 COMPILER V7.09   STEPMOTOR                                                             04/29/2007 19:22:53 PAGE 10  

 550   4                                      direct_B=0;//后脚前移,电机反转
 551   4                                      start_B();
 552   4                                      while(sw3==1);
 553   4                                      stop_B();
 554   4                                      Delays(20);
 555   4                                      direct_B=1;
 556   4                       row--;
 557   4                                      flag_over--;
 558   4                                      
 559   4                              }
 560   3      
 561   3                              direct_A=0;//反转下降                 最后一次循环开始                                                 
             - 
 562   3                              power_A=1;
 563   3                              Delays(6000);                          //原文件中是4200
 564   3                              power_A=0;
 565   3      
 566   3                              direct_B=1;//前脚前移,电机正转
 567   3                              start_B();      
 568   3                              while(sw1==1);
 569   3                              stop_B();
 570   3                              Delays(20);
 571   3                              direct_B=0;
 572   3      
 573   3                              direct_A=0;//反转下降
 574   3                              power_A=1;
 575   3                              while(sw7==1);
 576   3                              power_A=0;
 577   3      
 578   3                              direct_B=1;//前脚前移,电机正转
 579   3                              start_B();
 580   3                              Delays(600);                      //原程序中是while(150)
 581   3                              stop_B();
 582   3                              Delays(20);
 583   3                              direct_B=0;                             
 584   3      
 585   3                              direct_A=1;//正转主轴上升
 586   3                              power_A=1;
 587   3                              while(sw6==1);
 588   3                              power_A=0;
 589   3      
 590   3                              direct_B=0;//后脚前移,电机反转
 591   3                              start_B();
 592   3                              while(sw3==1);
 593   3                              stop_B();
 594   3                              Delays(20);
 595   3                              direct_B=1;                       //最后一次循环结束
 596   3      
 597   3      
 598   3                              while(wait_down==1);//等待按键
 599   3      
 600   3                              direct_A=0;//反转下降
 601   3                              power_A=1;
 602   3                              while(sw7==1);
 603   3                              power_A=0;
 604   3                      }
 605   2                      else;   
 606   2              }
 607   1      }
 608           /*********************************************************
 609                  定时器0中服程序
 610                  用于键盘参数设计与数码显示
C51 COMPILER V7.09   STEPMOTOR                                                             04/29/2007 19:22:53 PAGE 11  

 611                  如果有键按下,先记下来,下次扫描才执行
 612            **********************************************************/   
 613          
 614                  void timer0_int(void)  interrupt 1
 615                   {
 616   1                      TR0=0;
 617   1                  TH0=TH0_DATA;                       // 0xd4cc<-->2mS (0xa999<-->4mS)
 618   1                      TL0=TL0_DATA;
 619   1                      while(w==80)     //中断80次刷新显示一次
 620   1                   {
 621   2                     if(M==0)
 622   2                      {
 623   3                                  CONVBIT0(floor,0);//floor显示到了第几层
 624   3                                  CONVBIT0(row,4);  //row显示上了多少格
 625   3                                  CONVBIT1(0,0);
 626   3                                  CONVBIT1(0,4);
 627   3                       }
 628   2                     else
 629   2                               {};
 630   2                       w=0;
 631   2                       SF=~SF;
 632   2                    };           // end while(w==80)
 633   1      
 634   1                // 是否进入修改状态
 635   1                  if(M==0)
 636   1                    {
 637   2                               x=DATA0[k];
 638   2                               y=DATA1[k];
 639   2                     }
 640   1                  else
 641   1                    {
 642   2                               y=10;    //y=10对应的段码是黑码
 643   2                               if(k==R)
 644   2                          {
 645   3                            if(SF==0)
 646   3                               {
 647   4                                                 x=10;
 648   4                                                }
 649   3                            else
 650   3                                          {
 651   4                                           x=DATA0[k];
 652   4                                          }
 653   3                           }
 654   2                       else
 655   2                         x=DATA0[k];
 656   2                     }
 657   1                   w++;
 658   1      
 659   1                   SEND();
 660   1      
 661   1                       //键盘扫描
 662   1                       if(KEY==1)
 663   1                         {
 664   2                           if(k==TK)
 665   2                             {
 666   3                                switch(TK)
 667   3                                  {
 668   4                                     case 7:
 669   4                                       {
 670   5                                                     if(M==CSM)
 671   5                                                      {
 672   6                                                       M=1;
C51 COMPILER V7.09   STEPMOTOR                                                             04/29/2007 19:22:53 PAGE 12  

 673   6                                                      }
 674   5                                                     else
 675   5                                                     M++;
 676   5                                                     CONVBIT0(M,0);
 677   5                                                     CONVBIT0(CS[M-1],4);       
 678   5                                                    }
 679   4                                      break;  
 680   4                                      case 1:
 681   4                                                    {
 682   5                                                     if(R==7)
 683   5                                                     R=4;
 684   5                                                     else
 685   5                                                     R++;
 686   5                                                    }
 687   4                                                   break;
 688   4                                       case 2:
 689   4                                                    {
 690   5                                                     if(DATA0[R]==9)
 691   5                                                     DATA0[R]=0;
 692   5                                                     else
 693   5                                                     DATA0[R]++;
 694   5                                                    }
 695   4                                                   break;
 696   4                                       case 3:
 697   4                                                    {
 698   5                                                     if(DATA0[R]==0)
 699   5                                                     DATA0[R]=9;
 700   5                                                     else
 701   5                                                     DATA0[R]--;
 702   5                                                    }
 703   4                                                   break;
 704   4                                       case 4:
 705   4                                                    {
 706   5                                                     while(!M==0)
 707   5                                                      {
 708   6                                                                CS[M-1]=(DATA0[4]*1000+DATA0[5]*100+DATA0[6]*10+DATA0[7]);
 709   6                                                                j=(2*M-2);                       
 710   6                                                                EDATA[j]=(CS[M-1]/0x100); 
 711   6                                                                EDATA[j+1]=(CS[M-1]%0x100);
 712   6                                                                EA=0;                                            //写EEPROM,关中断
 713   6                                                                DEECON=0x00; 
 714   6                                                        DEEDAT=EDATA[j]; 
 715   6                                                                DEEADR=j; 
 716   6                                                        while((DEECON&0x80)==0); 
 717   6                                                        DEECON=DEECON&0x7F;
 718   6                                                                DEEDAT=EDATA[j+1];
 719   6                                                                DEEADR=(j+1);
 720   6                                                                while((DEECON&0x80)==0); 
 721   6                                                                EA=1;                                            //完成写操作,开中断
 722   6                                                        R=4;
 723   6                                                        M=0;
 724   6                                                      };
 725   5                                                    }
 726   4                                                   break;
 727   4                                   };         //end  switch(TK)
 728   3                                  TK=0x09;
 729   3                                }
 730   2                              else
 731   2                                {};  //end if(k==TK)
 732   2                            }
 733   1                        else
 734   1                              {
C51 COMPILER V7.09   STEPMOTOR                                                             04/29/2007 19:22:53 PAGE 13  

 735   2                              TK=k;
 736   2                              };      //end   if(KEY==1)
 737   1      
 738   1                        if(k==7)
 739   1                        k=0;
 740   1                        else
 741   1                        k++;
 742   1                        TR0=1;
 743   1                      }
 744                  
 745                  
 746                  


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1490    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     43       4
   IDATA SIZE       =     19    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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