一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 2336|回复: 7
收起左侧

HX8347 2.8寸屏 8bit 模式 65K色 驱动源码

[复制链接]
发表于 2014-3-22 11:32 | 显示全部楼层 |阅读模式
        这个屏在山寨手机上用量很大,有这个屏的童鞋可以用单片机之类的芯片驱动,这是测试通过的源码,略有编程基础,移植过去即可正常使用。
b4.jpg

b5.jpg

bn1.jpg

bn2.jpg

bn3.jpg





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 );
         }

}





评分

参与人数 1一乐金币 +1 收起 理由
冰丝 + 1 赞一个!

查看全部评分

发表于 2014-3-22 13:46 | 显示全部楼层
我去,都爱用库编程……
发表于 2014-3-22 16:32 | 显示全部楼层
zhixiaoyuhong 发表于 2014-3-22 13:46
我去,都爱用库编程……

哈哈,不好研究了吧
发表于 2014-3-22 17:13 | 显示全部楼层
有pdf么?
发表于 2014-3-22 17:20 | 显示全部楼层
谢谢楼主分享、
发表于 2014-3-22 18:09 | 显示全部楼层
附件呢?
发表于 2014-3-22 21:03 | 显示全部楼层

谢谢楼主分享、
发表于 2014-3-23 01:19 | 显示全部楼层
不错,感谢无私分享!~

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-6-11 15:17 , Processed in 0.070852 second(s), 47 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表