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

📄 main.lst

📁 CS8955控制TV软件。用MCU做模拟电视的控制。
💻 LST
📖 第 1 页 / 共 3 页
字号:
                                  if ( DataOut[DvdRxIndex]&count )
                                 {
                                      mSetDvdIr();
                                 }   
                                 else
                                 {
                                     mClrDvdIr();
                                 }               
                            }
                             else
                             {
                                      if (DvdRxIndex<=1)
                                      {
                                              mSetDvdIr();
                                      }          
                                      else    
                                      { 
                                              mClrDvdIr();
                                      }          
                              }
                             while (!mReadDvdClk())
                             {
                                 if (mReadDvdCs())
                                 {
                                    goto _EINT2_EXIT;
                                 }    
                             }
                              // data in
                              DvdRxBuf[DvdRxIndex] |= (mReadDvdDat() ? count : 0);
                             while (mReadDvdClk())
                             {
                                 if (mReadDvdCs())
                                 {
                                    goto _EINT2_EXIT;
                                 }    
                             }
                          }      
                    }   
                    mClrDvdIr();
                      if (DvdChecksumOk())
                      {
                             for (count=1;count<DVD_STATUS_BYTE;count++)
                             {
                                 ShadowDvdInfo[count-1] = DvdRxBuf[count];
                             } 
                      #ifndef MARTIN_MCU_AND_DVD_PROTOCOL   //martin 14May08
                             for (count=0;count<CAR_INFO_BYTE;count++)
                             {
                                 if ((ShadowCarInfo[count]&0xf0)==0)
                                     ShadowCarInfo[count] = DvdRxBuf[DVD_STATUS_BYTE+count];
                             }
                      #endif     
                      }
              _EINT2_EXIT:            
C51 COMPILER V8.05a   MAIN                                                                 01/05/2009 15:57:47 PAGE 11  

                      if (DataOutValid>0)  
                      {
                              --DataOutValid;
                      }       
              
                              
                  }
                  EA = 1;
                       
              }
               #endif
 616          
 617          
 618          #ifdef  MARTIN_DVD_COMM_NOT_SUPPORT_INT
 619          void  McuDvdComm(void) large
 620          {
 621   1          BYTE i, count;
 622   1              
 623   1         // EA = 0;
 624   1       if (!mReadDvdCs())
 625   1          {
 626   2        //    fgDVDTVCMD=1;//02Aug08
 627   2            mClrDvdIr();
 628   2           TVRaCurrDataOut();
 629   2       //    bDataUpdateEn=1;    
 630   2              while (mReadDvdClk())
 631   2              {
 632   3                         if (mReadDvdCs())
 633   3                         {
 634   4                    //     fgDVDTVCMD=0; //02Aug08
 635   4                         mSetDvdIr();//02Aug08
 636   4                            goto _EINT2_EXIT;
 637   4                         }    
 638   3              }
 639   2              bTempIrKey=0xff;
 640   2              for (i=0;i<(COMDVD_BYTE);i++)
 641   2              {
 642   3                  DvdRxIndex = i;
 643   3                 DvdRxBuf[DvdRxIndex] = 0;
 644   3                  for (count=0x80;count>0;count>>=1)
 645   3                 {
 646   4                   if ( DataOut[DvdRxIndex]&count )     // data Out
 647   4                         {
 648   5                              mSetDvdIr();
 649   5                         }   
 650   4                         else
 651   4                         {
 652   5                             mClrDvdIr();
 653   5                         }               
 654   4                              
 655   4                     while (!mReadDvdClk())
 656   4                     {
 657   5                         if (mReadDvdCs())
 658   5                         {
 659   6                   //      fgDVDTVCMD=0; //02Aug08
 660   6                         mSetDvdIr();//02Aug08
 661   6                            goto _EINT2_EXIT;
 662   6                         }    
 663   5                     }
 664   4                      
 665   4                      DvdRxBuf[DvdRxIndex] |= (mReadDvdDat() ? count : 0);  // data in
 666   4                  
C51 COMPILER V8.05a   MAIN                                                                 01/05/2009 15:57:47 PAGE 12  

 667   4                
 668   4                 while (mReadDvdClk())
 669   4                     {
 670   5                         if (mReadDvdCs())
 671   5                         {
 672   6                    //     fgDVDTVCMD=0; //02Aug08
 673   6                         mSetDvdIr();//02Aug08
 674   6                            goto _EINT2_EXIT;
 675   6                         }    
 676   5                     }
 677   4                  }    
 678   3          
 679   3               /*  //27Aug08 test
 680   3               if(DvdChecksumOk())
 681   3               {
 682   3                
 683   3               for (count=1;count<COMDVD_BYTE;count++)
 684   3                             {
 685   3                                 ShadowDvdInfo[count-1] = DvdRxBuf[count];
 686   3                              //         if(DvdRxBuf[1] == 0x81)
 687   3                              //         _bIRKey0=IR_SYSTEM;
 688   3                             } 
 689   3               }
 690   3               else
 691   3               {
 692   3               ShadowDvdInfo[0]=0xff;
 693   3               }
 694   3               */
 695   3          } 
 696   2      
 697   2              
 698   2            mClrDvdIr();
 699   2               
 700   2               
 701   2      _EINT2_EXIT:   
 702   2              mSetDvdIr();//02Aug08
 703   2       //      fgChangeTV=0;//02Aug08
 704   2         //   fgDVDTVCMD=0; //02Aug08
 705   2        //   bDataUpdateEn=0;
 706   2              if (DataOutValid>0)  
 707   2              {
 708   3                      --DataOutValid;
 709   3              }       
 710   2      
 711   2             if(DvdChecksumOk())     //27Aug08
 712   2               {        
 713   3                 for (count=1;count<COMDVD_BYTE;count++)
 714   3                 {
 715   4                    ShadowDvdInfo[count-1] = DvdRxBuf[count];
 716   4                        } 
 717   3                   #ifdef OPEN_PRINTF
                           DRS232LogS("DVD Comm OK.\n");      
                        #endif           
 720   3               }
 721   2            else
 722   2                {
 723   3                   ShadowDvdInfo[0]=0xff;
 724   3                  #ifdef OPEN_PRINTF
                          DRS232LogS("DVD Comm Fail.\n");     
                         #endif                
 727   3                 }            
 728   2          }
C51 COMPILER V8.05a   MAIN                                                                 01/05/2009 15:57:47 PAGE 13  

 729   1       else  //080808
 730   1              {
 731   2                 mSetDvdIr(); //080808
 732   2              }
 733   1              
 734   1        //  EA = 1;
 735   1      }
 736          
 737          #endif
 738          //*****************************************************************************************
 739          //                                    Main Entrance
 740          //*****************************************************************************************
 741          void main(void)
 742          {       
 743   1        
 744   1             CS8955_SEL = 0x80;   // ALE disable
 745   1              EA = 0;         //enable all interrupt  
 746   1              vInitCPU();  //27Aug08  (ON);   
 747   1      
 748   1             vInitSys();   //martin 12May08   
 749   1      
 750   1         
 751   1              while(1)
 752   1              {  
 753   2      
 754   2              /////*************   communication for dvd      ***************************//////         
 755   2      
 756   2                  #ifdef MARTIN_DVD_COMM_NOT_SUPPORT_INT
 757   2              //       if((!fgDVDTVCMD)/*&&(!fgChangeTV)*/)   //02Aug08     
 758   2                         McuDvdComm(); 
 759   2                        #endif
 760   2            ///****************************************************************//////
 761   2                        
 762   2          ////************************   TV search state      ************************////      
 763   2                      
 764   2                      if (_bSearchState>0)
 765   2                      {
 766   3                         vTVSearch(_fgSearchDir);             
 767   3                      }               
 768   2           ////*****************************************************************////
 769   2      
 770   2          /////************************  tasks  **********************************////
 771   2                      
 772   2                      if (bTimer20ms)
 773   2                      { 
 774   3                            TaskProc();
 775   3                              if (_bRemoteTimer>0)
 776   3                              --_bRemoteTimer;
 777   3                              bTimer20ms = 0; 
 778   3      
 779   3                            #ifdef MARTIN_TEST_CHANNNEL_NUMBER_SHOW
 780   3                                 vFreAFCAdjLoop();
 781   3                              #else             
                                          if(fgAFCADJCnt !=  0x00)
                                            {
                                                fgAFCADJCnt--;
                                             vFreAFCAdj(); //02Aug08
                                             }
                                      #endif
 788   3                              
 789   3                    #ifdef MARTIN_TUNER_XF6A_PAL_M_NOT_SYNC
 790   3                       if((fgTunerType == TV_TYPE_XF6A) &&(_bSearchState == S_STATE_IDLE ))
C51 COMPILER V8.05a   MAIN                                                                 01/05/2009 15:57:47 PAGE 14  

 791   3                              {
 792   4                             vPalMBugAdj();  //17Sep08
 793   4                              }
 794   3                      #endif
 795   3                      
 796   3                         #if 0 //#ifdef OPEN_PRINTF                   
                                   if(_bSearchState == S_STATE_IDLE)  
                                       {
                                   if(bReadAdcCnt < 0xf0)
                                      {
                                      bReadAdcCnt++;
                                      }
                              
                                  if(bReadAdcCnt == 0xf0)
                                    {
                                      bReadAdcCnt=0x00;
                                         bTvAdcValue=bTV_ADC_Read();
                                          Delay1ms(30);
                                        
                                        DRS232LogS("TV ADC VAULE: .\n");      
                                      DRS232LogB(bTvAdcValue,bTvAdcValue,bTvAdcValue,0xff);  
                                               }
                                       }              
                                    #endif
 815   3                }     
 816   2             ///****************************************************************////                  
 817   2           }
 818   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1374    ----
   CONSTANT SIZE    =    159    ----
   XDATA SIZE       =     71      51
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =     25    ----
   BIT SIZE         =      5       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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