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

📄 main.lst

📁 CS8955控制TV软件。用MCU做模拟电视的控制。
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V8.05a   MAIN                                                                 01/05/2009 15:57:47 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN .\OBJ\Main.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main\Main.C LARGE BROWSE INCDIR(.\include) DEBUG OBJECTEXTEND PRINT(.\List\
                    -Main.lst) OBJECT(.\OBJ\Main.obj)

line level    source

   1          /******************************************************************************\
   2               Project Version:   MTKCARDVD()
   3          ********************************************************************************
   4               Filename:          MAIN.c
   5          
   6               Author:            Alan chan
   7          
   8               Company:           CoreTek/ACT Company
   9          
  10          ********************************************************************************
  11               File Version:      1.01
  12               File Created:      July 2007
  13          
  14               Compiled Using:    keil uVision2 Version 2.23 
  15          
  16          ********************************************************************************
  17               Files Required:
  18          
  19          ********************************************************************************
  20               File Description:
  21          
  22          ********************************************************************************
  23               File History:
  24          
  25          --------------------------------------------------------------------------------
  26            Date         Name           Description
  27          --------------------------------------------------------------------------------
  28            Mar. 2007    Alan Chan    File Created
  29            
  30          \******************************************************************************/
  31          #define _MAIN_
  32          #include "stdio.h"
  33          #include "string.h"
  34          
  35          #include "global.h"
  36          #include "irkey.h"
  37          #include "key.h"
  38          #include "task.h"
  39          #include "comdvd.h"
  40          #include "e2prom.h"
  41          
  42          #include "tv.h"
  43          
  44          #define MCU_CS_CLK_SWAP
  45          #ifdef MARTIN_TEST_CHANNNEL_NUMBER_SHOW
  46          extern void vFreAFCAdjLoop(void);
  47          #else
              extern void vFreAFCAdj(void); //02Aug08
              #endif
  50          extern BYTE bTV_ADC_Read(void); //29Aug08
  51          #ifdef MARTIN_TUNER_XF6A_PAL_M_NOT_SYNC
  52          extern void vPalMBugAdj(void);   //martin 17Sep08 test
  53          #endif
  54          // Init variables
C51 COMPILER V8.05a   MAIN                                                                 01/05/2009 15:57:47 PAGE 2   

  55          void vInitVar(void)
  56          {
  57   1          BYTE  i;
  58   1              
  59   1          // timer 0 variables
  60   1          bTimer20ms = 0;
  61   1          wTimer0Count =100;
  62   1      
  63   1          // i2c variables
  64   1          vInitialI2C();
  65   1      
  66   1          // dvd com variables
  67   1          DvdRxIndex = DataOutValid = 0;
  68   1          for (i=0;i<(DVD_STATUS_BYTE-1);i++)
  69   1          {
  70   2              ShadowDvdInfo[i] = 0;   //otiose??? Invalid
  71   2          }
  72   1          for (i=0;i<CAR_INFO_BYTE;i++)
  73   1          {
  74   2              ShadowCarInfo[i] = 0; //otiose ?? ?Invalid
  75   2          }
  76   1         mSetDvdIr();//05Aug08
  77   1      
  78   1         #ifdef MARTIN_TEST_CHANNNEL_NUMBER_SHOW
  79   1           fgAFCADJState = FREQUENCY_ADJ_IDLE; //04Aug08
  80   1          #endif
  81   1      
  82   1           //   fgDVDTVCMD=0;
  83   1              // fgChangeTV=0;  
  84   1              
  85   1             #ifdef MARTIN_TUNER_XF6A_PAL_M_NOT_SYNC
  86   1                   bPalMAdj=1;  //17Sep08
  87   1             #endif
  88   1              fgTvVersion= TV_VERSION_VALUE;   //31Jul08
  89   1              _bSearchPercent=fgTvVersion;    
  90   1      
  91   1          // IR variables init        
  92   1          vInitIRVar();
  93   1      }
  94          
  95          // Init IO
  96          void vInitIO()
  97          {
  98   1      #ifdef MARTIN_CS8955_IO_PORT  //martin 08May08 add
  99   1      CS8955_PADMOD0=0x00;
 100   1      CS8955_PADMOD1=0x00;
 101   1      #ifdef SUPPORT_UART_PRINTF
 102   1      CS8955_PADMOD2=0x00;//martin 16Oct08 0x34; 0x34; //0xa0;    P3.0,P3.1,P1.5,P1.6 Set " 0"  for  I/O PORT wi
             -th printf variable
 103   1      #else
              CS8955_PADMOD2=0xa0; //0xE0;  Set " 1"  for (Master IIC) HSDA1 HSCL1,HSDA2,HSCL2, with download software
              #endif
 106   1      #endif
 107   1      
 108   1      
 109   1          P0 = 0xff;         
 110   1          P1 = 0xff;  //0xfe;   martin 08May08        //set P1.0(tv_pwr)=0
 111   1          P2 = 0xff;         //set P2.0(dvd_do)=1, P2.1(dvd_di)=1, P2.2(dvd_clk)=1 
 112   1          P3 = 0xff; //0xcf; martin 08May08         //set P3.2(IR)=1,P3.3(dvd_cs)=1, P3.4(tv_sda)=0, P3.5(tv_scl
             -)=0;
 113   1      
 114   1        CS8955_OPTION |= 0x10;  //set master IIC==ISCL/ISDA(P3.4,P3.5);set master IIC frequency=100K(specificati
C51 COMPILER V8.05a   MAIN                                                                 01/05/2009 15:57:47 PAGE 3   

             -on:PAGE 11)
 115   1        CS8955_INTEN=0xe0;   //enable TXBBUF RCBBUF INT 
 116   1        CS8955_SLVBADR=0x80|(0x4c>>1);   //Enable marter IIC B,Set master IIC B address
 117   1              
 118   1      }
 119          
 120          #ifndef MARTIN_MCU_NO_IR
              // Init IR Interrupt
              void vInitIRInt(void)
              {
              // IR Remote Control
                 EX0 = 0;  //Disable INT 0 Interrupt
                 IT0 =1;  // INT 0  high  level control valid, //Enable edge trigger
              }
              #endif
 129          
 130          // Init Interrupt
 131          void vInitAllInt(BIT enable)
 132          {
 133   1         if (enable)
 134   1         {
 135   2       #ifndef MARTIN_DVD_COMM_NOT_SUPPORT_INT        
                 CS8955_EINT1PEN = 0x80;
                    // DVD com
                    EX1 =0x01; // Enable INT1 interrupt
                    IT1 =0x01; // / INT1  low / high control valid,
                    #endif
 141   2            #ifndef MARTIN_MCU_NO_IR
                     // IR Remote Contro Use the INT4 Pin and Function        
                     vInitIRInt();
                   #endif
 145   2         }
 146   1         else 
 147   1         {
 148   2            // DVD com
 149   2            #if 1 //#ifndef MARTIN_DVD_COMM_NOT_SUPPORT_INT   
 150   2            EX1 = 0x00; // Disable INT1 interrupt
 151   2            IT1 = 0x00; // INT 1  low  level control valid,
 152   2            #endif
 153   2            #ifndef MARTIN_MCU_NO_IR  //martin 08May08
                    // IR Remote Control      
                    EX0 = 0; // Disable INT0 interrupt
                    #endif
 157   2         }
 158   1      }
 159          
 160          // Init Timer0
 161          void vInitTimer()
 162          {
 163   1          TMOD|=0x01;   // set timer0 in mode1  16 bit timer
 164   1          TH0=0xEC;   
 165   1          TL0=0x78;   
 166   1      
 167   1         TF0 = 0;  //clear timer0 flag
 168   1          PT0= 0;   // priority Timer0 level
 169   1          ET0=1;   // enable timer0 interrupt
 170   1          TR0=0;   // stop timer0
 171   1      }   
 172          
 173          #ifdef SUPPORT_UART_PRINTF  //26Aug08
 174          void DRS232LogS(char *pcStr)
 175          {
C51 COMPILER V8.05a   MAIN                                                                 01/05/2009 15:57:47 PAGE 4   

 176   1      BYTE _bTNum;
 177   1      unsigned char _pbTBuf[30];
 178   1      
 179   1           CS8955_PADMOD2=0x00; //martin 16Oct08 0x34;   P3.0,P3.1,P1.5,P1.6 Set " 0"  for  I/O PORT with printf
             - variable
 180   1        
 181   1          for(_bTNum=0; (_bTNum<20) && (pcStr[_bTNum]); _bTNum++)
 182   1          {
 183   2            _pbTBuf[_bTNum] = (BYTE) pcStr[_bTNum];
 184   2                 SBUF = _pbTBuf[_bTNum];   while(!TI);   TI = 0;    
 185   2          }
 186   1         SBUF = 0x0D;   while(!TI);   TI = 0;   // CR ( ^M )
 187   1         SBUF = 0x0A;   while(!TI);   TI = 0;   // LF ( ^J )
 188   1         
 189   1        CS8955_PADMOD2=0xa0;  //Set " 1"  for (Master IIC) HSDA1 HSCL1,HSDA2,HSCL2,
 190   1         
 191   1      }
 192          
 193          void DRS232LogB(BYTE bV1, BYTE bV2, BYTE bV3, BYTE bV4)
 194          {
 195   1        BYTE _bTNum;
 196   1        BYTE i=0;
 197   1        char   szTable[]   =   "0123456789";   
 198   1      
 199   1      
 200   1        CS8955_PADMOD2=0x00; //martin 16Oct08  0x34;  P3.0,P3.1,P1.5,P1.6 Set " 0"  for  I/O PORT with printf va
             -riable
 201   1      
 202   1      //memset(_PrinTBuf,30,10);
 203   1      
 204   1      
 205   1      if(bV1 == 0)
 206   1        {
 207   2              SBUF =  '0';   while(!TI);   TI = 0;    
 208   2               SBUF =  '0';   while(!TI);   TI = 0;   
 209   2        }
 210   1      else
 211   1      {
 212   2       while((bV1)&&(i<4))   
 213   2        {   
 214   3            
 215   3            _PrinTBuf[i++]   =   szTable[bV1%10];   
 216   3             bV1  /= 10;   
 217   3              
 218   3        }
 219   2        _bTNum=i;
 220   2       for( _bTNum=i; (_bTNum>0) && (_PrinTBuf[_bTNum-1]); _bTNum--)
 221   2          {      
 222   3            
 223   3                SBUF = _PrinTBuf[_bTNum-1];   while(!TI);   TI = 0;    
 224   3              
 225   3           }
 226   2      }
 227   1         SBUF =  ' ';   while(!TI);   TI = 0;    
 228   1      
 229   1                
 230   1        i=0;    
 231   1      if(bV2 == 0)
 232   1        {
 233   2               SBUF =  '0';   while(!TI);   TI = 0;    
 234   2               SBUF =  '0';   while(!TI);   TI = 0;   
 235   2        }
C51 COMPILER V8.05a   MAIN                                                                 01/05/2009 15:57:47 PAGE 5   

 236   1      else
 237   1      {         
 238   2       while((bV2)&&(i<4))      
 239   2        {   
 240   3                _PrinTBuf[i++]   =   szTable[bV2%10];   
 241   3             bV2  /= 10;   
 242   3        } 
 243   2           _bTNum=i;
 244   2       for( _bTNum=i; (_bTNum>0) && (_PrinTBuf[_bTNum-1]); _bTNum--)
 245   2          {      
 246   3            
 247   3                SBUF = _PrinTBuf[_bTNum-1];   while(!TI);   TI = 0;    
 248   3              
 249   3           }
 250   2      }
 251   1         SBUF =  ' ';   while(!TI);   TI = 0;    
 252   1      
 253   1                
 254   1       i=0;     
 255   1      if(bV3 == 0)
 256   1        {
 257   2              SBUF =  '0';   while(!TI);   TI = 0;    
 258   2               SBUF =  '0';   while(!TI);   TI = 0;           
 259   2        }
 260   1      else
 261   1      {       
 262   2       while((bV3)&&(i<4))    
 263   2        {   
 264   3              _PrinTBuf[i++]   =   szTable[bV3%10];   
 265   3             bV3  /= 10;   
 266   3        } 
 267   2        _bTNum=i;
 268   2       for( _bTNum=i; (_bTNum>0) && (_PrinTBuf[_bTNum-1]); _bTNum--)
 269   2          {      
 270   3            

⌨️ 快捷键说明

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