Ddc.lst
上传用户:xmyjxjd
上传日期:2013-05-04
资源大小:1517k
文件大小:8k
开发平台:

C/C++

  1. C51 COMPILER V7.06   DDC                                                                   11/21/2005 13:47:44 PAGE 1   
  2. C51 COMPILER V7.06, COMPILATION OF MODULE DDC
  3. OBJECT MODULE PLACED IN .OutputDdc.obj
  4. COMPILER INVOKED BY: C:KeilC51BINC51.EXE CodeDdc.c OPTIMIZE(9,SPEED) BROWSE DEBUG OBJECTEXTEND CODE SYMBOLS PRINT(.
  5.                     -OutputDdc.lst) PREPRINT(.OutputDdc.i) OBJECT(.OutputDdc.obj)
  6. stmt level    source
  7.    1          //***********************************************************************
  8.    2          //                                      Myson Addition DDCRAM 
  9.    3          //***********************************************************************
  10.    4          typedef unsigned char Byte;
  11.    5          
  12.    6          #define _DDC_
  13.    7          #include "HeaderDDC.h"
  14.    8          #include "HeaderMTV512.H"
  15.    9          #include "Headeraccess.h"
  16.   10          #include "HeaderTimer.h"
  17.   11          #include "reg52.h"
  18.   12          
  19.   13          #if(USE_MCU_DDC)
  20.               
  21.               Byte xdata EDID_Cmd_Buffer;
  22.               
  23.               void EnableDDC(void);
  24.               //void EnableDDCWriter();
  25.               
  26.               void EDID_Process();
  27.               //void MovEEPROM(Byte *array);
  28.               //void MovEEPROM_2(Byte *array);
  29.               
  30.               Byte code EDID_DATA1[128] = 
  31.               {
  32.               
  33.                 0x00,0xff,0xff,0xff,0xFF,0xFF,0xFF,0x00,0x5A,0x63,0x02,0x08,0x01,0x01,0x01,0x01,
  34.                 0x29,0x0A,0x01,0x02,0x1D,0x1F,0x17,0xB9,0xEB,0x00,0xB8,0xA0,0x57,0x49,0x9B,0x26,
  35.                 0x10,0x48,0x4C,0xFF,0xFE,0x80,0x31,0x59,0x45,0x59,0x71,0x4F,0x81,0x40,0x81,0x80,
  36.                 0x01,0x01,0x01,0x01,0x01,0x01,0xC3,0x1E,0x00,0x20,0x41,0x00,0x20,0x30,0x10,0x60,
  37.                 0x13,0x00,0x2C,0xE1,0x10,0x00,0x00,0x1E,0x00,0x00,0x00,0xFF,0x00,0x32,0x30,0x48,
  38.                 0x30,0x30,0x34,0x31,0x30,0x30,0x32,0x36,0x30,0x0A,0x00,0x00,0x00,0xFD,0x00,0x32,
  39.                 0xB4,0x1E,0x46,0x0A,0x01,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0xFC,
  40.                 0x00,0x52,0x45,0x41,0x4C,0x54,0x45,0x4B,0x0A,0x20,0x20,0x20,0x20,0x20,0x00,0x01
  41.                 //     R   E     A    L    T   E     K
  42.                 
  43.               };
  44.               
  45.               
  46.               
  47.               void EDID_Process()
  48.               { 
  49.                 Byte i,checksum=0;
  50.               
  51.                 
  52.                 if(EDID_Cmd_Buffer==0xaa)
  53.                 {
  54.                    for(i=0;i<128;i++)
  55.                         checksum=checksum+byMTV512_DDCRAMA[i];
  56.                    if(checksum==0) // checksum correct
  57.                    {
  58.                       if((byMTV512_DDCRAMA[20]&0x80)==0x80)
  59.                           MovEEPROM(&byMTV512_DDCRAMA,1); //DVI SAVE TO LAST 128 BYTE
  60.                       else
  61. C51 COMPILER V7.06   DDC                                                                   11/21/2005 13:47:44 PAGE 2   
  62.                           MovEEPROM(&byMTV512_DDCRAMA,0); //SUB SAVE TO LAST 128 BYTE
  63.                           EDID_Cmd_Buffer=0xff;    //Initial Command Buffer          
  64.                    }       
  65.                 }    
  66.               
  67.               }
  68.               void EnableDDC(void)
  69.               {
  70.                  EDID_Cmd_Buffer = 0xff;     //Initial Command Buffer
  71.                  M512_IIC_CTR = 0xc0;       //Enable IIC Interface and define ddc2 active at HSDA/HSCL
  72.                  M512_IIC_INTEN = 0x04;    //Detect WslvA1 IIC Stop Condition
  73.                  M512_INTFLG = 0x00;        //Clear IIC Interrupt register
  74.                  byM512_CTRSLVB = 0x00;     //Define IIC Protocal Slave Address Bit
  75.                  M512_PadMode2=0xa0;      //OPEN DDCRAM1 and DDCRAM2 Chanell(HSDA1/HSDA2  HSCL1/HSCL2) 
  76.                  byM512_DDCCTRA1=0xd0;    //Enable DDC1 and DDCRAM 128 Access
  77.                  byM512_SLVA1ADR=0x80|(0xa0>>1);  //DDC Slave A1 address
  78.                  byM512_DDCCTRA2=0xd0;    //Enable DDC1 and DDCRAM 128 Access
  79.                  byM512_SLVA2ADR=0x80|(0xa0>>1);  //DDC Slave A2 address
  80.                  
  81.               }
  82.               //*******************************************************************************************
  83.               void ReceiveEDIDINT1(void) interrupt 2
  84.               {
  85.                  Byte tempflag;  
  86.                  tempflag = M512_INTFLG;
  87.                  EX1 = 0; 
  88.                  
  89.                  if((tempflag & WslvA1I) != 0)  //DDCRAMA IIC Stop Interrupt detect
  90.                  {
  91.                      M512_INTFLG = tempflag & (~WslvA1I);  //Clear DDCRAMA IIC Stop Interrupt detect 
  92.                      EDID_Cmd_Buffer = 0xaa;   //Set the Writer EEPROM Command
  93.                  }  
  94.                
  95.                  EX1 =1;
  96.               
  97.               }
  98.               
  99.               //*******************************************************************************************
  100.               void MovEEPROM(Byte *array,unsigned char index)   //128 byte
  101.               {
  102.                   Byte a,b;
  103.               
  104.                   for (a=0;a<8;a++)
  105.                       {
  106.                         if(index == 0)
  107.                       I2CSendAddr(ADDR_EDID1, a*16, 0);     
  108.                         else
  109.                       I2CSendAddr(ADDR_EDID1, (0x80)+(a*16), 0);     
  110.               
  111.                         for (b=0;b<16;b++)
  112.                                I2CSendByte(array[(a*16)+b]);  //DDCRAM Write to EEPROM
  113.               
  114.                     I2CSendStop(); 
  115.                         Delay_Xms(30);
  116.                       }
  117.               }
  118.               //*******************************************************************************************
  119.               /*
  120.               void MovEEPROM_2(Byte *array)   //128 byte
  121.               {
  122.                   Byte a,b;
  123.               
  124. C51 COMPILER V7.06   DDC                                                                   11/21/2005 13:47:44 PAGE 3   
  125.                   for (a=0;a<8;a++)
  126.                       {
  127.                     I2CSendAddr(ADDR_EDID1, (0x80)+(a*16), 0);     
  128.               
  129.                         for (b=0;b<16;b++)
  130.                                I2CSendByte(array[(a*16)+b]);  //DDCRAM Write to EEPROM
  131.               
  132.                     I2CSendStop(); 
  133.                         Delay_Xms(30);
  134.                       }
  135.               }
  136.               */
  137.               #endif//#if(USE_MCU_DDC)
  138. C51 COMPILER V7.06   DDC                                                                   11/21/2005 13:47:44 PAGE 4   
  139. ASSEMBLY LISTING OF GENERATED OBJECT CODE
  140. C51 COMPILER V7.06   DDC                                                                   11/21/2005 13:47:44 PAGE 5   
  141. NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
  142. ====                                    =====   ======  ====    ======  ====
  143. P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
  144. P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
  145. IE . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A8H  1
  146. Byte . . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_CHAR   -----  1
  147. IP . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B8H  1
  148. SCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0098H  1
  149. TCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0088H  1
  150. T2CON. . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00C8H  1
  151. PSW. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00D0H  1
  152. MODULE INFORMATION:   STATIC OVERLAYABLE
  153.    CODE SIZE        =   ----    ----
  154.    CONSTANT SIZE    =   ----    ----
  155.    XDATA SIZE       =   ----    ----
  156.    PDATA SIZE       =   ----    ----
  157.    DATA SIZE        =   ----    ----
  158.    IDATA SIZE       =   ----    ----
  159.    BIT SIZE         =   ----    ----
  160. END OF MODULE INFORMATION.
  161. C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)