📄 ddc.lst
字号:
C51 COMPILER V7.06 DDC 11/21/2005 13:47:44 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE DDC
OBJECT MODULE PLACED IN .\Output\Ddc.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Code\Ddc.c OPTIMIZE(9,SPEED) BROWSE DEBUG OBJECTEXTEND CODE SYMBOLS PRINT(.
-\Output\Ddc.lst) PREPRINT(.\Output\Ddc.i) OBJECT(.\Output\Ddc.obj)
stmt level source
1 //***********************************************************************
2 // Myson Addition DDCRAM
3 //***********************************************************************
4 typedef unsigned char Byte;
5
6 #define _DDC_
7 #include "Header\DDC.h"
8 #include "Header\MTV512.H"
9 #include "Header\access.h"
10 #include "Header\Timer.h"
11 #include "reg52.h"
12
13 #if(USE_MCU_DDC)
Byte xdata EDID_Cmd_Buffer;
void EnableDDC(void);
//void EnableDDCWriter();
void EDID_Process();
//void MovEEPROM(Byte *array);
//void MovEEPROM_2(Byte *array);
Byte code EDID_DATA1[128] =
{
0x00,0xff,0xff,0xff,0xFF,0xFF,0xFF,0x00,0x5A,0x63,0x02,0x08,0x01,0x01,0x01,0x01,
0x29,0x0A,0x01,0x02,0x1D,0x1F,0x17,0xB9,0xEB,0x00,0xB8,0xA0,0x57,0x49,0x9B,0x26,
0x10,0x48,0x4C,0xFF,0xFE,0x80,0x31,0x59,0x45,0x59,0x71,0x4F,0x81,0x40,0x81,0x80,
0x01,0x01,0x01,0x01,0x01,0x01,0xC3,0x1E,0x00,0x20,0x41,0x00,0x20,0x30,0x10,0x60,
0x13,0x00,0x2C,0xE1,0x10,0x00,0x00,0x1E,0x00,0x00,0x00,0xFF,0x00,0x32,0x30,0x48,
0x30,0x30,0x34,0x31,0x30,0x30,0x32,0x36,0x30,0x0A,0x00,0x00,0x00,0xFD,0x00,0x32,
0xB4,0x1E,0x46,0x0A,0x01,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0xFC,
0x00,0x52,0x45,0x41,0x4C,0x54,0x45,0x4B,0x0A,0x20,0x20,0x20,0x20,0x20,0x00,0x01
// R E A L T E K
};
void EDID_Process()
{
Byte i,checksum=0;
if(EDID_Cmd_Buffer==0xaa)
{
for(i=0;i<128;i++)
checksum=checksum+byMTV512_DDCRAMA[i];
if(checksum==0) // checksum correct
{
if((byMTV512_DDCRAMA[20]&0x80)==0x80)
MovEEPROM(&byMTV512_DDCRAMA,1); //DVI SAVE TO LAST 128 BYTE
else
C51 COMPILER V7.06 DDC 11/21/2005 13:47:44 PAGE 2
MovEEPROM(&byMTV512_DDCRAMA,0); //SUB SAVE TO LAST 128 BYTE
EDID_Cmd_Buffer=0xff; //Initial Command Buffer
}
}
}
void EnableDDC(void)
{
EDID_Cmd_Buffer = 0xff; //Initial Command Buffer
M512_IIC_CTR = 0xc0; //Enable IIC Interface and define ddc2 active at HSDA/HSCL
M512_IIC_INTEN = 0x04; //Detect WslvA1 IIC Stop Condition
M512_INTFLG = 0x00; //Clear IIC Interrupt register
byM512_CTRSLVB = 0x00; //Define IIC Protocal Slave Address Bit
M512_PadMode2=0xa0; //OPEN DDCRAM1 and DDCRAM2 Chanell(HSDA1/HSDA2 HSCL1/HSCL2)
byM512_DDCCTRA1=0xd0; //Enable DDC1 and DDCRAM 128 Access
byM512_SLVA1ADR=0x80|(0xa0>>1); //DDC Slave A1 address
byM512_DDCCTRA2=0xd0; //Enable DDC1 and DDCRAM 128 Access
byM512_SLVA2ADR=0x80|(0xa0>>1); //DDC Slave A2 address
}
//*******************************************************************************************
void ReceiveEDIDINT1(void) interrupt 2
{
Byte tempflag;
tempflag = M512_INTFLG;
EX1 = 0;
if((tempflag & WslvA1I) != 0) //DDCRAMA IIC Stop Interrupt detect
{
M512_INTFLG = tempflag & (~WslvA1I); //Clear DDCRAMA IIC Stop Interrupt detect
EDID_Cmd_Buffer = 0xaa; //Set the Writer EEPROM Command
}
EX1 =1;
}
//*******************************************************************************************
void MovEEPROM(Byte *array,unsigned char index) //128 byte
{
Byte a,b;
for (a=0;a<8;a++)
{
if(index == 0)
I2CSendAddr(ADDR_EDID1, a*16, 0);
else
I2CSendAddr(ADDR_EDID1, (0x80)+(a*16), 0);
for (b=0;b<16;b++)
I2CSendByte(array[(a*16)+b]); //DDCRAM Write to EEPROM
I2CSendStop();
Delay_Xms(30);
}
}
//*******************************************************************************************
/*
void MovEEPROM_2(Byte *array) //128 byte
{
Byte a,b;
C51 COMPILER V7.06 DDC 11/21/2005 13:47:44 PAGE 3
for (a=0;a<8;a++)
{
I2CSendAddr(ADDR_EDID1, (0x80)+(a*16), 0);
for (b=0;b<16;b++)
I2CSendByte(array[(a*16)+b]); //DDCRAM Write to EEPROM
I2CSendStop();
Delay_Xms(30);
}
}
*/
#endif//#if(USE_MCU_DDC)
C51 COMPILER V7.06 DDC 11/21/2005 13:47:44 PAGE 4
ASSEMBLY LISTING OF GENERATED OBJECT CODE
C51 COMPILER V7.06 DDC 11/21/2005 13:47:44 PAGE 5
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
P3 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
IE . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A8H 1
Byte . . . . . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1
IP . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B8H 1
SCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0098H 1
TCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0088H 1
T2CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C8H 1
PSW. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D0H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = ---- ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -