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

📄 mainokuse.lst

📁 用电键控制步进电机朝各个方向做曲线
💻 LST
📖 第 1 页 / 共 3 页
字号:
 484                  send[1]=i/10%10;
 485                  send[2]=i/100%10;
 486                  send[3]=i/1000%10;
 487                  send[4]=13;
C51 COMPILER V7.06   MAINOKUSE                                                             09/01/2006 15:13:01 PAGE 9   

 488                  send[5]=10;
 489                  send[6]=0;
 490                  Display(send);
 491                  if(flag_trace<97)return ;
 492                  while(ad549()<gate)RunB(10,pull); //右
 493                  for(i=0;i<searth;i++)while(ad549()>gate)RunA(1,pull);//上
 494                  if(i>=searth) //没找到
 495                  {
 496                          for(i=0;i<searth*2;i++)while(ad549()>gate)RunA(1,push); //下
 497                          if(i>=searth*2) //没找到
 498                          {
 499                                  i1=i;
 500                                  for(i=0;i<searth*2;i++)RunA(1,pull);    //退回去,上
 501                                  flag_trace--;
 502                                  Go_lu(); //走左上
 503                          }
 504                          else Go_rd(); //找到,走右下
 505                  }
 506                  else 
 507                  {
 508                          Go_ru();//找到,走右上
 509                          flag_trace=99;
 510                  }
 511                  //*/
 512          //}
 513          
 514          
 515          /*
 516          void Go_rd(bit dir) //右下
 517          {
 518          /*      int i,i1;
 519                  i=ad549();
 520                  send[0]=i%10;
 521                  send[1]=i/10%10;
 522                  send[2]=i/100%10;
 523                  send[3]=i/1000%10;
 524                  send[4]=13;
 525                  send[5]=10;
 526                  send[6]=0;
 527                  Display(send);
 528                  if(flag_trace<97)return ;
 529          
 530                  if(dir==0)
 531                  {
 532                          RunB(10,pull);
 533                          if(ad549()<gate)//正常
 534                          {
 535                                  Go_ru(1);
 536                                  flag_trace=99;
 537                          }
 538                          else //没找到
 539                          {
 540                                  RunB(20,pull); //zhaohuilailiao
 541                                  if(ad549()<gate)//正常
 542                                  {
 543                                          Go_ru(0);
 544                                          flag_trace=99;  
 545                                  }
 546                                  else //没找到
 547                                  {
 548                                          RunB(20,pull); //tuihuiqu       
 549                                          Go_rd(0);
C51 COMPILER V7.06   MAINOKUSE                                                             09/01/2006 15:13:01 PAGE 10  

 550                                          flag_trace--;
 551                                  }
 552                          }
 553              }
 554          }
 555          
 556          /*      
 557                  int i,i1;
 558                  //flag_trace=trace_rd;
 559                  i=ad549();
 560                  send[0]=i%10;
 561                  send[1]=i/10%10;
 562                  send[2]=i/100%10;
 563                  send[3]=i/1000%10;
 564                  send[4]=13;
 565                  send[5]=10;
 566                  send[6]=0;
 567                  Display(send);
 568                  if(flag_trace<97)return ;
 569                  while(ad549()<gate)RunB(10,pull); //右
 570                  for(i=0;i<searth;i++)while(ad549()>gate)RunA(1,push);//下
 571                  if(i>=searth) //没找到
 572                  {
 573                          for(i=0;i<searth*2;i++)while(ad549()>gate)RunA(1,pull); //上
 574                          if(i>=searth*2) //没找到
 575                          {
 576                                  i1=i;
 577                                  for(i=0;i<searth*2;i++)RunA(1,push);    //退回去,下
 578                          flag_trace--;           
 579                                  Go_ld(); //走左下
 580                          }
 581                          else Go_ru(); //找到,走右上
 582                  }
 583                  else 
 584                  {
 585                          Go_rd();//找到,走继续右下
 586                          flag_trace=99;
 587                  }
 588                  //*/
 589          //}
 590          /*
 591          void Go_ld(bit dir) //左下
 592          {
 593                  int i,i1;
 594                  //flag_trace=trace_ld;
 595                  i=ad549();
 596                  send[0]=i%10;
 597                  send[1]=i/10%10;
 598                  send[2]=i/100%10;
 599                  send[3]=i/1000%10;
 600                  send[4]=13;
 601                  send[5]=10;
 602                  send[6]=0;
 603                  Display(send);
 604                  if(flag_trace<97)return ;
 605                  while(ad549()<gate)RunB(10,push); //右左
 606                  for(i=0;i<searth;i++)while(ad549()>gate)RunA(1,push);//下
 607                  if(i>=searth) //没找到
 608                  {
 609                          for(i=0;i<searth*2;i++)while(ad549()>gate)RunA(1,push); //上
 610                          if(i>=searth*2) //没找到
 611                          {
C51 COMPILER V7.06   MAINOKUSE                                                             09/01/2006 15:13:01 PAGE 11  

 612                                  i1=i;
 613                                  for(i=0;i<searth*2;i++)RunA(1,pull);    //退回去,下
 614                                  flag_trace--;
 615                                  Go_rd(); //走右下
 616                          }
 617                          else Go_ru(); //找到,走右上
 618                  }
 619                  else 
 620                  {
 621                          Go_ld();//找到,走左下
 622                          flag_trace=99;
 623                  }
 624          }
 625          
 626          void Go_lu(bit dir) //左上
 627          {
 628                  int i,i1;
 629                  //flag_trace=trace_lu;
 630                  i=ad549();
 631                  send[0]=i%10;
 632                  send[1]=i/10%10;
 633                  send[2]=i/100%10;
 634                  send[3]=i/1000%10;
 635                  send[4]=13;
 636                  send[5]=10;
 637                  send[6]=0;
 638                  Display(send);
 639                  if(flag_trace<97)return ;
 640                  while(ad549()<gate)RunB(10,push); //左
 641                  for(i=0;i<searth;i++)while(ad549()>gate)RunA(1,pull);//上
 642                  if(i>=searth) //没找到
 643                  {
 644                          for(i=0;i<searth*2;i++)while(ad549()>gate)RunA(1,push); //下
 645                          if(i>=searth*2) //没找到
 646                          {
 647                                  i1=i;
 648                                  for(i=0;i<searth*2;i++)RunA(1,pull);    //退回去,上
 649                                  flag_trace--;
 650                                  Go_ru(); //走右上
 651                          }
 652                          else Go_rd(); //找到,走
 653                  }
 654                  else 
 655                  {
 656                          Go_lu();//找到,走左上
 657                          flag_trace=99;
 658                  }
 659          }
 660          //*/
 661          
 662          unsigned int ad549(void)
 663          {
 664   1              unsigned char AD1=0;
 665   1              unsigned char i;
 666   1              unsigned char AD2=0x04;
 667   1      
 668   1              CS = 1;
 669   1              CLK = 0;
 670   1              DOUT= 1; /* Initialize for Read */
 671   1      
 672   1              CS = 0; /* Enable and Drive out Bit9 */
 673   1              for(i=0;i<8;i++)
C51 COMPILER V7.06   MAINOKUSE                                                             09/01/2006 15:13:01 PAGE 12  

 674   1              {
 675   2                      AD1 = AD1<<1;
 676   2                      DIN=(bit)(AD2&0x80);
 677   2                      if( DOUT ) AD1 = AD1|0x01; 
 678   2                      AD2<<=1;
 679   2                      CLK=1;
 680   2                      _nop_();
 681   2                      _nop_();
 682   2                      CLK=0; /* failing edge drive out bit */
 683   2                      _nop_();
 684   2                      _nop_();
 685   2              } 
 686   1              //AD1 = AD1>>1;
 687   1              
 688   1              CS = 1;
 689   1              for(i=0;i<20;i++); /* delay >21us */
 690   1              return ((unsigned int)(AD1));
 691   1      }
 692          
 693          
 694          int Disp()
 695          {
 696   1      
 697   1              send[0]=(long)ylast%10;
 698   1              send[1]=(long)ylast/10%10;
 699   1              send[2]=(long)ylast/100%10;
 700   1              send[3]=(long)ylast/1000%10;
 701   1              send[4]=(long)xlast%10;
 702   1              send[5]=(long)xlast/10%10;
 703   1              send[6]=(long)xlast/100%10;
 704   1              Display(send);
 705   1      }
 706          
 707          
 708          
 709          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    674    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =     93       2
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
   EDATA SIZE       =   ----    ----
   HDATA SIZE       =   ----    ----
   XDATA CONST SIZE =   ----    ----
   FAR CONST SIZE   =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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