| 
高级会员 主题
回帖0
积分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
 
 
 }
 
 
 
 
 | 
 |