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

📄 test.lst

📁 this file is for keil motor
💻 LST
📖 第 1 页 / 共 2 页
字号:
 344                  unsigned  int    data   data_w;
 345                  unsigned  int    data   data_r;
 346                  unsigned  int    data   deta;
 347                  unsigned  int    data   cycle;
 348                  unsigned  int    data   flag;
 349                  unsigned  char   data   count;
 350                  LIGHT=0;
 351           
 352                  Go2Zero();
 353                  Go2Lumda(5270);
 354                  
 355                  EA=0;
 356                  deta=0xe0;
 357                  XBYTE[ADDR_0832_R]=0XE0;
 358                  XBYTE[ADDR_0832_W]=0XE0;
 359                  data_w=1;
 360                  data_r=0;
 361                  count=0;
 362                
 363                   
C51 COMPILER V7.06   TEST                                                                  12/19/2006 15:55:33 PAGE 7   

 364                  
 365                  for (count=0;count<5;count++)
 366                  {
 367                  LIGHT=!LIGHT;
 368                  for (cycle=0;cycle<60;cycle++){}
 369                  LIGHT=!LIGHT;
 370                  for (cycle=0;cycle<5000;cycle++){}
 371                  }
 372                   
 373                  while (1)
 374                  {    
 375                           
 376                          XBYTE[ADDR_CHANNEL_SEL]=0x00;     
 377                           
 378                          for (cycle=0;cycle<400;cycle++){} 
 379                          
 380                          REG_BIT|=0X20;
 381                          XBYTE[AD_START]=0x10;    
 382                          while(REG_BIT&0X20)              
 383                          {
 384                                  REG_BIT=XBYTE[ADDR_INTNUM];
 385                                  
 386                          }     
 387                          res_high=XBYTE[RES_HIGH_BYTE];
 388                          data_w=res_high;
 389                          data_w=_irol_(data_w,8);
 390                          res_low =XBYTE[RES_LOW_BYTE];
 391                          data_w  +=res_low;
 392          
 393                          
 394                    
 395                          
 396                          XBYTE[ADDR_CHANNEL_SEL]=0x02;     
 397                          for(cycle=0;cycle<400;cycle++);    
 398                          
 399                          REG_BIT|=0X20; 
 400                          
 401                          XBYTE[AD_START]=0x10;     
 402                          while(REG_BIT&0X20  ){REG_BIT=XBYTE[ADDR_INTNUM];}       
 403                          res_high=XBYTE[RES_HIGH_BYTE];
 404                          data_r=res_high;
 405                          data_r=_irol_(data_r,8);
 406                          res_low =XBYTE[RES_LOW_BYTE];
 407                          data_r  +=res_low;
 408                  
 409                          flag = data_r*10/data_w;    
 410                          if  (flag>13)
 411                          {       
 412                                  break ;
 413                          }  
 414                          else
 415                          {
 416                                  if (count==0)
 417                                  {
 418                                     count=1;
 419                                     deta=0XE0*flag*0.9;
 420                                     deta/=10;
 421                                     
 422                                  }
 423                                  else
 424                                  {
 425                                  deta--;
C51 COMPILER V7.06   TEST                                                                  12/19/2006 15:55:33 PAGE 8   

 426                                  }
 427                                  if (deta <2 )  return  0; 
 428                                  XBYTE[ADDR_0832_W]=deta;
 429                                  LIGHT=!LIGHT;
 430                                  for (cycle=0;cycle<60;cycle++){}
 431                                  LIGHT=!LIGHT;
 432                                  for (cycle=0;cycle<5000;cycle++){}
 433                          }
 434                  for (cycle=0;cycle<20;cycle++){}       
 435                  }       
 436                  
 437            
 438                   cycle=0;
 439                   
 440                  return   1;
 441          }
 442          */
 443          void    EnableTimer0(unsigned char Enable  )
 444          {
 445   1            if  (Enable)
 446   1                {
 447   2                        TMOD &=  0XF0;  // clear four low bit
 448   2                        TMOD |=  0X01;  //mode  1  16 bit timer , manual reload 
 449   2                        TF0   =  0   ;
 450   2                        TH0   =  0X00;
 451   2                        TL0   =  0X00;
 452   2                TR0   =  1   ;
 453   2                
 454   2                }
 455   1                else
 456   1                {
 457   2                TF0  =  0    ;
 458   2                        TH0  =  0X00 ;
 459   2                        TL0  =  0X00 ;
 460   2                TR0  =  0    ; 
 461   2                }  
 462   1      } 
 463          void     WriteIns( char  COM)
 464          {
 465   1        XBYTE[ADDR_INS_WR]=COM;
 466   1      }
 467          void    WriteData(char  DAT)
 468          {
 469   1        XBYTE[ADDR_DATA_WR]=DAT;
 470   1      }
 471          /*
 472          char    ReadData()
 473          { 
 474            unsigned  char  data  ret; 
 475            ReadLcdStatus();
 476            ret=XBYTE[ADDR_DATA_RD];
 477            return  ret;
 478          } 
 479          */     
 480          void    SetCursorPos(unsigned   int    addr)   
 481          {
 482   1             WriteIns(0x0A);
 483   1             WriteData(addr&0x00ff);
 484   1             WriteIns(0x0B);
 485   1             WriteData(addr>>8);
 486   1      }      
 487          void INIT_LCD_GRAPH() /* 首先设置一个文本的显示方式*/
C51 COMPILER V7.06   TEST                                                                  12/19/2006 15:55:33 PAGE 9   

 488            {
 489   1         WriteIns(0x00);
 490   1         WriteData(0x32);  /*开显示,主方式,文本方式,光标闪烁*/
 491   1         WriteIns(0x01);
 492   1         WriteData(0x77);  /*   8*8 点阵  */ 
 493   1         WriteIns(0x02);
 494   1         WriteData(0x13);  /*一行显示占用40个字节,这样我们就可以实现整个画面的整体移动  */       
 495   1         WriteIns(0x03);
 496   1         WriteData(0x50);  /* 有效的行数为80行    */
 497   1         WriteIns(0x08);
 498   1         WriteData(0x00); 
 499   1         WriteIns(0x09);
 500   1         WriteData(0x00);  /*显示缓冲区起始地址设置为0X0000*/
 501   1        }  
 502            void   ClearAllGraph()
 503          {
 504   1          unsigned  int   data   index;
 505   1          WriteIns(0x0A);
 506   1          WriteData(0x00);
 507   1          WriteIns(0x0B);
 508   1          WriteData(0x00);
 509   1          WriteIns(0x0C);
 510   1          for (index=0;index<0x640;index++)   /* 4k的显示RAM  */
 511   1          {
 512   2          WriteData(0x00);
 513   2          }  
 514   1          WriteIns(0x0A);
 515   1          WriteData(0x00);
 516   1          WriteIns(0x0B);
 517   1          WriteData(0x00);              /*初始化光标的起始地址*/
 518   1      }
 519          
 520           INIT_8279()
 521          {
 522   1        unsigned  char  data  flag=0;
 523   1           
 524   1       
 525   1         
 526   1        /*主要就是三个方面的内容一个是分频的系数,一个是键盘的方式,一个是总清的命令*/ 
 527   1       
 528   1          
 529   1        XBYTE[INS_8279]=0x01;
 530   1        XBYTE[INS_8279]=0x2a;
 531   1        XBYTE[INS_8279]=0xd1;
 532   1         
 533   1        do
 534   1        {
 535   2          flag=XBYTE[INS_8279];
 536   2          flag&=0x80;
 537   2        } while  (flag) ;
 538   1        XBYTE[INS_8279]=0x40; 
 539   1      }
 540          void   Error () 
 541          {
 542   1          while (1) ;
 543   1      }
 544          main()
 545          {
 546   1          unsigned   int  cycle;
 547   1          unsigned   int   step;
 548   1          unsigned   char  TimeCount ;
 549   1          unsigned   int   SampleValue ;
C51 COMPILER V7.06   TEST                                                                  12/19/2006 15:55:33 PAGE 10  

 550   1              unsigned   int   OldSampleValue ;
 551   1          unsigned   int   NewSampleValue ;
 552   1          unsigned   int xdata  Buffer[1000]  ;  
 553   1          unsigned   char  IntNum         ;
 554   1         
 555   1          cycle=1;
 556   1          step=1;
 557   1          
 558   1          //***************************************************
 559   1          IntNum  = ADDR_INT ;
 560   1          while(IntNum)
 561   1         {
 562   2            PULSE=!PULSE;
 563   2            for (cycle=0;cycle<150;cycle++){}
 564   2            PULSE=!PULSE;                        /*there  is  integrity  more than  interest*/
 565   2           
 566   2          /* for(cycle=0;cycle<100;cycle++){}*/  /*the  frequency  has  been  doubled  WHY*/
 567   2            
 568   2          
 569   2            for(cycle=0;cycle<6000;cycle++){}     /*KEIL code  efficiency is better  than  franklin*/
 570   2            IntNum  = ADDR_INT ;
 571   2            IntNum &= 0x08     ;
 572   2             
 573   2         } 
 574   1         //***************************************************** 
 575   1        
 576   1          G_FilterPos    = FILTER_BLANK ; 
 577   1          GAIN_W_L8      = 0Xff;
 578   1          GAIN_W_H4      = 0Xff;  
 579   1          GAIN_R_L8      = 0Xff;
 580   1          GAIN_R_H4      = 0Xff;  
 581   1          GAIN_UPDATE    = 0X00;  
 582   1          G_MOTOR_PARA[ 0 ] = 0  ;
 583   1          G_MOTOR_PARA[ 1 ] = 2.0  ;
 584   1          G_MOTOR_PARA[ 2 ] = 0  ;
 585   1         
 586   1           G_StepOffset   = ZERO_OFFSET ;   
 587   1          //XBYTE[0X7FFF] =0XEE  ;
 588   1          Go2Zero();
 589   1         // Go2Lumda(7000);
 590   1         // Go2Lumda(9000)   ; 
 591   1          //SelectFilter(0x00);
 592   1           MaxSampleValue = 0;
 593   1      
 594   1          Count = 0;
 595   1          EnableTimer0 ( 0x01)       ;
 596   1           
 597   1              SelectFilter( FILTER_BLANK); 
 598   1             
 599   1          /*
 600   1          for  (  step = 0 ; step < 300 ; step ++ )
 601   1          {
 602   1               LIGHT_PULSE_UP         ;
 603   1               Delay (5)     ;
 604   1                   LIGHT_PULSE_DOWN  ;
 605   1               Delay (6)     ;
 606   1             
 607   1            for(cycle=0;cycle<6000;cycle++){}  
 608   1            
 609   1          }
 610   1         */
 611   1           
C51 COMPILER V7.06   TEST                                                                  12/19/2006 15:55:33 PAGE 11  

 612   1          
 613   1              while( step  < 8)
 614   1          {
 615   2             LIGHT_PULSE_UP         ;
 616   2             Delay (5)     ;
 617   2                 LIGHT_PULSE_DOWN  ;
 618   2             Delay (6)     ;
 619   2           step++;
 620   2             
 621   2            
 622   2           
 623   2           OldSampleValue   =   Sample0()      ;    
 624   2            
 625   2           for ( TimeCount = 0 ; TimeCount <4; TimeCount ++ )
 626   2               {
 627   3                                while ( !TF0 )
 628   3                                {}
 629   3                                TF0   =  0    ;
 630   3                                TR0   =  0X00 ;
 631   3                                TH0   =  0XB1 ;
 632   3                                TL0   =  0XDF ;
 633   3                                TR0   =  1    ;
 634   3                   }
 635   2          }  
 636   1              step  = 0 ; 
 637   1          while(1 )
 638   1          {  
 639   2                 SampleValue   =   Sample0()    ;
 640   2            // if ( SampleValue < OldSampleValue * 0.9 ) break ;
 641   2            // if ( OldSampleValue < SampleValue * 0.9 ) break ;
 642   2                 LIGHT_PULSE_UP        ;
 643   2                 Delay (5)  ;
 644   2                 LIGHT_PULSE_DOWN           ;
 645   2             Delay (6)              ;
 646   2             step++;
 647   2             Buffer[step]= SampleValue ;
 648   2            
 649   2              
 650   2                // PULSE=!PULSE;
 651   2                // for (cycle=0;cycle< (200 ) ;cycle++){}
 652   2            // PULSE=!PULSE;
 653   2                         
 654   2            
 655   2                
 656   2           for ( TimeCount = 0 ; TimeCount <4; TimeCount ++ )
 657   2               {
 658   3                                while ( !TF0 )
 659   3                                {}
 660   3                                TF0   =  0    ;
 661   3                                TR0   =  0X00 ;
 662   3                                TH0   =  0XB1 ;
 663   3                                TL0   =  0XDF ;
 664   3                                TR0   =  1    ;
 665   3                   }
 666   2              OldSampleValue =  SampleValue ;          
 667   2          }
 668   1           
 669   1           
 670   1         
 671   1           //  Go2Zero()       ;
 672   1           //  
 673   1               
C51 COMPILER V7.06   TEST                                                                  12/19/2006 15:55:33 PAGE 12  

 674   1       
 675   1         
 676   1         
 677   1      }
*** WARNING C280 IN LINE 551 OF ..\..\..\..\..\CPROGRAM\LAPTOPUV\基础子程序\MOTOR\TEST.C: 'NewSampleValue': unreferenced
             - local variable
 678          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1745    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    2009
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     21      17
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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