main.lst

来自「宏芯T102芯片驱动(51单片机作主控)」· LST 代码 · 共 346 行

LST
346
字号
C51 COMPILER V7.06   MAIN                                                                  12/28/2004 10:14:02 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN .\obj\MAIN.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE source\MAIN.c BROWSE INCDIR(.\include\;.\source\) DEBUG OBJECTEXTEND PRINT(
                    -.\MAIN.lst) OBJECT(.\obj\MAIN.obj)

stmt level    source

   1          //---------------------------------------------------------------------------
   2          // Terawins Inc. Company Confidential Strictly Private
   3          //
   4          // $Archive: Main.c $
   5          // $Revision: 1.01 $
   6          // $Author: JasonGuo $
   7          // $Date: 2004/05/06 $
   8          //
   9          // --------------------------------------------------------------------------
  10          // >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  11          // --------------------------------------------------------------------------
  12          // Copyright 2004 (c) Terawins Inc.
  13          //
  14          // This is an unpublished work.
  15          // --------------------------------------------------------------------------
  16          
  17          #include "reg51.h"
  18          #include "math.h"
  19          #include "common.h"
  20          #include "system.h"
  21          #include "struct.h"
  22          #include "TW101Reg.h"
  23          #include "twowire.h"
  24          #include "gamma.h"
  25          #include "filter.h"
  26          #include "keypad.h"
  27          #include "Nvram.h"
  28          #include "Video.h"
  29          #include "T101_Util.h"
  30          #include "remote.h"
  31          #include "osddraw.h"
  32          #include "tuner.h"
  33          
  34          //****************************************************************************
  35          // Private Function Prototypes
  36          //****************************************************************************
  37          void Initial            (void);
  38          void SysInit            (void);
  39          
  40          void SysInterruptEnable (void);
  41          void ClosePanel         (void);
  42          void OpenPanel          (void);
  43          void BKPower            (void);
  44          void PowerManage        (void);
  45          //void Exchange_PAL_NTSC  (void); //Kuo
  46          
  47          
  48          #ifdef TIMER0
  49          void Timer0Reset(void);
  50          void Timer0Start(void);
  51          void Timer0Stop(void);
  52          #endif
  53          
  54          uCHAR bdata Flag1;
C51 COMPILER V7.06   MAIN                                                                  12/28/2004 10:14:02 PAGE 2   

  55          uCHAR bdata Flag2;
  56          uCHAR bdata Flag3;
  57          
  58          uCHAR idata m_cOSDEvent;
  59          uCHAR idata m_cOSDFunc;
  60          uCHAR idata m_cSource;
  61          uCHAR ir_data;
  62          uCHAR m_cFactryCnt;
  63          //uCHAR idata m_cStandard=4;//PAL
  64          uCHAR idata m_cStandard=0;//NTSC
  65          uCHAR idata m_cScaleratio=ScaleFULL;
  66          uWORD m_wHRes;
  67          uWORD m_wVRes;
  68          uWORD idata m_wVTotal;
  69          
  70          #ifdef TV
  71          uCHAR idata m_cTV_Num;
  72          uCHAR m_cSoundSystem=PAL_I;
  73          #endif
  74          
  75          sbit m_bPanelClose      = Flag1 ^ 0;
  76          sbit m_bBKPowerOn               = Flag1 ^ 1;
  77          sbit m_bKyPowerOn               = Flag1 ^ 2;
  78          sbit m_bChipPowerOn             = Flag1 ^ 3;
  79          sbit m_bTimer0Overflow  = Flag1 ^ 4;
  80          sbit m_bOSDEnable       = Flag1 ^ 5;
  81          sbit ir_enable          = Flag1 ^ 6;
  82          sbit m_bKyblocked               = Flag1 ^ 7;
  83          sbit m_bFactryMode              = Flag2 ^ 0;
  84          sbit m_bFactryReady             = Flag2 ^ 1;
  85          sbit m_bRelease                 = Flag2 ^ 2;
  86          sbit m_bAir_Cable               = Flag2 ^ 3;
  87          sbit m_bTV_Num_Bits             = Flag2 ^ 4;
  88          sbit m_bTV_Skip                 = Flag2 ^ 5;
  89          uWORD idata m_wBuff[3];
  90          uCHAR idata m_cBuff[5];
  91          uDWORD m_dwBuff[2];
  92          //----------------------------------------------------------------------------
  93          //Main Function
  94          //----------------------------------------------------------------------------
  95          void main(void)
  96          {
  97   1              Initial();
  98   1              SysInterruptEnable();
  99   1      //OSD Font Initial
 100   1          OSDInit();
 101   1      
 102   1      //上电开机流程
 103   1              m_cSource = I2CReadByte(EEPVIDEOBLOCK, idVIDEO_SOURCE_INDEX)&0x0f;
 104   1              if((m_cSource==0)||(m_cSource>=isrc_end)) m_cSource=1;
 105   1              #ifdef TV
 106   1           SetTuner(TVSetChannel(I2CReadByte(EEPVIDEOBLOCK, idTVCHANNEL_INDEX)-1));    
 107   1          #endif
 108   1          SourceSelect();
 109   1              OSDShowSource();
 110   1          OpenPanel();
 111   1       
 112   1      
 113   1      //Main loop
 114   1              while(1)
 115   1              {
 116   2      //detect key press
C51 COMPILER V7.06   MAIN                                                                  12/28/2004 10:14:02 PAGE 3   

 117   2              kyKeypad();
 118   2      //handle ir event
 119   2              if(ir_enable)
 120   2              {
 121   3                      RemoteEvent();
 122   3                              ir_enable=0;
 123   3              }
 124   2              else if(!EX1)
 125   2                      {
 126   3                              EX1=1;
 127   3                              ir_data=0;
 128   3                      }
 129   2      //OSD Timeout
 130   2              if(m_bTimer0Overflow)
 131   2              {
 132   3                  if(m_bOSDEnable)
 133   3                      OSDExit();
 134   3              }
 135   2      //              Detect_NTSCPAL(); 
 136   2      
 137   2              }
 138   1      }
 139          //**************************************************************************
 140          //Power ON/OFF  BackLight ON/OFF
 141          //**************************************************************************
 142          
 143          
 144          
 145          void ClosePanel(void)
 146          {
 147   1              m_bPanelClose = 1;
 148   1              I2CWriteByte(TW101, 0xC2, I2CReadByte(TW101, 0xC2)|(PSYNC_STR|IGNORE_VSYNC));
 149   1              I2CWriteByte(TW101, PATTERN_CTRL, 0x87);//I2CReadByte(TW101, PATTERN_CTRL)|0x80);  //Enable Frame Backgro
             -und Color
 150   1      }
 151          
 152          void OpenPanel(void)
 153          {
 154   1              m_bPanelClose = 0;
 155   1              I2CWriteByte(TW101, 0xC2, I2CReadByte(TW101, 0xC2)&~(PSYNC_STR|IGNORE_VSYNC));
 156   1              I2CWriteByte(TW101, PATTERN_CTRL, I2CReadByte(TW101, PATTERN_CTRL)&~0x80); //Enable Frame Background Colo
             -r
 157   1              twdDelay(100);  
 158   1      }
 159          void BKPower(void)
 160          {
 161   1              if(m_bBKPowerOn)
 162   1              {
 163   2                      BKLIGHT_EN = 1;     // BKLIGHT shut down
 164   2                      twdDelay(100);
 165   2                      m_bBKPowerOn = 0;
 166   2              }
 167   1              else
 168   1              {
 169   2                      twdDelay(100);
 170   2                      BKLIGHT_EN = 0;     // BKLIGHT power on
 171   2                      m_bBKPowerOn = 1;
 172   2      #ifdef LEDCONTROL
                              m_bLedOn=1;
              #endif
 175   2      
 176   2              }
C51 COMPILER V7.06   MAIN                                                                  12/28/2004 10:14:02 PAGE 4   

 177   1      }
 178          
 179          void PowerManage(void)
 180          {
 181   1              if(m_bKyPowerOn) //Power on
 182   1              {
 183   2                      LED_RED = 1;    //Turn Off
 184   2                      LED_GREEN = 0;          //Turn On
 185   2                      I2CWriteByte(TW101, 0xE0, I2CReadByte(TW101, 0xE0)|TPDB);
 186   2                      m_cOSDEvent=0;
 187   2                      m_cOSDFunc=0;
 188   2                      //When power on chip, force to reset chip
 189   2      //              m_bForceReset=1;
 190   2                      m_bChipPowerOn=1;
 191   2                      //m_cSource=0x0F;
 192   2                      twdDelay(100);
 193   2                      OpenPanel();
 194   2      //AUDIO_STANBY=0;               //Audio on
 195   2              }
 196   1              else    //Forced Power Off
 197   1              {
 198   2                      if(m_bChipPowerOn)
 199   2                      {
 200   3                              LED_RED =0;     //Turn On
 201   3                          LED_GREEN = 1;      //Turn Off
 202   3                              twdDelay(100);
 203   3                              OSDExit();
 204   3                              if(m_bBKPowerOn)
 205   3                                      BKPower();
 206   3                              ClosePanel();
 207   3                              twdDelay(200);
 208   3                              I2CWriteByte(TW101, 0xE0, I2CReadByte(TW101, 0xE0)&~TPDB|PDMD);
 209   3                              m_bChipPowerOn=0;
 210   3                      }
 211   2              }
 212   1      }
 213          
 214          //**************************************************************************
 215          //系统初始化函数
 216          //**************************************************************************
 217          void Initial(void)
 218          {
 219   1      extern EEPVIDEO   idata EepVideo;       
 220   1          SysInit();
 221   1      #ifdef TCON
 222   1              TconInit();
 223   1      #endif
 224   1      #ifdef RSDS
                      RsdsInit();
              #endif
 227   1      //Ruby modify 2005-06-07
 228   1              ClosePanel();
 229   1              OSDDisable();
 230   1              LoadGammaTable(0);
 231   1      #ifdef T100
              //      LoadFilter(3);   //Ruby 2004-10-07
                  EepVideo.cSharp=3;
                      LoadFilter(EepVideo.cSharp);
              //  LoadFilter(3);  //  For FAXCONN only Because their OSD did not have sharpness parameter
              #else
 237   1      //    EepVideo.cSharp=4;
 238   1              LoadFilter(0);
C51 COMPILER V7.06   MAIN                                                                  12/28/2004 10:14:02 PAGE 5   

 239   1      #endif
 240   1          OSDLogo();
 241   1      }
 242          
 243          void SysInit(void)
 244          {
 245   1              P0=0xff;
 246   1              P1=0xff;
 247   1              P2=0xff;
 248   1              P3=0xff;
 249   1      //Chip Reset
 250   1              CHIP_RESET = 0;
 251   1              twdDelay(100);
 252   1              CHIP_RESET = 1;
 253   1              twdDelay(50);
 254   1      //8051Register Set
 255   1              IE      = 0;    // disable all interrupt
 256   1              TMOD    = 0x11;  // Timer1 Mode 1, Timer0 Mode 1;
 257   1              //TMOD  = 0x01; // Timer0 Mode 1;
 258   1              EX0     = 0;     // disable external interrupt 0, IE[0]
 259   1              EX1             = 0;
 260   1              //ET0   = 1;    // enable bTimer 0
 261   1              //IT0   = 1;     // falling endge generate interrupt, TCON[0]
 262   1              INT0    = 1;
 263   1              IT1     = 1;     // falling endge generate interrupt, TCON[0]
 264   1              INT1    = 1;
 265   1      
 266   1              twdDelay(10);
 267   1              if(!m_bPanelClose)
 268   1              ClosePanel();
 269   1      
 270   1              InitTW101();
 271   1      #ifdef NVRAM
 272   1              EEPLoadPubData();
 273   1      #else
                      OSDFactryReset();
                      OSDResetPubData();
                      //OSDResetVideoData();
                      OSDSetValues();
              #endif
 279   1              kyKeypadInit();
 280   1      
 281   1              m_bPanelClose = 0;
 282   1              m_bBKPowerOn=0;
 283   1              m_bKyPowerOn=1;
 284   1              m_bChipPowerOn=1;
 285   1              //m_bAir_Cable=1;
 286   1      
 287   1              LED_GREEN=0;
 288   1      //Ruby add
 289   1              IRScaleratioCtrl();
 290   1      
 291   1      }
 292          void SysInterruptEnable(void)
 293          {
 294   1      #ifdef TIMER1
 295   1      //      Timer1Reset();
 296   1              ET1 = 1;    // Enable Timer1 interrupt
 297   1              TR1=0;
 298   1      #endif
 299   1      #ifdef TIMER0
 300   1              Timer0Reset();
C51 COMPILER V7.06   MAIN                                                                  12/28/2004 10:14:02 PAGE 6   

 301   1              ET0 = 1;        // Enable Timer0 interrupt
 302   1              TR0 = 0;
 303   1      #endif
 304   1      #ifdef INTERRUPT1
 305   1              EX1 = 1;                // Enable INT1 (IR)
 306   1      #endif
 307   1              EA       = 1;           // Enable Interrupt
 308   1      }
 309          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    412    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     18    ----
   IDATA SIZE       =     19    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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