"); //-->
TFT LCD 控制器 使用说明 北京恒诚昊威科技 联系电话:13811689587
一、概述
TFT LCD 控制板由CPLD产生稳定的TFT时序驱动LCD面板,以及SDRAM(显存)时序读取显存的数据。并能接受MCU写入的数据,保存到SDRAM的指定位置。
TFT LCD 控制板在系统中的应用如下图所示:
MCU 用户板 |
TFT LCD 控制板 |
TFT液晶屏 |
TFT LCD 控制板可以通过用户板的扁平电缆供电,也可以单独供电。可以连接5V的MCU,也可以连接3.3V的MCU;可以驱动5V的LCD屏,也可以驱动3.3V的LCD屏。接口电压类型、TFT LCD面板类型(不同的分辨率、位数、时序)均可定制。
二、TFT LCD 控制板接口说明。
控制板PCB尺寸和引脚位置图
TFT LCD 控制板和MCU系统板的连接插座是J1 MCUPORT,为2.54mm间距30脚的标准扁平线(线距1.27mm)插座。引脚定义见下页图。
控制板有两种连接LCD屏的接口,一个是J3,为2.0mm间距36脚的扁平线(线距1.0mm)插座;另一个是J5,为0.5mm间距32脚的薄膜线插座。从J3可以用扁平线或分立线将LCD信号引出,方便调整线序。J5的线序可以兼容很多种数字接口的16位TFT LCD屏。
J3和J5的具体形式根据所配屏决定,其引脚定义如下页图所示:
J1 MCU 接口定义 J3 LCD 接口定义
图中MCU_D0 到 MCU_D7是单片机的数据线,MCU_nWR、nRD分别是写、读信号。MCU_A0、A1、nCS分别是地址线和片选信号(片选也是地址线)。
暂时控制板还不支持MCU_BUSY信号,请留空。
图中LCDCLK、LCDHS、LCDVS、LCDDEN分别是LCD屏的位时钟、水平同步、垂直同步、数据使能等信号。LCDRD1到LCDRD5是红色信号,LCDGD0到LCDGD5是绿色信号,LCDBD1到LCDBD5是蓝色信号,按RGB 5-6-5格式构成16位色信号。
某些版本的控制板实际输出8位色,RGB 3-3-2格式,有效信号是RD3到RD5,RG3到RG5和RB4、RB5。其余信号均输出低电平。
控制板上的R6和R7可以设置LCD屏的画面方向,可以水平或垂直翻转画面,具体参考LCD屏的手册。
J5 LCD薄膜线插座引脚定义
三、软件操作说明
MCU接口时序:TFT LCD控制板支持标准8051系列MCU的读写时序,即用
MOVX @DPTR,A
MOVX A, @DPTR
指令访问控制板的4个寄存器(端口)。具体时序见8051手册。
MCU信号电平组合:
nCS nWR nRD A1 A0 D0-D7
H 任意 任意 任意 任意 操作无效
L L H 0 0 写数据到显存
L H L 0 0 从显存读数据
L L H 0 1 设置LCD行号(垂直坐标)低字节
L L H 1 0 设置LCD列号(水平坐标)低字节
L L H 1 1 设置操作字节(包含行列地址高位)
CPLD内部含有4个寄存器,对MCU而言就是4个地址端口:
数据寄存器 地址A1=0 A0=0 MCU读写显存数据的缓冲寄存器。
行号寄存器 地址A1=0 A0=1 LCD行号就是象素的垂直坐标(低8位)
列号寄存器 地址A1=1 A0=0 LCD列号就是象素的水平坐标(低8位)
操作寄存器 地址A1=1 A0=1 包含行号的高1位和列号的高2位及其他控制信号
操作寄存器的位定义:此寄存器预留位将扩展其他控制信号
BIT7 保留
BIT6 保留
BIT5 保留
BIT4 保留
BIT3 保留
BIT2 行号最高1位
BIT1-BIT0 列号最高2位
对于分辨率是640×480的LCD屏,行号(象素垂直坐标)的取值范围是0-479,列号(象素水平坐标)的取值范围是0-639。这个数值范围用1个字节无法存放,所以在操作寄存器中设置行号的最高1位和列号的最高2位。
控制板有一个重要的功能就是,每次读写数据寄存器之后,列号(象素的水平坐标)会自动加1,如果软件需要连续写一行内的若干象素,可以连续写数据寄存器,而不用反复设置列号寄存器。
对于8位色(共256种颜色)的控制板,每操作一个象素读写一个字节的数据即可。数据字节位定义:
BIT7 红色高 对应LCD信号的RD5
BIT6 红色中 对应LCD信号的RD4
BIT5 红色低 对应LCD信号的RD3
BIT4 绿色高 对应LCD信号的RG5
BIT3 绿色中 对应LCD信号的RG4
BIT2 绿色低 对应LCD信号的RG3
BIT1 蓝色高 对应LCD信号的RB5
BIT0 蓝色低 对应LCD信号的RB4
写入数据最快速度3.75M次每秒,超过此极限,会出现写入数据丢失的现象。
MCU编程方法:
象素X坐标0-639,Y坐标0—479,首先需要对坐标值进行字节拆分和移位。
1)将X、Y坐标的最高位(拼成1字节)写入操作寄存器(A1=1 A0=1)。
2)将X坐标的低8位写入列号寄存器(A1=1 A0=0)。
3)将Y坐标的低8位写入行号寄存器(A1=0 A0=1)。
4)将象素颜色数据写入数据寄存器(A1=0 A0=0)。列号寄存器会自动加1,如果溢出则会使操作寄存器的低2位加1,亦即控制板内X坐标会自动加1.
四、程序样例
以STC89C516RD+单片机为例,控制板的A1接MCU的P2.1,A0接MCU的P2.0,CS接MCU的P2.7。如此定义以下访问地址的宏:
#define LcdDataPort *((unsigned char xdata *)0x4000)
#define LcdRowLowPort *((unsigned char xdata *)0x4100)
#define LcdColLowPort *((unsigned char xdata *)0x4200)
#define LcdOperatPort *((unsigned char xdata *)0x4300)
这里为了避开STC89C516RD+的内部扩展RAM空间,令P2.6为1。
然后编写下面的写入象素的函数,基于此可完成其他画面操作。
void LcdPixel(int x,y,unsigned char color)
{
LcdOperatPort = (x/256)|((y/64)&0x04);
LcdColLowPort = x;
LcdRowLowPort = y;
LcdDataPort = color;
}
随此文档,我们提供与TFT LCD控制板配套的Keil C51工程,基于8051的单片机(比如AT89S52、STC89C516RD+等等),包含基本的清屏、画点、画线、画矩形、画圆等函数,仅供用户了解如何对控制板进行软件编程。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。