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

📄 1574init.c

📁 small pannel driver using MXIC s 88LV462,this sample code including the function IIC with 8051,IR,OS
💻 C
字号:
/**--------------------------------------------------------------------------
* Name          15xxInit.c
--------------------------------------------------------------------------**/
#include 	"..\inc\public2.h"

#define		WR_CVD1_BYTE		14
#define		WR_1574				45		

#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[12] =
{// Reg.# Value
	0x3F, 0x00,		0x03, 0x00,		0x05, 0x64,		0x06, 0x8A,		0x11, 0xB9,		
	0x83, 0x89
};

code unsigned char CVD1_NTSCTab[WR_CVD1_BYTE*2] =
{// Reg.# Value
	0x00, 0x00,		0x01, 0x01,		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, 0x00,		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
//-------------------------------------------------------------------
#ifdef CPT_PANEL	//CPT(CLAA070WA01)---AU(A070FW03 V1)---InnoLux(AT070TN04)--
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, 0x14,		0x06, 0xD8,
	0x30, 0x48,		0x31, 0x12,		0x32, 0x00,		0x33, 0x38,		0x34, 0x00,
	0x35, 0x30,		0x36, 0x01,		0x3B, 0x0D,		0x3D, 0x01,		0x3F, 0x0C,
	0x41, 0x02,		0x43, 0x0A,		0x45, 0xC1,		0x46, 0x00,		0x47, 0xC2,
	0x48, 0x00,		0x49, 0x12,		0x4A, 0x00,		0x4B, 0x01,		0x4C, 0x00,
	0x4D, 0x12,		0x4E, 0x00,		0x53, 0x18,		0x55, 0x17,		0x57, 0x18,
	0x59, 0x17,		0x68, 0x10,		0x71, 0x09,		0x74, 0x6E,		0x75, 0x00,
	0x76, 0x8A,		0x77, 0x00,		0x78, 0x01,		0x79, 0x00,		0x7A, 0xA3,
	0x7B, 0x00,		0x7C, 0x00,		0x7D, 0x84,		0x7F, 0x80,		0x8A, 0x58
	};
#endif

#ifdef HYDIS_PANEL	//Hydis(HT07W31)-------------------------------------------
code unsigned  char TCON_RegVal[WR_1574*2]={
 // Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule
	0x00, 0x41,		0x01, 0x3F,		0x03, 0x0C,		0x04, 0x0C,		0x06, 0xD8,
	0x30, 0x48,		0x31, 0x12,		0x32, 0x00,		0x33, 0x38,		0x34, 0x00,
	0x35, 0x30,		0x36, 0x01,		0x3B, 0x0D,		0x3D, 0x01,		0x3F, 0x0C,
	0x41, 0x02,		0x43, 0x0A,		0x45, 0xBF,		0x46, 0x00,		0x47, 0xC2,
	0x48, 0x00,		0x49, 0x12,		0x4A, 0x00,		0x4B, 0x01,		0x4C, 0x00,
	0x4D, 0x12,		0x4E, 0x00,		0x53, 0x18,		0x55, 0x17,		0x57, 0x18,
	0x59, 0x17,		0x68, 0x10,		0x71, 0x09,		0x74, 0x6E,		0x75, 0x00,
	0x76, 0x8A,		0x77, 0x00,		0x78, 0x01,		0x79, 0x00,		0x7A, 0xA3,
	0x7B, 0x00,		0x7C, 0x00,		0x7D, 0x84,		0x7F, 0x80,		0x8A, 0x58
	};
#endif

#ifdef LG_PANEL		//LG(LB070W02)---------------------------------------------
code unsigned  char TCON_RegVal[] ={
//   Reg.# Vaule       Reg.# Vaule	Reg.# Vaule	Reg.# Vaule	Reg.# Vaule
     0x00, 0x41,       0x01, 0x3F,	0x03, 0x0D,	0x04, 0x18,	0x06, 0xD8,
     0x30, 0xC8,       0x31, 0x12,	0x32, 0x00,	0x33, 0x38,	0x34, 0x00,
     0x35, 0x30,       0x36, 0x01,	0x3B, 0x06,	0x3D, 0x01,	0x3F, 0x00,
//	 0x35, 0x30,       0x36, 0x01,	0x3B, 0x08,	0x3D, 0x01,	0x3F, 0x00
     0x41, 0x01,       0x43, 0x00,	0x45, 0xC1,	0x46, 0x00,	0x47, 0xC2,
//	 0x41, 0x03,       0x43, 0x00,	0x45, 0xC1,	0x46, 0x00,	0x47, 0xC2
     0x48, 0x00,       0x49, 0x12,	0x4A, 0x00,	0x4B, 0x01,	0x4C, 0x00,
     0x4D, 0x12,       0x4E, 0x00,	0x53, 0x17,	0x55, 0x15,	0x57, 0x17,
     0x59, 0x15,       0x68, 0x10,	0x71, 0xA3,	0x74, 0x0A,	0x75, 0x00,
     0x76, 0x8A,       0x77, 0x00,	0x78, 0x01,	0x79, 0x00,	0x7A, 0xA3,
     0x7B, 0x00,       0x7C, 0x00,	0x7D, 0xC0,	0x7F, 0x80,	0x8A, 0x59 
};
#endif	

#ifdef PVI_PANEL	//PVI(PW045XS1), (PW070XS7)--------------------------------
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, 0x14,		0x06, 0xD8,
	0x30, 0x48,		0x31, 0x12,		0x32, 0x00,		0x33, 0x13,		0x34, 0x00,
	0x35, 0x30,		0x36, 0x01,		0x3B, 0x0E,		0x3D, 0x07,		0x3F, 0x0C,
	0x41, 0x02,		0x43, 0x0A,		0x45, 0xC3,		0x46, 0x00,		0x47, 0xC5,
	0x48, 0x00,		0x49, 0x12,		0x4A, 0x00,		0x4B, 0x01,		0x4C, 0x00,
	0x4D, 0x12,		0x4E, 0x00,		0x53, 0x19,		0x55, 0x17,		0x57, 0x19,
	0x59, 0x17,		0x68, 0x10,		0x71, 0x09,		0x74, 0x6E,		0x75, 0x00,
	0x76, 0x8A,		0x77, 0x00,		0x78, 0x01,		0x79, 0x00,		0x7A, 0xA3,
	0x7B, 0x00,		0x7C, 0x00,		0x7D, 0x84,		0x7F, 0x80,		0x8A, 0x58
	};
#endif	

#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, 0x0E,		0x06, 0xD8,
	0x30, 0x48,		0x31, 0x12,		0x32, 0x00,		0x33, 0x38,		0x34, 0x00,
	0x35, 0x30,		0x36, 0x01,		0x3B, 0x0F,		0x3D, 0x10,		0x3F, 0x19,
	0x41, 0x10,		0x43, 0x19,		0x45, 0xC1,		0x46, 0x00,		0x47, 0xC2,
	0x48, 0x00,		0x49, 0x12,		0x4A, 0x00,		0x4B, 0x01,		0x4C, 0x00,
	0x4D, 0x12,		0x4E, 0x00,		0x53, 0x18,		0x55, 0x17,		0x57, 0x18,
	0x59, 0x17,		0x68, 0x80,		0x71, 0xA3,		0x74, 0x00,		0x75, 0x00,	
	0x76, 0x38,		0x77, 0x00,		0x78, 0xA3,		0x79, 0x00,		0x7A, 0x01,	
	0x7B, 0x00,		0x7C, 0x00,		0x7D, 0x40,		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,		0x03, 0X11,		0x04, 0X38,     0x06, 0xD8,
	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, 0xC3,
	0x48, 0x00,		0x49, 0x12,		0x4A, 0x00,		0x4B, 0x01,		0x4C, 0x00,
	0x4D, 0x12,		0x4E, 0x00,		0x53, 0x16,		0x55, 0x14,		0x57, 0x16,
	0x59, 0x14,		0x68, 0x10,		0x71, 0x09,		0x74, 0x6E,		0x75, 0x00,
	0x76, 0x8A,		0x77, 0x00,		0x78, 0x01,		0x79, 0x00,		0x7A, 0xA3,
	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,
	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, 0xC3,
	0x48, 0x00,		0x49, 0x12,		0x4A, 0x00,		0x4B, 0x01,		0x4C, 0x00,
	0x4D, 0x12,		0x4E, 0x00,		0x53, 0x16,		0x55, 0x14,		0x57, 0x16,
	0x59, 0x14,		0x68, 0x10,		0x71, 0x09,		0x74, 0x6E,		0x75, 0x00,
	0x76, 0x8A,		0x77, 0x00,		0x78, 0x01,		0x79, 0x00,		0x7A, 0xA3,
	0x7B, 0x00,		0x7C, 0x00,		0x7D, 0x84,		0x7F, 0x80,		0x8A, 0x58
*/
    0x20, 0x20,     0x00, 0x41,		0x01, 0x3F,		0x03, 0x0D,		0x04, 0x16,
	0x06, 0xD8,     0x30, 0x48,		0x31, 0x10,		0x32, 0x00,		0x33, 0x13,
	0x34, 0x00,		0x35, 0x30,		0x36, 0x01,		0x3B, 0x0D,		0x3D, 0x15,
	0x3F, 0x1E,		0x41, 0x17,		0x43, 0x1E,		0x45, 0xC1,		0x46, 0x00,	
	0x47, 0xC3,		0x48, 0x00,		0x49, 0x12,		0x4A, 0x00,		0x4B, 0x18,	
	0x4C, 0x00,		0x4D, 0x12,		0x4E, 0x00,		0x53, 0x14,		0x55, 0x12,	
	0x57, 0x14,		0x59, 0x12,		0x68, 0x10,		0x71, 0xA3,		0x74, 0x6E,
	0x75, 0x00,		0x76, 0x8A,		0x77, 0x00,		0x78, 0x01,		0x79, 0x00,	
	0x7A, 0xA3,		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()
{
	char	i;
	
	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		//***---
																			//***	|
	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<6; 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		//***---

}

/**--------------------------------------------------------------------------
* 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 + -