新闻  |   论坛  |   博客  |   在线研讨会
CPLD TFT液晶控制器 并口液晶控制器
ltyluck | 2009-07-30 12:55:09    阅读:3299   发布文章

TFT LCD 控制器 使用说明  北京恒诚昊威科技  联系电话:13811689587

一、概述

TFT LCD 控制板由CPLD产生稳定的TFT时序驱动LCD面板,以及SDRAM(显存)时序读取显存的数据。并能接受MCU写入的数据,保存到SDRAM的指定位置。

TFT LCD 控制板在系统中的应用如下图所示:

 

 

MCU

用户板

 

TFT LCD

 控制板

 

TFT液晶屏

 

 

 

 

 


    TFT LCD 控制板可以通过用户板的扁平电缆供电,也可以单独供电。可以连接5VMCU,也可以连接3.3VMCU;可以驱动5VLCD屏,也可以驱动3.3VLCD屏。接口电压类型、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的线序可以兼容很多种数字接口的16TFT LCD屏。

    J3J5的具体形式根据所配屏决定,其引脚定义如下页图所示:

     

 J1  MCU 接口定义                          J3  LCD 接口定义

 

    图中MCU_D0 MCU_D7是单片机的数据线,MCU_nWRnRD分别是写、读信号。MCU_A0A1nCS分别是地址线和片选信号(片选也是地址线)。

    暂时控制板还不支持MCU_BUSY信号,请留空。

   

图中LCDCLKLCDHSLCDVSLCDDEN分别是LCD屏的位时钟、水平同步、垂直同步、数据使能等信号。LCDRD1LCDRD5是红色信号,LCDGD0LCDGD5是绿色信号,LCDBD1LCDBD5是蓝色信号,按RGB 565格式构成16位色信号。

    某些版本的控制板实际输出8位色,RGB 332格式,有效信号是RD3RD5RG3RG5RB4RB5。其余信号均输出低电平。

    控制板上的R6R7可以设置LCD屏的画面方向,可以水平或垂直翻转画面,具体参考LCD屏的手册。

J5  LCD薄膜线插座引脚定义

 

三、软件操作说明

MCU接口时序:TFT LCD控制板支持标准8051系列MCU的读写时序,即用

MOVX   @DPTRA

MOVX   A @DPTR

指令访问控制板的4个寄存器(端口)。具体时序见8051手册。

MCU信号电平组合:

 

nCS        nWR       nRD        A1          A0          D0D7

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×480LCD屏,行号(象素垂直坐标)的取值范围是0479,列号(象素水平坐标)的取值范围是0639。这个数值范围用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坐标0639Y坐标0—479,首先需要对坐标值进行字节拆分和移位。

1)将XY坐标的最高位(拼成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+单片机为例,控制板的A1MCUP2.1A0MCUP2.0CSMCUP2.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.61

然后编写下面的写入象素的函数,基于此可完成其他画面操作。

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的单片机(比如AT89S52STC89C516RD+等等),包含基本的清屏、画点、画线、画矩形、画圆等函数,仅供用户了解如何对控制板进行软件编程。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客