高级会员
主题
帖子
积分2040
阅读权限30
注册时间2011-12-1
最后登录1970-1-1
在线时间 小时
|
驱动源码
void LCD_Write_Cmd(u16 cmd)
{
Clr_RS;
Set_RD;
Set_WR;
Clr_CS;
LCD_DH = cmd;
LCD_DL = cmd>>8;
Clr_WR;
Set_WR;
Set_CS;
}
void LCD_Write_Dat(u16 dat)
{
Set_RS;
Set_RD;
Set_WR;
Clr_CS;
LCD_DH = dat;
LCD_DL = dat>>8;
Clr_WR;
Set_WR;
Set_CS;
}
void LCD_WriteReg(u16 cmd,u16 dat)
{
LCD_Write_Cmd(cmd);
LCD_Write_Dat(dat);
}
void hx8347a_Initializtion(void)
{
Set_RST;
Delay_ms(5);
Clr_RST;
Delay_ms(10);
Set_RST;
Delay_ms(50);
LCD_ON; //开启LCD背光
LCD_WriteReg(0xEA,0x00); //PTBA[15:8]
LCD_WriteReg(0xEB,0x20); //PTBA[7:0]
LCD_WriteReg(0xEC,0x3C); //STBA[15:8]
LCD_WriteReg(0xED,0xC4); //STBA[7:0]
LCD_WriteReg(0xE8,0x48); //OPON[7:0]
LCD_WriteReg(0xE9,0x38); //OPON1[7:0]
LCD_WriteReg(0xF1,0x01); //OTPS1B
LCD_WriteReg(0xF2,0x08); //GEN
//Gamma 2.8 Setting
LCD_WriteReg(0x40,0x01); //
LCD_WriteReg(0x41,0x07); //
LCD_WriteReg(0x42,0x16); //
LCD_WriteReg(0x43,0x1E); //
LCD_WriteReg(0x44,0x1B); //
LCD_WriteReg(0x45,0x26); //
LCD_WriteReg(0x46,0x25); //
LCD_WriteReg(0x47,0x6F); //
LCD_WriteReg(0x48,0x02); //
LCD_WriteReg(0x49,0x1B); //
LCD_WriteReg(0x4A,0x1D); //
LCD_WriteReg(0x4B,0x1B); //
LCD_WriteReg(0x4C,0x16); //
LCD_WriteReg(0x50,0x19); //
LCD_WriteReg(0x51,0x24); //
LCD_WriteReg(0x52,0x21); //
LCD_WriteReg(0x53,0x29); //
LCD_WriteReg(0x54,0x38); //
LCD_WriteReg(0x55,0x3E); //
LCD_WriteReg(0x56,0x10); //
LCD_WriteReg(0x57,0x5A); //
LCD_WriteReg(0x58,0x09); //
LCD_WriteReg(0x59,0x04); //
LCD_WriteReg(0x5A,0x02); //
LCD_WriteReg(0x5B,0x04); //
LCD_WriteReg(0x5C,0x1D); //
LCD_WriteReg(0x5D,0xCC); //
//Power Voltage Setting
LCD_WriteReg(0x1B,0x1B); //VRH=4.65V
LCD_WriteReg(0x1A,0x01); //BT (VGH~15V,VGL~-10V,DDVDH~5V)
LCD_WriteReg(0x23,0x70); //VMH(VCOM High voltage ~4.2V)
LCD_WriteReg(0x24,0x58); //VML(VCOM Low voltage -1.2V)
//****VCOM offset**///
LCD_WriteReg(0x23,0x5A); //for Flicker adjust //can reload from OTP
//Power on Setting
LCD_WriteReg(0x18,0x36); //I/P_RADJ,N/P_RADJ, Normal mode 70Hz
LCD_WriteReg(0x19,0x01); //OSC_EN='1', start Osc
LCD_WriteReg(0x01,0x00); //DP_STB='0', out deep sleep
LCD_WriteReg(0x1F,0x88);// GAS=1, VOMG=00, PON=0, DK=1, XDK=0, DVDH_TRI=0, STB=0
Delay_ms(5);
LCD_WriteReg(0x1F,0x80);// GAS=1, VOMG=00, PON=0, DK=0, XDK=0, DVDH_TRI=0, STB=0
Delay_ms(5);
LCD_WriteReg(0x1F,0x90);// GAS=1, VOMG=00, PON=1, DK=0, XDK=0, DVDH_TRI=0, STB=0
Delay_ms(5);
LCD_WriteReg(0x1F,0xD0);// GAS=1, VOMG=10, PON=1, DK=0, XDK=0, DDVDH_TRI=0, STB=0
Delay_ms(5);
//262k/65k color selection
LCD_WriteReg(0x17,0x05); //default 0x06 262k color // 0x05 65k color
//SET PANEL
LCD_WriteReg(0x36,0x09); //SS_P, GS_P,REV_P,BGR_P
//Display ON Setting
LCD_WriteReg(0x28,0x38); //GON=1, DTE=1, D=1000
Delay_ms(40);
LCD_WriteReg(0x28,0x3F); //GON=1, DTE=1, D=1100
//Set GRAM Area
LCD_WriteReg(0x02,0x00);
LCD_WriteReg(0x03,0x00); //Column Start
LCD_WriteReg(0x04,0x00);
LCD_WriteReg(0x05,0xEF); //Column End
LCD_WriteReg(0x06,0x00);
LCD_WriteReg(0x07,0x00); //Row Start
LCD_WriteReg(0x08,0x01);
LCD_WriteReg(0x09,0x3F); //Row End
LCD_Write_Cmd(0x22); //Start GRAM write
}
|
|