高级会员
主题
帖子
积分2040
阅读权限30
注册时间2011-12-1
最后登录1970-1-1
在线时间 小时
|
这个屏在山寨手机上用量很大,有这个屏的童鞋可以用单片机之类的芯片驱动,这是测试通过的源码,略有编程基础,移植过去即可正常使用。
void LCD_Write_Cmd(u8 cmd)
{
Clr_RS;
Set_RD;
Set_WR;
Clr_CS;
LCD_DH = cmd;
Clr_WR;
Set_WR;
Set_CS;
}
void LCD_Write_Dat(u8 dat)
{
Set_RS;
Set_RD;
Set_WR;
Clr_CS;
LCD_DH = dat;
Clr_WR;
Set_WR;
Set_CS;
}
void LCD_WriteReg(u8 cmd,u8 dat)
{
LCD_Write_Cmd(cmd);
LCD_Write_Dat(dat);
}
void hx8347G_Initializtion(void)
{
Set_RST;
delay_ms(5);
Clr_RST;
delay_ms(10);
Set_RST;
delay_ms(50);
//LCD_ON; //开启LCD背光
LCD_WriteReg(0x2E, 0x89); //write_data(0x00,); //GDOFF
LCD_WriteReg(0x29, 0X8F); //write_data(0x00); //RTN
LCD_WriteReg(0x2B, 0X02); //write_data(0x00,); //DUM
LCD_WriteReg(0xE2, 0X00); //write_data(0x00,); //VREF
LCD_WriteReg(0xE4, 0X01); //write_data(0x00,); //EQ
LCD_WriteReg(0xE5, 0X10); //write_data(0x00,); //EQ
LCD_WriteReg(0xE6, 0X01); //write_data(0x00,); //EQ
LCD_WriteReg(0xE7, 0X10); //write_data(0x00,); //EQ
LCD_WriteReg(0xE8, 0X70); //write_data(0x00,); //OPON
LCD_WriteReg(0xF2, 0X00); //write_data(0x00,); //GEN
LCD_WriteReg(0xEA, 0X00); //write_data(0x00,); //PTBA
LCD_WriteReg(0xEB, 0X20); //write_data(0x00,); //PTBA
LCD_WriteReg(0xEC, 0X3C); //write_data(0x00,); //STBA
LCD_WriteReg(0xED, 0XC8); //write_data(0x00,); //STBA
LCD_WriteReg(0xE9, 0X38); //write_data(0x00,); //OPON1
LCD_WriteReg(0xF1, 0X01); //write_data(0x00,); //OTPS1B
// Gamma 2.8 setting
LCD_WriteReg(0x40, 0X00); //write_data(0x00,); //
LCD_WriteReg(0x41, 0X00); //write_data(0x00,); //
LCD_WriteReg(0x42, 0X00); //write_data(0x00,); //
LCD_WriteReg(0x43, 0X15); //write_data(0x00,); //
LCD_WriteReg(0x44, 0X13); //write_data(0x00,); //
LCD_WriteReg(0x45, 0X3f); //write_data(0x00,); //
LCD_WriteReg(0x47, 0X55); //write_data(0x00,); //
LCD_WriteReg(0x48, 0X00); //write_data(0x00,); //
LCD_WriteReg(0x49, 0X12); //write_data(0x00,); //
LCD_WriteReg(0x4A, 0X19); //write_data(0x00,); //
LCD_WriteReg(0x4B, 0X19); //write_data(0x00,); //
LCD_WriteReg(0x4C, 0X16); //write_data(0x00,); //
LCD_WriteReg(0x50, 0X00); //write_data(0x00,); //
LCD_WriteReg(0x51, 0X2c); //write_data(0x00,); //
LCD_WriteReg(0x52, 0X2a); //write_data(0x00,); //
LCD_WriteReg(0x53, 0X3F); //write_data(0x00,); //
LCD_WriteReg(0x54, 0X3F); //write_data(0x00,); //
LCD_WriteReg(0x55, 0X3F); //write_data(0x00,); //
LCD_WriteReg(0x56, 0X2a); //write_data(0x00,); //
LCD_WriteReg(0x57, 0X7e); //write_data(0x00,); //
LCD_WriteReg(0x58, 0X09); //write_data(0x00,); //
LCD_WriteReg(0x59, 0X06); //write_data(0x00,); //
LCD_WriteReg(0x5A, 0X06); //write_data(0x00,); //
LCD_WriteReg(0x5B, 0X0d); //write_data(0x00,); //
LCD_WriteReg(0x5C, 0X1F); //write_data(0x00,); //
LCD_WriteReg(0x5D, 0XFF); //write_data(0x00,); //
// Power Voltage Setting
LCD_WriteReg(0x1B, 0X1A); //write_data(0x00);
LCD_WriteReg(0x1A, 0X02); //write_data(0x00);
LCD_WriteReg(0x24, 0X61); //write_data(0x00);
LCD_WriteReg(0x25, 0X5C); //write_data(0x00);
// Vcom offset
// LCD_WriteReg(0x23,0x8D); // FLICKER ADJUST
LCD_WriteReg(0x23, 0x62); //write_data(0x00,0X62);
// Power ON Setting
LCD_WriteReg(0x18, 0X36); //write_data(0x00); //RADJ 70Hz
LCD_WriteReg(0x19, 0X01); //write_data(0x00,0X01); //OSC_EN=1
LCD_WriteReg(0x1F, 0X88); //write_data(0x00,0X88); // GAS=1, VOMG=00, PON=0, DK=1, XDK=0, DVDH_TRI=0, STB=0
delay_ms(5);
LCD_WriteReg(0x1F, 0X80); //write_data(0x00,0X80); // GAS=1, VOMG=00, PON=0, DK=0, XDK=0, DVDH_TRI=0, STB=0
delay_ms(5);
LCD_WriteReg(0x1F, 0X90); //write_data(0x00,0X90); // GAS=1, VOMG=00, PON=1, DK=0, XDK=0, DVDH_TRI=0, STB=0
delay_ms(5);
LCD_WriteReg(0x1F, 0XD4); //write_data(0x00,0XD4); // GAS=1, VOMG=10, PON=1, DK=0, XDK=1, DDVDH_TRI=0, STB=0
delay_ms(5);
//262k/65k color selection
LCD_WriteReg(0x17, 0X06); //write_data(0x00,0X05); //default 0x06 262k color // 0x05 65k color
//SET PANEL
LCD_WriteReg(0x36, 0X09); //write_data(0x00,0X09); //SS_P, GS_P,REV_P,BGR_P
//Display ON Setting
LCD_WriteReg(0x28, 0X38); //write_data(0x00,0X38); //GON=1, DTE=1, D=1000
delay_ms(40);
LCD_WriteReg(0x28, 0X3C); //write_data(0x00,0X3C); //GON=1, DTE=1, D=1100
// 0x13F = 320, 0xEF = 240
// #if ( DISP_ORIENTATION == 0){
//Set GRAM Area
LCD_WriteReg(0x02, 0X00); //write_data(0x00,0X00);
LCD_WriteReg(0x03, 0X00); //write_data(0x00,0X00); //Column Start
LCD_WriteReg(0x04, 0X00); //write_data(0x00,0X00);
LCD_WriteReg(0x05, 0XEF); //write_data(0x00,0XEF); //Column End
LCD_WriteReg(0x06, 0X00); //write_data(0x00,0X00);
LCD_WriteReg(0x07, 0X00); //write_data(0x00,0X00); //Row Start
LCD_WriteReg(0x08, 0X01); //write_data(0x00,0X01);
LCD_WriteReg(0x09, 0X3F); //write_data(0x00,0X3F); //Row End
// }
// #else
/* {
LCD_WriteReg(0x02, 0X00); //write_data(0x00,0X00);
LCD_WriteReg(0x03, 0X00); //write_data(0x00,0X00); //Column Start
LCD_WriteReg(0x04, 0X01); //write_data(0x00,0X00);
LCD_WriteReg(0x05, 0X3F); //write_data(0x00,0XEF); //Column End
LCD_WriteReg(0x06, 0X00); //write_data(0x00,0X00);
LCD_WriteReg(0x07, 0X00); //write_data(0x00,0X00); //Row Start
LCD_WriteReg(0x08, 0X00); //write_data(0x00,0X01);
LCD_WriteReg(0x09, 0XEF); //write_data(0x00,0X3F); //Row End
} */
LCD_Write_Cmd(0x22); //Start GRAM write
}
void TFT_Write_Dat(u16 Color)
{
Set_RS;
Set_RD;
Set_WR;
Clr_CS;
LCD_DH =((Color >> 8) & 0xf8);
Clr_WR;
Set_WR;
LCD_DH =(Color >> 3) & 0xfc;
Clr_WR;
Set_WR;
LCD_DH =(Color << 3) & 0xf8;
Clr_WR;
Set_WR;
Set_CS;
}
void WriteRGB(u16 Color )
{
u16 Row,Column;
for(Row=0;Row<Lcm_H;Row++)
{
for(Column=0;Column<Lcm_W;Column++)
TFT_Write_Dat(Color );
}
}
|
评分
-
查看全部评分
|