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

📄 ltm024d130.c

📁 飞思卡尔带液晶驱动的MCU飞思卡尔带液晶驱动的MCU
💻 C
📖 第 1 页 / 共 4 页
字号:
/****************************************Copyright (c)****************************************************
**                            Guangzhou ZHIYUAN electronics Co.,LTD.
**
**                                 http://www.embedtools.com
**
**------File Info-----------------------------------------------------------------------------------------
** File name:               LTM024D130.c
** Latest modified Date:    2008-07-22
** Latest Version:          1.0
** Descriptions:            TFT液晶LTM024D130的驱动文件
**
**--------------------------------------------------------------------------------------------------------
** Created by:              张展威
** Created date:            2008-07-22
** Version:                 1.0
** Descriptions:
**
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
*********************************************************************************************************/


/*********************************************************************************************************
硬件寄存器相关操作头文件
*********************************************************************************************************/
#include  "hw_types.h"
#include  "hw_memmap.h"
#include  "hw_gpio.h"
#include  "sysctl.h"
#include  "gpio.h"

#include  "LTM024D130.h"
#include  "hz16.h"


#define INT8U  unsigned char
#define INT16U unsigned short


/*********************************************************************************************************
将较长的标识符定义成较短的形式
*********************************************************************************************************/
#define  SysCtlPeriEnable       SysCtlPeripheralEnable
#define  SysCtlPeriDisable      SysCtlPeripheralDisable
#define  GPIOPinTypeIn          GPIOPinTypeGPIOInput
#define  GPIOPinTypeOut         GPIOPinTypeGPIOOutput
#define  GPIOPinTypeOD          GPIOPinTypeGPIOOutputOD




/*********************************************************************************************************
硬件相关的定义
*********************************************************************************************************/
#define  LCD_CS_BASE_PIN        LCD_CS_BASE,LCD_CS_PIN
#define  LCD_WR_BASE_PIN        LCD_WR_BASE,LCD_WR_PIN
#define  LCD_RS_BASE_PIN        LCD_RS_BASE,LCD_RS_PIN
#define  LCD_RD_BASE_PIN        LCD_RD_BASE,LCD_RD_PIN
#define  LCD_RST_BASE_PIN       LCD_RST_BASE,LCD_RST_PIN
#define  DATA_PORT_BASE_PIN     DATA_PORT_BASE,DATA_PORT_PIN

/*********************************************************************************************************
硬件相关的位操作定义
*********************************************************************************************************/
#define  LCD_RS                 HWREG(LCD_RS_BASE + (GPIO_O_DATA + (LCD_RS_PIN << 2)))
#define  LCD_CS                 HWREG(LCD_CS_BASE + (GPIO_O_DATA + (LCD_CS_PIN << 2)))
#define  LCD_WR                 HWREG(LCD_WR_BASE + (GPIO_O_DATA + (LCD_WR_PIN << 2)))
#define  LCD_RD                 HWREG(LCD_RD_BASE + (GPIO_O_DATA + (LCD_RD_PIN << 2)))
#define  LCD_RST                HWREG(LCD_RST_BASE + (GPIO_O_DATA + (LCD_RST_PIN << 2)))
#define  DATA_PORT              HWREG(DATA_PORT_BASE + (GPIO_O_DATA + (DATA_PORT_PIN << 2)))
#define  DATA_PROT_INPUT_SET()  HWREG(DATA_PORT_BASE + GPIO_O_DIR) = 0  /* 设置数据口为输入方向         */
#define  DATA_PROT_OUTPUT_SET() HWREG(DATA_PORT_BASE + GPIO_O_DIR) = 0xFF
                                                                        /* 设置数据口为输出方向         */

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

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

/*********************************************************************************************************
** 函数名称: __readData8
** 功能描述: (从当前地址的寄存器)读8位数据
** 输   入: 无
** 输   出: 无
** 全局变量: 无
** 调用模块: 无
** 返    回:(当前地址的)8位数据
** 作   者: 张展威
** 日   期: 2008年7月22日
**------------------------------------------------------------------------------------------------------
** 修 改 人:
** 日   期:
**------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
unsigned char __readData8(void)
{
    unsigned char ucReturn = 0;
    DATA_PROT_INPUT_SET();                                              /* 设置数据口为输入方向         */
    LCD_CS = 0x00;                                                      /* 拉低CS                       */
    LCD_RS = 0xFF;                                                      /* 拉高RS                       */
    LCD_RD = 0x00;                                                      /* 拉低RD                       */
    LCD_RD = 0xFF;                                                      /* 拉高RD                       */
    ucReturn = DATA_PORT;                                               /* 读入数据                     */
    LCD_CS = 0xFF;                                                      /* 拉高CS                       */
    DATA_PROT_OUTPUT_SET();                                             /* 还原为输出端口               */
    return ucReturn;                                                    /* 返回结果                     */
}


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


/*********************************************************************************************************
** 函数名称: __readData16
** 功能描述: (从当前地址的寄存器)读16位数据函数
** 输   入: 无
** 输   出: 无
** 全局变量: 无
** 调用模块: 无
** 返    回:(当前地址的)16位数据
** 作   者: 张展威
** 日   期: 2008年7月22日
**------------------------------------------------------------------------------------------------------
** 修 改 人:
** 日   期:
**------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
unsigned short __readData16(void)
{
    unsigned short usRetrun = 0;
    
    DATA_PROT_INPUT_SET();                                              /* 设置数据口为输入方向         */
    LCD_CS = 0x00;                                                      /* 拉低CS                       */
    LCD_RS = 0xFF;                                                      /* 拉高RS                       */
    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;
}


/*********************************************************************************************************
** 函数名称: pixelRead
** 功能描述: 从指定坐标位置读出16位的颜色数据
** 输   入: x 列坐标
**           y 行坐标
** 输   出: 无
** 全局变量: 无
** 调用模块: DATA_PROT_INPUT_SET()、DATA_PROT_OUTPUT_SET()
** 返    回:GRAM中指定坐标的16位的颜色数据
** 作   者: 张展威
** 日   期: 2008年7月22日
**------------------------------------------------------------------------------------------------------
** 修 改 人:
** 日   期:
**------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
unsigned short pixelRead(unsigned short x, unsigned short y)
{
    unsigned short usRetrun = 0;
    
    __writeCommand(0, 0x02, (unsigned char)x);                          /* X (0~239)                 */
    __writeCommand(1, 0x03, y);                                         /* Y (0~319)                 */
    __writeRegAddr8(0x0F);                                              /* GRAM读接口寄存器地址         */
    DATA_PROT_INPUT_SET();                                              /* 设置数据口为输入方向         */
    LCD_CS = 0x00;                                                      /* 拉低CS                       */
    LCD_RS = 0xFF;                                                      /* 拉高RS                       */
    LCD_RD = 0x00;                                                      /* 拉低RD                       */

⌨️ 快捷键说明

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