admin
发表于: 2015-5-12 13:54:43 | 显示全部楼层

LPC1752控制LCD显示的原理与实现

@一板网

2015-5-13

1. 概述

本文档主要介绍LPC1752通过串行方式控制LCD的原理,对相关实现函数进行介绍,并进行测试。其中LCD采用的型号是COG12864B,是宝昌利电子推出的一款图形点阵液晶模块,主控型号采用ST7565R,采用COG封装。


2. 连接方式

LPC1752与LCD的连接方式如图1,其中P1.31连接LCD的片选信号CS(低有效);P1.0连接LCD的复位信号RST(低有效);P0.25连接LCD的命令数据选择端A0;P0.26连接LCD的串行模式时钟端DB6(SCL);P1.30连接LCD的串行模式数据端DB7(SI)。

001.JPG

图1 LPC1752与COG12864B连接图


3 驱动模块简介

3.1 定义

与LCD控制信号引脚相关的GPIO定义,包含P1.31、P1.0、P0.25、P0.26、P1.30。

接口定义.jpg

LCD控制信号的操作定义:

指令.jpg

LCD相关指令定义:

LCD指令.jpg


3.2发送数据函数lcd_write

向LCD的存储单元写入数据就能在图形上显示。写入过程应按照说明书及ST7565芯片手册上的时序图实现,如图3、图4所示。lcd_write函数的实现过程是:CS清零,SCL清零,将需要显示的数据发送到SI,SCL置位,发送下一个数据,发送完成后CS置位,SCL置位。具体实现代码见图2.

lcd_write.jpg

图2 lcd_write函数

时序.jpg

图3 COG12864B串行时序 (Serial interface)图

002.jpg

图4 ST7565的串行控制时序图


3.3 LCD液晶屏初始化函数lcd_init()

lcd_init()主要完成对GPIO的初始化、复位液晶屏、初始化液晶屏的状态。

初始化GPIO主要是设置GPIO为高电平的输出引脚。

初始化液晶屏的指令:

LCD_Soft_Reset(0xE2)该指令初始化LCD模块的参数,其中包括显示起使行,列地址,页地址,ADC,内部分压电阻比等。

LCD_Bias_Set(0xA2)该指令设置LCD 的偏压比。

LCD_SET_ADC_Select(0xA0)该指令能够使显示RAM 的列地址和段驱动的输出反向。相当于左右反转。0xA0表示正向安装。

LCD_SET_Output_Mode(0xC0)该指令设置显示RAM 的行地址的输出反向。相当于上下反转。0xC0表示正向安装。

lcd_init.jpg

图5 lcd_init()函数


3.4 清屏函数ST7565_fill

ST7565_fill函数主要是对LCD进行清屏操作,写入0x00是全白显示,写入0xFF是全部反白显示。具体实现代码见图6。

lcd_fill.jpg

图6 lcd_fill函数


3.5 显示字符函数disp_char

disp_char函数显示ASCII字符,字符集放置在font8x16数组中。先处理显示字符上部的数据,再处理显示字符下部的数据。具体实现代码见图7。

disp_char.jpg

图7 disp_char函数


3.6 显示汉字函数disp_hz

汉字字模显示数据结构体FNT_GB16:

fn.jpg

图8 FNT_GB16结构体

disp_hz函数通过轮询font_GB16字符集中的Index[2],如果查找到匹配汉字,则显示该汉字对应的Msk[32],否则显示最后一个汉字对应的Msk[32]。具体实现代码见图9。

disp_hz.jpg

图9  disp_hz函数


3.7显示字符串函数disp_str

disp_str函数依次查询字符串中的字符,如果属于ASCII,则调用disp_char函数,否则调用disp_hz函数。具体实现代码见图10。

disp_str.jpg

图10  disp_str函数


4  测试

测试程序主要是在液晶屏的第2行第32列显示“你好,World!”。具体实现代码见图11。

main.jpg

图11  测试程序main函数



跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 53 | 回复: 76



手机版|

GMT+8, 2024-4-27 06:08 , Processed in 0.036666 second(s), 6 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表