RA8802/8820

RAiO
RA8802
RA8820
中文文字/图形
LCD 控制器
应用手册
Version 2.5
October 1, 2004
RAiO Technology Inc.
Copyright RAiO Technology Inc. 2003, 2004
RAiO TECHNOLOGY INC.
1/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
RA8802/8820 中文文字/图形 LCD 控制器应用手册改版说明
版
本
日
期
2.0
January 29, 2004
2.1
March 25, 2004
说
明
First Release Version
修改第 4 章与 9.15 节
增加图 B-1B
2.2
April, 12, 2004
2.3
May 3, 2004
增加附录 B.4 Power 应用电路
增加 4.1、4.2、8.2、8.3、8.4、附录 E 节
修改 2、2.3、3、5、7、8.1、9.13 附录 B.2、B.3、F 节
2.4
June 10, 2004
修改图 B-1B 的接脚名称
增加表 3-1:RA8802/8820 与驱动器 IC 的接口名称对照表
修改图 5-1、图 5-2:用 DAC 控制 LCD 亮度的应用电路及文字说
明
2.5
October 1, 2004
增加图 8-2A:重置脚位 RST# 的时序
修改图 8-3:一般 RA8802/8820 电源开启或重置的流程图
修改图 B-3, B-4, B-5
增加附录 G. 字型与字码表(GB)
RAiO TECHNOLOGY INC.
2/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
章节
内
容
页数
1. 简介 ......................................................................................................................................5
2. 微控制器(MCU)的接口 ..........................................................................................................6
2.1 8080 系列的 MCU 接口 ..................................................................................................................................6
2.2 6800 系列的 MCU 接口 ..................................................................................................................................7
2.3 4Bit/8Bit 的 MCU 界面 ...................................................................................................................................9
2.4 MCU 接口的程序范例 .................................................................................................................................. 10
3. 液晶显示驱动器(LCD Driver)的接口...................................................................................13
3.1 液晶显示器面板(LCD Panel) 大小的设定 ................................................................................................... 14
4. 中文字型 ROM ....................................................................................................................16
4.1 中文字型 ROM 的使用................................................................................................................................. 16
4.2 自建字型 ROM............................................................................................................................................. 18
5. 液晶显示器的亮度调整........................................................................................................23
6. 触摸式面板(Touch Panel)的界面 .......................................................................................28
6.1 电阻式触摸面板 ........................................................................................................................................... 28
6.2 触摸面板的应用 ........................................................................................................................................... 30
7. 系统时序(Clock)的选择 ......................................................................................................34
8. 硬件的启始设定...................................................................................................................36
8.1 重置(Reset)与系统设定............................................................................................................................... 36
8.2 电源开启或重置(Power On/Reset)的程序.................................................................................................. 38
8.3 缓存器的起始设定 ....................................................................................................................................... 40
8.4 Wakeup 的程序........................................................................................................................................... 41
9. RA8802/8820 功能应用介绍 ...............................................................................................42
9.1 文字模式设定............................................................................................................................................... 42
9.1.1 文字显示............................................................................................................................................... 42
9.1.2 粗体字之显示功能 ................................................................................................................................ 44
9.2 绘图模式设定............................................................................................................................................... 45
9.3 闪烁与反白显示 ........................................................................................................................................... 48
9.3.1 闪烁显示............................................................................................................................................... 48
9.3.2 屏幕反白............................................................................................................................................... 49
9.3.3 文字反白............................................................................................................................................... 50
9.4 中/英文文字对齐 .......................................................................................................................................... 51
9.5 LCD 屏幕显示 On/Off 设定 ......................................................................................................................... 53
9.6 光标 On/Off 设定 ......................................................................................................................................... 53
9.7 光标位置与移位设定.................................................................................................................................... 53
RAiO TECHNOLOGY INC.
3/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
9.7.1 光标位置............................................................................................................................................... 53
9.7.2 游标移位............................................................................................................................................... 56
9.8 光标闪烁设定............................................................................................................................................... 56
9.8.1 光标闪烁时间设定 ................................................................................................................................ 57
9.9 光标高度与宽度设定.................................................................................................................................... 57
9.9.1 游标高度............................................................................................................................................... 57
9.9.2 游标宽度............................................................................................................................................... 58
9.10 工作及显示窗口大小设定 .......................................................................................................................... 59
9.11 行距设定 .................................................................................................................................................... 65
9.12 自动填入数据到 DDRAM........................................................................................................................... 65
9.13 屏幕更新频率设定 ..................................................................................................................................... 66
9.14 中断(Interrupt)与忙碌(Busy)设定 ............................................................................................................ 66
9.15 省电模式 .................................................................................................................................................... 68
9.16 ASCII 区块选择设定 .................................................................................................................................. 69
9.16.1 ASCII 字形区块 0 ............................................................................................................................... 69
9.16.2 ASCII 字形区块 1 ............................................................................................................................... 71
9.16.3 ASCII 字形区块 2 ............................................................................................................................... 72
9.16.4 ASCII 字形区块 3 ............................................................................................................................... 73
附录 A. 液晶显示驱动器(LCD Driver)的时序图 ......................................................................74
附录 B. 应用电路图 .................................................................................................................76
B.1 RA8802 应用电路(320x240)....................................................................................................................... 76
B.2 RA8802 应用电路(320x240)....................................................................................................................... 78
B.3 RA8820 应用电路(160x160)....................................................................................................................... 80
B.4 Power 应用电路 ......................................................................................................................................... 82
附录 C. 除错与分析流程 ..........................................................................................................84
附录 D. 支援的 Driver 型号 .....................................................................................................85
附录 E. 指令时间.....................................................................................................................86
附录 F. C51 范例程序..............................................................................................................87
附录 G. 字型与字码表(GB) .....................................................................................................94
RAiO TECHNOLOGY INC.
4/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
1. 简介
RA8802/8820 是一个中英文文字与绘图模式的点矩阵液晶显示(LCD)控制器,RA8802 可最大支持 320x240
点的 LCD 面板,RA8820 可最大支持 240x240 点的 LCD 面板。内建 512K Byte 的字型码,可以显示中文字
型、数字符号、英日欧文等字母,使用者只要透过 MCU 对 RA8802/8820 写入中/英文字型码,就可以直接
在 LCD 面板上显示中英文字型,而不需要透过 MCU 以绘图方来处理中英文的显示。为了让使用者更加了解
RA8802/8820 的使用与其附加的许多软硬件功能,因此建立此应用手册供客户参考。
图 1-1 是 RA8802/8820 的系统接口图,我们将依据此系统接口图,在以下的几章分别做完整的界面介绍,
同时会在每一个应用上举出图示与例题,让使用者了解硬件的连接状态。在第九章我们将对 RA8802/8820
所提供的功能做详细的说明与介绍,同样配合许多图示与例题让使用者在实际设计时能轻易上手。最后在目
录内我们附了很多参考数据,如完整电路图、Demo Program 等等,为了配合此应用手册,希望使用者能与
RA8802/8820 的 Data Sheet 一同参考,以其达到最快的学习效果。
微控制器
(MCU )
液晶驅動器
( LCD Driver)
RA8802
RA8820
可擴充字形
(Extendible
Font ROM)
液晶顯示器
(LCD Panel)
升壓電路
(亮度調整 )
硬體
啟始設定
觸摸式面板
(Touch Panel)
時脈
(Clock)
图 1-1:RA8802/8820 系统接口图
RAiO TECHNOLOGY INC.
5/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
2. 微控制器(MCU)的接口
RA8802/8820 文字/图形 LCD 控制器与一般的 LCD 控制器相类似,都有支持 8080 和 6800 两大系列属性的
MCU 接口。使用者可以透过 SYS_MI 这根脚位去选择 RA8802/8820 的 MCU 接口是 8080 或者是 6800 的兼
容系统,如果 SYS_MI 外接一 Pull Low 电阻,则 RA8802/8820 的 MCU 将定义成与 8080 兼容的接口,否
则 RA8802/8820 的 MCU 接口将定义成与 6800 兼容的接口。
2.1 8080 系列的 MCU 接口
图 2-1 是 RA8802/8820 与 8080 兼容系列的 MCU 接口示意图,此时 RA8802/8820 将只接受与 8080 系列兼
容的 MCU 所传送出来的控制信号。
8080
MCU
RA8802
RS
A0
CS1
A1-A7
Decoder
CS2
IORQ
SYS_MI
DB0-3(DB0-7)
-
D0-D3(D0 -D7)
RD
RD
WR
WR
RES
RST
图 2-1:8080 (4/8-bit) MCU 与 RA8802/8820 的界面图
图 2-2 是 8080 系列 MCU 与 RA8802/8820 间的系统时序图,在 RA8802/8820 的定义中,RS 为 “H” 时是表
示对缓存器下命令,也就是对 RA8802/8820 的缓存器进行读写的动作(Register Access Cycle),而 RS 为
“L” 时是表示对 Display RAM 进行 Data 读写的动作(Data Access Cycle)。不论是 8080 或 6800, “RS” Pin
通常接到 MCU 的 Address Pin “A0” ,8080 系列 MCU 与 6800 最大的不同是 Read、Write 的控制信号是分
开的,RD 为 Low 时是进行读取动作,WR 为 Low 时是进行写入动作,至于读写的目的地则由 RS 决定。
下面图 2-2 表示如果是对缓存器进行读取动作,MCU 必须透过数据总线先送出缓存器的地址,然后才能在
数据总线上读取缓存器的数据,如果是对缓存器进行写入动作,MCU 必须透过数据总线先送出缓存器的地
址,然后再送出要写入的数据。当 8088 MCU 对 RA8802/8820 Display RAM 进行数据的读取动作,MCU
能直接在数据总线上读取 Display RAM 的数据,如果 8088 MCU 对 Display RAM 进行数据的写入动作,
MCU 则直接在数据总线上送出要写入的数据。
RAiO TECHNOLOGY INC.
6/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
t AH8
RS, CS1
t AW8
t CYC
t CC
WR, RD
t DS8
t DH8
DB0~DB7
(WRITE)
t OH8
t ACC8
DB0~DB7
(READ)
图 2-2:8-Bit 8080 MCU 对 RA8802/8820 缓存器/Data 进行读取/写入动作
表 2-1
Signal
RS, CS1#
WR#, RD#
DB0 to DB7
Rating
Min
Max
10
--
Symbol
Parameter
Unit
Condition
tAH8
Address hold time
ns
ns
System Clock:
8MHz
tAw8
Address setup time
63
--
tCYC
System cycle time
800
--
ns
Voltage: 3.3V
tCC
Strobe pulse width
400
--
ns
tDS8
Data setup time
63
--
ns
tDH8
Data hold time
10
--
ns
tACC8
RD access time
--
330
ns
tOH8
Output disable time
10
--
ns
2.2 6800 系列的 MCU 接口
图 2-3 是 RA8802/8820 与 6800 兼容系列的 MCU 接口示意图,此时 RA8802/8820 将只接受 6800 系列兼容
的 MCU 所传送出来的控制时序。6800 系列 MCU Read, Write 的控制信号是同一根 Pin,RD/WR 为 High 时
是进行读取动作,RD/WR 为 Low 时是进行写入动作,而 EN 则是确定读写的动作是否有效(Enable),至于
读写的目的地仍由 RS 决定。
RAiO TECHNOLOGY INC.
7/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
6800
MCU
RA8802
A0
VDD
RS
A1 -A7
CS1
Decoder
VMA
CS2
SYS_MI
D0-D3(D0 -D7)
DB0-3(DB0-7)
EN
EN
R/W
R/W
RES
RST
图 2-3:6800 (4/8-bit) MCU 与 RA8802/8820 的界面图
RA8802/8820 无法同时接受 6800 及 8080 的控制信号,因此在 MCU 的接口上,某些脚位上会因为使用者
选择不同的 MCU 而有不同的定义,例如 RD#(EN) (Pin#33),当使用者选择的 MCU 接口为 8080 时是定义
成 RD#,而选择 6800 MCU 时是定义为 EN。而 Pin #32,当使用者选择的 MCU 接口为 8080 时是定义成
WR#,而选择 6800 MCU 时是定义为 RD/WR,对于 MCU 接口的脚位定义,使用者可以参考 RA8802/8820
Data Sheet 第 4.1 节的说明。
下面图 2-4 表示如果是 6800 MCU 对 RA8802/8820 缓存器进行读取动作,MCU 必须透过数据总线先送出缓
存器的地址,然后才能在数据总线上读取缓存器的数据,如果是对缓存器进行写入动作,MCU 必须透过数
据总线先送出缓存器的地址,然后再送出要写入的数据。当 6800 对 RA8802/8820 Display RAM 进行数据的
读取动作,MCU 能直接在数据总线上读取 Display RAM 的数据,如果 6800 MCU 对 Display RAM 进行数据
的写入动作,则 MCU 直接在数据总线上送出要写入的数据。
RAiO TECHNOLOGY INC.
8/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
t CYC6
EN
t AW6
t EW
t AH6
RS, R/W, CS1
t DH6
t DS6
DB0~DB7
(WRITE)
t OH6
t ACC6
DB0~DB7
(READ)
图 2-4:8-bit 6800 MCU 对 RA8802/8820 缓存器/Data 进行读取/写入动作
表 2-2
Signal
A0, R/W#,
CS1#
DB0 to DB7
EN
Rating
Min
Max
10
--
Symbol
Parameter
Unit
Condition
tAH6
Address hold time
ns
System Clock:
8MHz
Voltage: 3.3V
tAw6
Address setup time
63
--
ns
tCYC6
System cycle time
800
--
ns
tDS6
Data setup time
63
--
ns
tDH6
Data hold time
10
--
ns
tACC6
Access time
--
330
ns
tOH6
Output disable time
10
--
ns
tEW
Enable pulse width
400
--
ns
2.3 4Bit/8Bit 的 MCU 界面
RA8802/8820 除了支持 8080 和 6800 两大系列兼容的 MCU 接口外,也可以设定 MCU 上的数据总线接口是
4-Bit 或是 8-Bit,使用者可以透过 SYS_DB 这根脚位去选择 MCU 的数据总线(Data Bus)接口,如果
SYS_DB 外 接 一 Pull Low 电 阻 , 则 RA8802/8820 的 MCU 数 据 总 线 接 口 将 定 义 成 4-Bit , 否 则
RA8802/8820 的 MCU 数据总线接口将定为 8-Bit。因为 RA8802/8820 内部的缓存器大多是 8-Bit 的架构,
因此如果使用 4-Bit 的数据总线接口,MCU 将会花较多的周期(Cycle)去存取 RA8802/8820 内部的缓存器。
当选择 4-bit MCU 作传输模式时,RA8802/8820 的 MCU 接口只有用到数据总线的 DB3~DB0,而没有用到
的 DB7~DB4 则必须接 Pull Low,同时每一个八位的指令或数据将被分为两个 Nibble(4-Bit)依序透过数据总
RAiO TECHNOLOGY INC.
9/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
线的 DB3~DB0 进行传送,第一次先透过总线(DB3~DB0)传送数据的较高位 Bit[7..4],第二次再透过总线
(DB3~DB0)传送数据的较低位 Bit[3..0],使用者可以参考 2.4 节中的例题 5~8。
2.4 MCU 接口的程序范例
下面将列出一些简单的程序说明 MCU 与 RA8802/8820 存取缓存器的方式,这些程序及以后的范例都是以
65C02 的汇编语言撰写,非常浅显易懂,也相当容易转成其它的语言格式。在此之前我们必须先了解
RA8802/8820 的 Pin “RS”定义,RA8802/8820 的 “RS” 是缓存器(RS=1)及 DDRAM(RS=0) 的选择 Pin,可
由 SYS_PLR 这根脚位去选择,也就是说 MCU 要对 RA8802/8820 缓存器进行存取的动作时 RS 必须为 1,
由前面的接口示意图可以知道 “RS” Pin 通常接到 MCU 的 Address Pin “A0” ,在这些例子当中我们定义 A0
= 1 时 MCU 的译码位置为 REG_ADDR,A0 = 0 时 MCU 的译码位置为 DATA_ADDR。
例 题 1:8-Bit MCU 写入 Data 到 RA8802/8820 的缓存器
LDA
STA
LDA
STA
#00h
REG_ADDR
#A5h
REG_ADDR
; 选择 LCD Controller Register (LCR)
LDA
STA
LDA
STA
#E0h
REG_ADDR
#5Ah
REG_ADDR
; 选择 Pattern Data Register (PDR)
; 写入“A5” 到 LCR 缓存器
; 写入“5A” 到 PDR 缓存器
例 题 2:8-Bit MCU 读取 RA8802/8820 的缓存器的 Data
LDA
STA
LDA
#00h
REG_ADDR
REG_ADDR
; 选择 LCD Controller Register (LCR)
LDA
STA
LDA
#E0h
REG_ADDR
REG_ADDR
; 选择 Pattern Data Register (PDR)
; 读取 LCR 缓存器的值
; 读取 PDR 缓存器的值
例 题 3:8-Bit MCU 写入一中文到光标所在的位置
LDA
STA
LDA
STA
#BAh
DATA_ADDR
#F4h
DATA_ADDR
LDA
STA
LDA
STA
#ADh
DATA_ADDR
#B6h
DATA_ADDR
RAiO TECHNOLOGY INC.
; 加载 “网” 的中文码高位 “BA”
; 加载 “网” 的中文码低位 “F4”
; 光标所在的位置将显示 “网” 的中文字
; 加载 “页” 的中文码高位 “AD”
; 加载 “页” 的中文码低位 “B6”
; 光标所在的位置将显示 “页” 的中文字
10/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
例 题 4:8-Bit MCU 读取 Display RAM 的 Data
LDA
REG_ADDR
; 读取光标所在的位置的 Display RAM Data
上面的例题 1~4 是 8-Bit 的 MCU 存取方式,如果是使用 4-Bit 的数据总线接口,MCU 将会花较多的 Cycle
Time 去存取 RA8802/8820 内部的缓存器及 Display RAM Data,使用者可以比较一下例题 5~8 与例题 1~4
的差异性。
例 题 5:4-Bit MCU 写入 Data 到 RA8802/8820 的缓存器
LDA
STA
LDA
STA
LDA
STA
LDA
STA
#0h
REG_ADDR
#0h
REG_ADDR
#Ah
REG_ADDR
#5h
REG_ADDR
; 选择 LCD Controller Register (LCR)
LDA
STA
LDA
STA
LDA
STA
LDA
STA
#Eh
REG_ADDR
#0h
REG_ADDR
#5h
REG_ADDR
#Ah
REG_ADDR
; 选择 Pattern Data Register (PDR)
; 写入“A5” 到 LCR 缓存器
; 写入“5A” 到 PDR 缓存器
例 题 6:4-Bit MCU 读取 RA8802/8820 的缓存器的 Data
LDA
STA
LDA
STA
LDA
#0h
REG_ADDR
#0h
REG_ADDR
REG_ADDR
:
:
LDA REG_ADDR
LDA
STA
LDA
STA
LDA
#Eh
REG_ADDR
#0h
REG_ADDR
REG_ADDR
:
:
LDA REG_ADDR
RAiO TECHNOLOGY INC.
; 选择 LCD Controller Register (LCR)
; 读取 LCR 缓存器的值(High Nibble)
; 读取 LCR 缓存器的值(Low Nibble)
; 选择 Pattern Data Register (PDR)
; 读取 PDR 缓存器的值(High Nibble)
; 读取 PDR 缓存器的值(Low Nibble)
11/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
例 题 7:4-Bit MCU 写入一中文到光标所在的位置
LDA
STA
LDA
STA
LDA
STA
LDA
STA
#Bh
DATA_ADDR
#Ah
DATA_ADDR
#Fh
DATA_ADDR
#4h
DATA_ADDR
LDA
STA
LDA
STA
LDA
STA
LDA
STA
#Ah
DATA_ADDR
#Dh
DATA_ADDR
#Bh
DATA_ADDR
#6h
DATA_ADDR
; 加载 “网” 的中文码高位 “BA”
; 加载 “网” 的中文码低位 “F4”
; 光标所在的位置将显示 “网” 的中文字
; 加载 “页” 的中文码高位 “AD”
; 加载 “页” 的中文码低位 “B6”
; 光标所在的位置将显示 “页” 的中文字
例 题 8:4-Bit MCU 读取 Display RAM 的 Data
LDA
REG_ADDR
:
:
LDA REG_ADDR
:
:
:
RAiO TECHNOLOGY INC.
; 读取光标所在的位置的 Display RAM Data(High Nibble)
; 读取光标所在的位置的 Display RAM Data(Low Nibble)
12/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
3. 液晶显示驱动器(LCD Driver)的接口
本章将介绍 RA8802/8820 与液晶显示驱动器(LCD Driver)之间的接口,RA8802 最大可支持 320x240 点的液
晶显示器(LCD Panel),而 RA8820 最大可支持 240x160 点,使用者可以依据在此范围内想设计的显示器
Panel 大小来选择适当的 LCD Driver。图 3-1 是 RA8802/8820 与 ST8016 LCD Driver 连接的示意图,用来
驱动 160x160 的液晶显示器面板。
Y1~Y160
EIO1
FR
MD
LP
S/C
160*160 DOT LCD
PANEL
DISPOFF
L/R
XCK
DI0~DI7
EIO2
VDD
ST8016
(Common)
Y1~Y160
VSS
YD
LP
FR
LP
DISPOFF
DISPOFF
XCK
FRM
ST8016
(Segment)
EIO1
MD
S/C
L/R
EIO2
LD0~LD7
DI0~DI7
XCK
RA8802
图 3-1:RA8802/8820 与 LCD Driver(ST8016)的接线图
在图 3-1 中使用两个 ST8016 的 LCD Driver,分别处理 160x160 LCD Panel 的 Common 及 Segment,而
RA8802/8820 则送出 Frame(FRM)、Latch Pulse(LP)、YD 及 Data Bus 等信号给 ST8016,图 3-2 是
RA8802/8820 与 LCD Driver 之间的接口讯号波形图, 对于 LCD Driver 接口的脚位定义 ,使用者可以参考
RA8802/8820 Data Sheet 第 4.2 节的说明。
RAiO TECHNOLOGY INC.
13/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
Total 160 LP for
one frame
FRM
YD
LP
XCK
DATA
COM1 Period
FRM
YD
LP
XCK
DATA
D1
D2
D3
D4
D5
D6
D7
D8
D9
D10
D11
D12
D37
D38
D39
D1
D2
COM (N) Period
FRM
YD
LP
XCK
DATA
DN- 5
DN- 4
DN-3
DN- 2
DN-1
DN
D1
D2
图 3-2:RA8802/8820 与 Driver 的接口讯号波形图
RA8802/8820 也可以设定连接至 LCD Driver 上的数据总线接口是 4-Bit 或是 8-Bit,使用者可以透过
SYS_LD 这根脚位去选择,如果 SYS_LD 外接一 Pull Low 电阻,则 RA8802/8820 的 LCD Driver 数据总线
接 口 将 定 义 成 4-Bit , 否 则 RA8802/8820 的 LCD Driver 数 据 总 线 接 口 将 定 为 8-Bit 。 像 图 3-1 中
RA8802/8820 与 ST8016 LCD Driver 连接的就是 8-Bit 的总线接口。
3.1 液晶显示器面板(LCD Panel) 大小的设定
RA8802 可以支持 320x240 点尺寸的液晶显示器(LCD Panel),也就是 20 列 x 15 行的中文字(RA8802/8820
内定每一中文字型为 16x16 点),RA8820 可以支持 240x160 点尺寸的液晶显示器(LCD Panel),也就是 15
列 x 10 行的中文字,针对不同尺寸的液晶显示器,可透过软件的方式来设定:
RAiO TECHNOLOGY INC.
14/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
软 件 设 定 :使用者可以透过设定缓存器的方式,来更改对应的显示器大小。可利用显示窗口(Display
Window) REG[28h, 38h, 48h, 58h] 和 工 作 窗 口 (Active Window)REG[20h, 30h, 40h, 50h] , 来 改 变
RA8802/8820 对显示器大小的设定。例如 RA8802,使用者选用的是 320x240 LCD 面板,所使用到的范围
也是 320x240 点的大小,此时的显示窗口与工作窗口的缓存器设定值是相同的。
表 3-1:RA8802/8820 与驱动器 IC 的接口名称对照表
RA8802/8820
Driver 界面名称
Driver IC 界面名称
LP
LP
LOAD
CL1
CP
XCK
SCP
CL2
FLM
YD
FR
FRAME
FRM
DF(M)
LD[7:0]
D[7:0]
DISPOFF
RAiO TECHNOLOGY INC.
Driver IC 界面名称之定义
Data Latch Clock
Latch Pulse in one line
Latch pulse of display data
Data Latch Pulse
Data Shift Clock
Clock pulse for segment shift register
Shift Clock Pulse for X-Drivers
Data Shift Pulse
Scan Start-up Signal
First Line Marker
Frame Pulse
Frame start signal(First line mark of common
signal)
Switch signal to convert LCD drive waveform
into AC
LCD Data Bus
/DISPOFF
Display OFF
/D.OFF
Display OFF
DISP
Display OFF
15/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
4. 中文字型 ROM
4.1 中文字型 ROM 的使用
RA8802/8820 内建有 512KByte 的 16x16 中文显示字型 ROM(Font ROM),其中 RA8802/8820-T 储存标准
繁体中文 BIG5 码,包含 13,094 个常用与次常用字型、408 个特殊字与两组 ASCII CODE,RA8802/8820-S
储存 7602 个标准 GB 码的简体中文。同时 RA8802/8820 也提供额外的硬件界面可支持一外挂的 512KByte
字型 ROM(External ROM),让使用者的显示字型多一倍。一般来说,RA8802/8820 内建的中文显示字型已
经可以符合大多数的中文显示应用,如果仍然不足才需要外加字型 ROM,当然如果不须要外挂字型 ROM
时,在电路板(PCB)的 Layout 上可以省略许多 Pin 不用,如 MA[19..0]、MD[7..0]和 MCS# 等。
不过要注意,MA0 必须 Pull High(10KOhm),如果不使用外接字型 ROM,建议您 MA[7:0]与 MD[7:0]可直
接接到 VDD,以节省电源消耗。
图 4-1 为 RA8802/8820 与外挂字型 ROM(512Kbyte)之间的电路接口,图 4-2 说明这些连接讯号的动作及相
关的波形。对于外挂的字型 ROM 接口脚位定义,使用者可以参考 RA8802/8820 Data Sheet 第 4.4 节的说
明。
RA8802
MX27C4000
4MBit
A[18:0]
MA[18..0]
D[7:0]
MD[7:0]
OE#
CE#
MCS#
图 4-1:RA8802/8820 与外挂字型 ROM(512KByte)之间的电路接口
ADDRESS
INPUT
(MA0~MA18)
DATA ADDRESS
tACC
MCS
tCS
DATA OUT
MD0~MD7
VALID DATA
tOH
图 4-2 RA8802/8820 与外部字型 ROM 的波形图
RAiO TECHNOLOGY INC.
16/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
缓存器[F0h]是用来设定与字型 ROM 相关的功能,Bit6 就是如前面所述用来选择显示的字形是使用内部字型
ROM 或是外部字型 ROM。而当使用者选择 RA8802/8820-T 时,必须将 Bit[5..4]设成 “01” 才能正确显示繁
体字型,选择 RA8802/8820-S 时,必须将 Bit[5..4]设成 “10” 才能正确显示简体字型。
REG [F0h] Font Control Register (FCR)
Bit
Description
Text/Graph
字型 ROM 的转换
7
--
Default Access
1h
R/W
--
0h
R/W
--
00h
R/W
Text
0h
R/W
1:致能
0:禁能
内部/外部字型 ROM 选择
6
1:选择外部字型 ROM
0:选择内部字型 ROM
字型 ROM 的语系选择
5-4
01:选择繁体(BIG5)字型
10:选择简体(GB)字型
文字码的类别选择 (注 1)
2
1:输入的数据为 ASCII 码
0:输入 GB 码为中文字
下面的例题在第一章有提到,只要先设定光标位置,然后将要显示的中文其中文码(Big-5 或 GB 码)共两个
Byte,透过 MCU 写入 Data Address 既可:
例 题 :8-Bit MCU 写入一中文字 “网” 到光标所在的位置
LDA
; 选择内部字形 ROM 与繁体字型
#10010000b
Write_REG[F0h]
LDA
STA
LDA
STA
; 加载 “网” 的中文码高位 “BA”
#BAh
DATA_ADDR
; 加载 “网” 的中文码低位 “F4”
#F4h
; 光标所在的位置将显示 “网” 的中文字
DATA_ADDR
注 1:中文内码不论是 GB 或 BIG5 码都是由两个 Byte 组成,但是英文及一些符号 ASCII 码只由一个 Byte
组成(00h~FFh),通常 RA8802/8820 将送到 Display RAM 的 Data(00h~9Fh)视为 ASCII 码,也就半
角文字(8x16),大于等于 “A0h” 的视为全角码(如繁简中文)的高位,必须再送一次低位内码,才能显
示全角字型。如果使用者有用到 A0h~FFh 的 ASCII 码,则 MCU 在送 Data(ASCII 码)到 Display RAM
之前必须将缓存器[F0h]的 Bit2 设成 “1”。
RAiO TECHNOLOGY INC.
17/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
4.2 自建字型 ROM
RA8802/8820 内建有 512KByte 字型 ROM(Font ROM),也可以开放给客户下 Mask 使用,客户可以自
行编码自建字库,每个字都是 16x16 的字型,因为 16x16 的字形型需要 32Byte 的内存空间,512Kbyte
的 ROM 共可以储存 16K 个字型(16Kx32=512K),512Kbyte 的 ROM 共有 19 条地址线(Address Line)
Æ A[18:0],00000h~0001Fh 的 32Byte 储存第一个字形,00020h~0003Fh 的 32Byte 储存第二个字
形,依此类推,如下表 4-1:
表 4-1
Addr[18:5]
Addr[4:0]
字型 No.
000,0000,0000,000
XXXXX
1
000,0000,0000,001
XXXXX
2
:
XXXXX
:
:
XXXXX
:
111,1111,1111,110
XXXXX
16383
111,1111,1111,111
XXXXX
16384
至于 32Byte 的字型储存顺序如图 4-3 所示,假设您想将图 4-4 的字当成 Font ROM 的第一个字形,那么
ROM 00000h~0001Fh 的储存数据如下表 4-2:
RAiO TECHNOLOGY INC.
18/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
表 4-2
RAiO TECHNOLOGY INC.
Addr[18:5]
Addr[4:0]
Data
000,0000,0000,000
00000
08h
00001
1Ch
00010
1Ch
00011
FFh
00100
7Fh
00101
1Ch
00110
3Eh
00111
3Eh
01000
77h
01001
41h
01010
00h
01011
00h
01100
83h
01101
7Fh
01110
3Fh
01111
0Fh
10000
20h
10001
10h
10010
1Ch
10011
9Eh
10100
1Eh
10101
1Fh
10110
1Fh
10111
1Fh
11000
1Fh
11001
3Fh
19/115
11010
7Eh
11011
FEh
11100
FCh
11101
F8h
11110
F0h
11111
C0h
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
Byte17
Byte18
:
:
:
:
:
:
:
:
:
:
:
:
Byte31
Byte32
Byte1
Byte2
:
:
:
:
:
:
:
:
:
:
:
:
Byte15
Byte16
08h
1Ch
1Ch
FFh
7Fh
1Ch
3Eh
3Eh
77h
41h
00h
00h
83h
7Fh
3Fh
0Fh
图 4-3:32Byte 的字型储存顺序
20h
10h
1Ch
9Eh
1Eh
1Fh
1Fh
1Fh
1Fh
3Fh
7Eh
FEh
FCh
F8h
F0h
C0h,
图 4-4:32Byte 的字型 Data
因为 512Kbyte 的 ROM 共可以储存 16K 的字型,所以我们用 2 个 Byte 的字型码来选择显示的字型,事
实上字型码与 ROM Address 的对应如图 4-5 所示。字型码的 High Byte 与 Low Byte 各取 Bit[6:0]组合成
Font ROM 的 Address A[18:5],也就是 A[18] 对应 High Byte 的 Bit6,A[17] 对应 High Byte 的 Bit5,依
此类推,A[11] 对应 Low Byte 的 Bit6,A[10] 对应 Low Byte 的 Bit5,直到 A[5] 对应 High Byte 的 Bit0,
至于 High Byte 与 Low Byte 的 Bit7 为 0 或 1 皆不影响选择显示的字型。
Low Byte
High Byte
7
6
5
4
3
2
1 0
7
18 17 16 15 14 13 12
6
5
4
3
2
1
0
11 10 9
8
7
6
5
ROM Address
图 4-5:字型码与 ROM Address 的对应
如果 Font ROM 的 00000h~0001Fh 储存表 4-2 的 Data,那么在文字模式下连续写入”00h”(或 80h)两次
(High Byte and Lowe Byte),光标所在位置会秀出图 4-4 所示的字型,请参考图 4-6。图 4-6 中 High
Byte 与 Low Byte 的 Bit7 为 X,代表 Don’t Care,也就是 0 或 1 皆不影响选择显示的字型。
RAiO TECHNOLOGY INC.
20/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
Address(0000h~0001Fh)
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
:
:
:
0
0
0
0
0
0
0
0
0
0
X
0
0
0
0
0
0
0
X
0
0
0
0
0
0
0
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
High Byte =00h or 80h
Low Byte = 00h or 80h
图 4-6:字型码与 ROM Address 对应的例题(1)
再假设 Font ROM 的 5C8A0h~5C8BFh 储存表 4-2 的 Data,那么在文字模式下连续写入”5Ch”(High
Byte) 与”45h”(Lowe Byte),光标所在位置会秀出图 4-4 所示的字型,请参考图 4-7。同样的在图 4-7 中
High Byte 与 Low Byte 的 Bit7 为 X,代表 Don’t Care,也就是 0 或 1 皆不影响选择显示的字型。
因此客户可以依据上述法则建立自己的 ROM Code 与字型码,经由下 Mask 产生专有的字型用于产品
上。而客户拿到自己建立字型 ROM 的 RA8802/8820 后,在使用上必须将缓存器[F0h]的 Bit[7]设成 “0”
才能正确显示相对应于字型码的字型。至于外挂字型 ROM 也是同样的根据这个规则,只是使用时要将
缓存器[F0h]的 Bit6 要设成 1。
附带一提的是您也可以将字型当成一 16x16 的 Bitmap,每个 Bitmap 由 2 个 Byte 码来定义,利用不同
的 Bitmap 组合成一图形,相对于 512Kbyte 的 ROM,可以储存许多图形在里面!
RAiO TECHNOLOGY INC.
21/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
Address(5C8A0h~5C8BFh)
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
1
:
:
:
1
0
1
1
1
0
0
1
0
0
X
1
0
1
1
1
0
0
X
1
0
0
0
1
0
1
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
High Byte = 5Ch or DCh
Low Byte = 45h or C5h
图 4-7:字型码与 ROM Address 对应的例题(2)
RAiO TECHNOLOGY INC.
22/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
5. 液晶显示器的亮度调整
传统的 LCD 亮度调整方式大都是以可调式电阻为主,藉由电阻值的改变去控制供给 LCD 面板的升压电路,
来达到调整 LCD 亮度的目的,使用上非常不方便。因此 RA8802/8820 内建了一个定电流输出的 5-bit 数字模拟转换器(Digital to Analog Converter, DAC),使用者可以利用这个 DAC 产生不同的电流输出,进而控制
外部的升压电路,使得供给 LCD Panel 高压的电压准位随着 DAC 的设定值而改变,这样透过 MCU 就可以
达到用程序的方法去控制 LCD 的亮度。
R2
VEE
R3
39K
3.9K
VEE
VEE
100K
V0
V1
IOUT
LM358
100K
R1
LM358
100K
104
680
RA8802/8820
LCD
PANEL
R7
100K
图 5-1:用 DAC 控制 LCD 亮度的应用电路(I)
VDD
VEE
L1
R3
R4
200K
1M
SW
VIN
IOUT
4.7u
SHDN
GND
R1
FB
R5
100K
2.2K
RA8802/8820
LT1615
0.1
R2
4.7u
R6
39K
0
图 5-2:用 DAC 控制 LCD 亮度的应用电路(II)
图 5-1 是用 RA8803/8822 的 DAC 控制 LCD 亮度的应用电路,在此图中 RA8803/8822 是利用外部减法器电
路和控制 DAC 电流输出范围,去改变供给 LCD 面板的输出电压 “V0” 的变动范围,进而得到想要的亮度控
RAiO TECHNOLOGY INC.
23/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
制。图 5-2 是藉由升压组件(LT1615)来做 VEE 电压的输出调整,以供给 LCD 面板的应用电路,R5 用来调
整 VEE(通常为 VLCD 电压) ,让 VEE 调整为适合所使用的 Panel 与驱动 IC 之电压准位,若要经由
RA8803/8822 进行亮度控制,可由 RA8803/8822 的 DAC 输出电流 IOUT 进行(5Bit 的 DAC 可以有 32 阶的
变化),由 R3 来调整控制的范围,使缓存器 LCCR[4:0] 为 00000b~11111b 时,VEE 的+/- 变化在 1V~2V 左
右(视 Panel 的特性) 。RA8803/8822 DAC 输出电流与 VEE 为反比关系,此电路可节省较多的组件,降低成
本。事实上控制 LCD 亮度的方法很简单,只要透过 MCU 去设定缓存器 LCCR 就可以控制整个 DAC 的功
能,下面的程序例题是说明控制 LCD 的亮度为最亮及最暗的方法。
REG [D0h] LCD Contrast Control Register (LCCR)
Bit
Description
Default
Access
1h
R/W
1h
R/W
1h
R/W
0h
R/W
LCD 亮度控制
7
1:禁能
0:致能
DAC 写入致能
6
1:不允许 MCU 写数据于 Bit[4..0]
0:允许 MCU 写入数据于 Bit[4..0]
重置 LCD 亮度控制功能
5
1:正常操作
0:DAC 重置,设 Iout 为 0uA
设 DAC Iout 值
4-0
00000b Æ 0µA (Min. Current)
:
:
11111b Æ 500uA (Max. Current)
例 题:
LDA
#00111111b
Write_REG[D0h]
; 设定 LCD 的亮度为最暗
; 存入 Data 到缓存器[D0h]LCCR
(注 1)
:
:
LDA
#00110000b
Write_REG[D0h]
; 设定 LCD 的亮度为最亮
; 存入 Data 到缓存器[D0h]LCCR
图 5-3 是 RA8802/8820 DAC 的输出电流 “Iout” 和图 5-1 LCD 面板的输出电压 “V0”,两者之间的对应曲线
图。每种 LCD 面板所需要的电压与明亮控制范围不同,因此使用者在开发时应配合 LCD 面板规格、升压电
路与控制 DAC 电流输出范围,才能得到想要的亮度控制,就如同图 5-1 的外部减法器电路,使用者可能需
RAiO TECHNOLOGY INC.
24/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
要改变 R1, R2 与 R3,以及用软件的方式和控制 DAC 电流输出范围,才能得到适当的亮度控制。
25.00
V0 (Voltage)
20.00
15.00
V0
10.00
5.00
0.
01
6
0.
04
7
0.
07
8
0.
10
9
0.
14
1
0.
17
2
0.
20
3
0.
23
4
0.
26
6
0.
29
7
0.
32
8
0.
35
9
0.
39
1
0.
42
2
0.
45
3
0.
48
4
0.00
Iout (mA)
图 5-3:Iout 输出透过亮度调整电路与 V0 的对应曲线图
表 5-1 是图 5-1 的亮度调整电路的参数表。RA8802/8820 有 5-bit 的 DAC,因此在 Iout 的输出电流会有 25=
32 组的电流,当不同的电流输出到减法电路,可以得到 32 组不同的 V0 输出电压供给 LCD 面板,来达到亮
度调整的功能。当使用者搭配不同的 LCD 面板,所需要的电压与明亮控制范围会不同,所以在整个减法电
路的 R1,R2 和 R3 也可以依照需求来做调整,得到适合的 V0 输出电压供给 LCD 面板。
表 5-1:亮度调整电路参数 (注 2)
Iout(mA)
V1
R1(KΩ)
R2(KΩ)
R3(KΩ)
VEE
V0
0.016
0.12
0.68
3.9
39
20
19.883
0.031
0.23
0.68
3.9
39
20
19.766
0.047
0.35
0.68
3.9
39
20
19.649
0.063
0.47
0.68
3.9
39
20
19.533
0.078
0.58
0.68
3.9
39
20
19.416
0.094
0.70
0.68
3.9
39
20
19.299
0.109
0.82
0.68
3.9
39
20
19.182
0.125
0.94
0.68
3.9
39
20
19.065
0.141
1.05
0.68
3.9
39
20
18.948
0.156
1.17
0.68
3.9
39
20
18.831
0.172
1.29
0.68
3.9
39
20
18.714
0.188
1.40
0.68
3.9
39
20
18.598
0.203
1.52
0.68
3.9
39
20
18.481
RAiO TECHNOLOGY INC.
25/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
0.219
1.64
0.68
3.9
39
20
18.364
0.234
1.75
0.68
3.9
39
20
18.247
0.250
1.87
0.68
3.9
39
20
18.130
0.266
1.99
0.68
3.9
39
20
18.013
0.281
2.10
0.68
3.9
39
20
17.896
0.297
2.22
0.68
3.9
39
20
17.779
0.313
2.34
0.68
3.9
39
20
17.663
0.328
2.45
0.68
3.9
39
20
17.546
0.344
2.57
0.68
3.9
39
20
17.429
0.359
2.69
0.68
3.9
39
20
17.312
0.375
2.81
0.68
3.9
39
20
17.195
0.391
2.92
0.68
3.9
39
20
17.078
0.406
3.04
0.68
3.9
39
20
16.961
0.422
3.16
0.68
3.9
39
20
16.844
0.438
3.27
0.68
3.9
39
20
16.728
0.453
3.39
0.68
3.9
39
20
16.611
0.469
3.51
0.68
3.9
39
20
16.494
0.484
3.62
0.68
3.9
39
20
16.377
0.500
3.74
0.68
3.9
39
20
16.260
注 1:在上面例题中 “Write_REG[D0h]” 指令实际上是一个子程序,用来将累加器(Accumulator)数据写入到
指定的 RA8802/8820 缓存器内,因此在以后的例题中 “Write_REG[xxh]” 所代表的意义为:
; 先将累加器(Accumulator)数据存入堆栈(Stack)
PHA
LDA
#xxh
STA
REG_ADDR
; 由堆栈中取出数据存入累加器
PLA
STA
; 选择指定的缓存器(Register)地址
REG_ADDR
; 写入 Data 到之前指定的缓存器内
相同的在以后的例题中 “Read_REG[xxh]” 指令也是一个子程序,用来读取指定的 RA8802/8820 缓存
器数据,并存入累加器内,因此在以后的例题中 “Read_REG[xxh]” 所代表的意义为:
LDA
#xxh
STA
REG_ADDR
LDA
REG_ADDR
; 选择指定的缓存器(Register)地址
; 读取之前指定的缓存器内的 Data
注 2:在表 5-1 的 R1,R2 和 R3,是以 320x240 的 LCD 面板所得到最佳参数值。
虽然 DAC 可用于控制升压电路,进行对比显示(Contrast)设定,但仍须要注意的是升压电路本身的精确度,
RAiO TECHNOLOGY INC.
26/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
即使是同一批号的生压 IC,产生的 VLCD 电压准位也会不同,而且 LCD Panel 对相同 VLCD 电压产生的对
比显示效果也不同,因此如果使用 RA8802/8820 的 DAC 进行对比显示(Contrast)设定,建议仍要加上可调
电阻做为出厂设定。
RAiO TECHNOLOGY INC.
27/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
6. 触摸式面板(Touch Panel)的界面
目前触摸式面板(Touch Panel)的应用愈来愈多,然而目前市面上的 LCD Controller 或 Driver 大都无法直接
提供触摸式面板的解决方案,因此使用者必须外加许多电路与零件,造成成本上的增加,而 RA8802/8820
内建了一个 8-bit 模拟-数字转换器(Analog to Digital Converter, ADC)及数个模拟开关(Analog Switch),使用
者可以将四线电阻式触摸式面板的 XL, XR, YU, YD 接到 RA8802/8820,然后利用模拟开关切换让 ADC 读
取电阻上的电压值,再由 MCU 读取 ADC 的转换值,而得到触摸面板 Touch 的相对位置。
6.1 电阻式触摸面板
电阻式触摸面板是由两层极薄的电阻面板组成,如图 6-1 所示,两层面板之间有一个很小的间距,当有外力
在面板上的某一点压下去时,会在施力点造成两层电阻接触,也就是短路(Short),而两层电阻面板的端点都
各有电极,如图 6-2 所示 YU, YD, XL, XR,因此配合一些开关就可侦测出面板上哪一相对位置被 Touch。
YU
Y Plate
X Plate
Electrode
XL
XR
YD
图 6-1:触摸面板(Touch Panel)
VCC
SW2
YU
Resistor-Y
XL
XR
VCC
SW0
SW1
Resistor-X
YD
SW3
GND
图 6-2:触摸面板与侦测开关
RAiO TECHNOLOGY INC.
28/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
在图 6-3 中,设定开关 SW2 与 SW3 是 OFF(Open),SW0 与 SW1 是 ON(Close),当有外力在面板上的某
一点压下去时,由 YU 点取得电压接到 ADC(Analog to Digital Converter),就可以得到被 Touch 点的 X 坐标
相对位置。
VCC
SW2
OFF
YU
To ADC
Resistor-Y
XL
XR
VCC
SW0
ON
SW1
ON
Resistor-X
YD
SW3
OFF
GND
图 6-3:读取 X 坐标
VCC
V+
VCC
X5
X4 X3
X2
X1
P
VP
0
X5
X4
X3
X2
X1
X
X-axis
图 6-4:Resistor-X 的分压
在图 6-3 中,因为开关 SW2 与 SW3 是 OFF,因此 YD 点是 Floating,所以当有外力在面板上的某一点压下
去时,YU 上的电压事实上就是 X 的 Panel(也就是电阻)上的分压结果,压在面板上的不同一点,就会得到不
同的分压值,如图 6-4 所示。
同理,在图 6-5 中,设定开关 SW0 与 SW1 是 OFF(Open),SW2 与 SW3 是 ON(Close),当有外力在面板
上的某一点压下去时,由 XL 点取得电压接到 ADC(Analog to Digital Converter),就可以得到被 Touch 点的
Y 坐标相对位置。一般说来许多触摸面板都是贴在 LCD 面板上面,因此在程序设计上如果重复图 6-3 与 6-5
的读取步骤就可以顺利得知被 Touch 的点是在屏幕上的哪一位置。
RAiO TECHNOLOGY INC.
29/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
VCC
SW2
ON
To ADC
YU
Resistor-Y
XL
XR
VCC
SW0
OFF
Resistor-X
SW1
OFF
YD
SW3
ON
GND
图 6-5:读取 Y 坐标
VCC
VCC
Y1
Y-axis
V+
Y2
VP
Y3
Y4
P
0
Y
Y1 Y2 Y3 Y4 Y5
Y5
图 6-6:Resistor-Y 的分压
在图 6-5 中,因为开关 SW0 与 SW1 是 OFF,因此 XR 点是 Floating,所以当有外力在面板上的某一点压下
去时,XL 上的电压事实上就是 Y 的 Panel(也就是电阻)上的分压结果,压在面板上的不同一点,就会得到不
同的分压值,如图 6-6 所示。
6.2 触摸面板的应用
图 6-7 是用 RA8802/8820 的触摸式面板应用电路,因为每一种电阻式触摸面板的阻值不同,因此使用者在
开发时应配合触摸式面板规格来调整 VREF 上的电阻值,才能得到最佳的电压范围,让 ADC 得到较高的分
辨率,电路图上的电容可以少噪声。当然软件的判断流程也是重要的一关键。
图 6-9 的流程图是 RA8802/8820 触摸式面板读取的控制方式,与触摸式面板有关的缓存器为 TPCR 与
RAiO TECHNOLOGY INC.
30/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
TPDR,在使用触摸式面板时必须先将触摸式面板功能开启,缓存器 TPCR 的 Bit-7 与 Bit-6 设为 “0”,同时
TPCR 的 Bit[3..0] 设为 “1000”,然后程序可以侦测缓存器 TPCR 的 Bit-4 是否为 “0”,如果缓存器 TPCR 的
Bit-4 为 “0”,则表示触摸式面板目前被 Touch,请参考图 6-8。
RA8802
RA8820
Touch Panel
X1
XL
X2
XR
Y1
YU
Y2
YD
Iref
VREF
30pF
2.3K
20pF
图 6-7:RA8802/8820 的触摸式面板应用电路
VCC
500K
SW2
OFF
YU
ADET
Resistor-Y
XL
XR
VCC
SW0
ON
SW1
OFF
Resistor-X
YD
SW3
ON
GND
图 6-8:RA8802/8820 的触摸式面板的侦测
RAiO TECHNOLOGY INC.
31/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
開始
開啟觸摸偵測
(設定暫存器TPCR:
Bit[7:4]=0000, Bit[3:0]=1000)
觸 摸 發 生?
ADET=0
No
Yes
設定暫存器TPCR:
Bit[3:0] =1100(SW2,3 Æ On)
讀 取 暫 存 器 TPDR
讀取Y座標(Column Data)
設定暫存器TPCR:
Bit[3:0] =0011(SW0,1 Æ On)
Read
讀 取 Row
暫 存Data
器 TPDR
From TPDR
*3
讀取X座標(Row Data)
Yes
繼 續 偵 測?
No
關閉觸控功能
暫存器TPCR Bit[7:4]=1111
結束
图 6-9:触摸式面板读取的控制流程图
RAiO TECHNOLOGY INC.
32/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
REG [C0h] Touch Panel Control Register (TPCR)
Bit
Description
Default
Access
1h
R/W
1h
R/W
1h
R
图 6-2
R/W
Default
Access
0h
R
触控屏幕功能启动
7
0:致能
1:禁能
触控屏幕数据输出
6
0:致能触控屏幕的数据输出
1:禁能触控屏幕的数据输出
触控状态指示位
4
0:触控发生
1:触控未发生
触控屏幕控制位
Bit3 = 0 Æ Switch SW3 OFF, Bit3 = 1 Æ Switch SW3 ON
3-0
Bit2 = 0 Æ Switch SW2 OFF, Bit2 = 1 Æ Switch SW2 ON
Bit1 = 0 Æ Switch SW1 OFF, Bit1 = 1 Æ Switch SW1 ON
Bit0 = 0 Æ Switch SW0 OFF, Bit0 = 1 Æ Switch SW0 ON
REG [C8h] Touch Panel Data Register (TPDR)
Bit
7-0
Description
储存触控屏幕的行、列相对位置数据
下面的程序例题是说明如何判断触摸式面板被 “Touch” 及如何读取 ADC 的 Data 值。
例 题:
LDA #00101000b
Write_REG[C0h]
Read_REG[C0h]
:
:
LDA #00101100b
Write_REG[C0h]
Read_REG[C8h]
:
:
LDA #00100011b
Write_REG[C0h]
Read_REG[C8h]
:
:
RAiO TECHNOLOGY INC.
; Touch Panel 功能开启
; 侦测 Touch Panel 是否被 “Touch”
; 切换模拟开关,准备读取垂直数据
; 读取垂直相对位置(Get Column Data)
; 切换模拟开关,准备读取水平数据
; 读取水平相对位置(Get Row Data)
33/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
7. 系统时序(Clock)的选择
RA8802/8820 内部的系统时序(System Clock)可以由下面两种方式产生:
1. 由一外部的 32768Hz 石英晶体(X’tal)配合内部的一锁相回路(PLL)所产生
2. 由一外部的电阻配合内部的 RC-振荡器产生
至于使用那一种方式则是使用者依据功能、需求与成本来考虑,当然使用一外部电阻的 RC-振荡器方式是较
便宜的选择。使用者可以透过 SYS_FQ 这根脚位去选择 RA8802/8820 的系统时序产生是 X’tal 与 PLL 或者
是 RC-振荡器的方式,如果 SYS_FQ 外接一 Pull Low 电阻,则 RA8802/8820 系统时序产生将是 RC-振荡器
的方式,否则 RA8802/8820 的系统时序产生将是 X’tal 与 PLL。
图 7-1 是 RA8802/8820 的系统时序产生方式与接线图,需要注意的是如果选择 RC-振荡器的方式,则 XA,
XB, LPF 这三根脚位必须浮接,如果选择 X’tal 与 PLL 振荡器的方式,则 RA, RB 这两根脚位必须浮接。
(1)使用X’tal 與PLL振盪器的方式
(2) 使用RC-振盪器的方式
RA8802
0.22u
32768Hz
0.022u
2.7K
20p
RA8802
LPF
RA
XA
Rf
20p
RB
XB
LPF
XA
XB
RA
RB
註解:震盪頻率可以由外部電阻( Rf)來做調整。由電器特性可知兩者之關係,當電阻值
Rf 增加或者供應電源的電壓減低,則震盪頻率會下降。
图 7-1:RA8802/8820 的系统时序产生方式与接线图
由于 RC-振荡器方式会随外部电压不同而有所飘移,因此如果选择 RC-振荡器的方式,则不同的外部电阻 Rf
及 VDD 将产生不同的系统时序,请参考图 7-2。
RAiO TECHNOLOGY INC.
34/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
System clock (MHz)
10.00
8.00
6.00
Rf=4.7K
Rf=3.9K
4.00
Rf=2.2K
2.00
0.00
1.92
2.1
2.4
2.7
3.0
3.3
3.6
3.9
4.2
4.5
4.8
5.1
VDD (Voltage)
图 7-2:Resister (Rf)与系统频率(System Clock)对应曲线图
如果是使用外部 X’tal(32.678KHz)与锁相回路(PLL)所产生的系统频率(System Clock),则不同电压(VDD)对
系统频率所产生的影响将非常小,RA8802/8820 的锁相回路(PLL)所产生的系统频率(System Clock)约为
8MHz 左右,如表 7-1 所示。
表 7-1:X’tal(32.678KHz)与系统频率(System Clock)
VDD
PLL 所产生的系统频率
2.4V 2.7V 3.0V 3.3V 3.6V 3.9V 4.2V 4.5V 4.8V 5.1V
8.02
8.02
8.02
8.03
8.02
8.02
8.02
8.03
8.04
8.03
(MHz)
RAiO TECHNOLOGY INC.
35/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
8. 硬件的启始设定
8.1 重置(Reset)与系统设定
RA8802/8820 的 Driver Data Pin “LD[7..0]” 可以在系统开机(Power-On)或进行硬件重置(Hardware Reset)时
做启始化的设定,如第一章提到的 SYS_MI(也就是 LD7)这根脚位,可以由内部 Pull High 或外部 Pull Low
电阻去选择 RA8802/8820 的 MCU 接口是 8080 或者是 6800,表 8-1 将这些硬件的启始设定列出供使用者
参考。
表 8-1:硬件的启始设定
Bit
脚位名称
简
述
7
LD7/SYS_MI
MCU Type Select
“1” mean
(Pull High)
“0” mean
(Pull Low)
M6800
8080
SYS_MI 是用来做 MCU 形式之选择。
如果 SYS_MI 外接一 Pull Low 电阻,则 RA8802/8820 的 MCU 接口将定义成 8080。否则
RA8802/8820 的 MCU 接口将定义成 6800。
6
LD6/SYS_DB
MCU Data Bus Select
8-bit
4-bit
SYS_DB 是选择 MCU 的数据总线为 4 位或 8 位。
如果 SYS_DB 外接一 Pull Low 电阻,则 RA8802/8820 的 MCU Data Bus 接口将定义成 4Bit。否则 RA8802/8820 的 MCU Data Bus 界面将定为 8-Bit。
5
LD5/SYS_FQ
Clock Select
PLL_CLK
RC OSC_CLK
SYS_FQ 是选择产生系统频率为 PLL 或是 RC 电路。
如果 SYS_FQ 外接一 Pull Low 电阻,则 RA8802/8820 系统时序产生将是 RC-振荡器的方
式。否则 RA8802/8820 的系统时序产生将是 X’tal 与 PLL。
3
LD3/SYS_LD
LCD Data Bus
8-bit
4-bit
如果 SYS_LD 外接一 Pull Low 电阻,则 RA8802/8820 的 LCD Driver Data Bus 接口将定义
成 4-Bit。否则 RA8802/8820 的 LCD Driver Data Bus 界面将定为 8-Bit。
2
LD2/SYS_PLR
RS Polarity Select
(1)
(2)
(1) 如果 SYS_PLR 外接一 Pull Low 电阻,则 “RS” =1 表示是缓存器 Access Cycle,“RS”
=0 表示是 Data Access Cycle。
(2) 否则 “RS” =0 表示是缓存器 Access Cycle,“RS” =1 表示是 Data Access Cycle。
1
LD1/OPM1
0
LD0/OPM0
Operation Mode
Set € “1”
OPM0 与 OPM1 是用来选择 RA8802/8820 的测试模式,一般使用者直接将 OPM0 与
OPM1 视为 NC Pin 既可。
RAiO TECHNOLOGY INC.
36/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
RST# 动作时会将 LD[7:0]设成输入,并且将 LD[7:0]内部的 Pull-Hi 电阻 Enable,读取 LD[7:0] 输入值作为系
统设定,如果 LD[7:0] 相对应的 Pin 没有外接 Pull-Low 电阻,则将被视为 Pull-Hi。如果 LD[7:0] 相对应的
Pin 外接 Pull-Low 电阻则将被视为 Pull-Low 设定,Pull-Low 的电阻为 1Kohm~2.2Kohm。
VDD
RA8802/8820
LD7/SYS_MI
LD6/SYS_DB
LD2/SYS_PLR
R=10K or N/C
R=1K~2.2Kohm
LD5/SYS_FQ
LD3/SYS_LD
图 8-1:硬件的设定范例
图 8-1 是一硬件设定范例,表示 RA8802/8820 选择 6800 series MCU 界面,MCU Data Bus 接口将定义成
8-Bit,系统时序的产生将是 RC-振荡,LCD Driver Data Bus 接口定义成 4-Bit,“RS” = 0 表示是缓存器
Access Cycle,“RS” =1 表示是 Data Access Cycle,请参考表 8-1。
图 8-1 中的 Pull-High 电阻可以不用接,因为 RST# 动作时会将 RA8802/8820 内部的 Pull-Hi 电阻 Enable。
RA8802/8820
VDD
RA8802/8820
100KΩ
From MCU
RST#
RST#
2.2uF
0.1uF
(1)
(2)
图 8-2:重置脚位 RST# 的接法范例
图 8-2 是一 Reset Pin – RST# 的应用范例,它可以由 MCU 来控制如图 8-2 的(1),或是由一 RC 电路来产
RAiO TECHNOLOGY INC.
37/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
生,如图 8-2 的(2)。RA8802/8820 没有完成 Reset 的动作是无法接受 MCU 的任何指令,甚至会造成起振不
正确或系统设定错误。
REG [00h] LCD Controller Register (LCR)
Bit
Description
软件重置
Text/Graph Default Access
所有缓存器回到初始值,但是 RAM 的内容不会被清除。
5
--
1:重置所有缓存器
0h
R/W
0:无作用
RA8802/8820 也可以由缓存器[00h]的 Bit5 来进行软件重置,缓存器[00h]的 Bit5 由 MCU 写入”1”后
RA8802/8820 会被重置,之后缓存器[00h]的 Bit5 会自动回复到”0”。
8.2 电源开启或重置(Power On/Reset)的程序
图 8-2A 为一般 RA8802/8820 重置(Reset)的时序,以 RA8803 使用 320x240 pixel 的 LCD Panel 例,tRST 必
须大于 250ms,tRSTH 必须大于 50ms,足够的重置时间才能确定 RA8802/8820 Reset 完成。
tRST
RST#
Internal
State
During Reset
Reset Complete
tRSTH
图 8-2A:重置脚位 RST# 的时序
下图 8-3 为一般 RA8802/8820 电源开启或重置(Power On/Reset)的程序说明,此范例也是以 RA8802 使用
320x240 pixel 的 LCD Panel 例子,说明设定方式的流程。
RAiO TECHNOLOGY INC.
38/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
Power On
Hardware Reset
( RST# Active 250ms)
Delay 50ms
Setup Display/Active Window
REG[20,28]=#27h
REG[30,38]=#EFh
REG[40,48]=#00h
REG[50,58]=#00h
Clear Screen
REG[E0]=#00h
REG[F0]:bit3=1
Delay 2ms
Setup Active Mode
and
Cursor Position
Setup Registers
or
use Default Value
Write GB/BIG5 Code
or Bit-Map
:
图 8-3:一般 RA8802/8820 电源开启或重置的流程图
RAiO TECHNOLOGY INC.
39/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
8.3 缓存器的起始设定
RA8802/8820 的缓存器在系统电源开启或重置(Power On/Reset)时大都会产生 Default 的值,但是随系
统应用不同等因素,若干缓存器最好在电源开启或重置后进行设定,表 8-2 提供基本的缓存器设定范
例。
表 8-2:基本的缓存器设定范例
lda
jsr
lda
jsr
#11000101b
Write_R00
#02h
Write_R01
; 设定显示工作模式
lda
jsr
lda
jsr
lda
#01101001b
Write_R10
#22h
Write_R18
#39
; 游标相关信息
jsr
lda
jsr
lda
jsr
lda
jsr
lda
jsr
lda
jsr
lda
jsr
lda
jsr
lda
jsr
lda
jsr
lda
jsr
lda
jsr
Write_R20
#239
Write_R30
#0
Write_R40
#0
Write_R50
#39
Write_R28
#239
Write_R38
#0
Write_R48
#0
Write_R58
#0
Write_R60
#0
Write_R70
#33h
Write_R80
#0Ah
Write_R90
lda #C0h
jsr Write_RD0
; 设定 System Clock, 此例为 4MHz
; 设定光标高度与行距
; 设定工作窗口(Active window)右边位置 Æ Segment-Right
; 此例为 320x240, 工作窗口与显示窗口设成一样
; 设定工作窗口(Active window) 底边位置 Æ Common-Bottom
; 设定工作窗口(Active window)左边位置 Æ Segment-Left
; 设定工作窗口(Active window) 顶边位置 Æ Common-Top
; 设定显示窗口(Display Window)右边位置 Æ Segment-Right
; 设定显示窗口(Display Window) 底边位置 Æ Common-Bottom
; 设定显示窗口(Display Window) 左边位置 Æ Segment-Left
; 设定显示窗口(Display Window) 顶边位置 Æ Common-Top
; 设定光标 Segment 地址
; 设定光标 Common 地址
; 光标闪烁时间设定
; 设定 XCK 讯号周期
; LCD 亮度控制(DAC 功能) , 没用到可不设定
rts
注: Write_Rxx 是一写入 Data 到缓存器 xx 的子程序。
RAiO TECHNOLOGY INC.
40/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
8.4 Wakeup 的程序
RA8802/8820 进入睡眠模式(Sleep Mode)后,当使用者需要唤醒(Wakeup)RA8802/8820,可对 CS1#脚位
连续 Low Æ High 两次,或是对 CS2 脚位连续 HighÆ Low 两次,便可以 Wakeup RA8802/8820。
RAiO TECHNOLOGY INC.
41/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
9. RA8802/8820 功能应用介绍
9.1 文字模式设定
9.1.1 文字显示
RA8802/8820 的文字模式可以支持全角(中文或英文)及半角(英文)的显示,全角文字是以 16x16 的点矩阵
组成,半角文字是 8x16 的点矩阵组成,如图 9-1 所示,而图 9-2 是全角(中文)及半角(英文)文字的混和显
示:
中文16x16
英文 8x16
图 9-1:全角与半角文字
图 9-2:全角与半角文字的混和显示
RA8802/8820 的中文显示方式与传统的 LCD Controller 不同,传统的 LCD Controller 是在绘图模式下,
以 Bit-Map 的方式去绘出中文,RA8802/8820 的中文显示方式则是在文字模式,直接输入中文字码(GB
或 BIG5 码) ,就可以在光标所在位置显示中文。因为中文字码占两个 Byte,所以如果 MCU 接口是 8Bit,则 MCU 必须分两次将中文字码的 High Byte & Low Byte)写入 RA8802/8820,而英文或数字码只占
一个 Byte,因此只要将内码一次写入 RA8802/8820 既可。RA8802 支持之最大显示像素范围为 320x240
RAiO TECHNOLOGY INC.
42/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
点,若以显示文字为例,全角字型(16x16)即是 20 行 x15 列,半角字型(8x16)则可以显示到 40 行
x15 列。RA8820 支持之最大显示像素范围为 240x160 点,若以显示文字为例,全角字型即是 15 行 x10
列,半角字型则可以显示到 30 行 x10 列。表 9-1 为图 9-2 所示之全角(中文)与半角文字的字型码,下面例
题程序就是说明如何显示图 9-2 的画面。
表 9-1:文字码的对照表(BIG5)
显示字型
字型码
显示字型
字型码
显示字型
字型码
瑞
B7E7
E
45
o
6F
佑
A6F6
C
43
c
63
科
ACEC
H
48
m
6D
技
A7DE
N
4E
t
74
股
AAD1
L
4C
电
20B7
份
A5F7
G
47
话
71B8
有
A6B3
Y
59
8
38
限
ADAD
.
2E
6
36
公
A4BD
网
BAF4
3
33
司
A571
页
ADB6
5
35
R
52
:
3A
7
37
A
41
w
77
传
20B6
I
49
r
72
真
C7AF
O
4F
a
61
T
45
i
69
例 题:
; 写入 “瑞” 的字型码 High Byte
LDA
#B7h
STA
DATA_ADDR
LDA
#E7h
; 写入 “瑞” 的字型码 Low Byte
STA
DATA_ADDR
; 在光标所在位置会显示 “瑞”
LDA
#A6h
; 写入 “佑” 的字型码
STA
LDA
STA
DATA_ADDR
#F6h
DATA_ADDR
LDA
#ACh
STA
DATA_ADDR
RAiO TECHNOLOGY INC.
; 写入“科” 的字型码
43/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
LDA
STA
#ECh
DATA_ADDR
LDA
#A7h
STA
LDA
STA
DATA_ADDR
#DEh
DATA_ADDR
LDA
#AAh
STA
LDA
STA
DATA_ADDR
#D1h
DATA_ADDR
LDA
#A5h
STA
LDA
STA
; 写入“技” 的字型码
; 写入“股” 的字型码
; 写入“份” 的字型码
DATA_ADDR
#F7h
DATA_ADDR
:
:
:
; 其它依序写入文字内码
9.1.2 粗体字之显示功能
RA8802/8820 的中英文显示都可以秀出粗体字的显示效果,图 9-3 说明欲表现粗体字的显示效果时,缓
存器应如何设定:
1. 設定暫存器 [10h]
bit4=1
2. 寫入中文字型的
Big5或 GB 碼
图 9-3:粗体字的显示
RAiO TECHNOLOGY INC.
44/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
REG [10h] Cursor Control Register (CCR)
Bit
Description
Text/Graph
Default Access
设定粗体字型(仅文字模式适用)
0:正常字型
4
Text
1h
R/W
1:粗体字型
例 题:
Read_REG[10h]
; 粗体字型显示
SMB4
; 设定缓存器[10h] bit4=1
Write_REG[10h]
; 将数据存入缓存器[10h]
9.2 绘图模式设定
RA8802/8820 的绘图模式是以字符映像(bit map)方式填入图形数据在 Display RAM 上,图 9-4 说明进入绘
图模式时,缓存器要如何设定:
1. 設定 REG [00h]
bit3=0
2. 使用字元映射(bit
map)方式填入圖形資
料
图 9-4:绘图模式的显示
REG [00h] LCD Controller Register (LCR)
Bit
Description
Text/Graph Default Access
选择显示工作模式
3
1:文字模式,写入的数据会被视为是 GB/BIG/ASCII 等字码。
--
1h
R/W
0:绘图模式,写入的数据会被视为是 Bit-Map 的模式。
例 题:
Read_REG[00h]
; 图形模式的设定
RMB3
; 设定缓存器[00h] bit3=0
Write_REG[00h]
; 存入数据到缓存器[00h]
RAiO TECHNOLOGY INC.
45/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
RA8802 支持之最大显示像素范围为 320 点 x240 点,因此需要约 9.6K Byte 的 Display Data RAM
(DDRAM)来储存欲显示的每个像素点,而 RA8820 支持之最大显示像素范围为 240 点 x 160 点,因此需要
约 4.8K Byte 的 Display Data RAM 来储存欲显示的每个像素点,在 DDRAM 里,只有在显示范围内的对应
数据会被显示于 LCD 面板上,不在显示范围内的则会被忽略掉。当 RA8802/8820 在显示图形的时候,是以
字符映像(Bit Map)的方式写入 DDRAM,若 DDRAM 的某个位置被填满为 ‘1’ 时,相对于 LCD 面板的位置会
被显示出亮点,由图 9-5 可看出,在 DDRAM 上所储存之像素数据,会对应到显示屏幕(LCD)上,而构成文
字、符号或图形之显示效果。
Segment
D7 D6 D5 D4 D3 D2 D1 D0 1
1
1 0 0 1
1
0
1
2
3
4
5
6
7
…..
0
Display Data RAM
Display On LCD
图 9-5:Display Data 到 LCD 显示的映像
以下程序就是以图 9-5 做例子,用绘图模式在 LCD Panel 的左上角秀出 Pattern:
例 题:
LDA
#00h
; 将目前光标的行与列地址写入 “00”
Write_REG[60h]
Write_REG[70h]
LDA
#E6h
STA
DATA_ADDR
RAiO TECHNOLOGY INC.
; 在 LCD Panel 的左上角秀出 “E6” 的图形 Pattern
46/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
320
D7 D6 D5 D4
D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0
D7 D6 D5 D4 D3 D2 D1 D0 Æ (40Bytes)
00
01
02
03
:
:
:
:
240
:
:
;
:
236
237
238
239
Display Data RAM
图 9-6:Display Data RAM 的格式(320 x 240)
在绘图模式下,若要读取 Display RAM 的数据时,如果光标的设定有自动加一的功能,数据读取方向如图
9-7 所示(以 320x240 显示器为例)。
0 1 2 3 …………….……………………….39(Byte)
00
01
02
:
:
:
239
320 x 240Pixel
图 9-7:图形模式时数据读取方向
RAiO TECHNOLOGY INC.
47/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
9.3 闪烁与反白显示
9.3.1 闪烁显示
图 9-8 说明要闪烁显示时,缓存器要如何设定:
1. 設定 REG [00h]
bit1=0
2. 設定 REG [00h]
bit1=1
图 9-8:屏幕闪烁
REG [00h] LCD Controller Register (LCR)
Bit
Description
Text/Graph Default Access
闪烁模式选择
1
0:正常显示
Text/Graph
0h
R/W
1:整个屏幕闪烁,闪烁时间由缓存器[80h]BTR 来设定
RAiO TECHNOLOGY INC.
48/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
例 题:
READ_REG[00h]
SMB1
; 设定缓存器[00h] bit1=1 Æ 屏幕闪烁
Write_REG[00h]
; 存入数据到缓存器[00h]
9.3.2 屏幕反白
如果要将 LCD 画面全部反白只要设定缓存器[00]的 Bit0 既可,图 9-9 说明要反白显示时,缓存器要如何
设定:
图 9-9:屏幕反白
REG [00h] LCD Controller Register (LCR)
Bit
Description
Text/Graph Default Access
屏幕反白模式选择
0
1:正常显示
Text/Graph
1h
R/W
0:全屏幕反白显示,DDRAM 内的数据会被全部反相。
例 题:
Read_REG[00h]
RMB0
RAiO TECHNOLOGY INC.
; 设定缓存器[00h] bit0=0 Æ 屏幕反白
49/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
9.3.3 文字反白
如果要将 LCD 画面秀出反白的字体只要设定缓存器[10]的 Bit5 既可,图 9-10 说明要反白显示时,缓存器
要如何设定:
(a)
(b)
(c)
(d)
图 9-10:反白显示
(a)
1. 设定缓存器[10h] bit5=0
2. 写入"瑞佑科技股份有限公司"的 BIG5 码,然后可显示出"瑞佑科技股份有限公司"
(b)
3. Hold on (a)
4. 设定缓存器[10h] bit5=1
5. 写 入 "RAIO TECHNOLOGY INC." 的 BIG5 码 , LCD 就 可 显 示 出 " RAIO
TECHNOLOGY INC."
(c)
6. Hold on (a), (b)
7. 设定缓存器[10h] bit5=0
8. 写入"网页"然后可显示出"网页"字样
(d)
9. Hold on (a), (b) and (c)
10. 设定缓存器[10h] bit5=1
RAiO TECHNOLOGY INC.
50/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
11. 写入": www.raio.com.tw"的 BIG5 码,LCD 就可显示出 ": www.raio.com.tw"
REG [10h] Cursor Control Register (CCR)
Bit
Description
Text/Graph
Default Access
储存当前数据(正相/反相)于 DDRAM
5
1:直接储存数据于 DDRAM 中
Text
1h
R/W
0:存入相反的数据于 DDRAM 中
例 题:
Read_REG[10h]
; 设定缓存器[10h] bit5=0 Æ 区块反白
RMB5
Write_REG[10h]
STA DATA_ADDR
:
:
Read_REG[10h]
; 设定缓存器[10h] bit5=1, 恢复原来的正常显示
SMB5
Write_REG[10h]
STA DATA_ADDR
9.4 中/英文文字对齐
由于英文字体与中文字体所占的宽度不一样,因此在显示中文英文都有的画面时必须考虑整体显示效果,
RA8802/8820 可以设定中文英文显示时不同行的显示效果以决定文字是否对齐,图 9-11 说明要表现出中英
文文字 “对齐” 之情形时,缓存器要如何设定:
1. Set REG [10h] bit6=1
2. Write in the Big5 code of “瑞佑科技
股份有限公司RAIO中文LCD控制器”
then it will show up “瑞佑科技股份有限
公司RAIO中文LCD控制器”
图 9-11:文字对齐的显示范例
RAiO TECHNOLOGY INC.
51/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
REG [10h] Cursor Control Register (CCR)
Bit
Description
Text/Graph
Default Access
中/英文字对齐
1:致能
6
Text
0:禁能
1h
R/W
此功能仅在文字模式时有效,可以将全角与半角混合显示时作对
齐调整。
例 题:
Read_REG[10h]
; 设定缓存器[10h] bit6=1Æ 中/英文字对齐
SMB6
Write_REG[10h]
图 9-12 说明要表现出中英文文字 “不对齐” 之情形时,缓存器要如何设定:
1. Set REG [10h] bit6=0
2. Write in the Big5 code of “瑞佑科技
股份有限公司RAIO中文LCD控制器”
then it will show up “瑞佑科技股份有限
公司RAIO中文LCD控制器”
图 9-12:文字不对齐的显示范例
例 题:
Read_REG[10h]
RMB6
; 设定缓存器[10h] bit6=0 Æ 中/英文字不对齐
Write_REG[10h]
RAiO TECHNOLOGY INC.
52/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
9.5 LCD 屏幕显示 On/Off 设定
REG [00h] LCD Controller Register (LCR)
Bit
Description
Text/Graph
Default Access
设定屏幕显示为开启或关闭,此位用来控制连接到 LCD 驱动 IC
接口的 “DISP_OFF” 信号
2
1: “DISP_OFF” 信号输出 High(屏幕显示开启)
Text/Graph
0h
R/W
0: “DISP_OFF” 信号输出 Low(屏幕显示关闭)
例 题:
Read_REG[00h]
; 设定缓存器[10h] bit2=0 Æ 屏幕显示 Off
RMB2
Write_REG[00h]
9.6 光标 On/Off 设定
REG [10h] Cursor Control Register (CCR)
Bit
Description
Text/Graph Default Access
光标显示 On/Off 设定
2
1:设定光标显示 On
Text/Graph
0h
R/W
0:设定光标显示 Off
例 题:
Read_REG[10h]
SMB2
; 设定缓存器[10h] bit2=0 Æ 游标 On
Write_REG[10h]
9.7 光标位置与移位设定
9.7.1 光标位置
缓 存 器 [60h]CPXR 的 Bit[5..0] 用 来 设 定 光 标 的 Segment 地 址 , RA8802/8820 可 以 分 别 支 持 320
(Segment) x 240 (Common) 或 240x160 的 Panel Size,但是光标的 Segment 地址是以每 8-Bit 为单位,
例如想在 Panel 的左上角秀出 “瑞” ,则必须设定光标缓存器 CPXR = 00h,CPYR = 00h,又例如想在
Panel 的左上角第三个全角位置秀出 “佑” ,则必须设定光标缓存器 CPXR = 04h,CPYR = 00h,同理,
想在 Panel 的左上角第二行第一个全角位置秀出 “科” ,则必须设定光标缓存器 CPXR = 00h,CPYR =
RAiO TECHNOLOGY INC.
53/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
10h,请参考图 9-13 及如下面的例题。
00
01
02
03
04
05
.
06 …………………………………..
.
.. 39
00
:
:
:
:
10
:
:
:
:
20
:
:
:
:
:
:
:
:
:
:
:
320(Segment) x 240(Common)
EF
图 9-13:光标位置设定的显示范例
REG [60h] Cursor Position X Register (CPXR)
Bit
Description
Default
Access
7-6
Reserved
0h
R
5-0
设定光标 Segment 地址
0h
R/W
Default
Access
0h
R/W
REG [70h] Cursor Position Y Register (CPYR)
Bit
Description
7-0
设定光标 Common 地址
例 题:
LDA
#00h
; 设定光标的 Segment 地址
Write_REG[60h]
LDA
#10h
; 设定光标的 Common 地址
Write_REG[70h]
LDA
#ACh
STA
DATA_ADDR
LDA
#ECh
RAiO TECHNOLOGY INC.
; 写入 “科” 的字型码 High Byte
; 写入 “科” 的字型码 Low Byte
54/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
STA
DATA_ADDR
; 在光标所在位置 Æ Panel 的左上角第二行第一个全角位
; 置会显示 “科”
不论文字或是绘图模式,都是使用缓存器[60h]CPXR 与[70h]CPYR 来设定光标的地址,如下图 9-14 所
示,在绘图模式下设定光标缓存器 CPXR = 00h,CPYR = 10h,则由 DDRAM 读到的的数值会是
“00h”,如果缓存器 CPXR = 00h,CPYR = 12h,DDRAM 读到的数值会是 “78h”,又如缓存器 CPXR =
00h,CPYR = 14h,DDRAM 读到的数值会是 “0Ah”。请参考图 9-15。
00
01
02
03
04
……………………………
………..
.. 39
00
:
:
:
:
10
:
:
:
:
20
:
:
:
:
:
:
:
:
::
320(Segment) x 240(Common)
EF
图 9-14:光标位置设定与 DDRAM 的读取范例
00h
Bit
Bit
7654321076543210
78h
0Ah
图 9-15:将图 9-14 的 “科”字放大
RAiO TECHNOLOGY INC.
55/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
9.7.2 游标移位
REG [10h] Cursor Control Register (CCR)
Bit
Description
Text/Graph Default Access
光标自动移位设定,此 Bit 用来设定当数据读出 DDRAM 时,光
标是否自动移位。
7
1:致能
Text/Graph
1h
R/W
Text/Graph
0h
R/W
0:禁能
光标自动移位设定,此 Bit 用来设定当数据写入 DDRAM 时,光标
是否自动移位,如果此位被 Enable,则不论在文字或是绘图模
3
式,光标都会自动移位。
1:致能
0:禁能
例 题:
Read_REG[10h]
SMB3
; 设定缓存器[10h] bit3=1 Æ 数据写入 DDRAM 时光标自 动移位
RMB7
; 设定缓存器[10h] bit7=0 Æ 数据读出 DDRAM 时光标不自动移位
Write_REG[10h]
9.8 光标闪烁设定
REG [10h] Cursor Control Register (CCR)
Bit
Description
Text/Graph Default Access
光标闪烁设定
1
1:光标闪烁,闪烁时间由缓存器[80h] BTR 决定。
Text/Graph
0h
R/W
0:游标不闪烁
例 题:
Read_REG[10h]
RMB1
; 设定缓存器[10h] bit1=0 Æ 游标不闪烁
Write_REG[10h]
RAiO TECHNOLOGY INC.
56/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
9.8.1 光标闪烁时间设定
REG [80h] Blink Time Register (BTR)
Bit
Description
Text/Graph
Default
Access
Text/Graph
23h
R/W
光标/屏幕闪烁时间设定
7-0
闪烁时间 = Bit[7..0] x (1/Frame_Rate)
如果 Frame Rate = 60Hz,则 1/Frame_Rate = 1/60Hz = 1.67ms,光标闪烁时间 = REG[80h] x
1.67ms,下面的例题中设定 REG[80h] = 35h = 53(十进制),因此光标闪烁时间 = 53 x 16.7ms =
885ms。
例 题:
LDA
#35h
Write_REG[80h]
; 设定光标闪烁时间 = 885ms
Read_REG[10h]
; 设定缓存器[10h] bit1=1 Æ 游标闪烁
SMB1
Write_REG[10h]
9.9 光标高度与宽度设定
9.9.1 游标高度
RA8802/8820 在做文字显示时,有提供光标高度的设定,在正常显示文字时,光标的高度为一个 Pixel 的
高度,但依不同使用者的需要,提供了 Pixel 的高度的设定,Pixel 的高度设定范围为(1~16)Pixel,使用者
可依需求来决定光标的高度大小。
1 Pixel
2 Pixel
3 Pixel
16 Pixel
图 9-16:光标高度之设定
RAiO TECHNOLOGY INC.
57/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
REG [18h] Cursor Size Control Register (CSCR)
Bit
7-4
Description
Text/Graph
Default
Access
Text
0010h
R/W
设定光标高度(默认值是 2)
例 题:
LDA
;设定 REG[18h]的 MSB=0010b,游标高度为 2 个 pixel
#00100010b
Write_REG[18h]
9.9.2 游标宽度
RA8802/8820 在做文字显示时,有提供两种光标宽度的设定。第一种为 REG[10h] bit0=0 时,光标的宽
度将会固定为 1 个 Byte 的宽度(也就是 8 个 Pixel)。第二种为 REG[10h] bit0=1 时,光标的宽度会随着所
输入文字来做变化,例如当输入一个全角字时,文字后面的光标宽度会自动变为 2 个 Byte(也就是 16 个
Pixel)。当输入一个半角字时,文字后面的光标宽度会自动变为 1 个 Byte。
REG [10h] Cursor Control Register (CCR)
Bit
Description
Text/Graph Default Access
设定光标宽度
1:会随着输入的数据而变动光标宽度,当数据为半型时,光标为
0
一个字节宽度(8 个 Pixel),当数据为全型时,光标为二个字节
Text
0h
R/W
宽度(16 个 Pixel)。
0:光标固定为一个字节的宽度(8 个 Pixel)
例 题 1:
Read_REG[10h]
; 光标宽度固定设为一个 Byte(8 个 Pixel)
RMB0
; 设定缓存器[10h] bit0=0,
Write_REG[10h]
例 题 2:
Read_REG[10h]
; 光标宽度可透过输入的数据来自动调整宽度
SMB0
; 设定缓存器[10h] bit0=1
Write_REG[10h]
RAiO TECHNOLOGY INC.
58/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
9.10 工作及显示窗口大小设定
RA8802/8820 应用在面板的显示上,供使用者有两种窗口选择。一个是显示窗口(Display Window),一个是
工 作 窗 口 (Active Window) 。 显 示 窗 口 (Display Window) 是 实 际 LCD 面 板 的 大 小 , 而 工 作 窗 口 (Active
Window)是在实际的显示窗口(Display Window)内设定比显示窗口小的子窗口。
例如面板大小为 320x240,而它的显示窗口就为 320x240。在显示窗口(320x240)内可依使用者需要,来设
定工作窗口的大小,也就是子窗口的大小,子窗口也可在显示窗口内任意调整所要放置的地方。以下是相关
的缓存器说明:
REG [28h] Display Window Right Register (DWRR)
Bit
7-6
Description
保留
Default
Access
0h
R/W
0h
R/W
Default
Access
xxh
R/W
Default
Access
0h
R/W
设定显示窗口(Display Window)右边位置 Æ Segment-Right (注 1)
Segment_ Right = (Segment Number / 8) – 1
RA8802: 如果 LCD Panel 为 320x240,则此缓存器的值为:
5-0
( 320 / 8 ) – 1 = 39 = 27h
RA8820: 如果 LCD Panel 为 240x160,则此缓存器的值为:
( 240 / 8 ) – 1 = 29 = 1Dh
REG [38] Display Window Bottom Register (DWBR)
Bit
Description
设定显示窗口(Display Window) 底边位置 Æ Common-Bottom (注 1)
Common_ Bottom = LCD Common Number –1
RA8802: 如果 LCD Panel 为 320x240,则此缓存器的值为:
7-0
240 – 1 = 239 = EFh
RA8820: 如果 LCD Panel 为 240x160,则此缓存器的值为:
160 – 1 = 159 = 9Fh
REG [48] Display Window Left Register (DWLR)
Bit
Description
设定显示窗口(Display Window) 左边位置 Æ Segment-Left (注 1)
7-0
通常将此缓存器的值设定为 “00h”.
RAiO TECHNOLOGY INC.
59/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
REG [58] Display Window Top Register (DWTR)
Bit
7-0
Description
设定显示窗口(Display Window) 顶边位置 Æ Common-Top (注 1)
Default
Access
0h
R/W
通常将此缓存器的值设定为 “00h”.
注 1:光标地址应设定在显示窗口的范围内,因此缓存器[60h, 70h]、[B0h, B8h]与[28h, 38h, 48h, 58h]的设
定必须遵照以下的规范:
1. AWRR≧CPXR≧AWBR, AWRR≧INTX≧AWBR
2. AWLR≧CPYR≧AWTR, AWLR≧INTY≧AWTR
REG [20h] Active Window Right Register (AWRR)
Bit
Description
Default
Access
7-6
保留
0h
R
5-0
设定工作窗口(Active window)右边位置 Æ Segment-Right (注 2)
xxh
R/W
Default
Access
xxh
R/W
Default
Access
REG [30h] Active Window Bottom Register (AWBR)
Bit
7-0
Description
设定工作窗口(Active window) 底边位置Æ Common-Bottom (注 2)
REG [40h] Active Window Left Register (AWLR)
Bit
Description
7-6
保留
0h
R
5-0
设定工作窗口(Active window)左边位置 Æ Segment-Left (注 2)
0h
R/W
Default
Access
0h
R/W
REG [50h] Active Window Top Register (AWTR)
Bit
7-0
Description
设定工作窗口(Active window) 顶边位置 Æ Common-Top (注 2)
注 2:REG [20h, 30h, 40h, 50h] 可作为换行/换页的功能,可让使用者利用这 4 个 Register 自行设定一个区
块为工作窗口(Active Window)。当数据超过窗口的右边界 REG [20h, 30h, 40h, 50h]所设定的值,光
标会自动换行(也就是光标移到工作窗口的左边界 REG[40h]所设定的值),继续将数据写入。当数据写
入到工作窗口的右下角时(REG[20h]与[30h]所设定的值),会自动把光标移到工作窗口的的左上角
(REG[40h, 50h]所设定的值),继续的将数据填入窗口。
RAiO TECHNOLOGY INC.
60/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
REG [08h] Misc. Register (MIR)
Description
Bit
Default
Access
0h
R/W
切换窗口模式
5
1:工作窗口 (Active window)
0:显示窗口 (Display window)
下面的例题 1 是以 RA8802 为例,设定 LCD Panel 的显示窗口为 320x240,工作窗口为 160x160 且位于显
示窗口的左上角,如图 9-17 所示。
320
0 1 2 ………………………….159 160 ……….…………………319
0
1
2
:
:
:
:
:
:
:
159
160
:
:
:
239
Active Window
160 x 160
240
Display Window
320 x 240
图 9-17:例题 1 的显示窗口与工作窗口
例 题 1:
LDA
#27h
; 设定 Display Window is 320x240 pixel
Write_REG[28h]
; 设定 DWRR = (320/8) –1 = 39 = 27h
LDA
; 设定 DWBR = 240 –1 = 239 = EFh
#EFh
Write_REG[38h]
LDA
#00h
Write_REG[48h]
; 设定 DWLR, DWTR = 00h
Write_REG[58h]
LDA
RAiO TECHNOLOGY INC.
#13h
; 设定 Active Window is 160x160 pixel
61/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
; 设定 AWRR = (160)/8 –1 = 19 = 13h
Write_REG[20h]
LDA
#9Fh
; 设定 AWBR = 160 –1 = 159 = 9Fh
Write_REG[30h]
LDA
#00h
Write_REG[40h]
; Setup the AWLR, AWTR = 00h
Write_REG[50h]
下面的例题 2 则是设定 LCD Panel 的显示窗口为 320x240,工作窗口为 160x160 位于显示窗口的中上角,
如图 9-18 所示。
320
0 1 2 …………79 80……………………………...239 240.………319
0
1
2
:
:
:
:
:
:
:
159
160
:
:
:
239
Active Window
160 x 160
80
80
240
Display Window
320 x 240
80
图 9-18:例题 2 的显示窗口与工作窗口
例 题 2:
LDA
#27h
; 设定 Display Window is 320x240 pixel
Write_REG[28h]
; 设定 DWRR = (320/8) –1 = 39 = 27h
LDA
; 设定 DWBR = 240 –1 = 239 = EFh
#EFh
Write_REG[38h]
LDA
#00h
Write_REG[48h]
; 设定 DWLR, DWTR = 00h
Write_REG[58h]
LDA
RAiO TECHNOLOGY INC.
#1Dh
; 设定 Active Window is 160x160 pixel
62/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
Write_REG[20h]
LDA
#9Fh
Write_REG[30h]
LDA
; 设定 AWBR = 160 –1 = 159 = 9Fh
#09h
Write_REG[40h]
LDA
; 设定 AWRR = (240/8) –1 = 29 = 1Dh
; 设定 AWLR = (80/8)-1 = 9 = 09h
#00h
Write_REG[50h]
; Setup the AWTR = 00h
下面的例题 3 是以 RA8820 为例,设定 LCD Panel 的显示窗口为 240x160,工作窗口为 128x128 且位于显
示窗口的左上角,如图 9-19 所示。
240
0 1 2 ……………………..
0
1
2
:
:
:
:
:
:
:
127
128
:
:
:
159
.127 128 ………….
.……………….. 239
Active Window
128 x 128
160
Display Window
240 x 160
图 9-19:例题 3 的显示窗口与工作窗口
例 题 3:
LDA
#1Dh
; 设定 Display Window is 240x160 pixel
Write_REG[28h]
; 设定 DWRR = (240/8) –1 = 29 = 1Dh
LDA
; 设定 DWBR = 160 –1 = 159 = 9Fh
#9Fh
Write_REG[38h]
LDA
#00h
Write_REG[48h]
; 设定 DWLR, DWTR = 00h
Write_REG[58h]
LDA
#0Fh
Write_REG[20h]
RAiO TECHNOLOGY INC.
; 设定 Active Window is 128x128 pixel
; 设定 AWRR = (128)/8 –1 = 15 = 0Fh
63/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
LDA
#7Fh
; 设定 AWBR = 128 –1 = 127 = 7Fh
Write_REG[30h]
LDA
#00h
Write_REG[40h]
; Setup the AWLR, AWTR = 00h
Write_REG[50h]
下面的例题 4 则是设定 LCD Panel 的显示窗口为 240x160,工作窗口为 128x128 位于显示窗口的中上角,
如图 9-20 所示。
240
239
0 1 2 …………79 80……………………………. .208 …… . 0
1
2
:
:
:
:
:
:
:
128
129
:
Active Window
128 x 128
80
32
160
Display Window
240 x 160
32
159
图 9-20:例题 4 的显示窗口与工作窗口
例 题 4:
LDA
#1Dh
Write_REG[28h]
LDA
#9Fh
Write_REG[38h]
LDA
#00h
Write_REG[48h]
Write_REG[58h]
LDA
#19h
Write_REG[20h]
LDA
#7Fh
Write_REG[30h]
RAiO TECHNOLOGY INC.
; 设定 Display Window is 240x160 pixel
; 设定 DWRR = (240/8) –1 = 29 = 1Dh
; 设定 DWBR = 100 –1 = 159 = 9Fh
; 设定 DWLR, DWTR = 00h
; 设定 Active Window is 128x128 pixel
; 设定 AWRR = (208/8) –1 = 25 = 19h
; 设定 AWBR = 128 –1 = 127 = 7Fh
64/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
LDA
#09h
Write_REG[40h]
LDA
#00h
Write_REG[50h]
; 设定 AWLR = (80/8)-1 = 9 = 09h
; Setup the AWTR = 00h
9.11 行距设定
RA8802/8820 在做文字显示时,提供了行距设定的功能,尤其是做中文显示时,每一行如果有适当的间隔,
LCD 的显示画面看起来会比较舒适。RA8802/8820 行与行相隔的间距设定范围为 1~16 Pixel 的高度,使用
者可依需求来决定行与行间距的大小,一旦设定后,当每填完一行的中文字,跳到下一行时,其行距会依照
先前所设定的间距来显示。
REG [18h] Cursor Size Control Register (CSCR)
Bit
3-0
Description
Text/Graph
Default
Access
Text
0010h
R/W
Text/Graph
Default
Access
Graph
0h
R/W
行距设定
例 题:
LDA
; 设定 LSB=0010,
#00100010b
; 行距为 2 个 pixels 的高度
Write_REG[18h]
9.12 自动填入数据到 DDRAM
REG [E0h] Pattern Data Register (PDR)
Bit
Description
设定写入到 DDRAM 的数据
当缓存器[F0h]的 bit3 为 ‘1’,RA8802/8820 内部将自动读取
7-0
本缓存器[E0h] 的 Data,然后全部填写到 DDRAM 内,之后
缓存器[F0h]的 bit3 被清除为 ‘0’。
REG [F0h] Font Control Register (FCR)
Bit
Description
Text/Graph
Default Access
重复写入 REG [E0h]的数据到 DDRAM
3
1:开始写入
Graph
0h
R/W
0:未动作
例 题:
LDA
#FFh
; 设定写入到 DDRAM Data = FFh,
Write_REG[E0h]
RAiO TECHNOLOGY INC.
65/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
Read_REG[F0h]
; 设定缓存器[F0h]的 bit3 为 ‘1’
SMB3
Write_REG[F0h]
; 将屏幕数据全部填入 “FF” Æ 硬件开始清除屏幕
9.13 屏幕更新频率设定
REG [90h] Shift Clock Control Register (SCCR)
Bit
Description
Default
Access
--
R/W
设定 XCK 讯号周期
SCCR = (SCLK x DBW) / (Column x Row x FRS)
SCLK:系统频率(System Clock) (单位:Hz)
DBW:LCD Driver 的 Data Bus 宽度(单位:Bit)
7-0
Column:LCD 面板的 Segment 大小(单位:Pixel)
Row:LCD 面板的 Common 大小 (单位:Pixel)
FRS:LCD 面板的 Frame Rate(单位:Hz)
例 题:
1. 如果使用 X’tal + PLL 的方式,系统频率(SCLK) = 8MHz
2. LCD Driver 的 Data Bus 宽度(DBW) = 8Bit
3. 使用 320 x 240 Pixel 的 LCD 面板,Column = 320,Row = 240
4. LCD 面板的 Frame Rate 为 70Hz
则 SCCR = (8MHz x 8) / (320 x 240 x 70) = 11.9
所以建议设定 SCCR = 12 = 0Ch
如果设定数值太大,会造成 LCD 屏幕闪动,有时会伴随水波纹产生,除降低数值外也可以提高系统频率来
解决Æ 调整 REG[08h] 设定数值。为达到良好 LCD 显示质量,使用者必须根据 Panel、Driver 之特性与
VLCD 电压、系统频率等等进行调整。
9.14 中断(Interrupt)与忙碌(Busy)设定
RA8802/8820 提供一中断信号线(INT)用来表示有三种中断讯息可能发生:
1. 假如光标 Segment 地址缓存器(CPXR)与 Segment 中断地址缓存器(INTX)值相同,发生中断。
2. 假如光标 Common 地址缓存器(CPYR)与 Common 中断地址缓存器(INTY)值相同,发生中断。
RAiO TECHNOLOGY INC.
66/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
3. 触控屏幕侦测到被 Touch,发生中断。
这三种中断都可以单独被致能或禁能,而中断的设定与中断讯息可有由缓存器[A0h] INTR 来控制与读取。此
外 RA8802/8820 提供一忙碌(Busy)信号线,用来表示 RA8802/8820 内部 DDRAM 与 ROM 的存取状态是否
因 Busy 而暂时无法接收 MCU 来的 Command。此 BUSY Pin 通常与 MCU 的 I/O 端连接,MCU 在对
RA8802/8820 做存取前可以先判断 RA8802/8820 是否可以接受存取动作(Available)。以下是相关的缓存器
说明:
REG [A0h] Interrupt Setup & Status Register (INTR)
Bit
Description
Default
Access
0h
R
0h
R
0h
R
0h
R
0h
R/W
0h
R/W
0h
R/W
0h
R/W
忙碌状况指示
7
1:RA8802/8820 为忙碌状态,MCU 需暂时等候到忙碌状态终止
0:RA8802/8820 为闲置状态,随时可接受 MCU 存取
触控屏幕中断旗标
6
1:触控屏幕有侦测到接触(Touch)
0:触控屏幕未侦测到接触未触控
光标 Column 状态
5
1:光标的 Column 等于缓存器[B0h]INTX
0:光标的 Column 不等于缓存器[B0h]INTX
光标 Row 状态
4
1:光标的 Row 等于缓存器[B8h]INTY
0:光标的 Row 不等于缓存器[B8h]INTY
忙碌中断屏蔽( Busy Interrupt Mask)
3
1:致能 BUSY 去产生中断输出
0:禁能 BUSY 去产生中断输出
触控屏幕中断屏蔽
2
1:如果触控屏幕被侦测到,则产生中断输出
0:如果触控屏幕被侦测到,则不产生中断输出
INTX 是否发生中断
1
1:致能 INTX 中断
0:禁能 INTX 中断
设定 INTY 是否发生中断
0
1:致能 INTY 中断
RAiO TECHNOLOGY INC.
67/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
0:禁能 INTY 中断
REG [B0h] Interrupt Column Setup Register (INTX)
Bit
Description
7-6
Reserved
Default
0h
Access
R
27h
R/W
Default
Access
EFh
R/W
Default
Access
0h
R/W
保留
设定行 Segment 中断地址
5-0
假如光标位置 X 缓存器(CPXR)=INTX,发生中断。
REG [B8h] Interrupt Row Setup Register (INTY)
Bit
Description
设定列 Common 中断地址
7-0
假如光标位置 Y 缓存器(CPYR)=INTY,发生中断。
REG [08h] Misc. Register (MIR)
Bit
Description
设定输出脚 -- 中断(INT)和忙碌位(Busy Polarity)的准位
4
1:设定高电位动作
0:设定低电位动作
9.15 省电模式
RA8802/8820 的电源工作模式分四级:正常模式(Normal Mode),等待模式(Standby Mode),省电模式
(Sleep Mode) ,关闭模式(Off Mode),请参考下面缓存器及例题。
REG [00h] LCD Controller Register (LCR)
Bit
Description
Text/Graph Default Access
电源模式(Power Mode)
11:正常模式(Normal Mode)
RA8802/8820 的所有功能都可以使用(Available)。
10:等待模式(Standby Mode)
只有 DDRAM 与 ROM 的存取功能被禁止,其它功能都可
7-6
--
以使用,LCD 亦照常工作。
11h
R/W
01:睡眠模式(Sleep Mode)
除了允许缓存器的读写外,其它 LCD 显示与 DDRAM、
ROM 的存取将被禁止。
00:关闭模式(Off Mode)
RAiO TECHNOLOGY INC.
68/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
除了唤醒(Wake-Up)电路工作外,其它功能都被禁止。当
Wake-Up 电路被触发,RA8802/8820 将进入正常模式。
例 题:
Read_REG[00h]
AND
; 读取缓存器[00h]
#3Fh
Write_REG[00h]
; 将 RA8802/8820 进入 OFF Mode
:
:
Read_REG[00h]
OR
; 读取缓存器[00h]
#C0h
Write_REG[00h]
; 将 RA8802/8820 进入 Normal Mode
进入 OFF Mode 后通常 RA8802/8820 的消耗电流会低于 2uA 以下,不过要注意,如果不使用外接字型
ROM,MA[7:0]与 MD[7:0] 必须接到 VDD,才能达到如此低的电源消耗。
9.16 ASCII 区块选择设定
RA8802/8820 内建四个 ASCII 区块,包含许多文字、特殊符号或图形等,可供使用者直接取用,此功能可
以由缓存器[F0h]的 bit[1..0]来设定。如果使用者需要特殊符号或图形,亦可经由调整 ROM Code 的方式来建
立。下面我们将介绍这四个区块的 Pattern(如图 9-21~9-24)、选择方式及使用范例。
9.16.1 ASCII 字形区块 0
例 题:
LDA
#xxxxxx00b
; 设定 选择 ASCII Code 表为 Block 0
Write_REG[F0h]
LDA
#00000100b
; 选择 Block0 里的 “@”
STA
DATA_ADDR
; 光标所指的位置就会显示 “@”
LDA
#10010011b
; 选择 Block0 里的 “9”
STA
DATA_ADDR
; “@”之后,光标所指的位置就会显示 “9”
RAiO TECHNOLOGY INC.
69/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
b3-b0
b7-b4
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
图 9-21:内建 ASCII 区块 Bank0
RAiO TECHNOLOGY INC.
70/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
9.16.2 ASCII 字形区块 1
例 题:
LDA
; 设定 选择 ASCII Code 表为 Block 1
#xxxxxx01b
Write_REG[F0h]
LDA
#00100011b
; 选择 Block 1 里的 2
STA
DATA_ADDR
; 光标所指的位置就会显示 “2”
b3-b0
b7-b4
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
图 9-22:内建 ASCII 区块 Bank1
RAiO TECHNOLOGY INC.
71/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
9.16.3 ASCII 字形区块 2
区块 2 的选择方式与上面相同,只要设定缓存器[F0h]的 bit[1..0],再将选择的 Pattern 写入光标所在的位置
既可。
b3-b0
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
b7-b4
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
图 9-23:内建 ASCII 区块 Bank2
RAiO TECHNOLOGY INC.
72/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
9.16.4 ASCII 字形区块 3
区块 3 的选择方式与上面相同,也只要设定缓存器[F0h]的 bit[1..0],再将选择的 Pattern 写入光标所在的位
置既可。在区块 3 有许多空的 Pattern,如果使用者需要少量的特殊符号或图形,可经由调整 ROM Code 的
方式填入 Pattern 在此区块。
b3-b0
b7-b4
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
图 9-24:内建 ASCII 区块 Bank3
RAiO TECHNOLOGY INC.
73/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
附录 A. 液晶显示驱动器(LCD Driver)的时序图
附录 A 是 RA8802/8820 搭配驱动器(Driver)ST8016/NT7701 在 Segment 和 Common 模式下的时序特性波形
图,及参数表。
tWLPH
tLD
XCK
tLH
tSL
LP
tLS
tWCKH
tWCKL
tWCK
tDS
tDH
LAST DATA
TOP DATA
tR
tF
DI7-DI0
tWDL
DISPOFF
tSD
图 A-1:Segment 模式的时序特性波形图
表 A-1:Segment 操作的 Timing 参数
Parameter
Symbol
Conditions
Min.
Shift Clock Period
tWCK
tR, tF≦11ns
Shift Clock “H” Pulse
Width
Unit
Note
125
ns
1
tWCKH
51
ns
Shift Clock “L” Pulse
Width
tWCKL
51
ns
Data Setup Time
tDS
30
ns
Data Hold Time
tDH
40
ns
Latch Pulse “H” Pulse
Width
tWLPH
51
ns
Shift Clock Rise to Latch
Pulse Rise Time
tLD
0
ns
Shift Clock Fall to Latch
Pulse Fall Time
tSL
21
ns
Latch Pulse Rise to Shift
Clock Rise Time
tLS
51
ns
Latch Pulse Fall to Shift
Clock Fall Time
tLH
51
ns
Enable Setup Time
tS
36
ns
Input Signal Rise Time
tR
50
ns
2
Input Signal Fall Time
tF
50
ns
2
DISPOFF Removal Time
tSD
RAiO TECHNOLOGY INC.
100
74/115
Typ.
Max.
ns
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
DISPOFF “L” Pulse Width
tWDL
Output Delay Time(1)
tD
CL=15pF
78
ns
Output Delay Time(2)
tPD1, tPD2
CL=15pF
1.2
us
Output Delay Time(3)
tPD3
CL=15pF
1.2
us
Max.
Unit
Note
1
1.2
ns
Note:
1. Takes the cascade connection into consideration.
2. (tWCK-tWCKH-tWCKL)/2 is maximum in the case of high-speed operation.
tWLP
LP
tR
tWLPH
tF
t WDL
tSD
DISPOFF
图 A-2:Common 模式的时序特性波形图
表 A-2:Common 操作的 Timing 参数
Parameter
Symbol
Conditions
Min.
Shift Clock Period
tWLP
tR, tF≦20ns
125
ns
Shift Clock “H” Pulse
Width
tWLPH
VDD=5
51
ns
Input Signal Rise Time
tR
50
ns
2
Input Signal Fall Time
tF
50
ns
2
DISPOFF Removal Time
tSD
100
ns
DISPOFF “L” Pulse Width
tWDL
1.2
ns
Output Delay Time(1)
tD
CL=10pF
78
ns
Output Delay Time(2)
tPD1, tPD2
CL=10pF
1.2
us
Output Delay Time(3)
tPD3
CL=10pF
1.2
us
RAiO TECHNOLOGY INC.
75/115
Typ.
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
附录 B. 应用电路图
B.1 RA8802 应用电路(320x240)
图 B-1A 是 RA8802 应用在 LCM 模块(320x240)的控制电路图,也将 MCU 及 Driver 的总线接口脚位拉出,
供使用者参考。
1
2
3
4
U2
1
2
C1 3
45pF4
5
6
7
D
U1
COMP
INHIBIT
Freq
sub
GND
Cathode
Anode
VCC
CUR
BASE_D
BASE
COL
NC
EMIT
VCC
14
13
12
11
10
9
8
1
V0
2
V2
3
V3
VSS
4
VSS
5
VCC 6
VCC 7
VCC 8
EIO1B 9
LD_D010
LD_D111
LD_D212
LD_D313
LD_D414
LD_D515
R3 10
L1 100uH
TL497
DAC
R1
U3
V0L
D6
V12L
D7
V43L XCK
V5L DISPOFF
VSS
LP
L/R
EIO1
VDD
FR
S/C
MD
EIO2 TEST1
D0
TEST2
D1
VSS
D2
V5R
D3
V43R
D4
V12R
D5
V0R
VCC
R2
1.2K
16 LD_D6
17 LD_D7
18 XCK
19 DISPOFF
20 LP
21 VSS
22 FR
23 VCC
24
25
26 VSS
27 VSS
28 V3
29 V2
30 V0
1
2
3
4
5
6
7
8
9
LD_D010
LD_D111
LD_D212
LD_D313
LD_D414
LD_D515
V0
V2
V3
VSS
VSS
VCC
VCC
VCC
V0L
D6
V12L
D7
V43L XCK
V5L DISPOFF
VSS
LP
L/R
EIO1
VDD
FR
S/C
MD
EIO2 TEST1
D0
TEST2
D1
VSS
D2
V5R
D3
V43R
D4
V12R
D5
V0R
NT7701(SEG)A
R28
10K
16 LD_D6
17 LD_D7
18 XCK
19 DISPOFF
20 LP
21 EIO1B
22 FR
23 VCC
24
25
26 VSS
27 VSS
28 V3
29 V2
30 V0
C3
15P
D
C4
15P
PLL震盪電路
LCD DRIVER(SEG)
C5
R9
RA
RB
ROM_D1
ROM_D2
ROM_D3
ROM_D4
ROM_D5
ROM_D6
ROM_D7
ROM_A0
ROM_A1
ROM_A2
ROM_A3
VCC
GND
ROM_A4
ROM_A5
ROM_A6
ROM_A7
ROM_A8
ROM_A9
ROM_A10
ROM_A11
ROM_A12
ROM_A13
ROM_A14
ROM_A15
ROM_A16
ROM_A17
ROM_A18
ROM_CE
GND
3.9K
升壓電路(此電路使用之分壓電阻R1,R2請依LCD PANEL特性調整)
RC震盪電路(R9請依LCD PANEL特性調整)
80
79
78
77
76
75
74
73
72
71
70
69
68
67
66
65
64
63
62
61
60
59
58
57
56
55
54
53
52
51
C
MPU_D0
MPU_D1
MPU_D2
MPU_D3
MPU_D4
MPU_D5
MPU_D6
MPU_D7
1
3
5
7
9
11
13
15
17
19
21
23
2
4
6
8
10
12
14
16
18
20
22
24
MPU_RS
MPU_R/W
MPU_EN
MPU_CS1
MPU_CS2
BUSY
INT
RST
HEADER 12X2
VSS
VEE
ROM_D0 81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
VSS
100
U4
ROM_D0
NC
NC
NC
NC
NC
NC
NC
NC
NC
NC
NC
NC
NC
NC
NC
NC
NC
NC
MD_SEL0
VDD
ROM_A19
CLK_OUT
ZRST#
XB
XA
LPF
RA
RB
LM_D7
LM_D6
LM_D5
LM_D4
LM_D3
LM_D2
LM_D1
LM_D0
LM_EN
LM_RW
VDD
ROM_D1
ROM_D2
ROM_D3
ROM_D4
ROM_D5
ROM_D6
ROM_D7
ROM_A0
ROM_A1
ROM_A2
ROM_A3
VDD
GND
ROM_A4
ROM_A5
ROM_A6
ROM_A7
ROM_A8
ROM_A9
ROM_A10
ROM_A11
ROM_A12
ROM_A13
ROM_A14
ROM_A15
ROM_A16
ROM_A17
ROM_A18
ROM_ZCS
GND
JP1
RA8801
MD_SEL1
LD_D0
LD_D1
LD_D2
LD_D3
LD_D4
LD_D5
LD_D6
LD_D7
LD_DOF
LD_XCK
LD_DY
LD_LP
LD_FR
GND
VDD
BU_OUT
INT_OUT
AGND
V_REF
AVDD
I_OUT
Y2
X2
Y1
X1
LM_CS1
LM_CS2
LM_RS
GND
VCC
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
32
31
VCC
ROM_A19
RST
Crystal1
Crystal0
LPF
RA
RB
MPU_D7
MPU_D6
MPU_D5
MPU_D4
MPU_D3
MPU_D2
MPU_D1
MPU_D0
MPU_EN
MPU_R/W
VCC
RA8802
LD_D7
10K
R11
10K
R12
R16
LD_D5
10K
R17
LD_D2
LD_D0
1
2
3
VEE4
5
6
7
10
C18
105
R5
10
C19
105
C9
104
C10
104
C11
104
V0
R19
C13
104
R20
C14
104
D1
C15
104
VCC
VCC
S1
For VDD
R8
10
C22
105
VEE
V2
R23
OUT1
OUT4
-IN1 -IN4
+IN1+IN4
VCC VEE
+IN2+IN3
-IN2 -IN3
OUT2
OUT3
R6
14
13
12
11
10
9
8
R27
30K
V1
3K
C23
105
V4
10
R7
C20
105
V3
10
C21
105
V3
R25
V4
3K
R24
R26
3K
3K
DIODE
VCC
R21
若VDD電壓>4.5V,可外加二極體降壓
10K
R10¡ãR21 are Optional
A
分壓電路(此電路使用之分壓電阻R23-R27請依LCD PANEL特性調整
若VDD電壓<4.5V,則VDD直接接VCC
Title
Size
硬體設定電路
RA8802 FOR 320240 LCD PANEL AP CIRCUIT
Number
Revision
5.2
B
Date:
File:
1
B
U6
LM324D
For VEE
VCC
10K
A
R4
V1
R18
10K
LD_D1
C8
104
17 GND
18 XCK
19 DISPOFF
20 LP
21
22 GND
23 VSS
24 VSS
25
26 VSS
27
28 VSS
29 V4
30 V1
31 V0
32 V0
V0L
D7
V0L
XCK
V12LDISPOFF
V43L
LP
V5L
EIO1
VSS
FR
VDD
L/R
S/C
MD
EIO2
NC
D0
VSS
D1
NC
D2
V5R
D3
V43R
D4
V12R
D5
V0R
D6
V0R
NT7702(COM)
V2
C7
104
R15
10K
10K
C
U5
LCD DRIVER(COM)
VEE
10K
LD_D3
R22
2.7K
R14
10K
10K
C17
C16
0.22uF 0.01uF
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
R13
10K
LD_D6
LPF
MPU_CS1
MPU_CS2
MPU_RS
VCC
R10
V0
V0
V1
V4
VSS
VSS
VCC
VSS
GND
GND
GND
GND
GND
GND
GND
GND
C6
104
C12
104
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
MCU INTERFACE
VCC
LD_D0
LD_D1
LD_D2
LD_D3
LD_D4
LD_D5
LD_D6
LD_D7
DISPOFF
XCK
FLM
LP
FR
GND
VCC
BUSY
INT
GND
Vref
VCC
DAC
B
Crystal0
32768
104
VEE
Y1
Crystal1
NT7701(SEG)B
22K
C2
100uF
6
5
2
3
4
5
7-May-2003
Sheet of
D:\justin project\RA8802\160x160_LCM\RA8802_320240LCD_AP_E
Drawn By:
Jason Huang
6
图 B-1A:320x240 LCM 模块电路图
注:
1. 如果不使用外接字型 ROM,建议 MA[7:0]与 MD[7:0] 接到 VDD,这样可以减轻电源消耗,如所示图 B1B。
2. RA8802D 版之后的版本,LD0~LD7 的设定脚位若为 Pull-Hi,则 Pull-Hi 电阻不用接上,如果设定脚位
RAiO TECHNOLOGY INC.
76/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
为 Pull-Low,Pull-Low 电阻建议使用 1K~2.2Kohm。
3. Reset Pin – RST#,它可以由 MCU 来控制,或是由一 RC 电路来产生,请参考 8.1 节与图 8-2 的说明。
请注意,RA8802/8820 没有完成 Reset 的动作是无法接受 MCU 的任何指令,甚至会造成起振不正确或
系统设定错误。
表 B-1:320x240 LCM 模块电路图的组件窗体
No.
使用数量
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1
1
1
1
1
4
5
1
12
2
1
1
1
1
1
3
8
6
0.01uF
0.22uF
1.2K
2.7K
3.9K
3K
10
10
10K
15P
22K
30K
45pF
100uF
100uH
104
104
105
C17
C16
R1
R22
R9
R23, R24, R25, R26
R4, R5, R6, R7, R8
R3
R12~R21
C3, C4
R2
R27
C1
C2
L1
C7, C8, C9
C5, C6, C10~C15
C18~C23
19
1
32768
Y1
20
21
22
23
24
25
1
1
1
1
1
1
DIODE
HEADER 12X2
LM324D
NT7701(SEG)A
NT7701(SEG)B
NT7702(COM)
D1
JP1
U6
U2
U3
U5
26
1
RA8802
U4
27
1
TL497
U1
RAiO TECHNOLOGY INC.
组件规格
组件序号
组件尺寸
0805C
0805C
0805
0805
0805
0805
0805
0805
0805
0805C
0805
0805C
EC1
LH1
0805C
0805C
0805C
CRYSTAL
3.8KHZ
DIE or
PQFP100
DIP14
77/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
B.2 RA8802 应用电路(320x240)
图 B-1B 是 RA8802 的 Demo 电路图,也将 MCU 及 Driver 的总线接口脚位拉出,供使用者参考。
COMP
INHIBIT
Freq
sub
GND
Cathode
Anode
VCC
CUR
BASE_D
BASE
COL
NC
EMIT
U2
ST8016(SEG)
VCC
14
13
12
11
10
9
8
R3 10
L1 100uH
TL497
R1
106
C14
15P
VDD
VDD
FLM
XCK
DISPOFF
LD_D1
LD_D3
100uF
VEE
RB
3.9K
1 V0
2 V1
3 V4
4 VSS
5 VSS
6 FR
7 FLM
8 LP
9 DISPOFF
10 VSS
11 VSS
12 VSS
13 VSS
14 VSS
15 VSS
16 VSS
17 VSS
18 VSS
19
20 VSS
21 VDD
22 VDD
23 VSS
24 V4
25 V1
26 V0
RC 震盪電路
(R10請依LCD panel特性調整)
1
3
5
7
9
11
13
15
17
19
21
23
MPU_D0
MPU_D1
MPU_D2
MPU_D3
MPU_D4
MPU_D5
MPU_D6
MPU_D7
2
4
6
8
10
12
14
16
18
20
22
24
VDD
MPU_RS
MPU_R/W
MPU_EN
MPU_CS1
MPU_CS2
BUSY
INT
RST
CLK_OUT
ROM_D0
HEADER 12X2
VEE
MC U I nter f a ce
VSS
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
MD0
NC
NC
NC
NC
NC
NC
NC
NC
NC
NC
NC
NC
NC
NC
NC
NC
NC
NC
SEL0
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
32
31
VDD
MA19
CK_OUT
RST#
XB
XA
LPF
RA
RB
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
EN
RW#
VDD
RA8802
RA8802-(S/T)
VDD
ROM_A19
CLK_OUT
RST
XB
XA
LPF
RA
RB
MPU_D7
MPU_D6
MPU_D5
MPU_D4
MPU_D3
MPU_D2
MPU_D1
MPU_D0
MPU_EN
MPU_R/W
VDD
SE L1
L D0
L D1
L D2
L D3
L D4
L D5
L D6
L D7
DISPOFF
XCK
YD
LP
FRM
GND
VDD
BUSY
INT
AGND
Vref
AVDD
Iout
Y2
X2
Y1
X1
CS1#
CS2
RS
GND
VCC
JP1
MD1
MD2
MD3
MD4
MD5
MD6
MD7
MA0
MA1
MA2
MA3
VDD
GND
MA4
MA5
MA6
MA7
MA8
MA9
MA10
MA11
MA12
MA13
MA14
MA15
MA16
MA17
MA18
MACS#
GND
U4
VCC
VDD
LCD2
1
3
5
7
9
11
2
4
6
8
10
12
LP
LD_D0
LD_D2 VDD
VEE
HEADER 6X2
80
79
78
77
76
75
74
73
72
71
70
69
68
67
66
65
64
63
62
61
60
59
58
57
56
55
54
53
52
51
升壓電路(此電路使用之分壓電阻R 1/R2請依LCD pa nel特性調整)
R10
RA
ROM_D1
ROM_D2
ROM_D3
ROM_D4
ROM_D5
ROM_D6
ROM_D7
ROM_A0
ROM_A1
ROM_A2
ROM_A3
VCC
GND
ROM_A4
ROM_A5
ROM_A6
ROM_A7
ROM_A8
ROM_A9
ROM_A10
ROM_A11
ROM_A12
ROM_A13
ROM_A14
ROM_A15
ROM_A16
ROM_A17
ROM_A18
ROM_CE
20K
C16
DV1
1N4148
C15
15P
C2 104
R2
1.2K
VCC
P LL 震盪電路
10K
R12
10K
XA
32768
R9
LCD Dr iver ( S EG)
R11
DAC
Y1
XB
V0R
V12R
V43R
VSS
MD
FR
E IO1
LP
DISPOFF
XCK
DI7
DI6
DI5
DI4
DI3
DI2
DI1
DI0
E IO2
S/C
VDD
L /R
VSS
V43L
V12L
V0L
U1
1 V0
2 V2
3 V3
4 VSS
5 VSS
6 FR
7 VSS
8 LP
9 DISPOFF
10 XCK
11 LD_D7
12 LD_D6
13 LD_D5
14 LD_D4
15 LD_D3
16 LD_D2
17 LD_D1
18 LD_D0
19
20 VDD
21 VDD
22 VDD
23 VSS
24 V3
25 V2
26 V0
1
2
C1 3
45pF 4
5
6
7
C4
104
LPF
C17
0.22uF
C18
0.01uF
R31
2.7K
U5
V0R
V12R
V43R
VSS
MD
FR
EIO1
LP
DISPOFF
XCK
DI7
DI6
DI5
DI4
DI3
DI2
DI1
DI0
EIO2
S/C
VDD
L/R
VSS
V43L
V12L
V0L
ST8016(COM)
LCD Dr iver ( CO M)
C9
104
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
RA8820/02
VDD
1K
R19
10K
LD_D6
1K
R20
R25
LD_D3
R26
LD_D2
C6
104
R28
LD_D0
R29
10K
R30
2K
硬體設定電路
C10
104
C11
104
C12
104
R5
R8
V0
C20
30P
U6
OUT1
-IN1
+IN1
VCC
+IN2
-IN2
OUT2
OUT4
-IN4
+IN4
VEE
+IN3
-IN3
OUT3
14
13
12
11
10
9
8
R6
V4
10
C23
105
R7
V3
10
LM324D
C24
105
C8
104
Vref
VDD
10K
R18∼R27 are Optional
C7
104
10K
LD_D1
1
2
3
VEE 4
5
6
7
10
C22
105
C19
104
For VEE
R27
R4
10
C21
105
V2
C5
104
10K
1K
V1
VEE
10K
1K
R22
R24
10K
LD_D5
1K
R21
R23
MPU_CS1
MPU_CS2
MPU_RS
LD_D7
VDD
L D_D0
L D_D1
L D_D2
L D_D3
L D_D4
L D_D5
L D_D6
L D_D7
DISPOFF
XCK
FLM
LP
FR
GND
VDD
BUSY
INT
GND
Vref
VDD
DAC
R18
C25
105
10
VEE
R32
C26
105
V1
V2
3K
R36
24K
R33
3K
V3
R34
V4
3K
R35
3K
For VDD
分壓電路( 此分壓電路使用之分壓電阻R 32~R 36請依LCD pa nel特性調整)
图 B-1B:320x240 Demo 电路图
注:
1. 如前一节所述,图 B-1B 的 MA[7:0]与 MD[7:0] 接到 VDD,这样可以减轻电源消耗。
2. RA8802D 版之后的版本,LD0~LD7 的设定脚位若为 Pull-Hi,则 Pull-Hi 电阻不用接上,如果设定脚位为
Pull-Low,Pull-Low 电阻建议使用 1K~2.2Kohm。
3. Reset Pin – RST#,它可以由 MCU 来控制,或是由一 RC 电路来产生,请参考 8.1 节与图 8-2 的说明。
请注意,RA8802/8820 没有完成 Reset 的动作是无法接受 MCU 的任何指令,甚至会造成起振不正确或
系统设定错误。
4. VLCD 的电压是正的,由 U1 的 TL497 产生,电压范围由 R2 来控制(≒12V~30V),也可以在 R2 上串接
RAiO TECHNOLOGY INC.
78/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
一 VR 可调电阻来调整电压范围,输出电流的限制由 R3 决定,且 R3 不能短路,如果接上 LCD Panel 让
VLCD 电压下降,表示 LCD Panel 上的 Droving 负载(Loading)较大,此时可将 R3 调小。
5. 图 B-1B 的 VLCD 电压是正的,如果须要的 VLCD 电压是负的,则必须使用别的升压电路。如图 B-1C 就
是一负压的升压电路。
6. R11 用来调整 DAC 对 VLCD 的变动范围,虽然 DAC 可用于控制升压电路,进行对比显示(Contrast)设
定,但仍须要注意的是升压电路本身的精确度,即使是同一批号的生压 IC,产生的 VLCD 电压准位也会
不同,而且不同批的 LCD Panel 对相同 VLCD 电压产生的对比显示效果也不一样,因此如果使用
RA8802/8820 的 DAC 进行对比显示(Contrast)设定,建议与 R11 串接一 VR 可调电阻做为出厂设定。
7. R18~R29 用来选择系统设定,请参考 8.1 节的说明。
8. 如果系统时序(System Clock)产生方式为 RC Clock(也就是 R20 焊上,R25 不焊),此时 Y1、C14、
C15、R9 可不用接,当然 R10 要焊上。
9. 有时候 LD[3:0]的负载较多(视 Driver IC 数量) ,走线较长,建议在 LD[3:0]上各并接一电容(20pF~30pF)到
地,减少噪声产生。
10. 如果使用触摸式面板(使用内部 ADC),则建议在 X1, X2, Y1, Y2 上各并接一电容(30pF)到地,以减少噪
声产生及增加 ADC 的稳定度,请参考图 6-7。
Vin = 2.4~7V
RCL
0~10
U1
1
C1
100uF
CL
8
VREF
DHI
7
SHDN
DLOW
6
GND
5
VIN
2
3
4
FB
Q1
0.047uF
R2
Vout = -12V~-40V(-10mA)
D1
470~1.8K
100uH
*L
AIC1652
C4
9012
RB
1N4148
C2
100uF
R1
1M
100K
C3
10nF
图 B-1C:应用电路图-负压的升压电路
RAiO TECHNOLOGY INC.
79/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
B.3 RA8820 应用电路(160x160)
图 B-2 是 RA8820 的 160x160 Demo 用 LCM 模块电路图,图中的 LCD Driver 使用 ST8016 供使用者参考。
1
2
3
4
6
5
PLL震盪電路
Y1
升壓電路
Crystal1
LCD Driver 介面
U1
1
2
C1 3
45pF 4
5
6
7
COMP
INHIBIT
Freq
sub
GND
Cathode
Anode
VCC
CUR
BASE_D
BASE
COL
NC
EMIT
VCC
14
13
12
11
10
9
8
R3
10
L1
100uH
1 V0
2 V2
3 V3
4 VSS
5 VSS
6 FR
7 VSS
8 LP
9 DISPOFF
10 XCK
11 LD_D7
12 LD_D6
13 LD_D5
14 LD_D4
15 LD_D3
16 LD_D2
17 LD_D1
18 LD_D0
19
20 VCC
21 VCC
22 VCC
23 VSS
24 V3
25 V2
26 V0
TL497
C2
C4
15P
RC震盪電路
R2
1.2K
D
C3
15P
U2
ST8016(SEG)
DAC
R1
Crystal0
32768
V0R
V12R
V43R
VSS
MD
FR
EIO1
LP
DISPOFF
XCK
DI7
DI6
DI5
DI4
DI3
DI2
DI1
DI0
EIO2
S/C
VDD
L/R
VSS
V43L
V12L
V0L
D
R9
RA
22K
RB
4.7K
R9請依LCD PANEL特性調整
100uF
VEE
VCC
此電路使用之分壓電阻R1,R2請依LCD PANEL特性調整
C5
104
ROM_D1
ROM_D2
ROM_D3
ROM_D4
ROM_D5
ROM_D6
ROM_D7
ROM_A0
ROM_A1
ROM_A2
ROM_A3
VCC
GND
ROM_A4
ROM_A5
ROM_A6
ROM_A7
ROM_A8
ROM_A9
ROM_A10
ROM_A11
ROM_A12
ROM_A13
ROM_A14
ROM_A15
ROM_A16
ROM_A17
ROM_A18
ROM_CE
GND
R28
10K
LCD Driver 介面
80
79
78
77
76
75
74
73
72
71
70
69
68
67
66
65
64
63
62
61
60
59
58
57
56
55
54
53
52
51
C
VCC
JP1
MPU_D0
MPU_D1
MPU_D2
MPU_D3
MPU_D4
MPU_D5
MPU_D6
MPU_D7
1
3
5
7
9
11
13
15
17
19
21
23
2
4
6
8
10
12
14
16
18
20
22
24
MPU_RS
MPU_R/W
MPU_EN
MPU_CS1
MPU_CS2
BUSY
INT
RST
HEADER 12X2
VSS
VSS
ROM_D0
NC
NC
NC
NC
NC
NC
NC
NC
NC
NC
NC
NC
NC
NC
NC
NC
NC
NC
MD_SEL0
RA8801
C13
104
VCC
ROM_A19
C6
104
RST
Crystal1
Crystal0
LPF
RA
RB
MPU_D7
MPU_D6
MPU_D5
MPU_D4
MPU_D3
MPU_D2
MPU_D1
MPU_D0
MPU_EN
MPU_R/W
VCC
LPF
C16
0.22uF
C15
104
C7
104
R11
LD_D7
10K
R12
D1
VCC
S1
DIODE
10K
R13
LD_D5
R17
R18
LD_D3
若VDD電壓<4.5V,則VDD直接接VCC
VCC
R15
C8
104
R16
C10
104
C12
104
For VDD
10K
10K
若VDD電壓>4.5V,可外加二極體降壓
R14
10K
10K
VCC
C11
104
For VEE
10K
LD_D6
C9
104
分壓電路
R19
10K
LD_D2
10K
1
2
3
VEE 4
5
6
7
10
C20
105
R21
10K
LD_D0
U5
R5
V1
R20
10K
LD_D1
V0R
V12R
V43R
VSS
MD
FR
EIO1
LP
DISPOFF
XCK
DI7
DI6
DI5
DI4
DI3
DI2
DI1
DI0
EIO2
S/C
VDD
L/R
VSS
V43L
V12L
V0L
B
C14
104
VCC
VCC
C
U4
ST8016(COM)
VEE
硬體設定電路
C17
0.01uF
R10
2.7K
1 V0
2 V1
3 V4
4 VSS
5 VSS
6 FR
7 FLM
8 LP
9 DISPOFF
10 VSS
11 VSS
12 VSS
13 VSS
14 VSS
15 VSS
16 VSS
17 VSS
18 VSS
19
20 VSS
21 VCC
22 VCC
23 VSS
24 V4
25 V1
26 V0
MPU_CS1
MPU_CS2
MPU_RS
VCC
LD_D0
LD_D1
LD_D2
LD_D3
LD_D4
LD_D5
LD_D6
LD_D7
DISPOFF
XCK
FLM
LP
FR
GND
VCC
BUSY
INT
GND
Vref
VCC
DAC
B
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
32
31
RA8820
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
VEE
VDD
ROM_A19
CLK_OUT
ZRST#
XB
XA
LPF
RA
RB
LM_D7
LM_D6
LM_D5
LM_D4
LM_D3
LM_D2
LM_D1
LM_D0
LM_EN
LM_RW
VDD
ROM_D1
ROM_D2
ROM_D3
ROM_D4
ROM_D5
ROM_D6
ROM_D7
ROM_A0
ROM_A1
ROM_A2
ROM_A3
VDD
GND
ROM_A4
ROM_A5
ROM_A6
ROM_A7
ROM_A8
ROM_A9
ROM_A10
ROM_A11
ROM_A12
ROM_A13
ROM_A14
ROM_A15
ROM_A16
ROM_A17
ROM_A18
ROM_ZCS
GND
MCU介面
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
MD_SEL1
LD_D0
LD_D1
LD_D2
LD_D3
LD_D4
LD_D5
LD_D6
LD_D7
LD_DOF
LD_XCK
LD_DY
LD_LP
LD_FR
GND
VDD
BU_OUT
INT_OUT
AGND
V_REF
AVDD
I_OUT
Y2
X2
Y1
X1
LM_CS1
LM_CS2
LM_RS
GND
ROM_D0
U3
R6
V2
R22
10
C21
105
10K
V2
V0
R4
10
C18
105
VEE
R23
3K
C19
105
R7
14
13
12
11
10
9
8
10
R8
10
LM324D
R11¡ãR22 are Optional
A
OUT1 OUT4
-IN1
-IN4
+IN1 +IN4
VCC
VEE
+IN2 +IN3
-IN2
-IN3
OUT2 OUT3
R27
24K
V1
R24
V4
C22
105
V3
C23
105
V3
R25
A
V4
3K
3K
R26
3K
Title
此電路使用之分壓電阻R23-R27請依LCD PANEL特性調整
Size
RA8820 FOR 160160 LCD PANEL AP CIRCUIT
Number
Revision
C
Date:
File:
1
2
3
4
5.2
8-May-2003
Sheet of
D:\justin project\RA8802\160x160_LCM\RA8802_160160LCD_AP_E_9205071.DDB
Drawn By: Jason Huang
5
6
图 B-2:160x160 LCM 模块电路图
注:
1. 如前一节所述,图 B-2B 的 MA[7:0]与 MD[7:0] 若接到 VDD,可以减轻电源消耗。
2. 与 RA8802 相同,RA8820D 版之后的版本,LD0~LD7 的设定脚位若为 Pull-Hi,则 Pull-Hi 电阻不用接
上,如果设定脚位为 Pull-Low 不,Pull-Low 电阻建议使用 2.2Kohm。
3. Reset Pin – RST#,它可以由 MCU 来控制,或是由一 RC 电路来产生,请参考 8.1 节与图 8-2 的说明。
请注意,RA8802/8820 没有完成 Reset 的动作是无法接受 MCU 的任何指令,甚至会造成起振不正确或
系统设定错误。
RAiO TECHNOLOGY INC.
80/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
表 B-2:160x160 LCM 模块电路图的组件窗体
No.
使用数量
组件规格
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1
1
1
1
4
1
5
1
12
2
1
1
1
1
1
11
6
0.01uF
0.22uF
1.2K
2.7K
3K
4.7K
10
10
10K
15p
22K
24K
45pF
100uF
100uH
104
105
C17
C16
R1
R10
R23~R25
R9
R4~R8
R3
R11~R22
C3, C4
R2
R27
C1
C2
L1
C5~C15
C18~C23
18
1
32768
Y1
19
20
21
22
23
24
25
1
1
1
1
1
1
1
DIODE
HEADER 12X2
LM324D
RA8820
ST8016(COM)
ST800016(SEG)
TL497
D1
JP1
U5
U3
U4
U2
U1
RAiO TECHNOLOGY INC.
组件序号
组件尺寸
0805C
0805C
0805
0805
0805
0805
0805
0805
0805
0805C
0805
0805
0805C
EC1
LH1
0805C
0805C
CRYSTAL
3.8KHZ
PQFP 1OO
DIP14
81/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
B.4 Power 应用电路
附录 B.4 是 RA8802/8820 的电源接法,RA8802 可工作于 3V,RA8820 可工作于 3V 或 5V,工作于 3V 可
减少电源功率消耗,如果有用到 Touch Panel(ADC)建议使用图 B-5。
RA8802
3V
VDD
AVDD
GND
0.1uF
AGND
图 B-3:RA8802 Power 应用电路图(1)
RA8820
3V/5V
VDD
AVDD
GND
0.1uF
AGND
图 B-4:RA8820 Power 应用电路图(2)
RAiO TECHNOLOGY INC.
82/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
RA8802/8820
Power
VDD
AVDD
0.47uH
GND
0.1uF
AGND
图 B-5:使用 Touch Panel(ADC)时的 Power 应用电路图
图 B-6 与 B-7 是 RA8802/8820 用于 3V 或 5V 的系统上的电源接法。
3V
MCU
3V
VDD
RA8802/8820
VDD
AVDD
MCU I/F
I/O
GND
AGND
GND
图 B-6:3V System 应用电路图
5V
MCU
5V
VDD
RA8802/8820
VDD
AVDD
MCU I/F
I/O
GND
GND
AGND
图 B-7:5V System 应用电路图
RAiO TECHNOLOGY INC.
83/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
附录 C. 除错与分析流程
附录 C 是在说明 RA8802/8820 在组合成 LCM 或系统时若遇到困难所采取的几个步骤,例如 Demo Circuit 完
成或 Demo PCB 焊接完成时,必须先核对的重要项目,在接上电源后检查 Clock、Reset 等信号,一但 MCU
可以透过软件进行缓存器的读写,表示 MCU 与 RA8802/8820 间的硬件设定基本上没有问题,MCU 透过软件
进行缓存器的读写动作与 LCD Driver、Panel、或升压电路无关联。
若缓存器的读写没问题,可以透过文字或绘图模式进行显示部份的测试。若遇到困难此时就必须检查与 LCD
Driver、Panel 或升压部份的电路了。
測試順序
核對項目
MCU Type
Bus Width
Clock Source
LCD Bus Width
硬體設定
硬體量測
Clock
Reset
MCU I/F
軟體量測
Register Read/Write
顯示量測
升壓電路
Contrast (DAC)
Loading
Driver Circuit
图 C-1:除错与分析流程
RAiO TECHNOLOGY INC.
84/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
附录 D. 支援的 Driver 型号
Company
HITACHI
SAMSUNG
Novatek
Sitronix
Elan
Toshiba
Epson
Eureka
Hynix
Sanyo
Driver Part.
HD66130
S6A2067
S6B0794
S6B0086
S6B2104
NT3883
NT7701
NT7702
NT7703
NT7704
ST7063
ST7065
ST8016
ST8012
EM65160
EM65240
EM65H134
EM65H137
T6A92
T6B07
T6B08
T6B23
T6B36
T6C03
T6C13B
T6C25
T6C61
T6C63
T6C72A
T6J05
T6J06
S1D16501
S1D16700
S1D16702
S1D17403
S1D16006
S1D16400
S1D17503
S1D17508
EK7010
EK7011
HM11S210
HM11S220
LC79430
LC79401D
Driver capacity
320-channel segment driver
80-dot segment driver
160-dot seg/com driver
80-dot seg/com driver
80-dot segment driver
80-ch driver
160-dot seg/com driver
240-dot seg/com driver
160-dot seg/com driver
240-dot seg/com driver
80-dot segment driver
40-dot seg/com driver
160-dot seg/com driver
120-dot seg/com driver
160-dot seg/com driver
240-dot seg/com driver
240-channel segment driver
240-channel common driver
80-channel segment driver
80-channel segment driver
68-dot common driver
80-channel segment driver
80-dot common driver
160-dot seg/com driver
240-dot seg/com driver
160-dot seg/com driver
160-channel segment driver
240-channel segment driver
120-dot common driver
128-dot common driver
120-dot common driver
100-dot common driver
100-dot common driver
68-dot common driver
160-dot common driver
80-channel segment driver
80-channel segment driver
120-dot common driver
160-dot segment driver
240-dot seg/com driver
160-dot seg/com driver
160-dot seg/com driver
240-dot seg/com driver
80-dot common driver
80-dot segment driver
Support
▲:表示支持
▲
▲
▲
▲
-▲
▲
▲
▲
--▲
▲
▲
▲
▲
▲
-▲
--▲
▲
▲
▲
▲
▲
▲
▲
▲
▲
▲
▲
▲
▲
▲
▲
▲
▲
▲
▲
▲
▲
▲
未列于表内的其它 Driver,可以将编号提供给 RAiO 判断是否有支持。
RAiO TECHNOLOGY INC.
85/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
附录 E. 指令时间
附录 E 是在说明 RA8820 在做读/写或是各种模式下写到内存所需的时间。可依使用者所设定的不同系统频率
(SYS_CLK) , 来 决 定 各 个 指 令 所 需 要 的 时 间 。 例 如 ,
SYS_CLK=8MHz , 每 个 Clock 的 时 间
=1/SYS_CLK=125ns,而写入缓存器所需的 Clock 为 3 个机械周期,所以对缓存器做读取或是写入时所需的时
间约为 125ns X 3 lock=375ns,用以此方式来计算指令所需的时间。
下列是说明各个指令动作所需的机械周期时间:
y 写入缓存器的时间为 3 个机械周期
y 读取缓存器的时间为 3 个机械周期
y 写入内存的时间为 3 个机械周期
y 在绘图模式下写入内存的时间为 3 个机械周期
y 在中文字型下写入一个字到内存的时间为 35 个机械周期
y 在 ASCII 字型下写入一个字到内存的时间为 19 个机械周期
y 硬件清除屏幕所需的机械周期时间,公式: 3+(ComsxSegs)/8
RAiO TECHNOLOGY INC.
86/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
附录 F. C51 范例程序
/*******************************************************************************
*
*Filename: RA8802/8820_C51.C
*Author: Jason
*Company: RAiO
*Case: RA8802/8820
*Device: ATMEL AT89C52 at 4MHz
*Date: 2003/03/26
*Modifier: Jason
*Modify Date: 2003/03/26
*Visions: 1.1 Build 0326
*Compiled Using Keil C v6.14
*
********************************************************************************
* Function
********************************************************************************
*Hardware Setup Pin:
*LD7 : pull high=>6800 Interface
*LD6 : pull high=>MCU Data Bus->8bit
*LD5 : pull high=>Crystal
*LD3 : pull low =>LCD Data bus->4bit
*LD2 : pull low =>RS=1->LCD command;RS=0->LCD Data
*LD0&LD1 : pull high
*Pin assignment:
*P3.7: RST
*P3.6: INT
*P3.5: BUSY
*P3.4: MCU_CS2
*P3.3: MCU_CS1
*P3.2: MCU_EN
*P3.1: MCU_R/W
*P3.0: MCU_RS
*
*P1.0: LCD Data Bus Bit0
*P1.1: LCD Data Bus Bit1
*P1.2: LCD Data Bus Bit2
*P1.3: LCD Data Bus Bit3
*P1.4: LCD Data Bus Bit4
*P1.5: LCD Data Bus Bit5
*P1.6: LCD Data Bus Bit6
*P1.7: LCD Data Bus Bit7
*
*Panel Size : 320X240
*******************************************************************************/
#include <stdio.h>
#include <AT89X52.H>
#define
#define
#define
#define
#define
#define
#define
#define
RST
INT
BUSY
CS2
CS1
EN
RW
RS
RAiO TECHNOLOGY INC.
P3_7
3_6
3_5
P3_4
P3_3
P3_2
P3_1
P3_0
87/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
#define
#define
LCD_Command
LCD_Data
P1
P1
void printlcd(void) small;
void LCD_Reset(void) small;
void LCD_Initial(void) small;
void LCD_Display_On(void) small;
void LCD_Display_Off(void) small;
void LCD_CursorX(unsigned char) small;
void LCD_CursorY(unsigned char) small;
void LCD_Clear(void) small;
void LCD_CmdWrite(unsigned char) small;
void LCD_DataWrite(unsigned char) small;
unsigned char LCD_CmdRead(unsigned char) small;
unsigned char LCD_DataRead(void) small;
void LCD_ChkBusy(void) small;
void disascii(unsigned char) small;
void dispat(unsigned char) small;
void DelayXms(int) small;
void _nop_ (void);
unsigned char data REG_READ;
unsigned char data DATA_READ;
/******************************************************************************/
/* Main Program Area
*/
/******************************************************************************/
void main(void)
{
while(1)
{
LCD_Reset();
LCD_Initial();
LCD_Clear();
LCD_CursorX(0x08);
LCD_CursorY(0x30);
printlcd();
DelayXms(1000);
disascii(0x4b);
DelayXms(1000);
disascii(0x55);
DelayXms(1000);
dispat(0x55);
DelayXms(1000);
dispat(0xaa);
DelayXms(1000);
dispat(0xff);
DelayXms(1000);
}
}
RAiO TECHNOLOGY INC.
88/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
/******************************************************************************/
/* Sub Program Area
*/
/******************************************************************************/
/******************************************************************************/
/* Display Pattern Subroutine
*/
/******************************************************************************/
void dispat(unsigned char PATTERN) small
{
int i=0,j=0;
LCD_CmdWrite(0x00);
LCD_CmdWrite(0xc5);
LCD_CursorX(0x00);
LCD_CursorY(0x00);
while(j < 240)
{
if((j%2) == 0)
{
while(i<40)
{
LCD_DataWrite(PATTERN);
i++;
}
i=0;
}
else
{
while(i<40)
{
LCD_DataWrite(0x00);
i++;
}
i=0;
}
j++;
}
}
/******************************************************************************/
/* Display ASCII Subroutine
*/
/******************************************************************************/
void disascii(unsigned char ASCII) small
{
int i=0;
LCD_CmdWrite(0x00);
LCD_CmdWrite(0xcd);
LCD_CursorX(0x00);
LCD_CursorY(0x00);
while(i < 600)
{
LCD_DataWrite(ASCII);
i++;
}
}
RAiO TECHNOLOGY INC.
89/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
/******************************************************************************/
/* LCD Print Subroutine
*/
/******************************************************************************/
unsigned char code text_table[4][5] =
{
0xC8,0xF0,0xD3,0xD3,0xBF,
0xC6,0xBC,0xBC,0xB9,0xC9,
0xB7,0xDD,0xD3,0xD0,0xCF,
0xDE,0xB9,0xAB,0xCB,0xBE
};
void printlcd(void) small
{
int i=0,j=0;
unsigned char Data;
while(j < 4)
{
for(i = 0; i < 5; i++)
{
Data = text_table[j][i];
LCD_DataWrite(Data);
}
j++;
}
}
/******************************************************************************/
/* LCD Reset Subroutine
*/
/******************************************************************************/
void LCD_Reset(void) small
{
RST = 0;
DelayXms(2);
RST = 1;
DelayXms(2);
}
/******************************************************************************/
/* LCD Function Initial Subroutine
*/
/******************************************************************************/
void LCD_Initial(void) small
{
LCD_CmdWrite(0x00);LCD_CmdWrite(0xCD);
LCD_CmdWrite(0x08);LCD_CmdWrite(0x73);
LCD_CmdWrite(0x10);LCD_CmdWrite(0x2F);
LCD_CmdWrite(0x18);LCD_CmdWrite(0x20);
LCD_CmdWrite(0x20);LCD_CmdWrite(0x27);
LCD_CmdWrite(0x30);LCD_CmdWrite(0xEF);
LCD_CmdWrite(0x40);LCD_CmdWrite(0x00);
LCD_CmdWrite(0x50);LCD_CmdWrite(0x00);
LCD_CmdWrite(0x28);LCD_CmdWrite(0x27);
LCD_CmdWrite(0x38);LCD_CmdWrite(0xEF);
LCD_CmdWrite(0x48);LCD_CmdWrite(0x00);
LCD_CmdWrite(0x58);LCD_CmdWrite(0x00);
LCD_CmdWrite(0x60);LCD_CmdWrite(0x00);
LCD_CmdWrite(0x70);LCD_CmdWrite(0x00);
LCD_CmdWrite(0x80);LCD_CmdWrite(0x33);
LCD_CmdWrite(0x90);LCD_CmdWrite(0x0A);
RAiO TECHNOLOGY INC.
90/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
LCD_CmdWrite(0xB0);LCD_CmdWrite(0x27);
LCD_CmdWrite(0xB8);LCD_CmdWrite(0xEF);
LCD_CmdWrite(0xA0);LCD_CmdWrite(0x08);
LCD_CmdWrite(0xC0);LCD_CmdWrite(0xF0);
LCD_CmdWrite(0xD0);LCD_CmdWrite(0x20);
LCD_CmdWrite(0xE0);LCD_CmdWrite(0x00);
LCD_CmdWrite(0xF0);LCD_CmdWrite(0xA0);
}
/******************************************************************************/
/* LCD Cursor Set Subroutine
*/
/******************************************************************************/
void LCD_CursorX(unsigned char Cursor) small
{
LCD_CmdWrite(0x60);
LCD_CmdWrite(Cursor);
}
/******************************************************************************/
/* LCD Cursor Set Subroutine
*/
/******************************************************************************/
void LCD_CursorY(unsigned char Cursor) small
{
LCD_CmdWrite(0x70);
LCD_CmdWrite(Cursor);
}
/******************************************************************************/
/* LCD Clear Screen Subroutine
*/
/******************************************************************************/
void LCD_Clear(void) small
{
unsigned char REG_TMP;
LCD_CmdWrite(0xE0);LCD_CmdWrite(0x00);
REG_TMP = LCD_CmdRead(0xF0);
REG_TMP &= (0xF7);
REG_TMP |= (0x08);
LCD_CmdWrite(0xF0);
LCD_CmdWrite(REG_TMP);
DelayXms(1);
}
/******************************************************************************/
/* LCD Command Write Subroutine
*/
/******************************************************************************/
void LCD_CmdWrite(unsigned char Cmd_Data) small
{
LCD_ChkBusy();
//Call LCD_ChkBusy to Check Busy Bit
LCD_Command = Cmd_Data;
P3 = (0x91);
EN = 1;
_nop_();
EN = 0;
P3 = (0x93);
}
RAiO TECHNOLOGY INC.
91/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
/******************************************************************************/
/* LCD Data Write Subroutine
*/
/******************************************************************************/
void LCD_DataWrite(unsigned char Data_Data) small
{
LCD_ChkBusy();
//Call LCD_ChkBusy to Check Busy Bit
LCD_Data = Data_Data;
P3 = (0x90);
EN = 1;
_nop_();
EN = 0;
P3 = (0x93);
}
/******************************************************************************/
/* LCD Cmd Read Subroutine
*/
/******************************************************************************/
unsigned char LCD_CmdRead(unsigned char REG_Addr) small
{
unsigned char REG_READ;
LCD_CmdWrite(REG_Addr);
P3 = (0x93);
EN = 1;
_nop_();
REG_READ = LCD_Command;
_nop_();
EN = 0;
P3 = (0x93);
return REG_READ;
}
/******************************************************************************/
/* LCD Data Read Subroutine
*/
/******************************************************************************/
unsigned char LCD_DataRead(void) small
{
unsigned char DATA_READ;
LCD_ChkBusy();
P3 = (0x92);
EN = 1;
LCD_Data = DATA_READ;
_nop_();
EN = 0;
P3 = (0x93);
return DATA_READ;
}
RAiO TECHNOLOGY INC.
92/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
/******************************************************************************/
/* LCD Check Busy Subroutine
*/
/******************************************************************************/
void LCD_ChkBusy(void) small
{
do
{
}
while(BUSY == 1);
}
/******************************************************************************/
/* Delay Subroutine
*/
/******************************************************************************/
void DelayXms(int count) small
{
int i,j;
for(i=0; i<count; i++)
for(j=0; j<240; j++)
_nop_();
}
RAiO TECHNOLOGY INC.
93/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
附录 G. 字型与字码表(GB)
RAiO TECHNOLOGY INC.
94/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
RAiO TECHNOLOGY INC.
95/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
RAiO TECHNOLOGY INC.
96/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
RAiO TECHNOLOGY INC.
97/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
RAiO TECHNOLOGY INC.
98/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
RAiO TECHNOLOGY INC.
99/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
RAiO TECHNOLOGY INC.
100/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
RAiO TECHNOLOGY INC.
101/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
RAiO TECHNOLOGY INC.
102/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
RAiO TECHNOLOGY INC.
103/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
RAiO TECHNOLOGY INC.
104/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
RAiO TECHNOLOGY INC.
105/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
RAiO TECHNOLOGY INC.
106/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
RAiO TECHNOLOGY INC.
107/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
RAiO TECHNOLOGY INC.
108/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
RAiO TECHNOLOGY INC.
109/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
RAiO TECHNOLOGY INC.
110/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
RAiO TECHNOLOGY INC.
111/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
RAiO TECHNOLOGY INC.
112/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
RAiO TECHNOLOGY INC.
113/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
RAiO TECHNOLOGY INC.
114/115
www.raio.com.tw
RA8802/8820
中文文字/图形 LCD 控制器应用手册
Version 2.5
RAiO TECHNOLOGY INC.
115/115
www.raio.com.tw