液晶显示控制器 UC1608
应用指南
深圳市拓普微科技开发有限公司
版本 描述
0.1 新版本
0.2
P7 SdCmd(0x2C);改为 SdCmd(0x26);
日期
编者
2009-06-24 郭强
2010-1-23 郭强
www.topwaydisplay.com 深圳市拓普微科技开发有限公司
www.topwaysz.com page 1/18
液晶显示控制器 UC1608 应用指南
TOPWAY
目 录
第一章 液晶显示控制器接口特性 .........................................................................................2
第二章 液晶显示控制器接口技术 .........................................................................................4
第三章 液晶显示控制器指令系统 .........................................................................................9
第四章 液晶显示控制器应用函数 .......................................................................................14
www.topwaydisplay.com 深圳市拓普微科技开发有限公司
www.topwaysz.com page 1/18
液晶显示控制器 UC1608 应用指南
TOPWAY
第一章 液晶显示控制器接口特性
UC1608 控制器的基本特性如下,使用 UC1608 的液晶显示模块利用了这些特性构造了模块产品应用
的主要功能:
工作电源:3V
显示功能:单显示 RAM 区域、垂直卷动等
接口信号:
管脚定义
管脚符号
CS
/RES
D/C
/WR(R/W)
片选信号输入端,高电平有效。CS=1 时选通模块;CS=0 时模块接口被封锁
复位信号输入端,低电平复位;正常运行时,为高电平状态
通道选择信号输入端,当 D/C=0 时,选择指令通道;D/C=1 时,选择数据通道
输入端。当并行接口 INTEL8080 时序时,为写信号/WR,低电平有效;
当并行接口 INTEL6800 时序时,为读/写选择信号,R/W=1,为读状态,R/W=0,为写状态
输入端。当并行接口 INTEL8080 时序时,为读信号/RD,低电平有效;
当并行接口 INTEL6800 时序时,为使能信号,E 为高电平时,为读操作,E 下降沿为写操作
/RD(E)
DB0(SCK) 输入/输出/三态。并行接口数据总线,当选择串行接口时,为串行时钟信号输入端
DB1
DB2
输入/输出/三态。并行接口数据总线,当选择串行接口时,接 VSS
输入/输出/三态。并行接口数据总线,当选择串行接口时,接 VSS
DB3(SDA) 输入/输出/三态。并行接口数据总线,当选择串行接口时,为串行数据输入端
DB4
DB5
DB6
DB7
输入/输出/三态。并行接口数据总线,当选择 4 位并行接口或串行接口时,接 VSS
输入/输出/三态。并行接口数据总线,当选择 4 位并行接口或串行接口时,接 VSS
输入/输出/三态。并行接口数据总线,当选择 4 位并行接口或串行接口时,接 VSS
输入/输出/三态。并行接口数据总线,当选择 4 位并行接口时,接 VSS;选择串行接口时,接 VDD
接口形式:8 位/4 位并行接口、4 线/3 线串行接口
操作模式:80mode(默认) 和 68mode
时序关系:
1、并口时序(80mode)
图一 80mode 模式时序图
www.topwaydisplay.com 深圳市拓普微科技开发有限公司
www.topwaysz.com page 2/18
液晶显示控制器 UC1608 应用指南
TOPWAY
时序参数表 (测试条件:2.7≤VDD<3.3V,ta=-30--+85C)
条件
符号 信号
tAS80
D/C
tAH80
tCY80
tPWR80
tPWW80
tHPW80
/RD
/WR
/WR
/RD
DB0-DB7
描述
地址建立时间
地址保持时间
系统时钟周期 8/4 位总线(读/写)
读脉冲宽度(8/4 位)
写脉冲宽度(8/4 位)
高脉冲宽度 写信号(8/4 位)
读信号(8/4 位)
数据建立时间
数据保持时间
读取时间
输出无效时间
片选建立时间
2、串口时序:
tDS80
tDH80
tACC80
tOD80
tSSA80
tCSSD80
tCSH80
ns
最小 最大 单位
0
20
140
65
35
35
65
30
20
ns
ns
ns
ns
ns
CS
60
20
ns
ns
CL=100pF -
12
10
10
20
图二、4 线 SPI 串行接口时序图
时序参数表 (测试条件:2.7≤VDD<3.3V,ta=-30--+85C)
符号
描述
信号
MIN
MAX
单位
tSCYC
tSHW
tSLW
tSAS
tSAH
tSDS
tSDH
tCSS
tCSH
串行时钟周期
SCL 高脉冲宽度
SCL 低脉冲宽度
地址建立时间
地址保持时间
数据建立时间
数据保持时间
CS 建立时间
CS 保持时间
SCK
D/C
SDA
CS
50
25
25
20
10
20
10
20
40
-
-
-
-
-
-
ns
www.topwaydisplay.com 深圳市拓普微科技开发有限公司
www.topwaysz.com page 3/18
液晶显示控制器 UC1608 应用指南
TOPWAY
第二章 液晶显示控制器接口技术
对于液晶显示模块的接口而言,也是液晶显示控制器的接口,因此我们在探讨控制器的接口技术时,
也是在探讨模块的接口技术。所以下面我们将“控制器”用“模块”代替,以期更清楚的描述控制器的应
用。
一般来说,在计算机系统里,液晶显示模块属于低速外设,所以在与计算机连接时,需要注意双方的
时序搭配。深圳市拓普微科技开发有限公司使用 UC1608 的液晶显示模块提供了多种的接口形式,用户可
以根据自己的控制系统时序特性和系统资源,进行合理的选择。本章将以单片机 89S52 为控制系统,以模
块 LM240120A 的 INTEL8080 时序接口的为实例 提供在总线寻址方式下和 I/O 寻址方式下接口的示意电
路和驱动子程序,同时还推荐了串行接口的应用方法。深圳市拓普微科技开发有限公司制作
在并行接口方式下,模块还可以使用 4 位并行方式,在 4 位方式下,模块使用了数据线的低 4 位
(DB3-DB0)作为数据总线,数据传输格式是先高 4 位,再低 4 位。传输时序关系同 8 位数据总线形式,
只是一个字节的数据需要传输两次完成,这里将不做讨论。
一、 总线寻址方式接口电路及驱动程序
MPU 使用总线方式与液晶显示模块直接连接,模块接口时序采用 INTEL8080 时序,如图三所示:
图三 总线寻址方式接口电路示意图
总线寻址方式是模块的数据总线直接挂在 89S52 的数据总线上,MPU 的/RD、/WR 作为模块的
读、写控制信号, CS 信号和 D/C 信号都由地址线译码产生,模块的/RST 接 RC 复位电路。
总线寻址方式驱动子程序如下:(地址定义,根据用户平台接口修改)
//-----指令代码写入函数----------------------
void SdCmd(uchar Command)
{
uchar xdata *wcom_addr;
wcom_addr =0x8000; // 指令口地址
*wcom_rdata_addr = Command; // 写指令操作
}
//-----数据写入函数--------------------------
void SdData(uchar DData)
{
uchar xdata *wdata_addr;
www.topwaydisplay.com 深圳市拓普微科技开发有限公司
www.topwaysz.com page 4/18
液晶显示控制器 UC1608 应用指南
TOPWAY
wdata_addr =0x8100; // 数据口地址
*wdata_addr = DData; // 写数据操作
}
//-----数据读取函数------------------------
uchar RdData()
{
uchar DData;
uchar xdata *rdata_addr;
rdata_addr = 0x8100; // 读数据地址
DData = *rdata_addr; // 读数据操作
return(DData); //返回数据值
}
二、 I/O 寻址方式接口电路及驱动程序
I/O 寻址方式是 MPU 通过 I/O 并行接口连接模块,通过软件编程模拟信号之间的时序关系,间接实现
对模块进行控制。该方式能够很好的回避 MPU 和模块接口之间的时序差异。根据模块的接口信号要求,
需要占用 MPU 的 2 个并行接口,在图四给出的示例中,我们将 89S52 的 P1 口作为数据总线。P3 口中 4
位端口为控制信号,它们是:P3.1 为 D/C 信号,P3.7 为/RD 信号,P3.6 为/WR 信号,P3.4 为 CS 信号,
P3.5 为/RST 信号。深圳市拓普微科技开发有限公司制作
图四 I/O 寻址方式电路示意图
I/O 寻址方式的驱动子程序如下:
//-----------------------------------
#define LCDBUS P1
sbit _RD = P3^7;
sbit _WR = P3^6;
sbit D_C = P3^1;
sbit CS = P3^4;
sbit _RST = P3^5;
//-------指令代码写入函数--------------------------
void SdCmd(uchar Command)
{
D_C = 0; // 选择指令通道
LCDBUS = Command; // 设置指令代码
CS = 1; // 选通模块
_WR = 0; // 写信号有效
_WR = 1; // 写信号无效
CS = 0; // 封锁模块
}
//------数据写入函数-----------------------------
void SdData(uchar DData)
www.topwaydisplay.com 深圳市拓普微科技开发有限公司
www.topwaysz.com page 5/18
液晶显示控制器 UC1608 应用指南
TOPWAY
= 0; // 封锁模块
{
D_C = 1; // 选择数据通道
LCDBUS = DData; // 设置数据
CS = 1; // 选通模块
_WR = 0; // 写信号有效
_WR = 1; // 写信号无效
CS
}
//-------数据读取函数-------------------------
uchar RdData()
{
uchar DData;
D_C =1; // 选择数据通道
LCDBUS=0xff;
CS=1; // 选通模块
_RD = 0; // 读操作信号有效
DData = LCDBUS; // 读数据
_RD = 1; // 读操作信号无效
CS=0; // 封锁模块
return(DData); // 返回数据值
}
三、 串行接口
使用 UC1608 的液晶显示模块的串行接口仅需要 4 个信号线,SCK 为串行时钟信号,上升沿有效;
SDA 为串行数据端;D/C 为数据的属性,D/C=0 为指令码,D/C=1 为显示数据; CS 仍为模块的片
选信号。串行数据传输的通讯协议也非常简单,见图五所示。在准备启用串行接口前,要将先将 SCK
信号设置为高电平,设置 D/C 状态,然后再将 CS 置“1”,选通模块,再将 SCK 置成“0”;SCK
的每个正脉冲的上升沿都将会把 SDA 数据送入内部缓冲器内,当第 8 个脉冲的上升沿时,SCK 将
D/C 状态读入内部控制位,并将已经读入 8 位数据并行送入 D/C 所确定的寄存器内进行处理。
本章提供了串行接口电路示意图,见图六所示,并根据该电路制作了驱动子程序如下。需要说明的是,
在串行接口的通讯中,只有向模块的写入功能,没有读取功能。深圳市拓普微科技开发有限公司制作
图五 串行接口通讯规则
图六 串行接口电路示意图
www.topwaydisplay.com 深圳市拓普微科技开发有限公司
www.topwaysz.com page 6/18
液晶显示控制器 UC1608 应用指南
TOPWAY
SCK = 0;
串行接口驱动子程序如下:
//--- 串行通讯方式驱动子程序------------------------------
uchar bdata transdata; //该变量可为位操作之变量
sbit transbit = transdata^7;
sbit CS = P3^4;
sbit _RST = P3^5;
sbit D_C = P3^1;
sbit SCK = P1^0;
sbit SDA = P1^3;
//-------指令代码写入函数------------------------
void SdCmd(uchar Command)
{
uchar j;
transdata=Command; // 指令送位寄存器
SCK = 1; // 初始化 SCK
D_C = 0; // 选择指令通道
CS = 1; // 选通模块
for(j=0;j<8;j++)
{
SDA=transbit; // 位寄存器 D7 位送数据口
SCK=1; // 产生移位脉冲
SCK=0; // 上升沿有效
transdata=transdata<<1; // 位寄存器数据左移一位
}
CS=0; // 封锁模块
}
//-----数据写入函数--------------------------
void SdData(uchar DData)
{
uchar j;
transdata=DData; // 指令送位寄存器
SCK = 1; // 初始化 SCLK
D_C = 1; // 选择数据通道
CS = 1; // 选通模块
SCK = 0;
for(j=0;j<8;j++)
{
SDA=transbit; // 位寄存器 D7 位送数据口
SCK=1; // 产生移位脉冲
SCK=0; // 上升沿有效
transdata=transdata<<1; // 位寄存器数据左移一位
} // 深圳市拓普微科技开发有限公司制作
CS=0; // 封锁模块
}
三、初始化子程序
UC1608 的初始化程序中,我们设置了启用内部 LCD 驱动电压,对比度参数 ContrastLevel 的设置
根据模块和使用环境设置。
1、初始化函数
void initLCDM(void)
{
_RST=1; // 硬件初始化复位
delayms(100);
_RST=0;
delayms(1);
_RST=1;
delayms(800); // 推荐延迟时间
ContrastLevel=0x28; // 设置对比度初始值为 0x28
SdCmd(0x26); // 设置占空比 1/128,温度系数设置 0.1%/C
www.topwaydisplay.com 深圳市拓普微科技开发有限公司
www.topwaysz.com page 7/18