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

📄 1574init.c

📁 MXIC旺宏液晶电视芯片MX88V44的源码
💻 C
字号:
/**--------------------------------------------------------------------------
* Name          15xxInit.c
--------------------------------------------------------------------------**/
#include 	"..\inc\public2.h"

#define		WR_CVD1_BYTE		14
#define		WR_1574				49		

#define		EEPROM_WRID			0xA0
#define		L44_WRID			0x28

xdata char	DEV_Inf[16] 		_at_ 0x0090;	//can not be initialized
												// data in progeam "main()"
//-------------------------------------------------------------------
//CVD1 Control register__ADD,DATA(By I2C)
//-------------------------------------------------------------------
code unsigned char CVD1_INITTab[16] =
{// Reg.# Value
	0x3F, 0x00,		0x03, 0x00,		0x05, 0x64,		0x06, 0x8A,		0X08, 0X78, 0X09, 0X1C, 0x11, 0xB9,		
	0x83, 0x89
};

code unsigned char CVD1_NTSCTab[WR_CVD1_BYTE*2] =
{// Reg.# Value
	0x00, 0x00,		0x01, 0x09,		0x02, 0x6F,		0x0C, 0x8A,		0x18, 0x21,		
	0x19, 0xF0,		0x1A, 0x7C,		0x1B, 0x1F,		0x2E, 0x82,		0x30, 0x22,		
	0x31, 0x61,		0x39, 0x0A,		0x82, 0x42,		0x87, 0x10
};
code unsigned char CVD1_PALMTab[WR_CVD1_BYTE*2] =
{// Reg.# Value
	0x00, 0x04,		0x01, 0x01,		0x02, 0x6F,		0x0C, 0x8A,		0x18, 0x21,		
	0x19, 0xE6,		0x1A, 0xEF,		0x1B, 0xA4,		0x2E, 0x82,		0x30, 0x22,
	0x31, 0x61,		0x39, 0x0A,		0x82, 0x42,		0x87, 0x10
};
code unsigned char CVD1_PALTab[WR_CVD1_BYTE*2] =
{// Reg.# Value
	0x00, 0x32,		0x01, 0x08,		0x02, 0x6F,		0x0C, 0x67,		0x18, 0x2A,		
	0x19, 0x09,		0x1A, 0x8A,		0x1B, 0xCB,		0x2E, 0x84,		0x30, 0x2A,		
	0x31, 0xC1,		0x39, 0x1A,		0x82, 0x52,		0x87, 0x08
};
code unsigned char CVD1_SECAMTab[WR_CVD1_BYTE*2] =
{// Reg.# Value
	0x00, 0x38,		0x01, 0x00,		0x02, 0x4F,		0x0C, 0x67,		0x18, 0x28,		
	0x19, 0xA3,		0x1A, 0x3B,		0x1B, 0xB3,		0x2E, 0x84,		0x30, 0x2A,		
	0x31, 0xC1,		0x39, 0x1A,		0x82, 0x52,		0x87, 0x08
};

//-------------------------------------------------------------------
//					TCON Register Address and Data
//-------------------------------------------------------------------
/*
code unsigned char GAMMATAL[]=
{
//  GAMMA TABLE
//  00   01   02   03   04   05   06   07   08   09   0A   0B   0C   0D   0E   0F   
   0x00,0x00,0x00,0x06,0x06,0x06,0x0F,0x0F,0x0F,0x18,0x18,0x18,0x20,0x20,0x20,0x26,    // 0x0000 
   0x26,0x26,0x2D,0x2D,0x2D,0x35,0x35,0x35,0x3B,0x3B,0x3B,0x41,0x41,0x41,0x46,0x46,    // 0x0010 
   0x46,0x4B,0x4B,0x4B,0x50,0x50,0x50,0x55,0x55,0x55,0x59,0x59,0x59,0x5C,0x5C,0x5C,    // 0x0020 
   0x60,0x60,0x60,0x63,0x63,0x63,0x66,0x66,0x66,0x6A,0x6A,0x6A,0x6C,0x6C,0x6C,0x6E,    // 0x0030 
   0x6E,0x6E,0x6F,0x6F,0x6F,0x71,0x71,0x71,0x72,0x72,0x72,0x75,0x75,0x75,0x77,0x77,    // 0x0040 
   0x77,0x78,0x78,0x78,0x7A,0x7A,0x7A,0x7A,0x7A,0x7A,0x7B,0x7B,0x7B,0x7C,0x7C,0x7C,    // 0x0050 
   0x7D,0x7D,0x7D,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x80,0x80,0x80,0x81,0x81,0x81,0x81,    // 0x0060 
   0x81,0x81,0x81,0x81,0x81,0x82,0x82,0x82,0x81,0x81,0x81,0x82,0x82,0x82,0x81,0x81,    // 0x0070 
   0x81,0x81,0x81,0x81,0x82,0x82,0x82,0x81,0x81,0x81,0x82,0x82,0x82,0x83,0x83,0x83,    // 0x0080 
   0x81,0x81,0x81,0x82,0x82,0x82,0x81,0x81,0x81,0x82,0x82,0x82,0x82,0x82,0x82,0x81,    // 0x0090 
   0x81,0x81,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x81,0x81,0x81,0x81,0x81,    // 0x00A0 
   0x81,0x80,0x80,0x80,0x82,0x82,0x82,0x82,0x82,0x82,0x81,0x81,0x81,0x82,0x82,0x82,    // 0x00B0 
   0x83,0x83,0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x84,0x84,0x84,0x84,0x84,0x84,0x84,    // 0x00C0 
   0x84,0x84,0x84,0x84,0x84,0x87,0x87,0x87,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,    // 0x00D0 
   0x86,0x87,0x87,0x87,0x88,0x88,0x88,0x86,0x86,0x86,0x88,0x88,0x88,0x89,0x89,0x89,    // 0x00E0 
   0x89,0x89,0x89,0x8A,0x8A,0x8A,0x8A,0x8A,0x8A,0x8B,0x8B,0x8B,0x8B,0x8B,0x8B,0x8D,    // 0x00F0 
   0x8D,0x8D,0x8C,0x8C,0x8C,0x8D,0x8D,0x8D,0x8E,0x8E,0x8E,0x8F,0x8F,0x8F,0x90,0x90,    // 0x0100 
   0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x91,0x91,0x91,0x91,0x91,0x91,0x94,0x94,0x94,    // 0x0110 
   0x94,0x94,0x94,0x93,0x93,0x93,0x96,0x96,0x96,0x96,0x96,0x96,0x98,0x98,0x98,0x96,    // 0x0120 
   0x96,0x96,0x98,0x98,0x98,0x9A,0x9A,0x9A,0x9B,0x9B,0x9B,0x99,0x99,0x99,0x9B,0x9B,    // 0x0130 
   0x9B,0x9C,0x9C,0x9C,0x9E,0x9E,0x9E,0x9E,0x9E,0x9E,0x9F,0x9F,0x9F,0xA0,0xA0,0xA0,    // 0x0140 
   0xA1,0xA1,0xA1,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA5,0xA5,0xA5,0xA5,    // 0x0150 
   0xA5,0xA5,0xA5,0xA5,0xA5,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA8,0xA8,0xA8,0xA9,0xA9,    // 0x0160 
   0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAD,0xAD,0xAD,    // 0x0170 
   0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xB0,0xB0,0xB0,0xB2,    // 0x0180 
   0xB2,0xB2,0xB2,0xB2,0xB2,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB4,0xB4,0xB4,0xB4,0xB4,    // 0x0190 
   0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB6,0xB6,0xB6,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,    // 0x01A0 
   0xB7,0xB7,0xB7,0xB8,0xB8,0xB8,0xBA,0xBA,0xBA,0xBB,0xBB,0xBB,0xBA,0xBA,0xBA,0xBA,    // 0x01B0 
   0xBA,0xBA,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBC,0xBC,0xBC,0xBA,0xBA,0xBA,0xBC,0xBC,    // 0x01C0 
   0xBC,0xBC,0xBC,0xBC,0xBD,0xBD,0xBD,0xBE,0xBE,0xBE,0xBD,0xBD,0xBD,0xBE,0xBE,0xBE,    // 0x01D0 
   0xBE,0xBE,0xBE,0xBF,0xBF,0xBF,0xBE,0xBE,0xBE,0xBF,0xBF,0xBF,0xBE,0xBE,0xBE,0xC0,    // 0x01E0 
   0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC2,0xC2,    // 0x01F0 
   0xC2,0xC1,0xC1,0xC1,0xC2,0xC2,0xC2,0xC2,0xC2,0xC2,0xC3,0xC3,0xC3,0xC2,0xC2,0xC2,    // 0x0200 
   0xC2,0xC2,0xC2,0xC1,0xC1,0xC1,0xC2,0xC2,0xC2,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0xC2,    // 0x0210 
   0xC2,0xC2,0xC3,0xC3,0xC3,0xC4,0xC4,0xC4,0xC4,0xC4,0xC4,0xC5,0xC5,0xC5,0xC4,0xC4,    // 0x0220 
   0xC4,0xC5,0xC5,0xC5,0xC4,0xC4,0xC4,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC5,0xC5,0xC5,    // 0x0230 
   0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC7,0xC7,0xC7,0xC8,0xC8,0xC8,0xC7,0xC7,0xC7,0xC8,    // 0x0240 
   0xC8,0xC8,0xC9,0xC9,0xC9,0xC9,0xC9,0xC9,0xC9,0xC9,0xC9,0xC9,0xC9,0xC9,0xC9,0xC9,    // 0x0250 
   0xC9,0xCA,0xCA,0xCA,0xCA,0xCA,0xCA,0xCB,0xCB,0xCB,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,    // 0x0260 
   0xCD,0xCD,0xCD,0xCE,0xCE,0xCE,0xCD,0xCD,0xCD,0xCE,0xCE,0xCE,0xCE,0xCE,0xCE,0xCF,    // 0x0270 
   0xCF,0xCF,0xD0,0xD0,0xD0,0xD0,0xD0,0xD0,0xD2,0xD2,0xD2,0xD2,0xD2,0xD2,0xD3,0xD3,    // 0x0280 
   0xD3,0xD3,0xD3,0xD3,0xD3,0xD3,0xD3,0xD4,0xD4,0xD4,0xD6,0xD6,0xD6,0xD6,0xD6,0xD6,    // 0x0290 
   0xD7,0xD7,0xD7,0xD7,0xD7,0xD7,0xD8,0xD8,0xD8,0xD9,0xD9,0xD9,0xDA,0xDA,0xDA,0xDA,    // 0x02A0 
   0xDA,0xDA,0xDC,0xDC,0xDC,0xDD,0xDD,0xDD,0xDE,0xDE,0xDE,0xDE,0xDE,0xDE,0xE0,0xE0,    // 0x02B0 
   0xE0,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,0xE3,0xE3,0xE3,0xE5,0xE5,0xE5,0xE6,0xE6,0xE6,    // 0x02C0 
   0xE7,0xE7,0xE7,0xE9,0xE9,0xE9,0xEB,0xEB,0xEB,0xEA,0xEA,0xEA,0xEC,0xEC,0xEC,0xEE,    // 0x02D0 
   0xEE,0xEE,0xEF,0xEF,0xEF,0xF1,0xF1,0xF1,0xF2,0xF2,0xF2,0xF4,0xF4,0xF4,0xF6,0xF6,    // 0x02E0 
   0xF6,0xF7,0xF7,0xF7,0xFA,0xFA,0xFA,0xFA,0xFA,0xFA,0xFC,0xFC,0xFC,0xFF,0xFF,0xFF,    // 0x02F0 
      
};
*/
#ifdef SAMSUNG_PANEL//Samsung(LTS700WQ-F02)-------------------------------------
code unsigned  char TCON_RegVal[WR_1574*2]={
 // Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule
//	0x00, 0x41,		0x01, 0x3F,		0x03, 0x0D,		0x04, 0x0F,		0x06, 0xD8,
	0x00, 0x41,		0x01, 0x3F,		0x03, 0X11,		0x04, 0X38,     0x06, 0xD8,
    0X24, 0X10,     0X25, 0X30,     0X26, 0X10,0x23, 0Xff,
	0x30, 0x48,		0x31, 0x10,		0x32, 0x00,		0x33, 0x13,		0x34, 0x00,
	0x35, 0x30,		0x36, 0x01,		0x3B, 0x0C,		0x3D, 0x01,		0x3F, 0x0C,
	0x41, 0x05,		0x43, 0x17,		0x45, 0xC1,		0x46, 0x00,		0x47, 0x29,
	0x48, 0x01,		0x49, 0x12,		0x4A, 0x00,		0x4B, 0x01,		0x4C, 0x00,
	0x4D, 0x12,		0x4E, 0x00,		0x53, 0x16,		0x55, 0x14,		0x57, 0x16,
	0x59, 0x14,		0x68, 0x00,		0x71, 0x09,		0x74, 0x6E,		0x75, 0x00,
	0x76, 0x8A,		0x77, 0x00,		0x78, 0x01,		0x79, 0x00,		0x7A, 0xA3,
	0x7B, 0x00,		0x7C, 0x00,		0x7D, 0x80,		0x7F, 0x80,		0x8A, 0x58	//for new panel
//	0x7B, 0x00,		0x7C, 0x00,		0x7D, 0x84,		0x7F, 0x80,		0x8A, 0x58
	};
#endif	

#ifdef TOSHIBA_PANEL	//Toshiba(LTA070B343A)----------------------------------
code unsigned  char TCON_RegVal[WR_1574*2]={
 // Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule
//	0x00, 0x41,		0x01, 0x3F,		0x03, 0x0D,		0x04, 0x0F,		0x06, 0xD8,
	0x00, 0x41,		0x01, 0x3F,		0x02, 0X01,0x03, 0X14,		0x04, 0X14,     0x06, 0xD8,
    0X24, 0X10,     0X25, 0X30,     0X26, 0X10,
	0x30, 0xc0,		0x31, 0x07,		0x32, 0x00,		0x33, 0x13,		0x34, 0x00,
	0x35, 0x30,		0x36, 0x01,		0x3B, 0x0C,		0x3D, 0x01,		0x3F, 0x0C,
	0x41, 0x05,		0x43, 0x17,		0x45, 0x51,		0x46, 0x00,		0x47, 0x29,
	0x48, 0x00,		0x49, 0x12,		0x4A, 0x00,		0x4B, 0x01,		0x4C, 0x00,
	0x4D, 0x12,		0x4E, 0xe7,		0x53, 0x03,		0x55, 0x01,		0x57, 0x03,
	0x59, 0x01,		0x68, 0x00,		0x71, 0xb9,		0x74, 0x6E,		0x75, 0x00,
	0x76, 0x8A,		0x77, 0x00,		0x78, 0x01,		0x79, 0x00,		0x7A, 0xA3,
	0x7B, 0x00,		0x7C, 0x00,		0x7D, 0x80,		0x7F, 0x80,		0x8A, 0x75	//for new panel
//	0x7B, 0x00,		0x7C, 0x00,		0x7D, 0x84,		0x7F, 0x80,		0x8A, 0x58
	};
#endif
//-------------------------------------------------------------------------------
extern void		OSD_Init(void);

	//---	Function Prototype Define	----------------
void	All_Init(void);
void 	init_clock(void);
void	init_PWM(void);
BYTE	CVD1_ReadWrite(BYTE, BYTE, BYTE);

/**--------------------------------------------------------------------------
* Name          void All_Init(void)
*
* Description	Init all.
*				Timer1->mode2,Timer0->mode1
*				Baud rate=38400	in 14.318Mhz
*
* Return
* DATE          Author          Description
* ===========================================================================
* 2004/06/24	Eson W.
**/
void	All_Init()
{
	unsigned int	j;
	unsigned char i;
	j=0;
	SYS_RST=0;					//Reset 15xx 								//###---
																			//###	|
		//Init. UART var.													//###	|
	UART_RxInUse = 0;			//Init Rx for buffer 0						//###	|
								//the Rx buffer is double buffer			//###	|
	Rx_Index = Data_Length =	//Init the length and index					//###	|
	Tx_Index = Tx_Length =													//###	|
	UARTFlag = 0;															//###	|
																			//###	|
	init_clock();				//Setting 8051 baud rate and timer clock	//###	|
																			//###	|
		//Init the device information data									//###	|
	DEV_Inf[0] ='1'; DEV_Inf[1] ='5'; DEV_Inf[2] ='7'; DEV_Inf[3] ='4';		//###	|
	DEV_Inf[4] ='0'; DEV_Inf[5] ='0'; DEV_Inf[6] ='0'; DEV_Inf[7] ='0';		//###	|
	DEV_Inf[8] ='1'; DEV_Inf[9] ='2'; DEV_Inf[10]='2'; DEV_Inf[11]='8';		//###	|
	DEV_Inf[12]='I'; DEV_Inf[13]='N'; DEV_Inf[14]='N'; DEV_Inf[15]='O';		//###	|
																			//###	|
//	DELAY(20);					//Mask by KMHo 2004-11-17					//###	|
		// *****************************************************			//###	|
		// *** Please Check the Init. Reg. don't before Here ***			//###	|
		// *****************************************************			//###	|
	SYS_RST=1;					//Reset pin to HI 15xx will normal working	//###---
	
#ifdef TOSHIBA_PANEL
        SHDN_VGH=0;
        SHDN_L5V=0;
        SHDN_VGL=0;
        SHDN_VEE=0;      
#else
       SHDN_L5V = SHDN_VEE = SHDN_VGL = SHDN_VGH = 0;	//Control Panel Power
#endif
        
	NTPASEL = 0;
	
	I2C_WriteByte(L44_WRID, 0x20,  0xC0);			//Turn OFF Screen		//***---
	I2C_WriteByte(L44_WRID, 0x21,  0xff);			//Turn ON Screen		//***---
																			//***	|
	for(i=0; i<WR_1574; i++)						//Set TCON Reg.			//***	|
		I2C_WriteByte(L44_WRID, TCON_RegVal[i*2],  TCON_RegVal[i*2+1]);		//***	|
	
	for (i=0; i<8; i++)														//***	|
		CVD1_ReadWrite(0x01, CVD1_INITTab[i*2], CVD1_INITTab[i*2+1]);		//***	|			
	for(i=0; i<WR_CVD1_BYTE; i++)											//***	|
		CVD1_ReadWrite(0x01, CVD1_NTSCTab[i*2], CVD1_NTSCTab[i*2+1]);		//***	|
																			//***	|
	OSD_Init();										//Initial 15xx's OSD	//***	|
	I2C_WriteByte(L44_WRID, 0x20,  0x40);			//Turn ON Screen		//***---
/*
   I2C_WriteByte(L44_WRID, 0x11,  0xF4);  //access gamma table
   for(j=0; j<768; j++)
   {         
   i= GAMMATAL[j];
   I2C_WriteByte(L44_WRID, 0x1B,  i);  //R
//   I2C_WriteByte(L44_WRID, 0x1B,  i);  //G
//   I2C_WriteByte(L44_WRID, 0x1B,  i);  //B
  }
   I2C_WriteByte(L44_WRID, 0x11,  0xFa);  //enable gamma table
*/
   }

/**--------------------------------------------------------------------------
* Name          void init_clock(void)
*
* Description	Init clock,
*				Timer1->mode2,Timer0->mode1
*				Baud rate=38400	in 14.318Mhz
*
* Return
* DATE          Author          Description
* ===========================================================================
* 2004/06/24	Eson W.
**/
void init_clock(void)
{
	SCON=0x50;						//
	TMOD=0x21;						//TIMER1 working in mode 2
									//Timer0 working in Mode 1
	TH1=0xFF;						//Baud rate 38400 in 14.318Mhz

	TH0=0x9E;						//Timer0 working in Mode 1 and set 20m sec.
	TL0=0x58;						//Working Cry=14.318MHz 1/14.318M * 12 = 0.8 us
									//	20ms = 0.8 * 25000
									//	TH0 = (65536 - 25000) / 256 = 0x9E
									//	TL0 = (65536 - 25000) % 256 = 0x58
	TI=0;
	RI=0;
	TR1=1;							//Enable TIMER1
	TR0=1;							//Enable TIMER0
	IE=0x92;						//Setup UART and Timer0 IRQ
									//	bit7:Enable All IRQ setting,EA=1
									//	bit6:Reserve
									//	bit5:Enable TIMER2 IRQ ,ET2=0
									//	bit4:Enable Serial port,ES=1
									//	bit3:Enable TIMER1 IRQ ,ET1=1
									//	bit2:Enable External/INT1,EX1=0
									//	bit1:Enable TIMER0 IRQ ,ET0=1
									//	bit0:Enable External/INT0,EX0=0
}

/**--------------------------------------------------------------------------
* Name          BYTE	CVD1_ReadWrite(BYTE wr_type, BYTE addr, BYTE value)
*				BYTE	wr_type;		//0x00: for read value from Reg.
*										//0x01: for write value to Reg.
*				BYTE	addr;			//which on Reg. will read/write
*				BYTE	value;			//buffer for read/write
*
* Description   TV Decoder is indirect Reg. in 1574.
*				There are 2Reg. one   for TV Decoder address port   (0x90)
*								other for TV Decoder data port		(0x91)
*				This function usages by I2C
* Flow Chart
*
* Return        None
*
* DATE          Author          Description
* ===========================================================================
* 2004-09-13    K.M. Ho         This is first time implement
**/
BYTE	CVD1_ReadWrite(BYTE wr_type, BYTE addr, BYTE value)
{
	I2C_WriteByte(L44_WRID, 0x90, addr);
	
	if (wr_type)			I2C_WriteByte(L44_WRID, 0x91, value);
	else			value = I2C_ReadByte(L44_WRID, 0x91);
		
	return(value);
}

⌨️ 快捷键说明

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