lcdmodule_tl1763_f026.c
来自「可以学习」· C语言 代码 · 共 364 行
C
364 行
//驱动IC:TL1763 显示屏型号:DMTT240TT001S
/*--------------------------------------------------------------------------
Standard include files:
--------------------------------------------------------------------------*/
#include "Interface.h"
/*--------------------------------------------------------------------------
*DEFINES
--------------------------------------------------------------------------*/
#define LCDPOWER_GPIO GPIO_6
/*--------------------------------------------------------------------------
*TYPEDEFS
--------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------
*STRUCTURE
--------------------------------------------------------------------------*/
const struct StaticMemoryControl stMemoryCtrlCfg_Lcd =
{
0, //SMT:1;
0, //BL:2;
0, //BCM:1;
0, //NFE:1;
0, //CE:1;
1, //BW;
1, //TAS:3; //setup time//一般设置为 0
0, //6800Mode:1;
1, //TAH:3; //hold time//一般设置为 0
0, //Dummy1:1;
2, //TBP:4; //write time//固定为 3
1, //TAW:4;
2, //STRV:4;
0 //Dummy0:4;
};
/*--------------------------------------------------------------------------
* Variable ,constant or function
--------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
* 函数: LcdModulePowerOnOff
* 功能: LCD模块电源控制
* 参数: u8Value----0:关闭;1:开启
* 返回: none
*----------------------------------------------------------------------------*/
void Hyc_LcdModulePowerOnOff(U8 u8Value)
{
if (u8Value != 0)
{//点亮背光
eGpio_SetHigh(LCDPOWER_GPIO);
}
else
{//关闭背光
eGpio_SetLow (LCDPOWER_GPIO);
}
}
/*-----------------------------------------------------------------------------
* 函数: drvLcd_InitLcdModuleInstructs
* 功能: LCD模块初始化
* 参数: none
* 返回: none
*----------------------------------------------------------------------------*/
void Hyc_drvLcd_InitLcdModuleInstructs( void)
{
Hyc_drvLcd_WriteInstruct(0x11);
Hyc_drvLcd_WriteData(0x0112);
Hyc_drvLcd_WriteInstruct(0x12);
Hyc_drvLcd_WriteData(0x100d);
Hyc_drvLcd_WriteInstruct(0x13);
Hyc_drvLcd_WriteData(0x1434);
Hyc_drvLcd_WriteInstruct(0x10);
Hyc_drvLcd_WriteData(0x1530);
delay(500);
Hyc_drvLcd_WriteInstruct(0x12);
Hyc_drvLcd_WriteData(0x101d);
Hyc_drvLcd_WriteInstruct(0x13);
Hyc_drvLcd_WriteData(0x3030);// 3232
delay(200);
Hyc_drvLcd_WriteInstruct(0x01);
Hyc_drvLcd_WriteData(0x0000);// 0x0000);//0x0100);
Hyc_drvLcd_WriteInstruct(0x02);
Hyc_drvLcd_WriteData(0x0700);
Hyc_drvLcd_WriteInstruct(0x03);
Hyc_drvLcd_WriteData(0x1038);//0x1008; 0x1038
Hyc_drvLcd_WriteInstruct(0x04);
Hyc_drvLcd_WriteData(0x0141);
Hyc_drvLcd_WriteInstruct(0x07);
Hyc_drvLcd_WriteData(0x0005);
Hyc_drvLcd_WriteInstruct(0x08);
Hyc_drvLcd_WriteData(0x0202);
Hyc_drvLcd_WriteInstruct(0x0b);
Hyc_drvLcd_WriteData(0x0000);
Hyc_drvLcd_WriteInstruct(0x0c);
Hyc_drvLcd_WriteData(0x0001);
Hyc_drvLcd_WriteInstruct(0x0e);
Hyc_drvLcd_WriteData(0x0015);
Hyc_drvLcd_WriteInstruct(0xa1);
Hyc_drvLcd_WriteData(0x1000);
Hyc_drvLcd_WriteInstruct(0xa4);
Hyc_drvLcd_WriteData(0x7300);
Hyc_drvLcd_WriteInstruct(0xa2);
Hyc_drvLcd_WriteData(0x000a);//0x5
Hyc_drvLcd_WriteInstruct(0x30);
Hyc_drvLcd_WriteData(0x0202);
Hyc_drvLcd_WriteInstruct(0x31);
Hyc_drvLcd_WriteData(0x0000);
Hyc_drvLcd_WriteInstruct(0x32);
Hyc_drvLcd_WriteData(0x0404);
Hyc_drvLcd_WriteInstruct(0x33);
Hyc_drvLcd_WriteData(0x0203);
Hyc_drvLcd_WriteInstruct(0x34);
Hyc_drvLcd_WriteData(0x0207);
Hyc_drvLcd_WriteInstruct(0x35);
Hyc_drvLcd_WriteData(0x0202);
Hyc_drvLcd_WriteInstruct(0x36);
Hyc_drvLcd_WriteData(0x0707);
Hyc_drvLcd_WriteInstruct(0x37);
Hyc_drvLcd_WriteData(0x0002);
Hyc_drvLcd_WriteInstruct(0x38);
Hyc_drvLcd_WriteData(0x0f00);
Hyc_drvLcd_WriteInstruct(0x39);
Hyc_drvLcd_WriteData(0x0002);
Hyc_drvLcd_WriteInstruct(0x40);
Hyc_drvLcd_WriteData(0x0000);
Hyc_drvLcd_WriteInstruct(0x41);
Hyc_drvLcd_WriteData(0x0000);
Hyc_drvLcd_WriteInstruct(0x42);
Hyc_drvLcd_WriteData(0x0140);
Hyc_drvLcd_WriteInstruct(0x43);
Hyc_drvLcd_WriteData(0x0000);
Hyc_drvLcd_WriteInstruct(0x44);
Hyc_drvLcd_WriteData(0x0000);
Hyc_drvLcd_WriteInstruct(0x45);
Hyc_drvLcd_WriteData(0x0000);
Hyc_drvLcd_WriteInstruct(0x46);
Hyc_drvLcd_WriteData(0xef00);
Hyc_drvLcd_WriteInstruct(0x47);
Hyc_drvLcd_WriteData(0x013f);
Hyc_drvLcd_WriteInstruct(0x48);
Hyc_drvLcd_WriteData(0x0000);
delay(300);
Hyc_drvLcd_WriteInstruct(0x07);
Hyc_drvLcd_WriteData(0x0021);
delay(400);
Hyc_drvLcd_WriteInstruct(0x07);
Hyc_drvLcd_WriteData(0x0023);
delay(400);
Hyc_drvLcd_WriteInstruct(0x07);
Hyc_drvLcd_WriteData(0x0037);
delay(400);
Hyc_drvLcd_WriteInstruct(0x20);
Hyc_drvLcd_WriteData(0x0000);
Hyc_drvLcd_WriteInstruct(0x21);
Hyc_drvLcd_WriteData(0x0000);
}
/*-----------------------------------------------------------------------------
* 函数: drvLcd_InitLCDModule
* 功能:
* 参数: none
* 返回: none
*----------------------------------------------------------------------------*/
void Hyc_drvLcd_InitLCDModule(void)
{
Hyc_LcdModulePowerOnOff(0);
Hyc_drvLcd_InitLcdModuleInstructs();
Hyc_drvLcd_ClearLcdRAM();
Hyc_drvLcd_WriteInstruct(0x0007);//display on
Hyc_drvLcd_WriteData(0x0037);
}
/*-----------------------------------------------------------------------------
* 函数: drvLcd_LCDModulePowerOn
* 功能: 打开LCD模块电源
* 参数: none
* 返回: none
*----------------------------------------------------------------------------*/
void Hyc_drvLcd_LCDModulePowerOn(void)
{
Hyc_drvLcd_InitLcdModuleInstructs(); //sleep out = reInitialize
Hyc_drvLcd_WriteInstruct(0x0007); //display on
Hyc_drvLcd_WriteData(0x0037);
Hyc_RefreshScreen_Lcd();
Hyc_LcdModulePowerOnOff(1);
}
/*-----------------------------------------------------------------------------
* 函数: drvLcd_LCDModulePowerOff
* 功能: 关闭LCD模块电源
* 参数: none
* 返回: none
*----------------------------------------------------------------------------*/
void Hyc_drvLcd_LCDModulePowerOff(void)
{
Hyc_drvLcd_WriteInstruct(0x0007); //display off
Hyc_drvLcd_WriteData(0x0000); //0x0001
Hyc_LcdModulePowerOnOff(0);
Hyc_drvLcd_WriteInstruct(0x0010); //sleep in
Hyc_drvLcd_WriteData(0x0001); //0x0001
}
/*-----------------------------------------------------------------------------
* 函数: drvLcd_DisplayOn
* 功能: 打开显示
* 参数: none
* 返回: none
*----------------------------------------------------------------------------*/
void Hyc_drvLcd_DisplayOn(void)
{
Hyc_drvLcd_WriteInstruct(0x0007);//display on
Hyc_drvLcd_WriteData(0x0037);
}
/*-----------------------------------------------------------------------------
* 函数: drvLcd_DisplayOff
* 功能: 关闭显示
* 参数: none
* 返回: none
*----------------------------------------------------------------------------*/
void Hyc_drvLcd_DisplayOff(void)
{
Hyc_drvLcd_WriteInstruct(0x0007); //display off
Hyc_drvLcd_WriteData(0x0000); //0x0001
}
/*-----------------------------------------------------------------------------
* 函数: drvLcd_ContrastAdjust
* 功能: 调整对比度
* 参数: none
* 返回: none
*----------------------------------------------------------------------------*/
void Hyc_drvLcd_ContrastAdjust (U8 u8Contrast)
{
//待实现
}
/*-----------------------------------------------------------------------------
* 函数: drvLcd_SetRowColumn
* 功能: 设置彩色显示屏的显示起始地址,地址为行序号和列序号row和Column,以及高度
* 和宽度
* 参数: kRow - 行序号 , 起始行:0
* kColumn - 列序号 ,起始列:0
* U16 kHeight - 高度
* U16 kWidth - 宽度
* 返回: none
*----------------------------------------------------------------------------*/
void Hyc_drvLcd_SetRowColumn_Lcd(RECT *rect)
{
U16 tempData;
U16 kRow;
U16 kColumn;
U16 kHeight;
U16 kWidth;
kRow=rect->y;
kColumn=rect->x;
kHeight=rect->h;
kWidth=rect->w;
tempData=(0x01FF&kColumn);
Hyc_drvLcd_WriteInstruct(0x0048); //Specify the Vertical start positions
Hyc_drvLcd_WriteData(tempData);
tempData=(0x01FF&(kColumn+kWidth-1));
Hyc_drvLcd_WriteInstruct(0x0047); //Specify the Vertical end positions
Hyc_drvLcd_WriteData(tempData);
tempData=(((kRow+kHeight-1)<<8)|kRow);
Hyc_drvLcd_WriteInstruct(0x0046); //Specify the horizontal start/end positions
Hyc_drvLcd_WriteData(tempData);
tempData=(0x00FF&kRow);
Hyc_drvLcd_WriteInstruct(0x0020); //Specify the x address in RAM
Hyc_drvLcd_WriteData(tempData);
tempData=(0x01FF&kColumn);
Hyc_drvLcd_WriteInstruct(0x0021); //Specify the y address in RAM
Hyc_drvLcd_WriteData(tempData);
Hyc_drvLcd_WriteInstruct(0x0022); //RAM write
/*
tempData=(0x01FF&(319-(kColumn+kWidth-1)));
Hyc_drvLcd_WriteInstruct(0x0048); //Specify the Vertical start positions
Hyc_drvLcd_WriteData(tempData);
tempData=(0x01FF&(319-kColumn));
Hyc_drvLcd_WriteInstruct(0x0047); //Specify the Vertical end positions
Hyc_drvLcd_WriteData(tempData);
tempData=(((239-kRow)<<8)|(239-(kRow+kHeight-1)));
Hyc_drvLcd_WriteInstruct(0x0046); //Specify the horizontal start/end positions
Hyc_drvLcd_WriteData(tempData);
tempData=(0x00FF&(239-kRow));
Hyc_drvLcd_WriteInstruct(0x0020); //Specify the x address in RAM
Hyc_drvLcd_WriteData(tempData);
tempData=(0x01FF&(319-kColumn));
Hyc_drvLcd_WriteInstruct(0x0021); //Specify the y address in RAM
Hyc_drvLcd_WriteData(tempData);
Hyc_drvLcd_WriteInstruct(0x0022); //RAM write
*/
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?