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

📄 motor.lst

📁 keil c 文件 @@##%%…… &……源代码程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 325   1      
 326   1      }
 327          
 328          void Lmotor(float L){
 329   1      
 330   1       int  i,j;
 331   1          if (L>0){
 332   2          L297_R_CW=1;
 333   2              }else {
 334   2              L297_R_CW=0;
 335   2              }
 336   1          j=abs(STEP*L);
 337   1              for (i=0;i<j;i++){
 338   2           L297_R_CLK=0;
 339   2               msec(SPEED);
 340   2               L297_R_CLK=1;
 341   2               msec(SPEED);
 342   2              }
 343   1      } 
 344           
 345          
 346          void clear_led(){
 347   1       wcom_8279(0xd0);
 348   1      }         
 349          
 350          
 351          
 352          void initL297(){
 353   1      
 354   1          L297_L_RST=0;
 355   1              msec(50);
 356   1              L297_L_RST=1;
 357   1              L297_L_CTL=1;
 358   1              L297_L_EN=1;
 359   1              L297_L_HALF=0;   
 360   1      
 361   1          L297_R_RST=0;
 362   1              msec(50);
 363   1              L297_R_RST=1;
 364   1              L297_R_CTL=1;
 365   1              L297_R_EN=1;
C51 COMPILER V7.06   MOTOR                                                                 09/13/2005 19:28:53 PAGE 7   

 366   1              L297_R_HALF=0;   
 367   1      
 368   1      
 369   1      }
 370          
 371          void test(){
 372   1        uchar i;
 373   1        initL297();
 374   1          for (i=0;i<200;i++){
 375   2           L297_R_CLK=0;
 376   2               msec(SPEED);
 377   2               L297_R_CLK=1;
 378   2               msec(SPEED);
 379   2              }
 380   1      
 381   1               for (i=0;i<200;i++){
 382   2           L297_L_CLK=0;
 383   2               msec(SPEED);
 384   2               L297_L_CLK=1;
 385   2               msec(SPEED);
 386   2              }
 387   1      }
 388          
 389          float LL(float  x,  float  y){
 390   1      
 391   1         int r1;
 392   1         r1=sqrt((15+x)*(15+x)+(115-y)*(115-y));
 393   1         return r1;
 394   1      
 395   1      } 
 396          
 397          float LR(float x, float  y){
 398   1      
 399   1          int r2;
 400   1          r2=sqrt((95-x)*(95-x)+(115-y)*(115-y));
 401   1          return r2;
 402   1      
 403   1      }
 404          
 405          
 406          void move( float x0, float y0, float x1 ,float y1){
 407   1      
 408   1          float Ll0,Lr0,Ll1,Lr1;
 409   1      
 410   1          
 411   1              Ll0=LL(x0,y0);
 412   1              Lr0=LR(x0,y0);
 413   1      
 414   1      
 415   1      
 416   1              Ll1=LL(x1,y1);
 417   1              Lr1=LR(x1,y1);
 418   1      
 419   1              Lmotor(Ll1-Ll0);
 420   1              Rmotor(Lr1-Lr0);
 421   1      
 422   1      
 423   1              
 424   1      }
 425          
 426          void move_xy(){
 427   1                 
C51 COMPILER V7.06   MOTOR                                                                 09/13/2005 19:28:53 PAGE 8   

 428   1      
 429   1             move(x0,y0,mx,my);
 430   1                 x0=mx;
 431   1                 y0=my;
 432   1      
 433   1      }
 434          
 435          
 436          void drawcircle(){
 437   1      
 438   1      
 439   1          mmx=cx0;
 440   1              mmy=cy0+cr;
 441   1              move(x0,y0,mmx,mmy);
 442   1          for (i=1;i<360;i++){
 443   2            
 444   2                mx=cx0+28*(sin(3.1415926*i/180));
 445   2                my=cy0+25*(cos(3.1415926*i/180));
 446   2                move(mmx,mmy,mx,my);
 447   2                display1(mx);
 448   2                display2(my);
 449   2                mmx=mx;
 450   2                mmy=my;
 451   2            
 452   2      
 453   2      }
 454   1      
 455   1      }
 456          bit int_flag;
 457          
 458          
 459          
 460              
 461          
 462          main() {
 463   1      
 464   1      
 465   1      
 466   1        IT1=1;
 467   1        IE=0X84;
 468   1        init8279();
 469   1              display1(1234);
 470   1              display2(5678);
 471   1              msec(1500);
 472   1              clear_led();
 473   1              for(i=1;i<3;i++)
 474   1               {for(j=1;j<5;j++) {
 475   3           display_xy(j,i,2);
 476   3           msec(100);
 477   3               clear_led();
 478   3              }
 479   2              }
 480   1          display1(0000);
 481   1          display2(0000);
 482   1          initL297();
 483   1          
 484   1          test();
 485   1          while (1) {
 486   2          i=0;
 487   2          
 488   2              while (!int_flag) ;
 489   2              int_flag=0;
C51 COMPILER V7.06   MOTOR                                                                 09/13/2005 19:28:53 PAGE 9   

 490   2              k=keyin();
 491   2          
 492   2              if (k==14) {
 493   3             test();
 494   3              }
 495   2              
 496   2              
 497   2              
 498   2              
 499   2              if (k==12) {
 500   3          cx0=40;
 501   3              cy0=50;
 502   3              cr=25;
 503   3          drawcircle();
 504   3      
 505   3         }
 506   2              
 507   2         if (k==13) {
 508   3      
 509   3          move(0,0,20,20);
 510   3              move(20,20,30,50);
 511   3              move(30,50,60,60);
 512   3      
 513   3         }
 514   2         
 515   2         if (k==10) { 
 516   3                  display1(0000);
 517   3                      msec(1000);
 518   3                      clear_led();
 519   3                  display1(0000);
 520   3                      msec(1000);
 521   3                      clear_led();
 522   3                  display1(0000);
 523   3                      msec(1000);
 524   3                      clear_led();
 525   3                      eol=0;
 526   3                  while (!eol) {
 527   4                while (!int_flag);
 528   4                    int_flag=0;
 529   4                    k=keyin();
 530   4                          if (k<10)
 531   4                          mx=mx*10+k;
 532   4                              display1(mx);
 533   4                        if (k==15) eol=1;
 534   4                 }
 535   3      
 536   3      
 537   3                  eol=0;
 538   3                  while (!eol) {
 539   4                while (!int_flag);
 540   4                    int_flag=0;
 541   4                    k=keyin();
 542   4                          if (k<10)
 543   4                          my=my*10+k;
 544   4                              display2(my);
 545   4                        if (k==15) eol=1;
 546   4                 }
 547   3      
 548   3               move_xy();
 549   3               }
 550   2      
 551   2        if (k==11) { 
C51 COMPILER V7.06   MOTOR                                                                 09/13/2005 19:28:53 PAGE 10  

 552   3                  display1(8888);
 553   3                      msec(1000);
 554   3                      clear_led();
 555   3                  display2(8888);
 556   3                      msec(1000);
 557   3                      clear_led();
 558   3                  display1(8888);
 559   3                      msec(1000);
 560   3                      clear_led();
 561   3                  eol=0;
 562   3      
 563   3                  while (!eol) {
 564   4                while (!int_flag);
 565   4                    int_flag=0;
 566   4                    k=keyin();
 567   4                          if (k<10)
 568   4                          cx0=cx0*10+k;
 569   4                              display1(cx0);
 570   4                        if (k==15) eol=1;
 571   4                 }
 572   3       
 573   3                  display1(7777);
 574   3                      msec(1000);
 575   3                      clear_led();
 576   3                  display2(7777);
 577   3                      msec(1000);
 578   3                      clear_led();
 579   3                  display1(7777);
 580   3                      msec(1000);
 581   3                      clear_led();
 582   3                  eol=0;               
 583   3      
 584   3                  while (!eol) {
 585   4                while (!int_flag);
 586   4                    int_flag=0;
 587   4                    k=keyin();
 588   4                          if (k<10)
 589   4                          cy0=cy0*10+k;
 590   4                              display2(cy0);
 591   4                        if (k==15) eol=1;
 592   4                 }            
 593   3                                      
 594   3                  display1(6666);
 595   3                      msec(1000);
 596   3                      clear_led();
 597   3                  display2(6666);
 598   3                      msec(1000);
 599   3                      clear_led();
 600   3                  display1(6666);
 601   3                      msec(1000);
 602   3                      clear_led();
 603   3                  eol=0;
 604   3      
 605   3      
 606   3                      
 607   3                      while (!eol) {
 608   4                while (!int_flag);
 609   4                    int_flag=0;
 610   4                    k=keyin();
 611   4                          if (k<10)
 612   4                          cr=cr*10+k;
 613   4                              display2(cr);
C51 COMPILER V7.06   MOTOR                                                                 09/13/2005 19:28:53 PAGE 11  

 614   4                        if (k==15) eol=1;
 615   4                 }
 616   3             
 617   3                  
 618   3                  drawcircle();
 619   3      
 620   3               }
 621   2      
 622   2      
 623   2        
 624   2              
 625   2      
 626   2      }
 627   1      
 628   1         
 629   1      while (1);
 630   1      
 631   1      
 632   1      }
 633          
 634          
 635          
 636          void int1() interrupt 2{
 637   1       int_flag=1;
 638   1       }
 639          
 640          
 641          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   3000    ----
   CONSTANT SIZE    =     12    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     30      94
   IDATA SIZE       =   ----    ----
   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 + -