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

📄 lcd.c

📁 MTK常用LCD驱动,[HX8312 SSD1289 TL1763 ILI9320 HX8346 S6D01390] LGDP4531
💻 C
📖 第 1 页 / 共 5 页
字号:

	LCD_CtrlWrite_HX8306A(0x2a);// BP/FP SETTING
	LCD_DataWrite_HX8306A(0x02);
	DelayX1mS(10);

	LCD_CtrlWrite_HX8306A(0x2c);// BP/FP SETTING
	LCD_DataWrite_HX8306A(0x02);
	DelayX1mS(10);

	LCD_CtrlWrite_HX8306A(0x2d);// BP/FP SETTING
	LCD_DataWrite_HX8306A(0x02);
	DelayX1mS(10);

	LCD_CtrlWrite_HX8306A(0x3a);//cycle control 1
	LCD_DataWrite_HX8306A(0x01); //01
	DelayX1mS(10);

	LCD_CtrlWrite_HX8306A(0x3b);//cycle control 2
	LCD_DataWrite_HX8306A(0x01);
	DelayX1mS(10);

	LCD_CtrlWrite_HX8306A(0x3c);//cycle control 3
	LCD_DataWrite_HX8306A(0xf0);
	DelayX1mS(10);

	LCD_CtrlWrite_HX8306A(0x3d);//cycle control 4
	LCD_DataWrite_HX8306A(0x00);
	DelayX1mS(20);

	/**********power setting**********************/

	LCD_CtrlWrite_HX8306A(0x42);//BGP control
	LCD_DataWrite_HX8306A(0x08);
	DelayX1mS(50);

	LCD_CtrlWrite_HX8306A(0x1c);// AP2-0 SETTING
	LCD_DataWrite_HX8306A(0x04);
	DelayX1mS(30);

	LCD_CtrlWrite_HX8306A(0x30);// SAP3-0 SETTING
	LCD_DataWrite_HX8306A(0x08); 
	DelayX1mS(10);

	LCD_CtrlWrite_HX8306A(0x1D);//VLCD SETTING
	LCD_DataWrite_HX8306A(0x41);
	DelayX1mS(30);

	LCD_CtrlWrite_HX8306A(0x1E);//VREG3 SETTING
	LCD_DataWrite_HX8306A(0x01);//VREG3=2XVCI
	DelayX1mS(30);

	LCD_CtrlWrite_HX8306A(0x1F);//power control 1
	LCD_DataWrite_HX8306A(0x08);//vreg1=4.64v
	DelayX1mS(30);

	LCD_CtrlWrite_HX8306A(0x20);// VGL/VGH SETTING
	LCD_DataWrite_HX8306A(0x70);
	DelayX1mS(30);

	LCD_CtrlWrite_HX8306A(0x21);// DC/DC SETTING
	LCD_DataWrite_HX8306A(0x00);
	DelayX1mS(30);

	LCD_CtrlWrite_HX8306A(0x43);//vomg control
	LCD_DataWrite_HX8306A(0x80);
	DelayX1mS(50);

	LCD_CtrlWrite_HX8306A(0x44);  //vcomh control
	LCD_DataWrite_HX8306A(0x44); //VCOMH=3.4V
	DelayX1mS(10);

	LCD_CtrlWrite_HX8306A(0x45);//vcom control
	LCD_DataWrite_HX8306A(0x10); //VCOM=4.872V
	DelayX1mS(20);


	/******************GAMMA SETTING***********************/

	LCD_CtrlWrite_HX8306A(0x46);//GAMMA control 1
	LCD_DataWrite_HX8306A(0x01);

	LCD_CtrlWrite_HX8306A(0x47);//GAMMA control 2
	LCD_DataWrite_HX8306A(0x21);

	LCD_CtrlWrite_HX8306A(0x48);//GAMMA control 3
	LCD_DataWrite_HX8306A(0x22);

	LCD_CtrlWrite_HX8306A(0x49);//GAMMA control 4
	LCD_DataWrite_HX8306A(0x33);

	LCD_CtrlWrite_HX8306A(0x4A);//GAMMA control 5
	LCD_DataWrite_HX8306A(0x01);

	LCD_CtrlWrite_HX8306A(0x4B);//GAMMA control 6
	LCD_DataWrite_HX8306A(0x01);

	LCD_CtrlWrite_HX8306A(0x4C);//GAMMA control 7
	LCD_DataWrite_HX8306A(0x13);

	LCD_CtrlWrite_HX8306A(0x4D);//GAMMA control  8
	LCD_DataWrite_HX8306A(0x22);

	LCD_CtrlWrite_HX8306A(0x4E);//GAMMA control 9
	LCD_DataWrite_HX8306A(0x12);

	LCD_CtrlWrite_HX8306A(0x4F);//GAMMA control 10
	LCD_DataWrite_HX8306A(0x21);

	LCD_CtrlWrite_HX8306A(0x50);//GAMMA control 11
	LCD_DataWrite_HX8306A(0x21);

	LCD_CtrlWrite_HX8306A(0x51);//GAMMA control 12
	LCD_DataWrite_HX8306A(0x00);
	DelayX1mS(100);

	   LCD_CtrlWrite_HX8306A(0x02);
	   LCD_DataWrite_HX8306A(0x00);
	   LCD_CtrlWrite_HX8306A(0x03);
	   LCD_DataWrite_HX8306A(0x00);
	   LCD_CtrlWrite_HX8306A(0x04);
	   LCD_DataWrite_HX8306A(0x00);
	   LCD_CtrlWrite_HX8306A(0x05);
	   LCD_DataWrite_HX8306A(0xef);

	   LCD_CtrlWrite_HX8306A(0x06);
	   LCD_DataWrite_HX8306A(0x00);
	   LCD_CtrlWrite_HX8306A(0x07);
	   LCD_DataWrite_HX8306A(0x00);
	   LCD_CtrlWrite_HX8306A(0x08);
	   LCD_DataWrite_HX8306A(0x01);
	   LCD_CtrlWrite_HX8306A(0x09);
	   LCD_DataWrite_HX8306A(0x3f);


	/****************display on setting**************/

	LCD_CtrlWrite_HX8306A(0x26);
	LCD_DataWrite_HX8306A(0x04);
	DelayX1mS(20);

	LCD_CtrlWrite_HX8306A(0x26);
	LCD_DataWrite_HX8306A(0x24);
	DelayX1mS(20);

	LCD_CtrlWrite_HX8306A(0x26);
	LCD_DataWrite_HX8306A(0x2c);
	DelayX1mS(20);

	LCD_CtrlWrite_HX8306A(0x26);
	LCD_DataWrite_HX8306A(0x3c);
	DelayX1mS(20);

	LCD_CtrlWrite_HX8306A(0x0022);
#endif

return;
}


if(lcd_id==_SSD1289_240X320)
{
 //#ifdef  _SSD1289_240X320
    Init_data(0x0000,0x0001);//oscillator on
    DelayX1mS(10);

    Init_data(0x0003,0xaeae);    //0xA2A0//0xeeee
    Init_data(0x000c,0x0000);   //0x0002
    Init_data(0x000d,0x000F);  
    Init_data(0x000e,0x3200);  //0x3600
    DelayX1mS(10);

    Init_data(0x001e,0x00Ad);   //0x00A5
    Init_data(0x0001,0x2B3F);
    Init_data(0x0002,0x0600);
    Init_data(0x0010,0x0000);
    Init_data(0x0011,0x6830);  //0x6830

//add 20070705
    Init_data(0x0005,0x0000);     
    Init_data(0x0006,0x0000);
    Init_data(0x0007,0x0233);
//add 20070705
	
    Init_data(0x000b,0x0030);  //0x5300
    Init_data(0x000f,0x0000);
    DelayX1mS(100);

//add 20070705
    Init_data(0x0041,0x0000);
    Init_data(0x0042,0x0000);
    Init_data(0x0044,0xef00);
    Init_data(0x0045,0x0000);
    Init_data(0x0046,0x013f);
    Init_data(0x0048,0x0000);
    Init_data(0x0049,0x013f);
    Init_data(0x004a,0x0000);
    Init_data(0x004b,0x0000);
    Init_data(0x004e,0x0000);
    Init_data(0x004f,0x0000);

//*****optimize for video display*****//
	Init_data(0x0028,0x0006);
	Init_data(0x002f,0x12be);//0x12ae
	Init_data(0x0012,0x6ceb);//optimize for video
       DelayX1mS(10);
	Init_data(0x0025,0xe000);	
//^^^^^optimize for video display^^^^^//
//add 20070705

    Init_data(0x0030,0x0000);  //0x0707
    Init_data(0x0031,0x0507);  //0x0204
    Init_data(0x0032,0x0003);  //0x0204
    Init_data(0x0033,0x0400);  //0x0502
    Init_data(0x0034,0x0607);  //0x0507
    Init_data(0x0035,0x0004);  //0x0204
    Init_data(0x0036,0x0706);  //0x0204
    Init_data(0x0037,0x0003);  //0x0502
    Init_data(0x003A,0x0900);  //0x0302
    Init_data(0x003B,0x0003);  //0x0504
    DelayX1mS(20);

   
    //Init_data(0x0023,0x0000);
    //Init_data(0x0024,0x0000);
   // DelayX1mS(10);
   // Init_data(0x0007,0x0233);
    //DelayX1mS(10);
    
    LCD_CtrlWrite_HX8306A(0x0022);
    {
		kal_uint16 i,j;
		for(i=0;i<320;i++)
		{
			for(j=0;j<240;j++)
			{
				*(volatile kal_uint16 *)LCD_HX8306A_DATA_ADDR = 0;
			}
		}
     }
//#endif
return;
}

if(lcd_id==_S6D0139_240x320)
{
//#ifdef _S6D0139_240x320

       DelayX1mS(10);
	//*************Power Setting sequence ****************
	Init_data(0x0011, 0x3304);                // Power Control 2
	Init_data(0x0014, 0x1300);                // Power Control 4
	Init_data(0x0010, 0x1A20);                // Power Control 1
	Init_data(0x0013, 0x0040);                // Power Control 3
	DelayX1mS(10);
	Init_data(0x0013, 0x0060);                // Power Control 3
	DelayX1mS(10);
	Init_data(0x0013, 0x0070);                // Power Control 3
	DelayX1mS(40);

	//************* Start Initial Sequence **********//
	Init_data(0x0000, 0x0001);		// Start internal OSC.
	Init_data(0x0001, 0x0127); 		// set SS and SM bit
	Init_data(0x0002, 0x0700);		// set 1 line inversion
	Init_data(0x0003, 0x1030); 		// set GRAM write direction and BGR=1.
	Init_data(0x0008, 0x0109);		// set the back porch and front porch
	Init_data(0x000B, 0x0600);		// FMARK function
	Init_data(0x000C, 0x0001);		// RGB interface setting
	Init_data(0x000D, 0x0007);		// Frame marker Position

	// ---------- Gamma Control  ---------- //
  	Init_data(0x0030, 0x0120);
  	Init_data(0x0031, 0x0117);
  	Init_data(0x0032, 0x0000);
  	Init_data(0x0033, 0x0305);
  	Init_data(0x0034, 0x0717);
  	Init_data(0x0035, 0x0124);
  	Init_data(0x0036, 0x0756);
  	Init_data(0x0037, 0x0503);
  	Init_data(0x0038, 0x1F03);
  	Init_data(0x0039, 0x0009);

	// ---------- Gate/Vertical Scan Control  ---------- //
	Init_data(0x0040, 0x0000);		// Gate Scan Position
	Init_data(0x0041, 0x0000);		// Vertical Scan Position

	// ---------- Partial Display Control  ---------- //
	Init_data(0x0042, 0x013F);		// Partial Image 1 End Address
	Init_data(0x0043, 0x0000);		// Partial Image 1 Start Address
	Init_data(0x0044, 0x013f);		// Partial Image 2 End Address       //0x013F
	Init_data(0x0045, 0x0000);		// Partial Image 2 Start Address

	// ---------- Window Address Area  ---------- //
	Init_data(0x0046, 0xEF00);		// Horizontal GRAM Start/End Address
	Init_data(0x0047, 0x013F);		// Vertical GRAM End Address
	Init_data(0x0048, 0x0000);		// Vertical GRAM Start Address

	//*************Display On sequence ****************
	Init_data(0x0007, 0x0015);       //0x0015         // Display Control
	DelayX1mS(40);
	Init_data(0x0007, 0x0017);       //0x0017         // Display Control

	// ---------- GRAM Address Set ---------- //
	Init_data(0x0020, 0x0000);
	Init_data(0x0021, 0x0000);
	LCD_CtrlWrite_HX8306A(0x0022);
{
	kal_uint16 i,j;
	for(i=0;i<320;i++)
	{
		for(j=0;j<240;j++)
		{
			*(volatile kal_uint16 *)LCD_HX8306A_DATA_ADDR = 0;
		}
	}
}
//#endif
return;
}

#ifdef _HX8312_240x320_

//-------------- Display control setting --------------//
LCD_CtrlWrite_HX8306A(0x0110);	
LCD_CtrlWrite_HX8306A(0x00a0); 
LCD_CtrlWrite_HX8306A(0x0301);	//software reset
DelayX1mS(10);
LCD_CtrlWrite_HX8306A(0x0300);

LCD_CtrlWrite_HX8306A(0x2b0d);	//08    //0x2b0c
LCD_CtrlWrite_HX8306A(0x281d);	//DCDCf(page 102)    //0x2818
LCD_CtrlWrite_HX8306A(0x1a05);		//DC3--DC0(page 100)  05  //0x1a00
LCD_CtrlWrite_HX8306A(0x2505);	//BT3--BT0(page 102)
LCD_CtrlWrite_HX8306A(0x1c73);		//0x1c33//0x1c73-AP0--AP2;SAP0--SAP2(page 101)
LCD_CtrlWrite_HX8306A(0x190c);	//0x196c//0x1900 VR2 VR1 (page 100)

LCD_CtrlWrite_HX8306A(0x2474);	//0x2473//0x2474 V18 VCOM(page 102)
LCD_CtrlWrite_HX8306A(0x18c1);		//DCON VR1ON VR2ON (page 100)
DelayX1mS(10);
LCD_CtrlWrite_HX8306A(0x1e01);		//DDVDHXON=1;(page 101)

LCD_CtrlWrite_HX8306A(0x18e1);		//0x18c5//0x18e1+VCLON
LCD_CtrlWrite_HX8306A(0x18f1);		//0x18e5//0x18f1+VGON
DelayX1mS(60);
LCD_CtrlWrite_HX8306A(0x18f5);		//DDVDHON

DelayX1mS(60);
LCD_CtrlWrite_HX8306A(0x1b0d);	//RGON(page 100)  0d  //0x1b09
DelayX1mS(10);
LCD_CtrlWrite_HX8306A(0x1f16);//09   0a
LCD_CtrlWrite_HX8306A(0x2011);	//0x2013
LCD_CtrlWrite_HX8306A(0x1e81);	//
DelayX1mS(10);
///////////////////////////////////////////
LCD_CtrlWrite_HX8306A(0x9d00);	//(page 110)
LCD_CtrlWrite_HX8306A(0x0e00);		//PSEL(page 98)
LCD_CtrlWrite_HX8306A(0x0f00);		//PGR,PGB,PGG=0(page 99)
LCD_CtrlWrite_HX8306A(0x1000);	//start line1(page 99)
LCD_CtrlWrite_HX8306A(0x1100);		//start line1(page 99)
LCD_CtrlWrite_HX8306A(0x1200);	//
LCD_CtrlWrite_HX8306A(0x1300);	//start line1(page 99)
LCD_CtrlWrite_HX8306A(0x1400);	//
LCD_CtrlWrite_HX8306A(0x1500);	//line number(page 99)
LCD_CtrlWrite_HX8306A(0x1600);
LCD_CtrlWrite_HX8306A(0x1700);	//line number(page 99)

LCD_CtrlWrite_HX8306A(0x3401);	//scan cycle(page 103)
LCD_CtrlWrite_HX8306A(0x3500);	//PNFRM(page 103)
LCD_CtrlWrite_HX8306A(0x4b00);	//scroll start line(page 106)
LCD_CtrlWrite_HX8306A(0x4c00);		//scroll start line(page 106)
LCD_CtrlWrite_HX8306A(0x4e00);		//scroll line number(page 106)
LCD_CtrlWrite_HX8306A(0x4f00);		//
LCD_CtrlWrite_HX8306A(0x5000);	//lines number scrolled(page 107)
	
LCD_CtrlWrite_HX8306A(0x4200);	//x start of ram(page 104)
LCD_CtrlWrite_HX8306A(0x4300);	//
LCD_CtrlWrite_HX8306A(0x4400);	//x start of ram(page 105)
LCD_CtrlWrite_HX8306A(0x4500);	//x start for windows(page 105)
LCD_CtrlWrite_HX8306A(0x46ef);		//x end for windows(page 105)
LCD_CtrlWrite_HX8306A(0x4700);	//
LCD_CtrlWrite_HX8306A(0x4800);	//y start for windows(page 105)
LCD_CtrlWrite_HX8306A(0x4901);	//
LCD_CtrlWrite_HX8306A(0x4a3f);		//y end for windows(page 105)

LCD_CtrlWrite_HX8306A(0x1d08);	//R/L (page 101)gate scan direction
LCD_CtrlWrite_HX8306A(0x8600);	//(page 107)
LCD_CtrlWrite_HX8306A(0x8730);	//0x872f//0x8730
LCD_CtrlWrite_HX8306A(0x8802);	//
LCD_CtrlWrite_HX8306A(0x8905);	//(page 107)
LCD_CtrlWrite_HX8306A(0x8d01);	//CLKM(page 108)register set-up mode for one line clock number
LCD_CtrlWrite_HX8306A(0x8b26);	//0x8b26//0x8b30
LCD_CtrlWrite_HX8306A(0x3301);	//N line inversion setting(page 103)
LCD_CtrlWrite_HX8306A(0x3700);	//0x3701//
LCD_CtrlWrite_HX8306A(0x7600);	//DMYSEL(page 107)
//-------------- Gamma control setting --------------//
LCD_CtrlWrite_HX8306A(0x8f00);		//Gamma control register 1 
LCD_CtrlWrite_HX8306A(0x9077);	//Gamma control register 2 
LCD_CtrlWrite_HX8306A(0x9107);	//Gamma control register 3 
LCD_CtrlWrite_HX8306A(0x9254);	//Gamma control register 4 
LCD_CtrlWrite_HX8306A(0x9307);	//Gamma control register 5
LCD_CtrlWrite_HX8306A(0x9400);	//Gamma control register 6
LCD_CtrlWrite_HX8306A(0x9577);	//Gamma control register 7
LCD_CtrlWrite_HX8306A(0x9645);	//Gamma control register 8
LCD_CtrlWrite_HX8306A(0x9700);	//Gamma control register 9
LCD_CtrlWrite_HX8306A(0x9806);	//Gamma control register 10
LCD_CtrlWrite_HX8306A(0x9903);	//Gamma control register 11
LCD_CtrlWrite_HX8306A(0x9a00);		//Gamma control register 12

////////////////////////display on///////
LCD_CtrlWrite_HX8306A(0x3b01);	//DISPTMG(page 103)//gate scan normal ope
DelayX1mS(40);
LCD_CtrlWrite_HX8306A(0x0020);	//ADC=1;(page 97)
LCD_CtrlWrite_HX8306A(0x0110);	
LCD_CtrlWrite_HX8306A(0x0510);

{
	kal_uint16 i,j;
	for(i=0;i<320;i++)
	{
		for(j=0;j<240;j++)
		{
			*(volatile kal_uint16 *)LCD_HX8306A_DATA_ADDR = 0;
		}
	}
}
#endif




}


void LCD_PWRON_HX8306A(kal_bool on)
{
}

void LCD_SetContrast_HX8306A(kal_uint8 level)
{
}



void LCD_ON_HX8306A(kal_bool on)
{
}


⌨️ 快捷键说明

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