LCD驱动设计
AI summary
本文介绍了LCD12864液晶显示器的设计,包括其基本概述、关键端口描述、驱动协议、图片显示设计要求及实现过程。详细阐述了LCD12864的接口、控制器的初始化和指令发送流程,以及设计架构和仿真测试结果。
Last edited time
Oct 23, 2024 03:07 PM
Last edited by
Tags
Serial Communication
Communication Protocols
Display Systems
LCD12864概述一:LCD12864介绍二:关键端口描述三:驱动LCD12864采用4线制SPI协议LCD12864显示图片设计一:设计要求二:设计架构三:设计分析四:设计实现五:仿真测试六:下板验证
LCD12864概述
一:LCD12864介绍
LCD:Liquid Crystal Display(即液晶显示器),常用到LCD12864/1602。
LCD1602:一共2行,每行能够显示16个字符;
LCD12864:一共128列,64行,能够显示128*64点阵单色图片;或者显示8个/行*4行 16*16点阵汉字(32个16*16点阵汉字);或者显示16个/行*8行 8*8点阵英文/符号/数字。
- 128*64单色图片
128*64图片:像素点个数128*8=1024个
- 显示8个/行*4行 16*16点阵汉字
- 显示16个/行*8行 8*8点阵英文/符号/数字
可以详见JLX12864G-13903中文说明书.PDF和ST7565R_V15.PDF手册。
- LCD12864扫描原理
二:关键端口描述
端口 | 描述 | 说明 |
3:12864_cs | 片选信号 | 低有效 |
4:12864_res | 复位信号 | 低电平复位:经过Trw后拉高(LCD开始工作) |
5:12864_rs | 寄存器选择信号 | 也可以称为A0(1:数据寄存器 0:指令寄存器) |
14:12864_sck | 串行时钟线 | Fsck:20MHZ~40MHZ |
15:12864_sda | 串行数据线 | SPI中D线(FPGA传输给ST7565R):SCK时钟下降沿进行发送 |
三:驱动LCD12864采用4线制SPI协议
- LCD12864串行接口时序:
- LCD12864串口接口
- LCD12864串口接口实现
采用FSM实现:STG
- LCD12864串口接口仿真测试
LCD12864显示图片设计
一:设计要求
- 在LCD12864接口驱动基础之上,增加LCD12864逻辑控制,实现二值图片显示;
- 取模软件Img2Lcd.exe对图片数据进行提取,使其图片显示整个LCD,像素点数据对应1024个,存储时选择ROM中;
二:设计架构
三:设计分析
- LCD12864控制器过程分析
- LCD初始化
- 上电:需要满足LCD12864内部的复位要求
- 发送指令
- 发送数据
整个控制器分析通过JLX12864G-13903中文说明书中指令表和参数表,可以知道FPGA驱动LCD12864的过程。
初始RES信号为高电平,复位时需要拉低RES信号,至少持续1us,再次拉高RES信号,即LCD就可以开始工作,复位结束后开始发送指令。
(1):软复位 0XE2
(2):升压步骤1 0X2C
(3):升压步骤2 0X2E
(4):升压步骤3 0X2F
(5):粗调对比度 0X23(0X20~0X27之间)
(6):微调对比度 0X81
(7):微调对比度的值 0X1A(0X00~0X3F之间)
(8):1/9偏压比 0XA2
(9):行扫描顺序 0XC0(从上到下)
(10):列扫描顺序 0XA0(从左到右)
(11):开显示 0XAF
每发送一页数据必须先发送三组指令:用于设置页/列地址。
(1):发送页地址(B0~B7):0XB0+N(N:表示当前页数) //0XB7-N(B7~B0)
(2):发送列地址:0X10
(3):发送列地址:0X00
(4):写数据(图片数据)
- LCD12864控制器中信号时序关系1
- LCD12864控制器中信号时序关系2
考虑REQ和ACK之间关系:
REQ = (ACK == 1’b1) ? 1’b0 : 1’b1;
四:设计实现
LCD12864控制器过程实现采用FSM实现。
PCtoLCD2002.exe取模软件
五:仿真测试
六:下板验证
Loading...