📄 lcd.c
字号:
LCD_set_reg(0x0010,0x0002);
}
else if(g_CurLcdID == LCD_TIANMA_X)
{
LCD_set_reg(0x07, 0x0072);
delayms(10);
LCD_set_reg(0x07, 0x0001);
delayms(10);
LCD_set_reg(0x11, 0x0000);
LCD_set_reg(0x12, 0x0000);
LCD_set_reg(0x13, 0x0000);
LCD_set_reg(0x07, 0x0000);
LCD_set_reg(0x10, 0x0002);
}
#if 1
else if(g_CurLcdID == LCD_JINGYUAN_D9320)
{
}else if(g_CurLcdID == LCD_SUONA_D0154)
{
}else if(g_CurLcdID == LCD_SUONA_HX8437)
{
LCD_CtrlWrite_R61505U(0x0026);
LCD_DataWrite_R61505U(0x0038);
delayms(80);
LCD_CtrlWrite_R61505U(0x0026);
LCD_DataWrite_R61505U(0x0028);
delayms(80);
LCD_CtrlWrite_R61505U(0x0026);
LCD_DataWrite_R61505U(0x0000);
LCD_CtrlWrite_R61505U(0x0043);
LCD_DataWrite_R61505U(0x0000);
delayms(60);
LCD_CtrlWrite_R61505U(0x001B);
LCD_DataWrite_R61505U(0x0000);
delayms(40);
LCD_CtrlWrite_R61505U(0x0010);
LCD_DataWrite_R61505U(0x0008);
delayms(40);
LCD_CtrlWrite_R61505U(0x001C);
LCD_DataWrite_R61505U(0x0000);
delayms(40);
LCD_CtrlWrite_R61505U(0x0090);
LCD_DataWrite_R61505U(0x0000);
delayms(40);
LCD_CtrlWrite_R61505U(0x001B);
LCD_DataWrite_R61505U(0x0009);
delayms(40);
LCD_CtrlWrite_R61505U(0x0019);
LCD_DataWrite_R61505U(0x0048);
}
else if(g_CurLcdID == LCD_XIANYU_D5408)
{
//display off
LCD_CtrlWrite_R61505U(0x0007); // Display control on
LCD_DataWrite_R61505U(0x0000);
//power off
LCD_CtrlWrite_R61505U(0x0013); //power control 4
LCD_DataWrite_R61505U(0x0000); //set vdv4-0
delayms(10);
LCD_CtrlWrite_R61505U(0x0029); //power control
LCD_DataWrite_R61505U(0x0000); // set vcm14-10
delayms(60); //delay 60 ms
LCD_CtrlWrite_R61505U(0x0012); //power control 3
LCD_DataWrite_R61505U(0x0000); //set vrh3-0
LCD_CtrlWrite_R61505U(0x0017); //power control 5
LCD_DataWrite_R61505U(0x0000); //set pse
LCD_CtrlWrite_R61505U(0x0011); //power control 2
LCD_DataWrite_R61505U(0x0000); //set dc12-10,dc02-00 VC2-0
LCD_CtrlWrite_R61505U(0x0010); //power control 1
LCD_DataWrite_R61505U(0x0000); //set bt3-0,sap,ap
delayms(10);
//sleep in
LCD_CtrlWrite_R61505U(0x0010); //power control 1
LCD_DataWrite_R61505U(0x0002); //set slp=1
}
#endif
#elif (defined(LCD_18BIT_MODE))
SET_LCD_CMD_PARAMETER(0,LCD_CMD,((0x0007&0xFF00)<<2)|((0x0007&0xFF)<<1));
SET_LCD_CMD_PARAMETER(1,LCD_DATA,((0x0036&0xFF00)<<2)|((0x0036&0xFF)<<1));
LCD_SEND_DMA_CMD(2);
LCD_Delay(0x1000);
SET_LCD_CMD_PARAMETER(0,LCD_CMD,((0x0007&0xFF00)<<2)|((0x0007&0xFF)<<1));
SET_LCD_CMD_PARAMETER(1,LCD_DATA,((0x0026&0xFF00)<<2)|((0x0026&0xFF)<<1));
LCD_SEND_DMA_CMD(2);
SET_LCD_CMD_PARAMETER(0,LCD_CMD,((0x0007&0xFF00)<<2)|((0x0007&0xFF)<<1));
SET_LCD_CMD_PARAMETER(1,LCD_DATA,((0x0004&0xFF00)<<2)|((0x0004&0xFF)<<1));
LCD_SEND_DMA_CMD(2);
LCD_Delay(0x1000);
SET_LCD_CMD_PARAMETER(0,LCD_CMD,((0x0010&0xFF00)<<2)|((0x0010&0xFF)<<1));
SET_LCD_CMD_PARAMETER(1,LCD_DATA,((lcd_power_ctrl_shadow1&0xFF00)<<2)|((lcd_power_ctrl_shadow1&0xFF)<<1));
LCD_SEND_DMA_CMD(2);
LCD_Delay(0x8000);
SET_LCD_CMD_PARAMETER(0,LCD_CMD,((0x0012&0xFF00)<<2)|((0x0012&0xFF)<<1));
SET_LCD_CMD_PARAMETER(1,LCD_DATA,((lcd_power_ctrl_shadow3&0xFF00)<<2)|((lcd_power_ctrl_shadow3&0xFF)<<1));
SET_LCD_CMD_PARAMETER(2,LCD_CMD,((0x0013&0xFF00)<<2)|((0x0013&0xFF)<<1));
SET_LCD_CMD_PARAMETER(3,LCD_DATA,((lcd_power_ctrl_shadow4&0xFF00)<<2)|((lcd_power_ctrl_shadow4&0xFF)<<1));
LCD_SEND_DMA_CMD(4);
LCD_Delay(0x1000);
#endif
#else
LCD_CtrlWrite_R61505U(0x0007);
LCD_DataWrite_R61505U(0x0036);
LCD_Delay(0x1000);
LCD_CtrlWrite_R61505U(0x0007);
LCD_DataWrite_R61505U(0x0026);
LCD_CtrlWrite_R61505U(0x0007);
LCD_DataWrite_R61505U(0x0004);
LCD_Delay(0x1000);
LCD_CtrlWrite_R61505U(0x0010);
LCD_DataWrite_R61505U(lcd_power_ctrl_shadow1);
LCD_Delay(0x8000);
LCD_CtrlWrite_R61505U(0x0012);
LCD_DataWrite_R61505U(lcd_power_ctrl_shadow3);
LCD_CtrlWrite_R61505U(0x0013);
LCD_DataWrite_R61505U(lcd_power_ctrl_shadow4);
LCD_Delay(0x1000);
#endif
}
void LCD_ExitSleep_R61505U(void)
{
if(g_CurLcdID == LCD_GEHUA_D0139 || g_CurLcdID == LCD_JINGYUAN_D9320)
{
return; //lks
}
#if (defined(LCD_CMD_DMA_MODE))
#if (defined(LCD_8BIT_MODE))
LCD_set_reg(0x0003,0x0000);
LCD_Delay(25);
LCD_set_reg(0x0003,0x0110);
LCD_Delay(10);
LCD_set_reg(0x0009,0x0006);
LCD_Delay(10);
LCD_set_reg(0x000D,0x0014);
LCD_Delay(50);
LCD_set_reg(0x000E,0x101C);
LCD_Delay(50);
LCD_set_reg(0x000E,0x301C);
LCD_Delay(50);
LCD_set_reg(0x0007,0x0037);
LCD_Delay(50);
#elif (defined(LCD_9BIT_MODE))
#elif (defined(LCD_16BIT_MODE))
if(g_CurLcdID == LCD_SUONA)
{
LCD_CtrlWrite_R61505U(0x0019);
LCD_DataWrite_R61505U(0x0049);
delayms(50);
LCD_CtrlWrite_R61505U(0x001B);
LCD_DataWrite_R61505U(0x0008);
LCD_CtrlWrite_R61505U(0x0020);
LCD_DataWrite_R61505U(0x0040);
LCD_CtrlWrite_R61505U(0x001D);
LCD_DataWrite_R61505U(0x0007);
LCD_CtrlWrite_R61505U(0x001E);
LCD_DataWrite_R61505U(0x0000);
LCD_CtrlWrite_R61505U(0x001F);
LCD_DataWrite_R61505U(0x0004);
LCD_CtrlWrite_R61505U(0x0044);
LCD_DataWrite_R61505U(0x004D);
LCD_CtrlWrite_R61505U(0x0045);
LCD_DataWrite_R61505U(0x0011);
delayms(50);
LCD_CtrlWrite_R61505U(0x001C);
LCD_DataWrite_R61505U(0x0004);
delayms(80);
LCD_CtrlWrite_R61505U(0x001B);
LCD_DataWrite_R61505U(0x0018);
delayms(80);
LCD_CtrlWrite_R61505U(0x001B);
LCD_DataWrite_R61505U(0x0010);
delayms(60);
LCD_CtrlWrite_R61505U(0x0043);
LCD_DataWrite_R61505U(0x0080);
delayms(80);
LCD_CtrlWrite_R61505U(0x0090);
LCD_DataWrite_R61505U(0x007F);
delayms(50);
LCD_CtrlWrite_R61505U(0x0026);
LCD_DataWrite_R61505U(0x0004);
delayms(50);
LCD_CtrlWrite_R61505U(0x0026);
LCD_DataWrite_R61505U(0x0024);
LCD_CtrlWrite_R61505U(0x0026);
LCD_DataWrite_R61505U(0x002C);
delayms(50);
LCD_CtrlWrite_R61505U(0x0026);
LCD_DataWrite_R61505U(0x003C);
}
else if(g_CurLcdID == LCD_SHENGDA_D9320)
{
LCD_set_reg(0x0010,0x0000);
LCD_set_reg(0x0011,0x0007);
LCD_set_reg(0x0012,0x0000);
LCD_set_reg(0x0013,0x0000);
delayms(200);//200
LCD_set_reg(0x0010,0x17b0);
LCD_set_reg(0x0011,0x0037);
delayms(50);
LCD_set_reg(0x0012,0x013c);
delayms(50);
LCD_set_reg(0x0013,0x1f00);
delayms(50);
LCD_set_reg(0x0029,0xffff);
delayms(50);
LCD_set_reg(0x0007,0x0173);
}
else if(g_CurLcdID == LCD_TIANMA_X)
{
LCD_set_reg(0x10, 0x0000);
LCD_set_reg(0x10, 0x0000);
LCD_set_reg(0x17, 0x0001);
delayms(20);
LCD_set_reg(0x10, 0x13b0);
LCD_set_reg(0x11, 0x0007);
LCD_set_reg(0x12, 0x011b);
LCD_set_reg(0x13, 0x0c00);
LCD_set_reg(0x29, 0x0008);
delayms(10);
LCD_set_reg(0x12, 0x013e);
delayms(10);
LCD_set_reg(0x07, 0x0021);
delayms(10);
LCD_set_reg(0x07, 0x0061);
delayms(10);
LCD_set_reg(0x07, 0x0173);
delayms(10);
}
#if 1
else if(g_CurLcdID == LCD_SUONA_D0154)
{
}else if(g_CurLcdID == LCD_SUONA_HX8437)
{
LCD_CtrlWrite_R61505U(0x0019);
LCD_DataWrite_R61505U(0x0049);
delayms(50);
LCD_CtrlWrite_R61505U(0x001B);
LCD_DataWrite_R61505U(0x0008);
LCD_CtrlWrite_R61505U(0x0020);
LCD_DataWrite_R61505U(0x0040);
LCD_CtrlWrite_R61505U(0x001D);
LCD_DataWrite_R61505U(0x0007);
LCD_CtrlWrite_R61505U(0x001E);
LCD_DataWrite_R61505U(0x0000);
LCD_CtrlWrite_R61505U(0x001F);
LCD_DataWrite_R61505U(0x0004);
LCD_CtrlWrite_R61505U(0x0044);
LCD_DataWrite_R61505U(0x004D);
LCD_CtrlWrite_R61505U(0x0045);
LCD_DataWrite_R61505U(0x0011);
delayms(50);
LCD_CtrlWrite_R61505U(0x001C);
LCD_DataWrite_R61505U(0x0004);
delayms(80);
LCD_CtrlWrite_R61505U(0x001B);
LCD_DataWrite_R61505U(0x0018);
delayms(80);
LCD_CtrlWrite_R61505U(0x001B);
LCD_DataWrite_R61505U(0x0010);
delayms(60);
LCD_CtrlWrite_R61505U(0x0043);
LCD_DataWrite_R61505U(0x0080);
delayms(80);
LCD_CtrlWrite_R61505U(0x0090);
LCD_DataWrite_R61505U(0x007F);
delayms(50);
LCD_CtrlWrite_R61505U(0x0026);
LCD_DataWrite_R61505U(0x0004);
delayms(50);
LCD_CtrlWrite_R61505U(0x0026);
LCD_DataWrite_R61505U(0x0024);
LCD_CtrlWrite_R61505U(0x0026);
LCD_DataWrite_R61505U(0x002C);
delayms(50);
LCD_CtrlWrite_R61505U(0x0026);
LCD_DataWrite_R61505U(0x003C);
}
else if(g_CurLcdID == LCD_XIANYU_D5408)
{
//sleep out
LCD_CtrlWrite_R61505U(0x0010); //power control 1
LCD_DataWrite_R61505U(0x0000); //set slp=1
//power on
LCD_CtrlWrite_R61505U(0x0010); //power control 1
LCD_DataWrite_R61505U(0x10b0); //set bt3-0,sap,ap
LCD_CtrlWrite_R61505U(0x0011); //power control 2
LCD_DataWrite_R61505U(0x0007); //set dc12-10,dc02-00 VC2-0
delayms(10);
LCD_CtrlWrite_R61505U(0x0017); //power control 5
LCD_DataWrite_R61505U(0x0001); //set pse
LCD_CtrlWrite_R61505U(0x0012); //power control 3
LCD_DataWrite_R61505U(0x01bd); //set vrh3-0
LCD_CtrlWrite_R61505U(0x0013); //power control 4
LCD_DataWrite_R61505U(0x1600); //set vdv4-0
delayms(10);
LCD_CtrlWrite_R61505U(0x0029); //power control
LCD_DataWrite_R61505U(0x0015); // set vcm14-10
delayms(60); //delay 60 ms
//end power on
//display on
LCD_CtrlWrite_R61505U(0x0007); // Display control on
LCD_DataWrite_R61505U(0x0173);
delayms(60); //delay 100 ms
//end display on
}
#endif
#elif (defined(LCD_18BIT_MODE))
SET_LCD_CMD_PARAMETER(0,LCD_CMD,((0x0012&0xFF00)<<2)|((0x0012&0xFF)<<1));
SET_LCD_CMD_PARAMETER(1,LCD_DATA,((lcd_power_ctrl_shadow3&0xFF00)<<2)|((lcd_power_ctrl_shadow3&0xFF)<<1));
SET_LCD_CMD_PARAMETER(2,LCD_CMD,((0x0013&0xFF00)<<2)|((0x0013&0xFF)<<1));
SET_LCD_CMD_PARAMETER(3,LCD_DATA,((lcd_power_ctrl_shadow4&0xFF00)<<2)|((lcd_power_ctrl_shadow4&0xFF)<<1));
SET_LCD_CMD_PARAMETER(4,LCD_CMD,((0x0010&0xFF00)<<2)|((0x0010&0xFF)<<1));
SET_LCD_CMD_PARAMETER(5,LCD_DATA,((lcd_power_ctrl_shadow1&0xFF00)<<2)|((lcd_power_ctrl_shadow1&0xFF)<<1));
LCD_SEND_DMA_CMD(6);
SET_LCD_CMD_PARAMETER(0,LCD_CMD,((0x0007&0xFF00)<<2)|((0x0007&0xFF)<<1));
SET_LCD_CMD_PARAMETER(1,LCD_DATA,((0x0005&0xFF00)<<2)|((0x0005&0xFF)<<1));
LCD_SEND_DMA_CMD(2);
LCD_Delay(0x1000);
SET_LCD_CMD_PARAMETER(0,LCD_CMD,((0x0007&0xFF00)<<2)|((0x0007&0xFF)<<1));
SET_LCD_CMD_PARAMETER(1,LCD_DATA,((0x0025&0xFF00)<<2)|((0x0025&0xFF)<<1));
LCD_SEND_DMA_CMD(2);
SET_LCD_CMD_PARAMETER(0,LCD_CMD,((0x0007&0xFF00)<<2)|((0x0007&0xFF)<<1));
SET_LCD_CMD_PARAMETER(1,LCD_DATA,((0x0027&0xFF00)<<2)|((0x0027&0xFF)<<1));
LCD_SEND_DMA_CMD(2);
LCD_Delay(0x1000);
SET_LCD_CMD_PARAMETER(0,LCD_CMD,((0x0007&0xFF00)<<2)|((0x0007&0xFF)<<1));
SET_LCD_CMD_PARAMETER(1,LCD_DATA,((0x0037&0xFF00)<<2)|((0x0037&0xFF)<<1));
LCD_SEND_DMA_CMD(2);
LCD_Delay(0x1000);
#endif
#else
LCD_CtrlWrite_R61505U(0x0010);
LCD_DataWrite_R61505U(lcd_power_ctrl_shadow1);
LCD_CtrlWrite_R61505U(0x0012);
LCD_DataWrite_R61505U(lcd_power_ctrl_shadow3);
LCD_CtrlWrite_R61505U(0x0013);
LCD_DataWrite_R61505U(lcd_power_ctrl_shadow4);
LCD_CtrlWrite_R61505U(0x0007);
LCD_DataWrite_R61505U(0x0005);
LCD_Delay(0x1000);
LCD_CtrlWrite_R61505U(0x0007);
LCD_DataWrite_R61505U(0x0025);
LCD_CtrlWrite_R61505U(0x0007);
LCD_DataWrite_R61505U(0x0027);
LCD_Delay(0x1000);
LCD_CtrlWrite_R61505U(0x0007);
LCD_DataWrite_R61505U(0x0037);
LCD_Delay(0x1000);
#endif
}
void LCD_Partial_On_R61505U(kal_uint16 start_page,kal_uint16 end_page)
{
}
void LCD_Partial_Off_R61505U(void)
{
}
kal_uint8 LCD_Partial_line_R61505U(void)
{
return 1;
}
void LCD_blockClear_R61505U(kal_uint16 x1, kal_uint16 y1, kal_uint16 x2, kal_uint16 y2, kal_uint16 data)
{
return; //lks
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -