⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ltm024d130.c

📁 飞思卡尔带液晶驱动的MCU飞思卡尔带液晶驱动的MCU
💻 C
📖 第 1 页 / 共 4 页
字号:
    LCD_RD = 0xFF;                                                      /* 拉高RD                       */
    LCD_RD = 0x00;                                                      /* 拉低RD                       */
    LCD_RD = 0xFF;                                                      /* 拉高RD                       */
    LCD_RD = 0x00;                                                      /* 拉低RD                       */
    usRetrun = DATA_PORT;                                               /* 读入高8位数据                */
    LCD_RD = 0xFF;                                                      /* 拉高RD                       */
    LCD_RD = 0x00;                                                      /* 拉低RD                       */
    usRetrun = (usRetrun << 8) + DATA_PORT;                             /* 读入低8位数据                */
    LCD_RD = 0xFF;                                                      /* 拉高RD                       */
    LCD_CS = 0xFF;                                                      /* 拉高CS                       */
    DATA_PROT_OUTPUT_SET();                                             /* 还原为输出端口               */
    return usRetrun;
}

/*********************************************************************************************************
** 函数名称: __writeData16
** 功能描述: (向当前地址的寄存器)写16位数据
** 输   入: usData 要写入液晶的16位数据
** 输   出: 无
** 全局变量: 无
** 调用模块: 无
** 返    回:无
** 作   者: 张展威
** 日   期: 2008年7月22日
**------------------------------------------------------------------------------------------------------
** 修 改 人:
** 日   期:
**------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void __writeData16(INT16U usData)                                       /* 写16位数据函数               */
{
    LCD_CS = 0x00;
    LCD_RS = 0xFF;                                                      /* 拉高RS                       */
    DATA_PORT = (INT8U)(usData>>8);                                     /* 写高8位数据                  */
    LCD_WR = 0x00;                                                      /* 拉低WR                       */
    LCD_WR = 0xFF;                                                      /* 拉高WR                       */
    DATA_PORT = (INT8U)usData;                                          /* 写低8位数据                  */
    LCD_WR = 0x00;                                                      /* 拉低WR                       */
    LCD_WR = 0xFF;                                                      /* 拉高WR                       */
    //LCD_RS = 0xFF;                                                    /* 拉高RS                       */
    LCD_CS = 0xFF;                                                      /* 拉高CS                       */
}




/*********************************************************************************************************
** 函数名称: __writeCommand
** 功能描述: 写命令函数
** 输   入: bCmdWidth 0,命令字为8位;1,命令字为16位
**           ucAddr 命令寄存器地址
**           usCmd  命令字
** 输   出: 无
** 全局变量: 无
** 调用模块: 无
** 返    回:无
** 作   者: 张展威
** 日   期: 2008年7月22日
**------------------------------------------------------------------------------------------------------
** 修 改 人:
** 日   期:
**------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void __writeCommand(BOOLEAN bCmdWidth,INT8U ucAddr,INT16U usCmd)
{
    // 写8位地址
    LCD_CS = 0x00;
    LCD_RS = 0x00;                                                      /* 拉低RS                       */
    DATA_PORT = ucAddr;
    LCD_WR = 0x00;
    LCD_WR = 0xFF;
    LCD_RS = 0xFF;                                                      /* 拉高RS                       */
    if(bCmdWidth) {
        // 高8位数据
        //LCD_RS = 0xFF;                                                /* 拉高RS                       */
        DATA_PORT = (INT8U)(usCmd >> 8);
        LCD_WR = 0x00;
        LCD_WR = 0xFF;
    }
    // 低8位数据
    DATA_PORT = (INT8U)usCmd;
    LCD_WR = 0x00;
    LCD_WR = 0xFF;
    LCD_CS = 0xFF;
}


/*********************************************************************************************************
** 函数名称: windowset
** 功能描述: 窗口设置
** 输   入: x1,y1 窗口起始坐标
**           x2,y2 窗口结束坐标
** 输   出: 无
** 全局变量: 无
** 调用模块: __writeCommand()
** 返    回:无
** 作   者: 张展威
** 日   期: 2008年7月22日
**------------------------------------------------------------------------------------------------------
** 修 改 人:
** 日   期:
**------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void windowset(unsigned short x1, unsigned short y1, unsigned short x2, unsigned short y2)
{
    __writeCommand(0,0x06, x1);                                         /* 水平起始位置                 */
    __writeCommand(1,0x07, y1);                                         /* 垂直起始位置                 */
    __writeCommand(0,0x04, x2);                                         /* 结束列数(0~239)              */
    __writeCommand(1,0x05, y2);                                         /* 结束行数(0~319)              */
}


/*********************************************************************************************************
** 函数名称: tftLcdInit
** 功能描述: 液晶初始化
** 输   入: 无
** 输   出: 无
** 全局变量: 无
** 调用模块: __writeCommand()、windowset()、__screenFill()
** 返    回:无
** 作   者: 张展威
** 日   期: 2008年7月22日
**------------------------------------------------------------------------------------------------------
** 修 改 人:
** 日   期:
**------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void tftLcdInit(void)                                                   /* 初始化函数                   */
{
    SysCtlPeriEnable(LCD_PERI);                                         /* 使能相应的GPIO               */
    GPIOPinTypeOut(LCD_CS_BASE_PIN);                                    /* 设置相应的控制管脚为输出     */
    GPIOPinTypeOut(LCD_WR_BASE_PIN);                                    /* 设置相应的控制管脚为输出     */
    GPIOPinTypeOut(LCD_RS_BASE_PIN);                                    /* 设置相应的控制管脚为输出     */
    GPIOPinTypeOut(LCD_RD_BASE_PIN);                                    /* 设置相应的控制管脚为输出     */
    GPIOPinTypeOut(LCD_RST_BASE_PIN);                                   /* 设置相应的控制管脚为输出     */
    GPIOPinTypeOut(DATA_PORT_BASE_PIN);                                 /* 设置相应的数据管脚为输出     */
    
    LCD_RS = 0xFF;                                                      /* 初始化输出为高电平           */
    LCD_CS = 0xFF;                                                      /* 初始化输出为高电平           */
    LCD_WR = 0xFF;;                                                     /* 初始化输出为高电平           */
    LCD_RD = 0xFF;                                                      /* 初始化输出为高电平           */
    LCD_RST = 0xFF;                                                     /* 初始化输出为高电平           */
    DATA_PORT = 0xFF;
    
    LCD_RST = 0x00;                                                     /* 拉低复位引脚                 */
    SysCtlDelay(10 * SysCtlClockGet() / 3000);
    LCD_RST = 0xFF;                                                     /* 拉高复位引脚                 */
    SysCtlDelay(10 * SysCtlClockGet() / 3000);
    
    //initializing funciton 1
    
    
    __writeCommand(0,0xA1,0x00);
    __writeCommand(0,0xA0,0x00);
    __writeCommand(0,0x70,0xC8);
    SysCtlDelay(2 * SysCtlClockGet() / 3000);
    
    __writeCommand(0,0x72,0xA3);
    __writeCommand(0,0x73,0x04);
    __writeCommand(0,0x75,0x45);
    __writeCommand(0,0x76,0x23);
    __writeCommand(0,0x77,0x08);
    __writeCommand(0,0x78,0x08);
    __writeCommand(0,0x79,0x00);
    __writeCommand(0,0x7F,0xF0);
    __writeCommand(0,0x71,0x81);
    SysCtlDelay(2 * SysCtlClockGet() / 3000);
    
    __writeCommand(0,0x0D,0x23);
    __writeCommand(0,0x11,0x00);
    __writeCommand(0,0x12,0x00);
    __writeCommand(0,0x21,0x37);
    __writeCommand(0,0x22,0x02);
    __writeCommand(0,0x23,0x24);
    __writeCommand(0,0x24,0x13);
    __writeCommand(0,0x25,0x0A);
    __writeCommand(0,0x26,0x82);
    __writeCommand(0,0x27,0x01);
    __writeCommand(0,0x1E,0x25);
    __writeCommand(0,0x1F,0x59);
    
    //GAMMA设置
    __writeCommand(1,0x30,0x0777);
    __writeCommand(1,0x31,0x0444);
    __writeCommand(1,0x32,0x0555);
    __writeCommand(1,0x33,0x0444);
    __writeCommand(1,0x34,0x0333);
    __writeCommand(1,0x35,0x0333);
    __writeCommand(1,0x36,0x0333);
    __writeCommand(1,0x37,0x0333);
    __writeCommand(1,0x38,0x0444);
    __writeCommand(1,0x39,0x0555);
    __writeCommand(1,0x3A,0x0666);
    __writeCommand(1,0x3B,0x0666);
    __writeCommand(1,0x3C,0x0777);
    __writeCommand(1,0x3D,0x0777);
    __writeCommand(1,0x3E,0x0777);
    __writeCommand(1,0x3F,0x0777);
    __writeCommand(1,0x40,0x0777);
    __writeCommand(1,0x41,0x0777);
    __writeCommand(1,0x42,0x0777);
    __writeCommand(1,0x43,0x0777);
    __writeCommand(1,0x44,0x0777);
    __writeCommand(1,0x45,0x0777);
    __writeCommand(1,0x46,0x0777);
    __writeCommand(1,0x47,0x0777);
    __writeCommand(1,0x48,0x0777);
    __writeCommand(1,0x49,0x0777);
    __writeCommand(1,0x4A,0x0777);
    __writeCommand(1,0x4B,0x0777);
    __writeCommand(1,0x4C,0x0777);
    __writeCommand(1,0x4D,0x0666);
    __writeCommand(1,0x4E,0x0666);
    __writeCommand(1,0x4F,0x0666);
    
    //扫描方向控制
    __writeCommand(0,0x00,0x04);                                        /* 扫描方向控制                 */
    __writeCommand(0,0x01,0x07);                                        /* 扫描方向控制                 */
    
    //窗口设置
    windowset(0, 0, 239, 319);
    
    __writeCommand(0,0x08, 239);                                        /* 水平结束位置                 */
    __writeCommand(1,0x09, 319);                                        /* 垂直结束位置                 */
    
    //坐标设置
    __writeCommand(0,0x02,0x00);                                        /* X (0~239)                 */
    __writeCommand(1,0x03,0x0000);                                      /* Y (0~319)                 */

    __writeCommand(0,0x0A,0x00);
    __writeCommand(0,0x0B,0x00);
    __writeCommand(0,0x0C,0x00);
    __writeCommand(0,0x14,0x00);
    __writeCommand(0,0x15,0x00);
    __writeCommand(0,0x16,0x00);
    __writeCommand(1,0x17,0x01FF);
    __writeCommand(1,0x18,0x01FF);
    __writeCommand(0,0x13,0x00);
    __writeCommand(1,0x19,0x01FF);
    __writeCommand(1,0x1B,0x01FF);
    __writeCommand(1,0x1C,0x01FF);
    __writeCommand(1,0x1A,0x01FF);
    __writeCommand(0,0x1D,0x0E);
    
    __screenFill(GusBACKCOLOR);                                         /* 填充背景色                   */
    __writeCommand(0,0x10,0x06);                                        /* 开显示                       */
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -