PAGE1
PAGE1
LCD与触摸屏接口
LCD接口原理
1.LCD接口类型
LPC1700系列单片机支持多种LCD接口类型,包括8080并行接口、6800并行接口、SPI接口和I2C接口。这些接口类型的选择取决于LCD显示屏的硬件设计和通信需求。
8080并行接口:8080接口是基于Intel8080微处理器的并行通信标准,通常用于与16位或32位并行LCD显示屏通信。该接口通过数据线和控制线进行数据传输和命令控制。
6800并行接口:6800接口是基于Motorola6800微处理器的并行通信标准,与8080接口类似,但控制线的定义和时序有所不同。
SPI接口:SPI(SerialPeripheralInterface)是一种同步串行接口,通常用于与8位并行LCD显示屏通信。SPI接口通过MOSI(MasterOutSlaveIn)、MISO(MasterInSlaveOut)、SCLK(SerialClock)和CS(ChipSelect)四条线进行数据传输。
I2C接口:I2C(Inter-IntegratedCircuit)是一种两线式串行总线,通常用于与8位并行LCD显示屏通信。I2C接口通过SCL(SerialClock)和SDA(SerialData)两条线进行数据传输。
2.LCD接口硬件配置
LPC1700系列单片机通过灵活的GPIO(GeneralPurposeInput/Output)配置来支持不同的LCD接口类型。具体配置如下:
8080/6800并行接口:需要配置多条GPIO引脚作为数据线和控制线。通常包括8条数据线(D0-D7)、2条控制线(RS和RW)和1条使能线(E)。
SPI接口:需要配置MOSI、MISO、SCLK和CS引脚。
I2C接口:需要配置SCL和SDA引脚。
3.LCD接口时序
不同的LCD接口类型有不同的时序要求,这些时序要求必须严格遵守以确保通信的正确性。
8080并行接口时序:
命令写入时序:当RS为低电平时,表示写入命令。E引脚从高电平到低电平的变化表示一个完整的写入周期。
数据写入时序:当RS为高电平时,表示写入数据。E引脚从高电平到低电平的变化表示一个完整的写入周期。
数据读取时序:当R/W为高电平时,表示读取数据。E引脚从低电平到高电平的变化表示一个完整的读取周期。
6800并行接口时序:
命令写入时序:当RS为低电平时,表示写入命令。E引脚从低电平到高电平的变化表示一个完整的写入周期。
数据写入时序:当RS为高电平时,表示写入数据。E引脚从低电平到高电平的变化表示一个完整的写入周期。
数据读取时序:当R/W为高电平时,表示读取数据。E引脚从高电平到低电平的变化表示一个完整的读取周期。
SPI接口时序:
命令写入时序:通过CS引脚选择LCD显示屏,然后通过MOSI引脚发送命令数据,SCLK引脚提供时钟信号。
数据写入时序:通过CS引脚选择LCD显示屏,然后通过MOSI引脚发送数据,SCLK引脚提供时钟信号。
数据读取时序:通过CS引脚选择LCD显示屏,然后通过MISO引脚接收数据,SCLK引脚提供时钟信号。
I2C接口时序:
命令写入时序:通过SCL和SDA引脚发送I2C地址和命令数据。
数据写入时序:通过SCL和SDA引脚发送I2C地址和数据。
数据读取时序:通过SCL和SDA引脚接收I2C地址和数据。
LCD接口编程
1.8080并行接口编程
初始化
在使用8080并行接口与LCD显示屏通信之前,需要对GPIO引脚进行初始化配置。以下是一个示例代码,展示了如何初始化数据线和控制线:
#includeLPC17xx.h
//定义GPIO引脚
#defineRS_PIN2//RS引脚
#defineRW_PIN3//RW引脚
#defineE_PIN4//E引脚
#defineDATA_PORTLPC_GPIO0//数据端口
//初始化GPIO引脚
voidlcd_init(){
//配置数据端口为输出模式
DATA_PORT-FIODIR|=(10)|(11)|(12)|(13)|(14)|(15)|(16)|(17);
//配置控制引脚为输出模式
DATA_PORT-FIODIR|=(1RS_PIN)|(1RW_PIN)|(1E_PIN);
}
//写入一个字节到LCD
voidlcd_write(uint8_tdata,uint8_tisData){
//