📄 lcd.c
字号:
LCD_CtrlWrite_HX8306A(0x2a);// BP/FP SETTING
LCD_DataWrite_HX8306A(0x02);
DelayX1mS(10);
LCD_CtrlWrite_HX8306A(0x2c);// BP/FP SETTING
LCD_DataWrite_HX8306A(0x02);
DelayX1mS(10);
LCD_CtrlWrite_HX8306A(0x2d);// BP/FP SETTING
LCD_DataWrite_HX8306A(0x02);
DelayX1mS(10);
LCD_CtrlWrite_HX8306A(0x3a);//cycle control 1
LCD_DataWrite_HX8306A(0x01); //01
DelayX1mS(10);
LCD_CtrlWrite_HX8306A(0x3b);//cycle control 2
LCD_DataWrite_HX8306A(0x01);
DelayX1mS(10);
LCD_CtrlWrite_HX8306A(0x3c);//cycle control 3
LCD_DataWrite_HX8306A(0xf0);
DelayX1mS(10);
LCD_CtrlWrite_HX8306A(0x3d);//cycle control 4
LCD_DataWrite_HX8306A(0x00);
DelayX1mS(20);
/**********power setting**********************/
LCD_CtrlWrite_HX8306A(0x42);//BGP control
LCD_DataWrite_HX8306A(0x08);
DelayX1mS(50);
LCD_CtrlWrite_HX8306A(0x1c);// AP2-0 SETTING
LCD_DataWrite_HX8306A(0x04);
DelayX1mS(30);
LCD_CtrlWrite_HX8306A(0x30);// SAP3-0 SETTING
LCD_DataWrite_HX8306A(0x08);
DelayX1mS(10);
LCD_CtrlWrite_HX8306A(0x1D);//VLCD SETTING
LCD_DataWrite_HX8306A(0x41);
DelayX1mS(30);
LCD_CtrlWrite_HX8306A(0x1E);//VREG3 SETTING
LCD_DataWrite_HX8306A(0x01);//VREG3=2XVCI
DelayX1mS(30);
LCD_CtrlWrite_HX8306A(0x1F);//power control 1
LCD_DataWrite_HX8306A(0x08);//vreg1=4.64v
DelayX1mS(30);
LCD_CtrlWrite_HX8306A(0x20);// VGL/VGH SETTING
LCD_DataWrite_HX8306A(0x70);
DelayX1mS(30);
LCD_CtrlWrite_HX8306A(0x21);// DC/DC SETTING
LCD_DataWrite_HX8306A(0x00);
DelayX1mS(30);
LCD_CtrlWrite_HX8306A(0x43);//vomg control
LCD_DataWrite_HX8306A(0x80);
DelayX1mS(50);
LCD_CtrlWrite_HX8306A(0x44); //vcomh control
LCD_DataWrite_HX8306A(0x44); //VCOMH=3.4V
DelayX1mS(10);
LCD_CtrlWrite_HX8306A(0x45);//vcom control
LCD_DataWrite_HX8306A(0x10); //VCOM=4.872V
DelayX1mS(20);
/******************GAMMA SETTING***********************/
LCD_CtrlWrite_HX8306A(0x46);//GAMMA control 1
LCD_DataWrite_HX8306A(0x01);
LCD_CtrlWrite_HX8306A(0x47);//GAMMA control 2
LCD_DataWrite_HX8306A(0x21);
LCD_CtrlWrite_HX8306A(0x48);//GAMMA control 3
LCD_DataWrite_HX8306A(0x22);
LCD_CtrlWrite_HX8306A(0x49);//GAMMA control 4
LCD_DataWrite_HX8306A(0x33);
LCD_CtrlWrite_HX8306A(0x4A);//GAMMA control 5
LCD_DataWrite_HX8306A(0x01);
LCD_CtrlWrite_HX8306A(0x4B);//GAMMA control 6
LCD_DataWrite_HX8306A(0x01);
LCD_CtrlWrite_HX8306A(0x4C);//GAMMA control 7
LCD_DataWrite_HX8306A(0x13);
LCD_CtrlWrite_HX8306A(0x4D);//GAMMA control 8
LCD_DataWrite_HX8306A(0x22);
LCD_CtrlWrite_HX8306A(0x4E);//GAMMA control 9
LCD_DataWrite_HX8306A(0x12);
LCD_CtrlWrite_HX8306A(0x4F);//GAMMA control 10
LCD_DataWrite_HX8306A(0x21);
LCD_CtrlWrite_HX8306A(0x50);//GAMMA control 11
LCD_DataWrite_HX8306A(0x21);
LCD_CtrlWrite_HX8306A(0x51);//GAMMA control 12
LCD_DataWrite_HX8306A(0x00);
DelayX1mS(100);
LCD_CtrlWrite_HX8306A(0x02);
LCD_DataWrite_HX8306A(0x00);
LCD_CtrlWrite_HX8306A(0x03);
LCD_DataWrite_HX8306A(0x00);
LCD_CtrlWrite_HX8306A(0x04);
LCD_DataWrite_HX8306A(0x00);
LCD_CtrlWrite_HX8306A(0x05);
LCD_DataWrite_HX8306A(0xef);
LCD_CtrlWrite_HX8306A(0x06);
LCD_DataWrite_HX8306A(0x00);
LCD_CtrlWrite_HX8306A(0x07);
LCD_DataWrite_HX8306A(0x00);
LCD_CtrlWrite_HX8306A(0x08);
LCD_DataWrite_HX8306A(0x01);
LCD_CtrlWrite_HX8306A(0x09);
LCD_DataWrite_HX8306A(0x3f);
/****************display on setting**************/
LCD_CtrlWrite_HX8306A(0x26);
LCD_DataWrite_HX8306A(0x04);
DelayX1mS(20);
LCD_CtrlWrite_HX8306A(0x26);
LCD_DataWrite_HX8306A(0x24);
DelayX1mS(20);
LCD_CtrlWrite_HX8306A(0x26);
LCD_DataWrite_HX8306A(0x2c);
DelayX1mS(20);
LCD_CtrlWrite_HX8306A(0x26);
LCD_DataWrite_HX8306A(0x3c);
DelayX1mS(20);
LCD_CtrlWrite_HX8306A(0x0022);
#endif
return;
}
if(lcd_id==_SSD1289_240X320)
{
//#ifdef _SSD1289_240X320
Init_data(0x0000,0x0001);//oscillator on
DelayX1mS(10);
Init_data(0x0003,0xaeae); //0xA2A0//0xeeee
Init_data(0x000c,0x0000); //0x0002
Init_data(0x000d,0x000F);
Init_data(0x000e,0x3200); //0x3600
DelayX1mS(10);
Init_data(0x001e,0x00Ad); //0x00A5
Init_data(0x0001,0x2B3F);
Init_data(0x0002,0x0600);
Init_data(0x0010,0x0000);
Init_data(0x0011,0x6830); //0x6830
//add 20070705
Init_data(0x0005,0x0000);
Init_data(0x0006,0x0000);
Init_data(0x0007,0x0233);
//add 20070705
Init_data(0x000b,0x0030); //0x5300
Init_data(0x000f,0x0000);
DelayX1mS(100);
//add 20070705
Init_data(0x0041,0x0000);
Init_data(0x0042,0x0000);
Init_data(0x0044,0xef00);
Init_data(0x0045,0x0000);
Init_data(0x0046,0x013f);
Init_data(0x0048,0x0000);
Init_data(0x0049,0x013f);
Init_data(0x004a,0x0000);
Init_data(0x004b,0x0000);
Init_data(0x004e,0x0000);
Init_data(0x004f,0x0000);
//*****optimize for video display*****//
Init_data(0x0028,0x0006);
Init_data(0x002f,0x12be);//0x12ae
Init_data(0x0012,0x6ceb);//optimize for video
DelayX1mS(10);
Init_data(0x0025,0xe000);
//^^^^^optimize for video display^^^^^//
//add 20070705
Init_data(0x0030,0x0000); //0x0707
Init_data(0x0031,0x0507); //0x0204
Init_data(0x0032,0x0003); //0x0204
Init_data(0x0033,0x0400); //0x0502
Init_data(0x0034,0x0607); //0x0507
Init_data(0x0035,0x0004); //0x0204
Init_data(0x0036,0x0706); //0x0204
Init_data(0x0037,0x0003); //0x0502
Init_data(0x003A,0x0900); //0x0302
Init_data(0x003B,0x0003); //0x0504
DelayX1mS(20);
//Init_data(0x0023,0x0000);
//Init_data(0x0024,0x0000);
// DelayX1mS(10);
// Init_data(0x0007,0x0233);
//DelayX1mS(10);
LCD_CtrlWrite_HX8306A(0x0022);
{
kal_uint16 i,j;
for(i=0;i<320;i++)
{
for(j=0;j<240;j++)
{
*(volatile kal_uint16 *)LCD_HX8306A_DATA_ADDR = 0;
}
}
}
//#endif
return;
}
if(lcd_id==_S6D0139_240x320)
{
//#ifdef _S6D0139_240x320
DelayX1mS(10);
//*************Power Setting sequence ****************
Init_data(0x0011, 0x3304); // Power Control 2
Init_data(0x0014, 0x1300); // Power Control 4
Init_data(0x0010, 0x1A20); // Power Control 1
Init_data(0x0013, 0x0040); // Power Control 3
DelayX1mS(10);
Init_data(0x0013, 0x0060); // Power Control 3
DelayX1mS(10);
Init_data(0x0013, 0x0070); // Power Control 3
DelayX1mS(40);
//************* Start Initial Sequence **********//
Init_data(0x0000, 0x0001); // Start internal OSC.
Init_data(0x0001, 0x0127); // set SS and SM bit
Init_data(0x0002, 0x0700); // set 1 line inversion
Init_data(0x0003, 0x1030); // set GRAM write direction and BGR=1.
Init_data(0x0008, 0x0109); // set the back porch and front porch
Init_data(0x000B, 0x0600); // FMARK function
Init_data(0x000C, 0x0001); // RGB interface setting
Init_data(0x000D, 0x0007); // Frame marker Position
// ---------- Gamma Control ---------- //
Init_data(0x0030, 0x0120);
Init_data(0x0031, 0x0117);
Init_data(0x0032, 0x0000);
Init_data(0x0033, 0x0305);
Init_data(0x0034, 0x0717);
Init_data(0x0035, 0x0124);
Init_data(0x0036, 0x0756);
Init_data(0x0037, 0x0503);
Init_data(0x0038, 0x1F03);
Init_data(0x0039, 0x0009);
// ---------- Gate/Vertical Scan Control ---------- //
Init_data(0x0040, 0x0000); // Gate Scan Position
Init_data(0x0041, 0x0000); // Vertical Scan Position
// ---------- Partial Display Control ---------- //
Init_data(0x0042, 0x013F); // Partial Image 1 End Address
Init_data(0x0043, 0x0000); // Partial Image 1 Start Address
Init_data(0x0044, 0x013f); // Partial Image 2 End Address //0x013F
Init_data(0x0045, 0x0000); // Partial Image 2 Start Address
// ---------- Window Address Area ---------- //
Init_data(0x0046, 0xEF00); // Horizontal GRAM Start/End Address
Init_data(0x0047, 0x013F); // Vertical GRAM End Address
Init_data(0x0048, 0x0000); // Vertical GRAM Start Address
//*************Display On sequence ****************
Init_data(0x0007, 0x0015); //0x0015 // Display Control
DelayX1mS(40);
Init_data(0x0007, 0x0017); //0x0017 // Display Control
// ---------- GRAM Address Set ---------- //
Init_data(0x0020, 0x0000);
Init_data(0x0021, 0x0000);
LCD_CtrlWrite_HX8306A(0x0022);
{
kal_uint16 i,j;
for(i=0;i<320;i++)
{
for(j=0;j<240;j++)
{
*(volatile kal_uint16 *)LCD_HX8306A_DATA_ADDR = 0;
}
}
}
//#endif
return;
}
#ifdef _HX8312_240x320_
//-------------- Display control setting --------------//
LCD_CtrlWrite_HX8306A(0x0110);
LCD_CtrlWrite_HX8306A(0x00a0);
LCD_CtrlWrite_HX8306A(0x0301); //software reset
DelayX1mS(10);
LCD_CtrlWrite_HX8306A(0x0300);
LCD_CtrlWrite_HX8306A(0x2b0d); //08 //0x2b0c
LCD_CtrlWrite_HX8306A(0x281d); //DCDCf(page 102) //0x2818
LCD_CtrlWrite_HX8306A(0x1a05); //DC3--DC0(page 100) 05 //0x1a00
LCD_CtrlWrite_HX8306A(0x2505); //BT3--BT0(page 102)
LCD_CtrlWrite_HX8306A(0x1c73); //0x1c33//0x1c73-AP0--AP2;SAP0--SAP2(page 101)
LCD_CtrlWrite_HX8306A(0x190c); //0x196c//0x1900 VR2 VR1 (page 100)
LCD_CtrlWrite_HX8306A(0x2474); //0x2473//0x2474 V18 VCOM(page 102)
LCD_CtrlWrite_HX8306A(0x18c1); //DCON VR1ON VR2ON (page 100)
DelayX1mS(10);
LCD_CtrlWrite_HX8306A(0x1e01); //DDVDHXON=1;(page 101)
LCD_CtrlWrite_HX8306A(0x18e1); //0x18c5//0x18e1+VCLON
LCD_CtrlWrite_HX8306A(0x18f1); //0x18e5//0x18f1+VGON
DelayX1mS(60);
LCD_CtrlWrite_HX8306A(0x18f5); //DDVDHON
DelayX1mS(60);
LCD_CtrlWrite_HX8306A(0x1b0d); //RGON(page 100) 0d //0x1b09
DelayX1mS(10);
LCD_CtrlWrite_HX8306A(0x1f16);//09 0a
LCD_CtrlWrite_HX8306A(0x2011); //0x2013
LCD_CtrlWrite_HX8306A(0x1e81); //
DelayX1mS(10);
///////////////////////////////////////////
LCD_CtrlWrite_HX8306A(0x9d00); //(page 110)
LCD_CtrlWrite_HX8306A(0x0e00); //PSEL(page 98)
LCD_CtrlWrite_HX8306A(0x0f00); //PGR,PGB,PGG=0(page 99)
LCD_CtrlWrite_HX8306A(0x1000); //start line1(page 99)
LCD_CtrlWrite_HX8306A(0x1100); //start line1(page 99)
LCD_CtrlWrite_HX8306A(0x1200); //
LCD_CtrlWrite_HX8306A(0x1300); //start line1(page 99)
LCD_CtrlWrite_HX8306A(0x1400); //
LCD_CtrlWrite_HX8306A(0x1500); //line number(page 99)
LCD_CtrlWrite_HX8306A(0x1600);
LCD_CtrlWrite_HX8306A(0x1700); //line number(page 99)
LCD_CtrlWrite_HX8306A(0x3401); //scan cycle(page 103)
LCD_CtrlWrite_HX8306A(0x3500); //PNFRM(page 103)
LCD_CtrlWrite_HX8306A(0x4b00); //scroll start line(page 106)
LCD_CtrlWrite_HX8306A(0x4c00); //scroll start line(page 106)
LCD_CtrlWrite_HX8306A(0x4e00); //scroll line number(page 106)
LCD_CtrlWrite_HX8306A(0x4f00); //
LCD_CtrlWrite_HX8306A(0x5000); //lines number scrolled(page 107)
LCD_CtrlWrite_HX8306A(0x4200); //x start of ram(page 104)
LCD_CtrlWrite_HX8306A(0x4300); //
LCD_CtrlWrite_HX8306A(0x4400); //x start of ram(page 105)
LCD_CtrlWrite_HX8306A(0x4500); //x start for windows(page 105)
LCD_CtrlWrite_HX8306A(0x46ef); //x end for windows(page 105)
LCD_CtrlWrite_HX8306A(0x4700); //
LCD_CtrlWrite_HX8306A(0x4800); //y start for windows(page 105)
LCD_CtrlWrite_HX8306A(0x4901); //
LCD_CtrlWrite_HX8306A(0x4a3f); //y end for windows(page 105)
LCD_CtrlWrite_HX8306A(0x1d08); //R/L (page 101)gate scan direction
LCD_CtrlWrite_HX8306A(0x8600); //(page 107)
LCD_CtrlWrite_HX8306A(0x8730); //0x872f//0x8730
LCD_CtrlWrite_HX8306A(0x8802); //
LCD_CtrlWrite_HX8306A(0x8905); //(page 107)
LCD_CtrlWrite_HX8306A(0x8d01); //CLKM(page 108)register set-up mode for one line clock number
LCD_CtrlWrite_HX8306A(0x8b26); //0x8b26//0x8b30
LCD_CtrlWrite_HX8306A(0x3301); //N line inversion setting(page 103)
LCD_CtrlWrite_HX8306A(0x3700); //0x3701//
LCD_CtrlWrite_HX8306A(0x7600); //DMYSEL(page 107)
//-------------- Gamma control setting --------------//
LCD_CtrlWrite_HX8306A(0x8f00); //Gamma control register 1
LCD_CtrlWrite_HX8306A(0x9077); //Gamma control register 2
LCD_CtrlWrite_HX8306A(0x9107); //Gamma control register 3
LCD_CtrlWrite_HX8306A(0x9254); //Gamma control register 4
LCD_CtrlWrite_HX8306A(0x9307); //Gamma control register 5
LCD_CtrlWrite_HX8306A(0x9400); //Gamma control register 6
LCD_CtrlWrite_HX8306A(0x9577); //Gamma control register 7
LCD_CtrlWrite_HX8306A(0x9645); //Gamma control register 8
LCD_CtrlWrite_HX8306A(0x9700); //Gamma control register 9
LCD_CtrlWrite_HX8306A(0x9806); //Gamma control register 10
LCD_CtrlWrite_HX8306A(0x9903); //Gamma control register 11
LCD_CtrlWrite_HX8306A(0x9a00); //Gamma control register 12
////////////////////////display on///////
LCD_CtrlWrite_HX8306A(0x3b01); //DISPTMG(page 103)//gate scan normal ope
DelayX1mS(40);
LCD_CtrlWrite_HX8306A(0x0020); //ADC=1;(page 97)
LCD_CtrlWrite_HX8306A(0x0110);
LCD_CtrlWrite_HX8306A(0x0510);
{
kal_uint16 i,j;
for(i=0;i<320;i++)
{
for(j=0;j<240;j++)
{
*(volatile kal_uint16 *)LCD_HX8306A_DATA_ADDR = 0;
}
}
}
#endif
}
void LCD_PWRON_HX8306A(kal_bool on)
{
}
void LCD_SetContrast_HX8306A(kal_uint8 level)
{
}
void LCD_ON_HX8306A(kal_bool on)
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -