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

📄 main.lst

📁 本文件用于智能云台电机控制和图像处理
💻 LST
📖 第 1 页 / 共 5 页
字号:
 398   4                                       }
 399   3                      
 400   3                                 cKeyCodeReceiveState=0; 
 401   3                                      while(!cKeyCodeReceiveState)  //读码等待
 402   3                                                                       {
 403   4                                                                               _nop_();
 404   4                                                                       }
 405   3                                                                       x=0;
 406   3                                                                       x=cKeyCodeReceive;
 407   3      
 408   3                                       while(!cKeyCodeReceiveState)  //读码等待
 409   3                                                                       {
 410   4                                                                               _nop_();
 411   4                                                                       }
 412   3                                                                       x+=(cKeyCodeReceive<<8);
 413   3                                                                       cKeyCodeReceiveState=0; //取走键盘码            
 414   3                                                               
 415   3                                                      WdtCls();
 416   3                                                      switch(x)
 417   3                                                                      {
 418   4                                                                      case    0x0200:           //光圈开
 419   4                                                                      TxdString(IRISOPEN);
 420   4                                                                      break;
 421   4                                                                      case    0x0400:           //光圈关
 422   4                                                                      TxdString(IRISCLOSE);
 423   4                                                                      break;  
 424   4                                                                      case    0x0100:           //焦距拉近
 425   4                                                                      TxdString(FOCUSNEAR);
 426   4                                                                      break;
 427   4                                                                      case    0x0080:           //焦距拉远
C51 COMPILER V8.01   MAIN                                                                  01/09/2009 17:53:57 PAGE 8   

 428   4                                                                      TxdString(FOCUSFAR);
 429   4                                                                      break;
 430   4                                                                      case    0x0040:           //视角宽
 431   4                                                                      TxdString(ZOOMWIDE);
 432   4                                                                      break;
 433   4                                                                      case    0x0020:           //视角窄
 434   4                                                                      TxdString(ZOOMTELE);
 435   4                                                                      break;
 436   4                                                                      case    0x0008:           //向上        
 437   4                                                                      TxdString(UP);
 438   4                                                                      break;
 439   4                                                                      case    0x0010:           //向下           
 440   4                                                                      TxdString(DOWN);
 441   4                                                                      break;
 442   4                                                                      case    0x0004:           //向左        
 443   4                                                                      TxdString(LEFT);
 444   4                                                                      break;
 445   4                                                                      case    0x0002:           //向右
 446   4                                                                      TxdString(RIGHT);
 447   4                                                                      break;  
 448   4                                                                      case    0:                //结束所有运动   标准的
 449   4                                                                      TxdString(STOP);
 450   4                                                                      break;
 451   4                                                                      default :break;
 452   4                                                                      }                       
 453   3                      
 454   3                                      }                                       //end case while rotate
 455   2                              break; //finish case 
 456   2      
 457   2               
 458   2      
 459   2      
 460   2              }   //switch cProtocol end
 461   1      
 462   1      }   //end main                   
*** WARNING C280 IN LINE 133 OF MAIN.C: 'y': unreferenced local variable
 463                                           
 464                  
 465                                                                          
 466                  
 467            
 468                  
 469                          
 470                          void receive_send(void) interrupt       SIO_VECTOR
 471                          {       
 472   1                         
 473   1                              switch((char)RI)
 474   1                              {
 475   2                              case 1:
 476   2                                      
 477   2                                      RI=0;
 478   2                                      cKeyCodeReceiveState=1; //有接收时就置位        然后在主程序中清除
 479   2                                      cKeyCodeReceive=SBUF;
 480   2                                      break;  
 481   2                                                              
 482   2                              case 0:
 483   2                                      TI=0;
 484   2                                      if(flagTxd==0xff)
 485   2                                      {
 486   3                                       SBUF=(unsigned char)(comTxd>>countTxd);
 487   3                                       countTxd+=8;
 488   3                                       if(countTxd==16)
C51 COMPILER V8.01   MAIN                                                                  01/09/2009 17:53:57 PAGE 9   

 489   3                                        flagTxd=0xee;
 490   3                                        }
 491   2                                        break;                                
 492   2                              }       
 493   1                      }
 494                  
 495                                  
 496                          void UpLim(void) interrupt IE0_VECTOR                   //上下方向
 497                          {
 498   1                       ET0=0;
 499   1                      }
 500                          
 501                          void DownLim(void) interrupt IE1_VECTOR
 502                                  
 503                          {
 504   1              ET0=1;
 505   1                      }
 506                  
 507                          void HorizonalOrigin(void) interrupt IE2_VECTOR                 //水平方向
 508                          {
 509   1                       T2Stop();
 510   1                       hAbsolutionPosition=0;
 511   1                      }                               
 512                          
 513                          
 514          
 515          void verticalmotor(void) interrupt TF0_VECTOR
 516          {
 517   1              static  unsigned char currentCount=0;
 518   1              static  unsigned char accDecCount=0;
 519   1              TL0=-250;
 520   1      
 521   1      //      if(!vSoftTimer0++)
 522   1              {       
 523   2                      switch(vRotationManner)
 524   2                      {
 525   3                      default:break;
 526   3                      case FREEMOTION:
 527   3                              {
 528   4                                      switch(vOrientFlag)
 529   4                                      {
 530   5                                      default:break;
 531   5                                      case 1:
 532   5                                              {
 533   6                                                      switch(vaccDecFlag)
 534   6                                                      {
 535   7                                                      default :break;
 536   7                                                      case ACCELERATION:
 537   7                                                              if(currentCount==15)
 538   7                                                                      currentCount=0;
 539   7                                                              else
 540   7                                                                      ++currentCount;
 541   7                                                              VMotorOut(SIN16[currentCount]) ;
 542   7                                                              ++vAbsolutionPosition;
 543   7                                                              if(accDecCount==15)
 544   7                                                              {
 545   8                                                                      vSoftTimer0=ACCTABLE[accDecCount]/250;
 546   8                                                                      accDecCount=0;
 547   8                                                                      vaccDecFlag=NORMALMOTION;
 548   8                                                              }
 549   7                                                              else
 550   7                                                              {
C51 COMPILER V8.01   MAIN                                                                  01/09/2009 17:53:57 PAGE 10  

 551   8                                                              vSoftTimer0=ACCTABLE[accDecCount]/250;
 552   8                                                                      ++accDecCount;
 553   8                                                              }                               
 554   7                                                              break;
 555   7                                                      case NORMALMOTION:
 556   7                                                              if(currentCount==15)
 557   7                                                                      currentCount=0;
 558   7                                                              else
 559   7                                                                      ++currentCount;
 560   7                                                              VMotorOut(SIN16[currentCount]) ;
 561   7                                                              ++vAbsolutionPosition;
 562   7                                                              vSoftTimer0=-5;
 563   7                                                              
 564   7                                                              break;
 565   7                                                              
 566   7                                                      }                       
 567   6                                                      break;
 568   6                                              }
 569   5                                      case -1:
 570   5                                              {
 571   6                                                      switch(vaccDecFlag)
 572   6                                                      {
 573   7                                                      default :break;
 574   7                                                      case ACCELERATION:
 575   7                                                              if(currentCount==0)
 576   7                                                                      currentCount=15;
 577   7                                                              else
 578   7                                                                      --currentCount;
 579   7                                                              VMotorOut(SIN16[currentCount]) ;
 580   7                                                              --vAbsolutionPosition;
 581   7                                                              if(accDecCount==15)
 582   7                                                              {
 583   8                                                                      vSoftTimer0=ACCTABLE[accDecCount]/250;
 584   8                                                                      accDecCount=0;
 585   8                                                                      vaccDecFlag=NORMALMOTION;
 586   8                                                              }
 587   7                                                              else
 588   7                                                              {
 589   8                                                                      vSoftTimer0=ACCTABLE[accDecCount]/250;
 590   8                                                                      ++accDecCount;                          
 591   8                                                              }
 592   7                                                              
 593   7                                                              break;
 594   7                                                      case NORMALMOTION:
 595   7                                                              if(currentCount==0)
 596   7                                                                      currentCount=15;
 597   7                                                              else
 598   7                                                                      --currentCount;
 599   7                                                              VMotorOut(SIN16[currentCount]) ;

⌨️ 快捷键说明

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