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

📄 lcd.c

📁 mtk 6226 平台 液晶驱动程序源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
void LCD_ClearAll_R61505U(kal_uint16 data)
{
	kal_prompt_trace(MOD_ENG,"LCD_ClearAll_R61505U");	
   LCD_blockClear_R61505U(0, 0, LCD_WIDTH - 1, LCD_HEIGHT - 1, data);
}


void LCD_Init_R61505U(kal_uint32 bkground, void **buf_addr)
{


kal_uint16  Lcd_Id ;
 kal_uint8 id1,id2,id3,id4;
 kal_uint8 dd1,dd2,dd3,dd4;
SET_LCD_CTRL_RESET_PIN;
delayms(200); // Delay 1ms
CLEAR_LCD_CTRL_RESET_PIN;
delayms(250); // Delay 10ms // This delay time is necessary
SET_LCD_CTRL_RESET_PIN;
delayms(500);  //delay 50ms

LCD_CtrlWrite_R61505U(0x0000);
delayms(150); 
Lcd_Id = LCD_DataRead_R61505U;
	id3=(Lcd_Id&0xFF00)>>8;
	id4=(Lcd_Id&0x00FF);
kal_prompt_trace(MOD_ENG,"Lcd ID = 0x%x,id3=%d,id4=%d",Lcd_Id,id3,id4);
if(Lcd_Id == DO139GEHUA)
	g_CurLcdID = LCD_GEHUA_D0139; 
else if(Lcd_Id == D9320SHENGDA)
	g_CurLcdID = LCD_SHENGDA_D9320;
else if(Lcd_Id == D9320JINGYUAN)
	g_CurLcdID = LCD_JINGYUAN_D9320;
else if(Lcd_Id == HX8437SUONA)
	g_CurLcdID = LCD_SUONA_HX8437; 
else if(Lcd_Id == D0154SUONA)
	g_CurLcdID = LCD_SUONA_D0154; 
else if(Lcd_Id == D5408XIANYU)
	g_CurLcdID = LCD_XIANYU_D5408; 
else if(Lcd_Id == DTIANMA)
	g_CurLcdID = LCD_TIANMA_X;
else
	g_CurLcdID = LCD_SUONA;

kal_prompt_trace(MOD_ENG,"g_CurLcdID ID = %d",g_CurLcdID);	
if(g_CurLcdID == LCD_GEHUA_D0139)	
{
	kal_prompt_trace(MOD_ENG,"LCD_Init_R61505U");	
    LCD_set_reg(0x00, 0x0001);
	delayms(20);
	//power on
	LCD_set_reg(0x11, 0x1504);
	LCD_set_reg(0x14, 0x0c19);
	LCD_set_reg(0x10, 0x3c00);
	LCD_set_reg(0x13, 0x0040);
	delayms(15);

	LCD_set_reg(0x13, 0x0060);
	delayms(75);
	LCD_set_reg(0x13, 0x0070);
	delayms(10);
   //display constrol setting
	LCD_set_reg(0x01, 0x0127);
    LCD_set_reg(0x02, 0x0700);
	LCD_set_reg(0x03, 0x1030);
	LCD_set_reg(0x07, 0x0000);
	LCD_set_reg(0x08, 0x0404);
	
	LCD_set_reg(0x0b, 0x0000);
	LCD_set_reg(0x0c, 0x0000);
	
	LCD_set_reg(0x40, 0x0000);
	LCD_set_reg(0x42, 0x013f);
	LCD_set_reg(0x43, 0x0000);
	LCD_set_reg(0x44, 0x0000);
	LCD_set_reg(0x45, 0x0000);
	LCD_set_reg(0x46, 0xef00);
	LCD_set_reg(0x47, 0x013f);
	LCD_set_reg(0x48, 0x0000);

	
	LCD_set_reg(0x30, 0x0000);
	LCD_set_reg(0x31, 0x0606);
	LCD_set_reg(0x32, 0x0006);
	LCD_set_reg(0x33, 0x0403);
	LCD_set_reg(0x34, 0x0107);
	LCD_set_reg(0x35, 0x0101);
	LCD_set_reg(0x36, 0x0707);
	LCD_set_reg(0x37, 0x0304);
	LCD_set_reg(0x38, 0x0201);
	LCD_set_reg(0x39, 0x0706);

	LCD_set_reg(0x20, 0x0000);
	LCD_set_reg(0x21, 0x0000);
	LCD_set_reg(0x07, 0x0011);
	delayms(40);
	LCD_set_reg(0x07, 0x0017);

	LCD_CtrlWrite_R61505U(0x22);
}
else if(g_CurLcdID == LCD_SUONA)
{
  	CLEAR_LCD_CTRL_RESET_PIN;
	LCD_Delay(0x1000);
	LCD_Delay(0x1000);
	
	SET_LCD_CTRL_RESET_PIN;
	LCD_Delay(0x1000);
	LCD_Delay(0x1000);

	LCD_CtrlWrite_R61505U(0x46);	LCD_DataWrite_R61505U(0x0095); 
    	LCD_CtrlWrite_R61505U(0x47);	LCD_DataWrite_R61505U(0x0051);
	LCD_CtrlWrite_R61505U(0x48);	LCD_DataWrite_R61505U(0x0000);
	LCD_CtrlWrite_R61505U(0x49);	LCD_DataWrite_R61505U(0x0036);
	LCD_CtrlWrite_R61505U(0x4a);	LCD_DataWrite_R61505U(0x0011);
	LCD_CtrlWrite_R61505U(0x4b);	LCD_DataWrite_R61505U(0x0066);
	LCD_CtrlWrite_R61505U(0x4c);	LCD_DataWrite_R61505U(0x0014);
	LCD_CtrlWrite_R61505U(0x4d);	LCD_DataWrite_R61505U(0x0077);
	LCD_CtrlWrite_R61505U(0x4e);	LCD_DataWrite_R61505U(0x0013);
	LCD_CtrlWrite_R61505U(0x4f);	LCD_DataWrite_R61505U(0x004c);
	LCD_CtrlWrite_R61505U(0x50);	LCD_DataWrite_R61505U(0x0046);
	LCD_CtrlWrite_R61505U(0x51);	LCD_DataWrite_R61505U(0x0046);
	
	LCD_CtrlWrite_R61505U(0x02);	LCD_DataWrite_R61505U(0x0000);
	LCD_CtrlWrite_R61505U(0x03);	LCD_DataWrite_R61505U(0x0000);
	LCD_CtrlWrite_R61505U(0x04);	LCD_DataWrite_R61505U(0x0000);
	LCD_CtrlWrite_R61505U(0x05);	LCD_DataWrite_R61505U(0x00ef);
	LCD_CtrlWrite_R61505U(0x06);	LCD_DataWrite_R61505U(0x0000);
	LCD_CtrlWrite_R61505U(0x07);	LCD_DataWrite_R61505U(0x0000);
	LCD_CtrlWrite_R61505U(0x08);	LCD_DataWrite_R61505U(0x0001);
	LCD_CtrlWrite_R61505U(0x09);	LCD_DataWrite_R61505U(0x003f);
	
	LCD_CtrlWrite_R61505U(0x01);	LCD_DataWrite_R61505U(0x0006);
	LCD_CtrlWrite_R61505U(0x16);	LCD_DataWrite_R61505U(0x00c8);
	LCD_CtrlWrite_R61505U(0x23);	LCD_DataWrite_R61505U(0x0095);
	LCD_CtrlWrite_R61505U(0x24);	LCD_DataWrite_R61505U(0x0095);
	LCD_CtrlWrite_R61505U(0x25);	LCD_DataWrite_R61505U(0x00FF);
	LCD_CtrlWrite_R61505U(0x27);	LCD_DataWrite_R61505U(0x0006);
	LCD_CtrlWrite_R61505U(0x28);	LCD_DataWrite_R61505U(0x0006);
	LCD_CtrlWrite_R61505U(0x29);	LCD_DataWrite_R61505U(0x0006);
	LCD_CtrlWrite_R61505U(0x2a);	LCD_DataWrite_R61505U(0x0006);
	LCD_CtrlWrite_R61505U(0x2c);	LCD_DataWrite_R61505U(0x0006);
	LCD_CtrlWrite_R61505U(0x2d);	LCD_DataWrite_R61505U(0x0006);
	LCD_CtrlWrite_R61505U(0x3a);	LCD_DataWrite_R61505U(0x0001);
	LCD_CtrlWrite_R61505U(0x3b);	LCD_DataWrite_R61505U(0x0000);
	LCD_CtrlWrite_R61505U(0x3c);	LCD_DataWrite_R61505U(0x00f0);
	LCD_CtrlWrite_R61505U(0x3d);	LCD_DataWrite_R61505U(0x0000);
	delayms(80);
	LCD_CtrlWrite_R61505U(0x35);	LCD_DataWrite_R61505U(0x0038);
	LCD_CtrlWrite_R61505U(0x36);	LCD_DataWrite_R61505U(0x0078);
	LCD_CtrlWrite_R61505U(0x3E);	LCD_DataWrite_R61505U(0x0038);
	LCD_CtrlWrite_R61505U(0x40);	LCD_DataWrite_R61505U(0x000F);
	LCD_CtrlWrite_R61505U(0x41);	LCD_DataWrite_R61505U(0x00F0);
	
	LCD_CtrlWrite_R61505U(0x19);	LCD_DataWrite_R61505U(0x0049);
	LCD_CtrlWrite_R61505U(0x93);	LCD_DataWrite_R61505U(0x000C);
	delayms(80);
	LCD_CtrlWrite_R61505U(0x20);	LCD_DataWrite_R61505U(0x0040);
	LCD_CtrlWrite_R61505U(0x1D);	LCD_DataWrite_R61505U(0x0007);
	LCD_CtrlWrite_R61505U(0x1E);	LCD_DataWrite_R61505U(0x0000);
	LCD_CtrlWrite_R61505U(0x1F);	LCD_DataWrite_R61505U(0x0004);
	
	LCD_CtrlWrite_R61505U(0x44);	LCD_DataWrite_R61505U(0x004D);
	LCD_CtrlWrite_R61505U(0x45);	LCD_DataWrite_R61505U(0x0011);
	delayms(80);
	LCD_CtrlWrite_R61505U(0x1C);	LCD_DataWrite_R61505U(0x0004);
	delayms(80);
	LCD_CtrlWrite_R61505U(0x43);	LCD_DataWrite_R61505U(0x0080);
	delayms(80);
	LCD_CtrlWrite_R61505U(0x1B);	LCD_DataWrite_R61505U(0x0018);
	delayms(80);
	LCD_CtrlWrite_R61505U(0x1B);	LCD_DataWrite_R61505U(0x0010);
	delayms(80);
	LCD_CtrlWrite_R61505U(0x90);	LCD_DataWrite_R61505U(0x007F);
	LCD_CtrlWrite_R61505U(0x26);	LCD_DataWrite_R61505U(0x0004);
	delayms(80);
	LCD_CtrlWrite_R61505U(0x26);	LCD_DataWrite_R61505U(0x0024);
	LCD_CtrlWrite_R61505U(0x26);	LCD_DataWrite_R61505U(0x002C);
	delayms(80);
	LCD_CtrlWrite_R61505U(0x26);	LCD_DataWrite_R61505U(0x003C);
	
	LCD_CtrlWrite_R61505U(0x57);	LCD_DataWrite_R61505U(0x0002);
	LCD_CtrlWrite_R61505U(0x95);	LCD_DataWrite_R61505U(0x0002);
	LCD_CtrlWrite_R61505U(0x57);	LCD_DataWrite_R61505U(0x0000);
	
	LCD_CtrlWrite_R61505U(0x22);	//LCD_DataWrite_R61505U(0x0038);
}
#if 1
else if(g_CurLcdID == LCD_SHENGDA_D9320)
{
	LCD_set_reg(0x00E5,0x8000);
    	LCD_set_reg(0x0000,0x0001);
     
    	LCD_set_reg(0x0001,0x0100);
	LCD_set_reg(0x0002,0x0700); 
	LCD_set_reg(0x0003,0x1030);
	LCD_set_reg(0x0004,0x0000);
	
	LCD_set_reg(0x0008,0x0202);
	LCD_set_reg(0x0009,0x0000);
	LCD_set_reg(0x000A,0x0000);
	LCD_set_reg(0x000C,0x0000);
	LCD_set_reg(0x000D,0x0000);
	LCD_set_reg(0x000F,0x0000);
	
	LCD_set_reg(0x0010,0x0000);
    	LCD_set_reg(0x0011,0x0007);
	LCD_set_reg(0x0012,0x0000);
	LCD_set_reg(0x0013,0x0000);
	delayms(200);//200
	
	LCD_set_reg(0x0010,0x17b0);
	LCD_set_reg(0x0011,0x0037);
	delayms(50);
	
	LCD_set_reg(0x0012,0x013c);
	delayms(50);
	
	LCD_set_reg(0x0013,0x1f00);
	delayms(50);
	
	LCD_set_reg(0x0029,0xffff);
	delayms(50);
	
	LCD_set_reg(0x0020,0x0000);
	LCD_set_reg(0x0021,0x0000);
	
	LCD_set_reg(0x0030,0x0000);
    	LCD_set_reg(0x0031,0x0505);
    	LCD_set_reg(0x0032,0x0004);
    
    	LCD_set_reg(0x0035,0x0006);
    	LCD_set_reg(0x0036,0x0707);
    	LCD_set_reg(0x0037,0x0105);
    	LCD_set_reg(0x0038,0x0002);
    	LCD_set_reg(0x0039,0x0707);
    
    	LCD_set_reg(0x003C,0x0704);
    	LCD_set_reg(0x003D,0x0807);
    
    	LCD_set_reg(0x0050,0x0000); 
	LCD_set_reg(0x0051,0x00EF);
	LCD_set_reg(0x0052,0x0000);	
	LCD_set_reg(0x0053,0x013F);
	
	LCD_set_reg(0x0060,0x2700);
	LCD_set_reg(0x0061,0x0001);	
	LCD_set_reg(0x006A,0x0000);
	
	LCD_set_reg(0x0080,0x0000);
	LCD_set_reg(0x0081,0x0000);
	LCD_set_reg(0x0082,0x0000);
	LCD_set_reg(0x0083,0x0000);
	LCD_set_reg(0x0084,0x0000);
	LCD_set_reg(0x0085,0x0000);

	LCD_set_reg(0x0090,0x0010);
	LCD_set_reg(0x0092,0x0000);
	LCD_set_reg(0x0093,0x0003);
	LCD_set_reg(0x0095,0x0110);
	LCD_set_reg(0x0097,0x0000);
	LCD_set_reg(0x0098,0x0000);
	LCD_set_reg(0x0007,0x0173);
		 
	LCD_CtrlWrite_R61505U(0x22);
}
else if(g_CurLcdID == LCD_TIANMA_X)
{
	LCD_set_reg(0x07, 0x0000);
	LCD_Delay(40); 

 	LCD_CtrlWrite_R61505U(0x00);     
  	LCD_CtrlWrite_R61505U(0x00); 
 	LCD_CtrlWrite_R61505U(0x00);    
 	LCD_CtrlWrite_R61505U(0x00);    
	LCD_Delay(15);

 	LCD_set_reg(0xa4, 0x0001);
	LCD_Delay(15);        

	LCD_set_reg(0x08, 0x0808);
        
 //**********Adjust the Gamma Curve***********//
	LCD_set_reg(0x30, 0x0707);
	LCD_set_reg(0x31, 0x0607);
	LCD_set_reg(0x32, 0x0200);
	LCD_set_reg(0x33, 0x0301);
	LCD_set_reg(0x34, 0x0101);
	LCD_set_reg(0x35, 0x0404);
	LCD_set_reg(0x36, 0x0a00);
	LCD_set_reg(0x37, 0x0707);
	LCD_set_reg(0x38, 0x0607);
	LCD_set_reg(0x39, 0x0200);
	LCD_set_reg(0x3A, 0x0301);
	LCD_set_reg(0x3B, 0x0101);
	LCD_set_reg(0x3C, 0x0404);
	LCD_set_reg(0x3D, 0x0a00);
     //******** Gamma ***********//       
// *********************************************************//      
   //**********Power On sequence************//       
 	LCD_set_reg(0x07, 0x0001);
 	LCD_set_reg(0x17, 0x0001);                    
 	LCD_set_reg(0x10, 0x16b0);       
	LCD_set_reg(0x11, 0x0007);
 	LCD_set_reg(0x12, 0x011b);         
 	LCD_set_reg(0x13, 0x0f00);       
 	LCD_set_reg(0x29, 0x0010);       
 	LCD_set_reg(0x2a, 0x0095);
 	LCD_set_reg(0x12, 0x0139);
	
  //***********************************************************//
 	LCD_set_reg(0x01, 0x0500);        
  	LCD_set_reg(0x02, 0x0700);       
  	LCD_set_reg(0x03, 0x0030);       
   	LCD_set_reg(0x04, 0x0000);      
   	LCD_set_reg(0x09, 0x0021);      
   	LCD_set_reg(0x0a, 0x0008);      
        
       //Window address control instruction
 	LCD_set_reg(0x50, 0x0000);
 	LCD_set_reg(0x51, 0x00ef);
 	LCD_set_reg(0x52, 0x0000);
  	LCD_set_reg(0x53, 0x013F);
	
       //Driver Output Control 
 	LCD_set_reg(0x60, 0x2700);
       //Base image display control
  	LCD_set_reg(0x61, 0x0000);      
       
       //Panel interface control
 	LCD_set_reg(0x90, 0x0010);
 	LCD_set_reg(0x92, 0x0000);
  	LCD_set_reg(0x93, 0x0000);

 	LCD_set_reg(0x07, 0x0021);
	LCD_Delay(50);
	
 	LCD_set_reg(0x07, 0x0061);
	LCD_Delay(100); 
	
 	LCD_set_reg(0x07, 0x0173);
        
       //RAM Address Set (Horizontal Address)
 	LCD_set_reg(0x20, 0x0000);       
        
	//RAM Address Set (Vertical Address)
  	LCD_set_reg(0x21, 0x0000);

	LCD_CtrlWrite_R61505U(0x22);
}
else if(g_CurLcdID == LCD_JINGYUAN_D9320)
{
	 LCD_set_reg(0x00E5,0x8000);
              
	LCD_set_reg(0x0000,0x0001);

	LCD_set_reg(0x0001,0x0100);
	LCD_set_reg(0x0002,0x0700); 
	LCD_set_reg(0x0003,0x1030);
	LCD_set_reg(0x0004,0x0000);

	LCD_set_reg(0x0008,0x0202);
	LCD_set_reg(0x0009,0x0000);
	LCD_set_reg(0x000A,0x0000);
	LCD_set_reg(0x000C,0x0000);
	LCD_set_reg(0x000D,0x0000);
	LCD_set_reg(0x000F,0x0000);

	LCD_set_reg(0x0010,0x0000);
	LCD_set_reg(0x0011,0x0007);
	LCD_set_reg(0x0012,0x0000);
	LCD_set_reg(0x0013,0x0000);
	delayms(200);//200

	LCD_set_reg(0x0010,0x17B0);
	LCD_set_reg(0x0011,0x0227);//0007
	delayms(50);

	LCD_set_reg(0x0012,0x0139);//0x013A
	delayms(50);

	LCD_set_reg(0x0013,0x1A00);//1A00
	delayms(50);

	LCD_set_reg(0x0029,0x0018); //000C
	delayms(50);

	LCD_set_reg(0x0020,0x0000);
	LCD_set_reg(0x0021,0x0000);

	LCD_set_reg(0x0030,0x0004);//0x0000
	LCD_set_reg(0x0031,0x0506);//0x0505
	LCD_set_reg(0x0032,0x0305);//0x0004

⌨️ 快捷键说明

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