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

📄 src_ctrl.lst

📁 液晶显示器程序代码
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.06   SRC_CTRL                                                              11/21/2005 13:47:43 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE SRC_CTRL
OBJECT MODULE PLACED IN .\Output\Src_Ctrl.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Code\Src_Ctrl.c OPTIMIZE(9,SPEED) BROWSE DEBUG OBJECTEXTEND CODE SYMBOLS PR
                    -INT(.\Output\Src_Ctrl.lst) PREPRINT(.\Output\Src_Ctrl.i) OBJECT(.\Output\Src_Ctrl.obj)

stmt level    source

   1          #define __SOURCECTRL__
   2          
   3          #include "Header\Lcd_main.h"
   4          #include "Header\Lcd_func.h"
   5          #include "Header\Mode_Detect.h"
   6          #include "Header\Initial.h"
   7          #include "Header\Src_Ctrl.h"
   8          #include "Header\Access.h"
   9          
  10          bit Source_Control(void)
  11          {
  12   1                  if ((stGUD1.INPUT_SOURCE & 0x07) != ucInputSrc)
  13   1                  {
  14   2                      stGUD1.INPUT_SOURCE = (stGUD1.INPUT_SOURCE & 0xf8) | (ucInputSrc & 0x07);
  15   2                      Save_GUD1();
  16   2                      
  17   2                      ucModeCnt   = MODE_DETECT_FREQ;     // Reset Input Mode Detector
  18   2      
  19   2                      Reset_Mode();
  20   2      
  21   2      
  22   2                      Init_Input_Source();
  23   2                      Measure_Mode();
  24   2                      
  25   2                      Set_Task(STATE_SOURCECHANGE);       // Notify Task State Machine
  26   2      
  27   2                      bNotify_Timer0_Int  = 0;
  28   2      
  29   2                      //continue;   // leave current iteration.
  30   2                                      return _TRUE;
  31   2                  }
  32   1                              return _FALSE;
  33   1      }
  34          
  35          void Change_Source(unsigned char source)
  36          {
  37   1          if (SOURCE_MAX < source)    return;
  38   1      
  39   1          if (SOURCE_VGA == source)
  40   1          {
  41   2              ucInputSrc  = SOURCE_VGA;
  42   2          }
  43   1       else if (SOURCE_DVI == source)
  44   1          {
  45   2      #if (TMDS_ENABLE) 
  46   2              ucInputSrc  = SOURCE_DVI;
  47   2      #else
                      ucInputSrc  = SOURCE_VGA;
              #endif
  50   2          }
  51   1          else if (SOURCE_AV == source || SOURCE_SV == source)
  52   1          {
  53   2      #if (VIDEO_CHIP != VDC_NONE)
                      ucInputSrc  = source;   // SOURCE_AV or SOURCE_SV      
C51 COMPILER V7.06   SRC_CTRL                                                              11/21/2005 13:47:43 PAGE 2   

              #else
  56   2              ucInputSrc  = SOURCE_VGA;
  57   2      #endif
  58   2          }
  59   1          else if (SOURCE_YUV == source)
  60   1          {
  61   2      #if (VIDEO_CHIP == VDC_SAA7118)
                      ucInputSrc  = source;   // SOURCE_YUV
              #else
  64   2              ucInputSrc  = SOURCE_VGA;
  65   2      #endif
  66   2          }
  67   1          else
  68   1          {
  69   2      #if (TV_CHIP != TV_NONE)
                      ucInputSrc = source;    // SOURCE_TV
              #else
  72   2              ucInputSrc = SOURCE_VGA;
  73   2      #endif
  74   2          }
  75   1      }
  76          
  77          #if(SOURCE_AUTO_SCAN)
  78          void Source_Auto_Scan(void)
  79          {
  80   1      
  81   1                   Data[0] = stGUD1.INPUT_SOURCE & 0x07; 
  82   1                   if((Data[0] == MASTER_SOURCE) || (Data[0] == SLAVE_SOURCE) || (Data[0] == THIRD_SOURCE)) 
  83   1                                   bSourceScanEnable = !bSourceScanEnable;
  84   1      
  85   1                                      if(!bSourceScanEnable)
  86   1                           Mode_Detector();
  87   1      
  88   1                                      if(bStable && bSourceScanEnable)
  89   1                      {
  90   2                                          
  91   2                                              Measure_Source(ucNext_Source);
  92   2      
  93   2                                              if((ucNext_Source == SOURCE_VGA) || (ucNext_Source == SOURCE_DVI))
  94   2                                              {
  95   3                                                      RTDRead(SYNC_POR_4C, 0x09, Y_INC);
  96   3                              
  97   3                                                      if(Data[0] & 0x02)
  98   3                              {
  99   4                                 RTDSetByte(SYNC_POR_4C,0x20);
 100   4                                 Data[2] = 0x80;
 101   4                                 Data[4] = 0x80;
 102   4                              }
 103   3      
 104   3                                                      if(((Data[4] & 0x80) != 0x80) && ((Data[2] & 0x80) != 0x80))
 105   3                                                      {
 106   4                                                              Data[5] = Data[3];
 107   4                                                              Data[4] = Data[4] & 0x87;
 108   4                                                              Data[3] = Data[1];
 109   4                                                              Data[2] = Data[2] & 0x8f;                                                       
 110   4                                                              
 111   4                                                              if( (((unsigned int*)Data)[1] < 1024)  && (((unsigned int*)Data)[1] > 260) &&
 112   4                                                                      (((unsigned int*)Data)[2] < 1260)  && (((unsigned int*)Data)[2] > 430))
 113   4                                                              {
 114   5                                                                      if(ucSource_Times < VGA_SEARCH_TIMES)
 115   5                                                                              ucSource_Times += 1;
 116   5                                                                      else
C51 COMPILER V7.06   SRC_CTRL                                                              11/21/2005 13:47:43 PAGE 3   

 117   5                                                                      {
 118   6                                                                              ucInputSrc = ucNext_Source;
 119   6                                                                              ucNext_Source = MASTER_SOURCE; 
 120   6                                                                              ucSource_Times = 0;
 121   6                                                                      }                                                                       
 122   5                                                              }
 123   4                                                              else
 124   4                                                              {
 125   5                                                                      ucSource_Times = 0;
 126   5                                                              
 127   5                                       ucNext_Source = (ucNext_Source == MASTER_SOURCE) ? SLAVE_SOURCE : 
 128   5                                                                      (ucNext_Source == SLAVE_SOURCE ) ? THIRD_SOURCE : MASTER_SOURCE;
 129   5                                                                                                                                                                                                      
 130   5                                                              }
 131   4                                                              
 132   4                                                      }
 133   3                                                      else
 134   3                                                      {
 135   4                                                              ucSource_Times = 0;
 136   4                                                  ucNext_Source = (ucNext_Source == MASTER_SOURCE) ? SLAVE_SOURCE : 
 137   4                                                                      (ucNext_Source == SLAVE_SOURCE ) ? THIRD_SOURCE : MASTER_SOURCE;
 138   4                                                              
 139   4                                                      }
 140   3                                              }//end of if((ucNext_Source == SOURCE_VGA) || (ucNext_Source == SOURCE_DVI))
 141   2                                              else
 142   2                                              {
 143   3                                                      I2CRead(ADDR_VIDEO, 0x1f, 0x01);
 144   3                                              
 145   3                                                      if (0 == (Data[0] & 0x40))
 146   3                                                      {
 147   4                                                              if(ucSource_Times < VGA_SEARCH_TIMES)
 148   4                                                                              ucSource_Times += 1;
 149   4                                                              else
 150   4                                                              {
 151   5                                                                      ucInputSrc = ucNext_Source;
 152   5                                                                      ucNext_Source = MASTER_SOURCE; 
 153   5                                                                      ucSource_Times = 0;
 154   5                                                              }               
 155   4                                                      }
 156   3                                                      else
 157   3                                                      {
 158   4                                                              ucSource_Times = 0;
 159   4                                
 160   4                                   ucNext_Source = (ucNext_Source == MASTER_SOURCE) ? SLAVE_SOURCE : 
 161   4                                                                      (ucNext_Source == SLAVE_SOURCE ) ? THIRD_SOURCE : MASTER_SOURCE;
 162   4                                                      }
 163   3                                              }
 164   2                                              
 165   2                                              RTDSetByte(SYNC_CTRL_4A,0x00);
 166   2                                              //RTDSetByte(SYNC_POR_4C, (stGUD1.INPUT_SOURCE & 0x07) == SOURCE_VGA ? 0x32 : 0x02);
 167   2                                              
 168   2                                              if(((stGUD1.INPUT_SOURCE & 0x07) == SOURCE_VGA) && (SYNC_SS != ucSync_Type))
 169   2                             RTDSetByte(SYNC_POR_4C,0x32);
 170   2                          else
 171   2                             RTDSetByte(SYNC_POR_4C,0x02);
 172   2                          
 173   2                                      }//end of if(bStable)
 174   1      }
 175          #endif
C51 COMPILER V7.06   SRC_CTRL                                                              11/21/2005 13:47:43 PAGE 4   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION Com0035 (BEGIN)
0000         L?0054:
0000         L?0055:
0000 E4                CLR     A
0001 7800        R     MOV     R0,#LOW ucSource_Times
0003 F6                MOV     @R0,A
0004 08                INC     R0
0005 E6                MOV     A,@R0
0006 FF                MOV     R7,A
0007 22                RET     
             ; FUNCTION Com0035 (END)

             ; FUNCTION Source_Control (BEGIN)
                                           ; SOURCE LINE # 10
                                           ; SOURCE LINE # 11
                                           ; SOURCE LINE # 12
0000 E500        E     MOV     A,stGUD1+01H
0002 5407              ANL     A,#07H
0004 FF                MOV     R7,A
0005 7800        E     MOV     R0,#LOW ucInputSrc
0007 E6                MOV     A,@R0
0008 FE                MOV     R6,A
0009 6F                XRL     A,R7
000A 6024              JZ      ?C0001
                                           ; SOURCE LINE # 13
                                           ; SOURCE LINE # 14
000C EE                MOV     A,R6
000D 5407              ANL     A,#07H
000F FF                MOV     R7,A
0010 E500        E     MOV     A,stGUD1+01H
0012 54F8              ANL     A,#0F8H
0014 4F                ORL     A,R7
0015 F500        E     MOV     stGUD1+01H,A
                                           ; SOURCE LINE # 15
0017 120000      E     LCALL   Save_GUD1
                                           ; SOURCE LINE # 17
001A 7800        E     MOV     R0,#LOW ucModeCnt
001C 7602              MOV     @R0,#02H
                                           ; SOURCE LINE # 19
001E 120000      E     LCALL   Reset_Mode
                                           ; SOURCE LINE # 22
0021 120000      E     LCALL   Init_Input_Source
                                           ; SOURCE LINE # 23
0024 120000      E     LCALL   Measure_Mode
                                           ; SOURCE LINE # 25
0027 7F01              MOV     R7,#01H
0029 120000      E     LCALL   _Set_Task

⌨️ 快捷键说明

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