RAiO RA8802, RA8820 User Manual

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
Version 2.5
RA8802/8820 中文文字/图形 LCD 控制器应用手册改版说明
2.0 January 29, 2004 First Release Version 修改第 4 章与 9.15
2.1 March 25, 2004 增加图 B-1B
RA8802/8820
中文文字/图形
LCD
控制器应用手册
2.2 April, 12, 2004
2.3 May 3, 2004
2.4 June 10, 2004
2.5 October 1, 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 节 修改图 B-1B 的接脚名称
增加表 3-1RA8802/8820 与驱动器 IC 的接口名称对照表 修改图 5-1、图 5-2:用 DAC 控制 LCD 亮度的应用电路及文字说
明 增加图 8-2A:重置脚位 RST# 的时序 修改图 8-3:一般 RA8802/8820 电源开启或重置的流程图 修改图 B-3, B-4, B-5
增加附录 G. 字型与字码表(GB)
RAiO TECHNOLOGY INC. 2/115 www.raio.com.tw
Version 2.5
中文文字/图形
RA8802/8820
LCD
控制器应用手册
章 节 内 容 页 数
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
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
中文文字/图形
RA8802/8820
LCD
控制器应用手册
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
Version 2.5
中文文字/图形
RA8802/8820
LCD
控制器应用手册
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)
液晶顯示器
(LCD Panel)
RA8802 RA8820
可擴充字形
(Extendible Font ROM)
硬體
啟始設定
時脈
(Clock)
1-1RA8802/8820 系统接口图
升壓電路
(
亮度調整
觸摸式面板
(Touch Panel)
)
RAiO TECHNOLOGY INC. 5/115 www.raio.com.tw
Version 2.5
中文文字/图形
RA8802/8820
LCD
控制器应用手册
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
A0
A1-A7
IORQ
D0-D3(D0-D7)
RD
WR
RES
Decoder
RA8802
RS CS1 CS2
SYS_MI
DB0-3(DB0-7)­RD WR RST
2-18080 (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
Version 2.5
AH8
t
RS, CS1
AW8
WR, RD
DB0~DB7
(WRITE)
DB0~DB7
(READ)
t
DS8
t
t
ACC8
CYC
t
CC
t
DH8
t
2-28-Bit 8080 MCU RA8802/8820 缓存器/Data 进行读取/写入动作
中文文字/图形
OH8
t
RA8802/8820
LCD
控制器应用手册
2-1
Signal Symbol Parameter
t
Address hold time 10 -- ns
RS, CS1#
WR#, RD#
DB0 to DB7
AH8
Address setup time 63 -- ns
t
Aw8
t
System cycle time 800 -- ns
CYC
Strobe pulse width 400 -- ns
t
CC
t
Data setup time 63 -- ns
DS8
t
Data hold time 10 -- ns
DH8
t
RD access time -- 330 ns
ACC8
Output disable time 10 -- ns
t
OH8
Rating
Min Max
Unit Condition
System Clock:
8MHz
Voltage: 3.3V
2.2 6800
系列的
MCU
接口
2-3 RA8802/8820 6800 兼容系列的 MCU 接口示意图,此时 RA8802/8820 将只接受 6800 系列兼容 的 MCU 所传送出来的控制时序。6800 系列 MCU Read, Write 的控制信号是同一根 PinRD/WR High 时 是进行读取动作,RD/WR Low 时是进行写入动作,而 EN 则是确定读写的动作是否有效(Enable),至于 读写的目的地仍由 RS 决定。
RAiO TECHNOLOGY INC. 7/115 www.raio.com.tw
Version 2.5
6800 MCU
A0
A1-A7
VMA
Decoder
RA8802
RS CS1 CS2
RA8802/8820
中文文字/图形
VDD
SYS_MI
LCD
控制器应用手册
D0-D3(D0-D7)
EN
R/W
RES
DB0-3(DB0-7) EN R/W RST
2-36800 (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
Version 2.5
CYC6
EN
t
RA8802/8820
中文文字/图形
LCD
控制器应用手册
RS, R/W, CS1
Signal Symbol Parameter
A0, R/W#,
CS1#
DB0 to DB7
EN tEW Enable pulse width 400 -- ns
2.3 4Bit/8Bit的MCU
DB0~DB7
(WRITE)
DB0~DB7
(READ)
AW6
t
DS6
t
ACC6
t
EW
t
AH6
t
DH6
t
OH6
t
2-48-bit 6800 MCU RA8802/8820 缓存器/Data 进行读取/写入动作
2-2
Rating
Min Max
t
Address hold time 10 -- ns
AH6
t
Address setup time 63 -- ns
Aw6
t
System cycle time 800 -- ns
CYC6
t
Data setup time 63 -- ns
DS6
t
Data hold time 10 -- ns
DH6
t
Access time -- 330 ns
ACC6
Output disable time 10 -- ns
t
OH6
Unit Condition
System Clock:
Voltage: 3.3V
界面
8MHz
RA8802/8820 除了支持 80806800两大系列兼容的 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
Version 2.5
线的 DB3~DB0 进行传送,第一次先透过总线(DB3~DB0)传送数据的较高位 Bit[7..4],第二次再透过总线 (DB3~DB0)传送数据的较低位 Bit[3..0],使用者可以参考 2.4 节中的例题 5~8
中文文字/图形
RA8802/8820
LCD
控制器应用手册
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_ADDRA0 = 0 MCU 的译码位置为 DATA_ADDR
例 题 1:8-Bit MCU 写入 Data 到 RA8802/8820 的缓存器
LDA #00h ; 选择 LCD Controller Register (LCR) STA REG_ADDR LDA #A5h ; 写入“A5” 到 LCR 缓存器 STA REG_ADDR
LDA #E0h ; 选择 Pattern Data Register (PDR) STA REG_ADDR LDA #5Ah ; 写入“5A” 到 PDR 缓存器 STA REG_ADDR
例 题 28-Bit MCU 读取 RA8802/8820 的缓存器的 Data
LDA #00h ; 选择 LCD Controller Register (LCR) STA REG_ADDR LDA REG_ADDR ; 读取 LCR 缓存器的值
LDA #E0h ; 选择 Pattern Data Register (PDR) STA REG_ADDR LDA REG_ADDR ; 读取 PDR 缓存器的值
例 题 3:8-Bit MCU 写入一中文到光标所在的位置
LDA #BAh ; 加载 “” 的中文码高位 “BA” STA DATA_ADDR LDA #F4h ; 加载 “” 的中文码低位 “F4” STA DATA_ADDR ; 光标所在的位置将显示” 的中文字
LDA #ADh ; 加载 “” 的中文码高位 “AD” STA DATA_ADDR LDA #B6h ; 加载 “” 的中文码低位 “B6” STA DATA_ADDR ; 光标所在的位置将显示” 的中文字
RAiO TECHNOLOGY INC. 10/115 www.raio.com.tw
Version 2.5
48-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 #0h ; 选择 LCD Controller Register (LCR) STA REG_ADDR LDA #0h STA REG_ADDR LDA #Ah ; 写入“A5” 到 LCR 缓存器 STA REG_ADDR LDA #5h STA REG_ADDR
LDA #Eh ; 选择 Pattern Data Register (PDR) STA REG_ADDR LDA #0h STA REG_ADDR LDA #5h ; 写入“5A” 到 PDR 缓存器 STA REG_ADDR LDA #Ah STA REG_ADDR
例 题 64-Bit MCU 读取 RA8802/8820 的缓存器的 Data
LDA #0h ; 选择 LCD Controller Register (LCR) STA REG_ADDR LDA #0h STA REG_ADDR LDA REG_ADDR ; 读取 LCR 缓存器的值(High Nibble)
LDA REG_ADDR ; 读取 LCR 缓存器的值(Low Nibble) LDA #Eh ; 选择 Pattern Data Register (PDR)
STA REG_ADDR LDA #0h STA REG_ADDR LDA REG_ADDR ; 读取 PDR 缓存器的值(High Nibble)
LDA REG_ADDR ; 读取 PDR 缓存器的值(Low Nibble)
中文文字/图形
RA8802/8820
LCD
控制器应用手册
RAiO TECHNOLOGY INC. 11/115 www.raio.com.tw
Version 2.5
74-Bit MCU 写入一中文到光标所在的位置
LDA #Bh ; 加载 “” 的中文码高位 “BA” STA DATA_ADDR LDA #Ah STA DATA_ADDR LDA #Fh ; 加载 “” 的中文码低位 “F4” STA DATA_ADDR LDA #4h STA DATA_ADDR ; 光标所在的位置将显示 “” 的中文字
LDA #Ah ; 加载 “” 的中文码高位 “AD” STA DATA_ADDR LDA #Dh STA DATA_ADDR LDA #Bh ; 加载 “” 的中文码低位 “B6” STA DATA_ADDR LDA #6h STA DATA_ADDR ; 光标所在的位置将显示” 的中文字
例 题 84-Bit MCU 读取 Display RAM Data
LDA REG_ADDR ; 读取光标所在的位置的 Display RAM Data(High Nibble)
: :
LDA REG_ADDR ; 读取光标所在的位置的 Display RAM Data(Low Nibble)
: : :
RA8802/8820
中文文字/图形
LCD
控制器应用手册
RAiO TECHNOLOGY INC. 12/115 www.raio.com.tw
Version 2.5
中文文字/图形
RA8802/8820
LCD
控制器应用手册
3. 液晶驱动(LCD Driver)的接口
本章将介绍 RA8802/8820 与液晶显示驱动器(LCD Driver)之间的接口,RA8802 最大可支持 320x240 点的液 晶显示器(LCD Panel),而 RA8820 最大可支持 240x160 点,使用者可以依据在此范围内想设计的显示器 Panel 大小来选择适当的 LCD Driver。图 3-1 RA8802/8820 ST8016 LCD Driver 连接的示意图,用来 驱动 160x160 的液晶显示器面板。
VDD
VSS
DISPOFF
LD0~LD7
RA8802
YD
FRM
LP
XCK
EIO1
MD S/C
L/R
DI0~DI7 EIO2
ST8016
(Common)
FR LP
DISPOFF
XCK
Y1~Y160
160*160 DOT LCD
PANEL
DISPOFF
XCK
EIO2
LP
DI0~DI7
L/R
FR
ST8016
(Segment)
S/C
MD
Y1~Y160
EIO1
3-1RA8802/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
Version 2.5
Total 160 LP for
one frame
FRM
YD
LP
XCK
DATA
COM1 Period
FRM
YD
LP
XCK
DATA
D1 D2D1D39D38D37D12D11D10D9D8D7D6D5
D2
D4D3
RA8802/8820
中文文字/图形
LCD
控制器应用手册
COM (N) Period
FRM
YD
LP
XCK
DATA
D
N-5DN-4DN
-
3
D
N-2DN-1
D
N
D1 D2
3-2RA8802/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
Version 2.5
软件设定:使用者可以透过设定缓存器的方式,来更改对应的显示器大小。可利用显示窗口(Display Window) REG[28h, 38h, 48h, 58h]和工作窗口(Active Window)REG[20h, 30h, 40h, 50h] ,来改变 RA8802/8820 对显示器大小的设定。例如 RA8802,使用者选用的是 320x240 LCD 面板,所使用到的范围
也是 320x240 点的大小,此时的显示窗口与工作窗口的缓存器设定值是相同的。
3-1RA8802/8820 与驱动器 IC 的接口名称对照表
中文文字/图形
RA8802/8820
LCD
控制器应用手册
RA8802/8820
Driver 界面名称
LP
XCK
YD
FRM DF(M)
LD[7:0] D[7:0]
DISPOFF
Driver IC 界面名称 Driver IC 界面名称之定义
LP
LOAD
CL1
CP
SCP
CL2
FLM
FR
FRAME
/DISPOFF
/D.OFF
DISP
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 Display OFF Display OFF Display OFF
RAiO TECHNOLOGY INC. 15/115 www.raio.com.tw
Version 2.5
4. 中文字型 ROM
RA8802/8820
中文文字/图形
LCD
控制器应用手册
4.1
中文字型
ROM
的使用
RA8802/8820 内建有 512KByte 16x16 中文显示字型 ROM(Font ROM),其中 RA8802/8820-T 储存标准 繁体中文 BIG5 码,包含 13,094 个常用与次常用字型、408 个特殊字与两组 ASCII CODERA8802/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
MA[18..0]
4MBit
A[18:0]
MD[7:0]
MCS#
D[7:0]
OE# CE#
4-1RA8802/8820 与外挂字型 ROM(512KByte)之间的电路接口
ADDRESS
INPUT
(MA0~MA18)
MCS
DATA OUT
MD0~MD7
t
ACC
t
CS
DATA ADDRESS
VALID DATA
4-2 RA8802/8820 与外部字型 ROM 的波形图
t
OH
RAiO TECHNOLOGY INC. 16/115 www.raio.com.tw
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 Default Access
中文文字/图形
RA8802/8820
LCD
控制器应用手册
字型 ROM 的转换
7
1:致能 0:禁能 内部/外部字型 ROM 选择
6
1:选择外部字型 ROM 0:选择内部字型 ROM 字型 ROM 的语系选择
5-4
下面的例题在第一章有提到,只要先设定光标位置,然后将要显示的中文其中文码(Big-5 GB )共两个 Byte,透过 MCU 写入 Data Address 既可:
01:选择繁体(BIG5)字型 10:选择简体(GB)字型 文字码的类别选择 (1)
2
1:输入的数据为 ASCII 0:输入 GB 码为中文字
例 题 :8-Bit MCU 写入一中文字 “” 到光标所在的位置
LDA #10010000b ; 选择内部字形 ROM 与繁体字型 Write_REG[F0h] LDA #BAh ; 加载 “” 的中文码高位 “BA” STA DATA_ADDR LDA #F4h ; 加载 “” 的中文码低位 “F4” STA DATA_ADDR ; 光标所在的位置将显示” 的中文字
--
-- 0h R/W
-- 00h R/W
Text 0h R/W
1h R/W
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
Version 2.5
RA8802/8820
中文文字/图形
LCD
控制器应用手册
4.2
自建字型
ROM
RA8802/8820 内建有 512KByte 字型 ROM(Font ROM),也可以开放给客户下 Mask 使用,客户可以自 行编码自建字库,每个字都是 16x16 的字型,因为 16x16 的字形型需要 32Byte 的内存空间,512KbyteROM 共可以储存 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]
000,0000,0000,000 XXXXX 1 000,0000,0000,001 XXXXX 2
: :
111,1111,1111,110 XXXXX 16383 111,1111,1111,111 XXXXX 16384
XXXXX XXXXX
字型 No.
: :
至于 32Byte 的字型储存顺序如图 4-3 所示,假设您想将图 4-4 的字当成 Font ROM 的第一个字形,那么 ROM 00000h~0001Fh 的储存数据如下表 4-2:
RAiO TECHNOLOGY INC. 18/115 www.raio.com.tw
Version 2.5
4-2
Addr[18:5] Addr[4:0] Data
RA8802/8820
中文文字/图形
LCD
控制器应用手册
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 11010 7Eh 11011 FEh 11100 FCh 11101 F8h 11110 F0h 11111 C0h
RAiO TECHNOLOGY INC. 19/115 www.raio.com.tw
Version 2.5
RA8802/8820
中文文字/图形
LCD
控制器应用手册
Byte1 Byte2
: : : : : : : : : : :
: Byte15 Byte16
Byte17 Byte18
: : : : : : : : : : :
: Byte31 Byte32
08h 1Ch 1Ch FFh
7Fh 1Ch 3Eh 3Eh
77h
41h
00h
00h
83h
7Fh
3Fh
0Fh
20h 10h 1Ch 9Eh 1Eh 1Fh 1Fh 1Fh 1Fh 3Fh 7Eh FEh FCh F8h F0h C0h,
4-332Byte 的字型储存顺序 图 4-432Byte 的字型 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 Bit6A[17] 对应 High Byte Bit5,依 此类推,A[11] 对应 Low Byte Bit6A[10] 对应 Low Byte Bit5,直到 A[5] 对应 High Byte Bit0, 至于 High Byte Low Byte Bit7 0 1 皆不影响选择显示的字型。
High B yte
7 6 5 4 3 2 1 0
Low Byte
7 6 5 4 3 2 1 0
18 17 16 15 14 13 12 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
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 000000000 0 0 0 0
: : :
0 0 0 0 0 0 0 00000001 1 1 1 1
RA8802/8820
中文文字/图形
LCD
控制器应用手册
X 0 0 0 0 0 0 0
7 6 5 4 3 2 1 0
High 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,可以储存许多图形在里面!
X 00000 0 0
7 65432 1 0
Low Byte = 00h or 80h
RAiO TECHNOLOGY INC. 21/115 www.raio.com.tw
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 010001010 0 0 0 0
: : :
1 0 1 1 1 0 0 10001011 1 1 1 1
RA8802/8820
中文文字/图形
LCD
控制器应用手册
X 1 0 1 1 1 0 0
7 6 5 4 3 2 1 0
High Byte = 5Ch or DCh
4-7:字型码与 ROM Address 对应的例题(2)
X 10001 0 1
7 65432 1 0
Low Byte = 45h or C5h
RAiO TECHNOLOGY INC. 22/115 www.raio.com.tw
Version 2.5
中文文字/图形
RA8802/8820
LCD
控制器应用手册
5. 液晶示器的亮度
传统的 LCD 亮度调整方式大都是以可调式电阻为主,藉由电阻值的改变去控制供给 LCD 面板的升压电路, 来达到调整 LCD 亮度的目的,使用上非常不方便。因此 RA8802/8820 内建了一个定电流输出的 5-bit 数字­模拟转换器(Digital to Analog Converter, DAC),使用者可以利用这个 DAC 产生不同的电流输出,进而控制 外部的升压电路,使得供给 LCD Panel 高压的电压准位随着 DAC 的设定值而改变,这样透过 MCU 就可以 达到用程序的方法去控制 LCD 的亮度。
IOUT
RA8802/8820
R2
3.9K
R1 680
104
R3
VEE
39K
V1
LM358
100K
100K
100K
VEE
VEE
R7 100K
LM358
V0
LCD
PANEL
5-1:用 DAC 控制 LCD 亮度的应用电路(I)
VDD
VEE
4.7u
IOUT
RA8802/8820
0.1
R1
2.2K
R2 0
R3
200K
4.7u
VIN SHDN
LT1615
L1
SW
GND
FB
R4 1M
R5 100K
R6 39K
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
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
LCD 亮度控制 1:禁能
7
0:致能
中文文字/图形
RA8802/8820
LCD
控制器应用手册
1h R/W
DAC 写入致能 1:不允许 MCU 写数据于 Bit[4..0]
6
0:允许 MCU 写入数据于 Bit[4..0] 重置 LCD 亮度控制功能 1:正常操作
5
0DAC 重置,设 Iout 0uA DAC Iout
00000b Æ 0µA (Min. Current)
4-0
5-3 RA8802/8820 DAC 的输出电流 “Iout” 和图 5-1 LCD 面板的输出电压 “V0”,两者之间的对应曲线
: :
11111b Æ 500uA (Max. Current)
题:
LDA #00111111b ; 设定 LCD 的亮度为最暗 Write_REG[D0h] ; 存入 Data 到缓存器[D0h]LCCR (1) LDA #00110000b ; 设定 LCD 的亮度为最亮 Write_REG[D0h] ; 存入 Data 到缓存器[D0h]LCCR
1h R/W
1h R/W
0h R/W
图。每种 LCD 面板所需要的电压与明亮控制范围不同,因此使用者在开发时应配合 LCD 面板规格、升压电 路与控制 DAC 电流输出范围,才能得到想要的亮度控制,就如同图 5-1 的外部减法器电路,使用者可能需
RAiO TECHNOLOGY INC. 24/115 www.raio.com.tw
Version 2.5
中文文字/图形
RA8802/8820
LCD
要改变 R1, R2 R3,以及用软件的方式和控制 DAC 电流输出范围,才能得到适当的亮度控制。
25.00
20.00
15.00
10.00
V0 (Voltage)
5.00
0.00
0.016
0.
047
0.078
0.
109
0.141
0.
172
0.203
0.2340.266
Iout (mA)
0.2970.328
0.3590.391
0.4220.
453
4
0.48
控制器应用手册
V0
5-3Iout 输出透过亮度调整电路与 V0 的对应曲线图
5-1 是图 5-1 的亮度调整电路的参数表。RA8802/8820 5-bitDAC,因此在 Iout的输出电流会有 2 32 组的电流,当不同的电流输出到减法电路,可以得到 32 组不同的 V0 输出电压供给 LCD 面板,来达到亮 度调整的功能。当使用者搭配不同的 LCD 面板,所需要的电压与明亮控制范围会不同,所以在整个减法电 路的 R1R2 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
5
RAiO TECHNOLOGY INC. 25/115 www.raio.com.tw
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
RA8802/8820
中文文字/图形
LCD
控制器应用手册
1:在上面例题中 “Write_REG[D0h]” 指令实际上是一个子程序,用来将累加器(Accumulator)数据写入到
指定的 RA8802/8820 缓存器内,因此在以后的例题中 “Write_REG[xxh]” 所代表的意义为:
PHA ; 先将累加器(Accumulator)数据存入堆栈(Stack)
LDA #xxh ; 选择指定的缓存器(Register)地址 STA REG_ADDR PLA ; 由堆栈中取出数据存入累加器 STA REG_ADDR ; 写入 Data 到之前指定的缓存器内
相同的在以后的例题中 “Read_REG[xxh]” 指令也是一个子程序,用来读取指定的 RA8802/8820 缓存 器数据,并存入累加器内,因此在以后的例题中 “Read_REG[xxh]” 所代表的意义为:
LDA #xxh ; 选择指定的缓存器(Register)地址 STA REG_ADDR LDA REG_ADDR ; 读取之前指定的缓存器内的 Data
2在表 5-1 R1R2R3,是以 320x240 LCD 面板所得到最佳参数值。
虽然 DAC 可用于控制升压电路,进行对比显示(Contrast)设定,但仍须要注意的是升压电路本身的精确度,
RAiO TECHNOLOGY INC. 26/115 www.raio.com.tw
Version 2.5
即使是同一批号的生压 IC,产生的 VLCD 电压准位也会不同,而且 LCD Panel 对相同 VLCD电压产生的对 比显示效果也不同,因此如果使用 RA8802/8820 DAC 进行对比显示(Contrast)设定,建议仍要加上可调 电阻做为出厂设定。
中文文字/图形
RA8802/8820
LCD
控制器应用手册
RAiO TECHNOLOGY INC. 27/115 www.raio.com.tw
Version 2.5
中文文字/图形
RA8802/8820
LCD
控制器应用手册
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
XL
YU
YD
6-1:触摸面板(Touch Panel)
VCC
SW2
YU
Resistor-Y
XL
VCC
SW0 SW1
Y Plate
X Plate
Electrode
XR
XR
Resistor-X
YD
SW3
GND
6-2:触摸面板与侦测开关
RAiO TECHNOLOGY INC. 28/115 www.raio.com.tw
Version 2.5
中文文字/图形
RA8802/8820
LCD
控制器应用手册
在图 6-3 中,设定开关 SW2 SW3 OFF(Open)SW0 SW1 ON(Close),当有外力在面板上的某 一点压下去时,由 YU 点取得电压接到 ADC(Analog to Digital Converter) ,就可以得到被 Touch 点的 X 坐标 相对位置。
VCC
SW2
To ADC
OFF
XL XR
VCC
SW0
ON
YU
Resistor-Y
Resistor-X
SW1
ON
SW3 OFF
YD
GND
6-3:读取 X 坐标
VCC
V+
VCC
X5 X4 X3 X2 X1
VP
0
X5 X4 X3 X2 X1
P
X
X-axis
6-4Resistor-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
Version 2.5
VCC
SW2
ON
To ADC
YU
Resistor-Y
RA8802/8820
中文文字/图形
LCD
控制器应用手册
Y-axis
VCC
XL
SW0 OFF
SW3
ON
6-5:读取 Y 坐标
VCC
Y1
Y2
Y3
Y4
Y5
YD
XR
SW1
Resistor-X
GND
OFF
VCC
V+
VP
0
Y1 Y2 Y3 Y4 Y5
P
6-6Resistor-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
Version 2.5
中文文字/图形
RA8802/8820
LCD
控制器应用手册
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
X1 X2 Y1 Y2
Iref
VREF
30pF 2.3K
6-7RA8802/8820 的触摸式面板应用电路
VCC
500K
ADET
XL
VCC
SW0
ON
SW2 OFF
YU
Resistor-Y
Resistor-X
Touch Panel
XL XR YU YD
20pF
XR
SW1 OFF
YD
SW3
ON
GND
6-8RA8802/8820 的触摸式面板的侦测
RAiO TECHNOLOGY INC. 31/115 www.raio.com.tw
Version 2.5
開始
開啟觸摸偵測
(
設定暫存器
Bit[7:4]=0000, Bit[3:0]=1000)
TPCR:
RA8802/8820
中文文字/图形
LCD
控制器应用手册
觸摸發生
ADET=0
Yes
設定暫存器
Bit[3:0] =1100(SW2,3
讀取暫存器
讀取Y座標
Bit[3:0] =0011(SW0,1
Read Row Data
讀取暫存器
From TPDR
讀取X座標
Yes
暫存器
(Column Data)
設定暫存器
*3
(Row Data)
繼續偵測
No
關閉觸控功能
TPCR Bit[7:4]=1111
?
TPCR:
TPDR
TPCR:
TPDR
?
Æ
Æ
No
On)
On)
結束
6-9:触摸式面板读取的控制流程图
RAiO TECHNOLOGY INC. 32/115 www.raio.com.tw
Version 2.5
REG [C0h] Touch Panel Control Register (TPCR)
Bit Description Default Access
触控屏幕功能启动 0:致能
7
1:禁能 触控屏幕数据输出 0:致能触控屏幕的数据输出
6
1:禁能触控屏幕的数据输出 触控状态指示位 0:触控发生
4
1:触控未发生 触控屏幕控制位
Bit3 = 0 Æ Switch SW3 OFF, Bit3 = 1 Æ Switch SW3 ON
3-0
Bit2 = 0 Æ Switch SW2 OFF, Bit2 = 1 Æ Switch SW2 ON
RA8802/8820
中文文字/图形
LCD
控制器应用手册
1h R/W
1h R/W
1h R
6-2
R/W 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 Description Default Access
7-0
下面的程序例题是说明如何判断触摸式面板被 “Touch” 及如何读取 ADC Data 值。
储存触控屏幕的行、列相对位置数据
例 题:
LDA #00101000b ; Touch Panel 功能开启 Write_REG[C0h] Read_REG[C0h] ; 侦测 Touch Panel 是否被 “Touch”
: :
LDA #00101100b ; 切换模拟开关,准备读取垂直数据 Write_REG[C0h] Read_REG[C8h] ; 读取垂直相对位置(Get Column Data)
: :
LDA #00100011b ; 切换模拟开关,准备读取水平数据 Write_REG[C0h] Read_REG[C8h] ; 读取水平相对位置(Get Row Data)
: :
0h R
RAiO TECHNOLOGY INC. 33/115 www.raio.com.tw
Version 2.5
中文文字/图形
RA8802/8820
LCD
控制器应用手册
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
0.22u
u
0.022
2.7K
註解:震盪頻率可以由外部電阻(
20p
20p
Rf
增加或者供應電源的電壓減低,則震盪頻率會下降。
32768Hz
振盪器的方式
RA8802
LPF
XA
XB
RA RB
Rf
(2)
使用
RC-
振盪器的方式
RA8802
RA
Rf
RB
LPF XA XB
)來做調整。由電器特性可知兩者之關係,當電阻值
7-1RA8802/8820 的系统时序产生方式与接线图
由于 RC-振荡器方式会随外部电压不同而有所飘移,因此如果选择 RC-振荡器的方式,则不同的外部电阻 RfVDD 将产生不同的系统时序,请参考图 7-2
RAiO TECHNOLOGY INC. 34/115 www.raio.com.tw
Version 2.5
10.00
8.00
RA8802/8820
中文文字/图形
LCD
控制器应用手册
6.00
4.00
2.00
Rf=4.7K
Rf=3.9K
Rf=2.2K
System clock (MHz)
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 ( Volt age)
7-2Resister (Rf)与系统频率(System Clock)对应曲线图
如果是使用外部 X’tal(32.678KHz)与锁相回路(PLL)所产生的系统频率(System Clock),则不同电压(VDD)对 系统频率所产生的影响将非常小,RA8802/8820 的锁相回路(PLL)所产生的系统频率(System Clock)约为 8MHz 左右,如表 7-1 所示。
7-1X’tal(32.678KHz)与系统频率(System Clock)
VDD 2.4V 2.7V 3.0V 3.3V 3.6V 3.9V 4.2V 4.5V 4.8V 5.1V
PLL 所产生的系统频率
(MHz)
8.02 8.02 8.02 8.03 8.02 8.02 8.02 8.03 8.04 8.03
RAiO TECHNOLOGY INC. 35/115 www.raio.com.tw
Version 2.5
8. 硬件的
RA8802/8820
中文文字/图形
LCD
控制器应用手册
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 将这些硬件的启始设定列出供使用者 参考。
SYS_MI 是用来做 MCU 形式之选择。 如果 SYS_MI 外接一 Pull Low 电阻,则 RA8802/8820 MCU 接口将定义成 8080。否则
RA8802/8820 MCU 接口将定义成 6800
SYS_DB 是选择 MCU 的数据总线为 4 位或 8 位。 如果 SYS_DB 外接一 Pull Low 电阻,则 RA8802/8820 MCU Data Bus 接口将定义成 4-
Bit。否则 RA8802/8820 MCU Data Bus 界面将定为 8-Bit。
与系统设定
Bit
7 LD7/SYS_MI MCU Type Select M6800 8080
6 LD6/SYS_DB MCU Data Bus Select 8-bit 4-bit
8-1:硬件的启始设定
脚 位 名 称 简 述
“1” mean
(Pull High)
“0” mean
(Pull Low)
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
OPM0 OPM1 是用来选择 RA8802/8820 的测试模式,一般使用者直接将 OPM0
OPM1 视为 NC Pin 既可。
Operation Mode Set “1”
RAiO TECHNOLOGY INC. 36/115 www.raio.com.tw
Version 2.5
中文文字/图形
RA8802/8820
LCD
控制器应用手册
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
R=10K or N/C
R=1K~2.2Kohm
RA8802/8820
LD7/SYS_MI LD6/SYS_DB LD2/SYS_PLR
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
From MCU
0.1uF
RA8802/8820
RST#
(1) (2)
VDD
100K
2.2uF
RA8802/8820
RST#
8-2:重置脚位 RST# 的接法范例
8-2 是一 Reset Pin – RST# 的应用范例,它可以由 MCU 来控制如图 8-2 (1),或是由一 RC 电路来产
RAiO TECHNOLOGY INC. 37/115 www.raio.com.tw
Version 2.5
中文文字/图形
RA8802/8820
LCD
控制器应用手册
生,如图 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 例,t 须大于 250mst
必须大于 50ms,足够的重置时间才能确定 RA8802/8820 Reset 完成。
RSTH
tRST
RST#
Internal
State
During Reset Reset Complete
tRSTH
8-2A:重置脚位 RST# 的时序
下图 8-3 为一般 RA8802/8820 电源开启或重置(Power On/Reset)的程序说明,此范例也是以 RA8802 使用
320x240 pixel LCD Panel 例子,说明设定方式的流程。
RST
RAiO TECHNOLOGY INC. 38/115 www.raio.com.tw
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
RA8802/8820
中文文字/图形
LCD
控制器应用手册
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
Version 2.5
RA8802/8820
中文文字/图形
LCD
控制器应用手册
8.3
缓存器的起始设定
RA8802/8820 的缓存器在系统电源开启或重置(Power On/Reset)时大都会产生 Default 的值,但是随系 统应用不同等因素,若干缓存器最好在电源开启或重置后进行设定,表 8-2 提供基本的缓存器设定范 例。
lda #11000101b ; 设定显示工作模式 jsr Write_R00 lda #02h ; 设定 System Clock, 此例为 4MHz jsr Write_R01
lda #01101001b ; 游标相关信息 jsr Write_R10 lda #22h ; 设定光标高度与行距 jsr Write_R18 lda #39 ; 设定工作窗口(Active window)右边位置 Æ Segment-Right ; 此例为 320x240, 工作窗口与显示窗口设成一样 jsr Write_R20 lda #239 ; 设定工作窗口(Active window) 底边位置 Æ Common-Bottom jsr Write_R30 lda #0 ; 设定工作窗口(Active window)左边位置 Æ Segment-Left jsr Write_R40 lda #0 ; 设定工作窗口(Active window) 顶边位置 Æ Common-Top jsr Write_R50 lda #39 ; 设定显示窗口(Display Window)右边位置 Æ Segment-Right jsr Write_R28 lda #239 ; 设定显示窗口(Display Window) 底边位置 Æ Common-Bottom jsr Write_R38 lda #0 ; 设定显示窗口(Display Window) 左边位置 Æ Segment-Left jsr Write_R48 lda #0 ; 设定显示窗口(Display Window) 顶边位置 Æ Common-Top jsr Write_R58 lda #0 ; 设定光标 Segment 地址 jsr Write_R60 lda #0 ; 设定光标 Common 地址 jsr Write_R70 lda #33h ; 光标闪烁时间设定 jsr Write_R80 lda #0Ah ; 设定 XCK 讯号周期 jsr Write_R90
lda #C0h ; LCD 亮度控制(DAC 功能) , 没用到可不设定 jsr Write_RD0
rts
: Write_Rxx 是一写入 Data 到缓存器 xx 的子程序。
8-2:基本的缓存器设定范例
RAiO TECHNOLOGY INC. 40/115 www.raio.com.tw
Version 2.5
RA8802/8820
中文文字/图形
LCD
控制器应用手册
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
Version 2.5
9. RA8802/8820 功能用介
RA8802/8820
中文文字/图形
LCD
控制器应用手册
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 接口是 8- Bit,则 MCU 必须分两次将中文字码的 High Byte & Low Byte)写入 RA8802/8820,而英文或数字码只占 一个 Byte,因此只要将内码一次写入 RA8802/8820 既可。RA8802 支持之最大显示像素范围为 320x240
RAiO TECHNOLOGY INC. 42/115 www.raio.com.tw
Version 2.5
点,若以显示文字为例,全角字型(16x16)即是 20 x15 列,半角字型(8x16)则可以显示到 40 x15 列。RA8820 支持之最大显示像素范围为 240x160 点,若以显示文字为例,全角字型即是 15 x10
列,半角字型则可以显示到 30 行 x10列。表 9-1 为图 9-2 所示之全角(中文)与半角文字的字型码,下面例 题程序就是说明如何显示图 9-2 的画面。
9-1:文字码的对照表(BIG5
显示字型 字型码 显示字型 字型码 显示字型 字型码
RA8802/8820
中文文字/图形
LCD
控制器应用手册
瑞 佑 科 技 股 份 有 限 公 司
R 52 A 41 w 77
I 49 r 72
O 4F a 61 T 45 i 69
例 题:
B7E7 E 45 o 6F A6F6 C 43 c 63
ACEC H 48 m 6D
A7DE N 4E t 74 AAD1 L 4C
A5F7 G 47 A6B3 Y 59 8 38
ADAD . 2E 6 36
A4BD
A571
LDA #B7h ; 写入 “瑞” 的字型码 High Byte STA DATA_ADDR LDA #E7h ; 写入 “瑞” 的字型码 Low Byte STA DATA_ADDR ; 在光标所在位置会显示 “瑞”
LDA #A6h ; 写入 “佑” 的字型码 STA DATA_ADDR LDA #F6h STA DATA_ADDR
LDA #ACh ; 写入“科” 的字型码 STA DATA_ADDR
网 页 :
电 话
BAF4 3 33 ADB6 5 35
3A 7 37
传 真
20B7 71B8
20B6
C7AF
RAiO TECHNOLOGY INC. 43/115 www.raio.com.tw
Version 2.5
9.1.2
粗体字之显示功能
LDA #ECh STA DATA_ADDR
LDA #A7h ; 写入“技” 的字型码 STA DATA_ADDR LDA #DEh STA DATA_ADDR
LDA #AAh ; 写入“股” 的字型码 STA DATA_ADDR LDA #D1h STA DATA_ADDR
LDA #A5h ; 写入“份” 的字型码 STA DATA_ADDR LDA #F7h STA DATA_ADDR
: : : ; 其它依序写入文字内码
RA8802/8820
中文文字/图形
LCD
控制器应用手册
RA8802/8820 的中英文显示都可以秀出粗体字的显示效果,图 9-3 说明欲表现粗体字的显示效果时,缓 存器应如何设定:
1. 設定暫存器 [10h] bit4=1
2. 寫入中文字型的
Big5GB
9-3:粗体字的显示
RAiO TECHNOLOGY INC. 44/115 www.raio.com.tw
Version 2.5
REG [10h] Cursor Control Register (CCR)
Bit Description Text/Graph Default Access
设定粗体字型(仅文字模式适用) 0:正常字型
4
1:粗体字型
例 题:
9.2
绘图模式设定
RA8802/8820 的绘图模式是以字符映像(bit map)方式填入图形数据在 Display RAM 上,图 9-4 说明进入绘
Read_REG[10h] ; 粗体字型显示 SMB4 ; 设定缓存器[10h] bit4=1 Write_REG[10h] ; 将数据存入缓存器[10h]
中文文字/图形
RA8802/8820
LCD
控制器应用手册
Text 1h R/W
图模式时,缓存器要如何设定:
1. 設定 REG [00h] bit3=0
2. 使用字元映射(bit
map)方式填入圖形資
9-4:绘图模式的显示
REG [00h] LCD Controller Register (LCR)
Bit Description Text/Graph Default Access
选择显示工作模式 1:文字模式,写入的数据会被视为是 GB/BIG/ASCII 等字码。
3
0:绘图模式,写入的数据会被视为是 Bit-Map 的模式。
题:
Read_REG[00h] ; 图形模式的设定
-- 1h R/W
RMB3 ; 设定缓存器[00h] bit3=0 Write_REG[00h] ; 存入数据到缓存器[00h]
RAiO TECHNOLOGY INC. 45/115 www.raio.com.tw
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)上,而构成文 字、符号或图形之显示效果。
D7 D6 D5 D4 D3 D2 D1 D0
0 1 2 3 4 5 6 7 …..
中文文字/图形
Segment
RA8802/8820
LCD
控制器应用手册
1 1 1 0 0 1 1 0
Display Data RAM Display On LCD
9-5Display Data LCD 显示的映像
以下程序就是以图 9-5 做例子,用绘图模式在 LCD Panel 的左上角秀出 Pattern
例 题:
LDA #00h ; 将目前光标的行与列地址写入 “00” Write_REG[60h]
Write_REG[70h] LDA #E6h ; 在 LCD Panel 的左上角秀出 “E6” 的图形 Pattern STA DATA_ADDR
RAiO TECHNOLOGY INC. 46/115 www.raio.com.tw
Version 2.5
320
RA8802/8820
中文文字/图形
LCD
控制器应用手册
D7 D 6 D5 D4 D 3 D2 D1 D0 D7 D 6 D5 D4 D 3 D 2 D1 D0
00 01 02 03
: : : : : : ;
: 236 237 238 239
Display Data RAM
D7 D 6 D5 D4 D 3 D2 D1 D0 Æ (40Bytes)
9-6Display Data RAM 的格式(320 x 240)
在绘图模式下,若要读取 Display RAM 的数据时,如果光标的设定有自动加一的功能,数据读取方向如图 9-7 所示(以 320x240 显示器为例)。
240
0 1 2 3 …………….……………………….39(Byte)
00 01 02
: : :
239
320 x 240Pixel
9-7:图形模式时数据读取方向
RAiO TECHNOLOGY INC. 47/115 www.raio.com.tw
Version 2.5
RA8802/8820
中文文字/图形
LCD
控制器应用手册
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
闪烁模式选择
0:正常显示
1
1:整个屏幕闪烁,闪烁时间由缓存器[80h]BTR 来设定
Text/Graph 0h R/W
RAiO TECHNOLOGY INC. 48/115 www.raio.com.tw
Version 2.5
题:
READ_REG[00h] SMB1 ; 设定缓存器[00h] bit1=1 Æ 屏幕闪烁
Write_REG[00h] ; 存入数据到缓存器[00h]
RA8802/8820
中文文字/图形
LCD
控制器应用手册
9.3.2
屏幕反白
如果要将 LCD 画面全部反白只要设定缓存器[00]Bit0 既可,图 9-9 说明要反白显示时,缓存器要如何 设定:
9-9:屏幕反白
REG [00h] LCD Controller Register (LCR)
Bit Description Text/Graph Default Access
屏幕反白模式选择 1:正常显示
0
0:全屏幕反白显示,DDRAM 内的数据会被全部反相。
题:
Read_REG[00h] RMB0 ; 设定缓存器[00h] bit0=0 Æ 屏幕反白
RAiO TECHNOLOGY INC. 49/115 www.raio.com.tw
Text/Graph 1h R/W
Version 2.5
RA8802/8820
中文文字/图形
LCD
控制器应用手册
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
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 1:直接储存数据于 DDRAM
5
0:存入相反的数据于 DDRAM
题:
Read_REG[10h] RMB5 ; 设定缓存器[10h] bit5=0 Æ 区块反白 Write_REG[10h] STA DATA_ADDR
: :
Read_REG[10h] SMB5 ; 设定缓存器[10h] bit5=1, 恢复原来的正常显示 Write_REG[10h] STA DATA_ADDR
RA8802/8820
中文文字/图形
Text 1h R/W
LCD
控制器应用手册
9.4 中/
英文文字对齐
由于英文字体与中文字体所占的宽度不一样,因此在显示中文英文都有的画面时必须考虑整体显示效果, RA8802/8820 可以设定中文英文显示时不同行的显示效果以决定文字是否对齐,图 9-11 说明要表现出中英 文文字对齐之情形时,缓存器要如何设定:
1. Set REG [10h] bit6=1
2. W rite 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
Version 2.5
REG [10h] Cursor Control Register (CCR)
Bit Description Text/Graph Default Access
/英文字对齐 1:致能
RA8802/8820
中文文字/图形
LCD
控制器应用手册
6
0:禁能
此功能仅在文字模式时有效,可以将全角与半角混合显示时作对 齐调整。
例 题:
Read_REG[10h] SMB6 ; 设定缓存器[10h] bit6=1Æ 中/英文字对齐 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控制器
Text 1h R/W
9-12:文字不对齐的显示范例
例 题:
Read_REG[10h] RMB6 ; 设定缓存器[10h] bit6=0 Æ 中/英文字不对齐 Write_REG[10h]
RAiO TECHNOLOGY INC. 52/115 www.raio.com.tw
Version 2.5
9.5 LCD
9.6
屏幕显示
REG [00h] LCD Controller Register (LCR)
Bit Description Text/Graph Default Access
设定屏幕显示为开启或关闭,此位用来控制连接到 LCD 驱动 IC 接口的 “DISP_OFF” 信号
2
光标
1 “DISP_OFF” 信号输出 High(屏幕显示开启) 0 “DISP_OFF” 信号输出 Low(屏幕显示关闭)
On/Off
On/Off
例 题:
设定
设定
Read_REG[00h] RMB2 ; 设定缓存器[10h] bit2=0 Æ 屏幕显示 Off Write_REG[00h]
RA8802/8820
中文文字/图形
Text/Graph 0h R/W
LCD
控制器应用手册
REG [10h] Cursor Control Register (CCR)
Bit Description Text/Graph Default Access
光标显示 On/Off 设定 1:设定光标显示 On
2
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 为单位,
Text/Graph 0h R/W
例如想在 Panel 的左上角秀出瑞” ,则必须设定光标缓存器 CPXR = 00hCPYR = 00h,又例如想在 Panel 的左上角第三个全角位置秀出佑” ,则必须设定光标缓存器 CPXR = 04h,CPYR = 00h,同理, 想在 Panel 的左上角第二行第一个全角位置秀出科” ,则必须设定光标缓存器 CPXR = 00hCPYR =
RAiO TECHNOLOGY INC. 53/115 www.raio.com.tw
Version 2.5
10h,请参考图 9-13 及如下面的例题。
RA8802/8820
中文文字/图形
LCD
控制器应用手册
00 01 02 03 04 05 06
00
: : : :
10
: : : :
20
: : : : : : : : : : :
EF
320(Segment) x 240(Common)
…………………………………....
.. 39
9-13:光标位置设定的显示范例
REG [60h] Cursor Position X Register (CPXR)
Bit Description Default Access
7-6 Reserved 0h R 5-0
设定光标 Segment 地址
0h R/W
REG [70h] Cursor Position Y Register (CPYR)
Bit Description Default Access
7-0
设定光标 Common 地址
0h R/W
题:
LDA #00h ; 设定光标的 Segment 地址 Write_REG[60h] LDA #10h ; 设定光标的 Common 地址 Write_REG[70h] LDA #ACh ; 写入 “科” 的字型码 High Byte STA DATA_ADDR LDA #ECh ; 写入 “科” 的字型码 Low Byte
RAiO TECHNOLOGY INC. 54/115 www.raio.com.tw
Version 2.5
STA DATA_ADDR ; 在光标所在位置 Æ Panel的左上角第二行第一个全角位
; 置会显示
不论文字或是绘图模式,都是使用缓存器[60h]CPXR [70h]CPYR 来设定光标的地址,如下图 9-14 所 示,在绘图模式下设定光标缓存器 CPXR = 00hCPYR = 10h,则由 DDRAM 读到的的数值会是
“00h”,如果缓存器 CPXR = 00hCPYR = 12hDDRAM 读到的数值会是 “78h”,又如缓存器 CPXR = 00h,CPYR = 14h,DDRAM 读到的数值会是 “0Ah”。请参考图 9-15
00 01 02 03 04 ……………………………………..  .. 39
00
: : : :
RA8802/8820
中文文字/图形
LCD
控制器应用手册
EF
10
20
: : : :
: : : : : : : :
::
320(Segment) x 240(Common)
9-14:光标位置设定与 DDRAM 的读取范例
Bit Bit
00h
78h
0Ah
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
9-15:将图 9-14 字放大
RAiO TECHNOLOGY INC. 55/115 www.raio.com.tw
Version 2.5
9.7.2
游标移位
REG [10h] Cursor Control Register (CCR)
Bit Description Text/Graph Default Access
光标自动移位设定,此 Bit 用来设定当数据读出 DDRAM 时,光 标是否自动移位。
7
1:致能 0:禁能
光标自动移位设定,此 Bit 用来设定当数据写入 DDRAM 时,光标 是否自动移位,如果此位被 Enable,则不论在文字或是绘图模 式,光标都会自动移位。
3
1:致能
RA8802/8820
中文文字/图形
Text/Graph 1h R/W
Text/Graph 0h R/W
LCD
控制器应用手册
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 决定。 0:游标不闪烁
Read_REG[10h]
Text/Graph 0h R/W
RMB1 ; 设定缓存器[10h] bit1=0 Æ 游标不闪烁 Write_REG[10h]
RAiO TECHNOLOGY INC. 56/115 www.raio.com.tw
Version 2.5
RA8802/8820
中文文字/图形
LCD
控制器应用手册
9.8.1
光标闪烁时间设定
REG [80h] Blink Time Register (BTR)
Bit Description Text/Graph Default Access
光标/屏幕闪烁时间设定
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
题:
Text/Graph 23h R/W
LDA #35h Write_REG[80h] ; 设定光标闪烁时间 = 885ms Read_REG[10h] SMB1 ; 设定缓存器[10h] bit1=1 Æ 游标闪烁 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
Version 2.5
REG [18h] Cursor Size Control Register (CSCR)
Bit Description Text/Graph Default Access
RA8802/8820
中文文字/图形
LCD
控制器应用手册
7-4
9.9.2
REG [10h] Cursor Control Register (CCR)
Bit Description Text/Graph Default Access
设定光标高度(默认值是 2
例 题:
LDA #00100010b ;设定 REG[18h]的 MSB=0010b,游标高度为 2 个 pixel Write_REG[18h]
游标宽度
RA8802/8820 在做文字显示时,有提供两种光标宽度的设定。第一种为 REG[10h] bit0=0 时,光标的宽 度将会固定为 1 个 Byte 的宽度(也就是 8 个 Pixel)。第二种为 REG[10h] bit0=1 时,光标的宽度会随着所 输入文字来做变化,例如当输入一个全角字时,文字后面的光标宽度会自动变为 2 个 Byte(也就是 16 个 Pixel)。当输入一个半角字时,文字后面的光标宽度会自动变为 1 个 Byte。
设定光标宽度
1:会随着输入的数据而变动光标宽度,当数据为半型时,光标为
Text 0010h R/W
0
一个字节宽度(8 Pixel),当数据为全型时,光标为二个字节 宽度(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]
Text 0h R/W
RAiO TECHNOLOGY INC. 58/115 www.raio.com.tw
Version 2.5
RA8802/8820
中文文字/图形
LCD
控制器应用手册
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 Description Default Access
7-6
5-0
保留 设定显示窗口(Display Window)右边位置 Æ Segment-Right (注 1)
Segment_ Right = (Segment Number / 8) – 1
RA8802: 如果 LCD Panel 320x240,则此缓存器的值为:
( 320 / 8 ) – 1 = 39 = 27h
0h R/W
0h R/W
RA8820: 如果 LCD Panel 240x160,则此缓存器的值为: ( 240 / 8 ) – 1 = 29 = 1Dh
REG [38] Display Window Bottom Register (DWBR)
Bit Description Default Access
设定显示窗口(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 Default Access
7-0
设定显示窗口(Display Window) 左边位置 Æ Segment-Left (注 1) 通常将此缓存器的值设定为 “00h”.
xxh R/W
0h R/W
RAiO TECHNOLOGY INC. 59/115 www.raio.com.tw
Version 2.5
REG [58] Display Window Top Register (DWTR)
Bit Description Default Access
RA8802/8820
中文文字/图形
LCD
控制器应用手册
7-0
1光标地址应设定在显示窗口的范围内,因此缓存器[60h, 70h][B0h, B8h][28h, 38h, 48h, 58h]的设
REG [20h] Active Window Right Register (AWRR)
Bit Description Default Access
7-6 5-0
REG [30h] Active Window Bottom Register (AWBR)
Bit Description Default Access
7-0
REG [40h] Active Window Left Register (AWLR)
Bit Description Default Access
设定显示窗口(Display Window) 顶边位置 Æ Common-Top (注 1) 通常将此缓存器的值设定为 “00h”.
定必须遵照以下的规范:
1. AWRR≧CPXR≧AWBR, AWRR≧INTX≧AWBR
2. AWLR≧CPYR≧AWTR, AWLRINTYAWTR
保留 设定工作窗口(Active window)右边位置 Æ Segment-Right (注 2)
设定工作窗口(Active window) 底边位置Æ Common-Bottom (2)
0h R/W
0h R
xxh R/W
xxh R/W
7-6 5-0
REG [50h] Active Window Top Register (AWTR)
Bit Description Default Access
7-0
2REG [20h, 30h, 40h, 50h] 可作为换行/换页的功能,可让使用者利用这 4 Register自行设定一个区
RAiO TECHNOLOGY INC. 60/115 www.raio.com.tw
保留 设定工作窗口(Active window)左边位置 Æ Segment-Left (注 2)
设定工作窗口(Active window) 顶边位置 Æ Common-Top (注 2)
块为工作窗口(Active Window)。当数据超过窗口的右边界 REG [20h, 30h, 40h, 50h]所设定的值,光 标会自动换行(也就是光标移到工作窗口的左边界 REG[40h]所设定的值),继续将数据写入。当数据写 入到工作窗口的右下角时(REG[20h]与[30h]所设定的值),会自动把光标移到工作窗口的的左上角
(REG[40h, 50h]所设定的值),继续的将数据填入窗口。
0h R 0h R/W
0h R/W
Version 2.5
中文文字/图形
RA8802/8820
LCD
控制器应用手册
REG [08h] Misc. Register (MIR)
Bit
Description
Default Access
切换窗口模式 1:工作窗口 (Active window)
5
0h R/W
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 #EFh ; 设定 DWBR = 240 –1 = 239 = EFh Write_REG[38h]
LDA #00h Write_REG[48h] ; 设定 DWLR, DWTR = 00h Write_REG[58h]
LDA #13h ; 设定 Active Window is 160x160 pixel
RAiO TECHNOLOGY INC. 61/115 www.raio.com.tw
Version 2.5
中文文字/图形
RA8802/8820
LCD
控制器应用手册
Write_REG[20h] ; 设定 AWRR = (160)/8 –1 = 19 = 13h LDA #9Fh Write_REG[30h] ; 设定 AWBR = 160 –1 = 159 = 9Fh 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
:
80 80
: : : : :
: : :
Active Window
160 x 160
80
240
Display Window
320 x 240
9-18:例题 2 的显示窗口与工作窗口
例 题 2:
LDA #27h ; 设定 Display Window is 320x240 pixel Write_REG[28h] ; 设定 DWRR = (320/8) –1 = 39 = 27h LDA #EFh ; 设定 DWBR = 240 –1 = 239 = EFh Write_REG[38h]
LDA #00h Write_REG[48h] ; 设定 DWLR, DWTR = 00h Write_REG[58h]
LDA #1Dh ; 设定 Active Window is 160x160 pixel
RAiO TECHNOLOGY INC. 62/115 www.raio.com.tw
Version 2.5
中文文字/图形
RA8802/8820
LCD
控制器应用手册
Write_REG[20h] ; 设定 AWRR = (240/8) –1 = 29 = 1Dh LDA #9Fh Write_REG[30h] ; 设定 AWBR = 160 –1 = 159 = 9Fh LDA #09h Write_REG[40h] ; 设定 AWLR = (80/8)-1 = 9 = 09h LDA #00h Write_REG[50h] ; Setup the AWTR = 00h
下面的例题 3 是以 RA8820 为例,设定 LCD Panel 的显示窗口为 240x160,工作窗口为 128x128 且位于显 示窗口的左上角,如图 9-19 所示。
240
0 1 2 …………………….. .127 128 …………..……………….. 239
0 1 2
: : : : : :
: 127 128
:
:
: 159
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 #9Fh ; 设定 DWBR = 160 –1 = 159 = 9Fh Write_REG[38h]
LDA #00h Write_REG[48h] ; 设定 DWLR, DWTR = 00h Write_REG[58h]
LDA #0Fh ; 设定 Active Window is 128x128 pixel Write_REG[20h] ; 设定 AWRR = (128)/8 –1 = 15 = 0Fh
RAiO TECHNOLOGY INC. 63/115 www.raio.com.tw
Version 2.5
中文文字/图形
RA8802/8820
LCD
控制器应用手册
LDA #7Fh Write_REG[30h] ; 设定 AWBR = 128 –1 = 127 = 7Fh LDA #00h Write_REG[40h] ; Setup the AWLR, AWTR = 00h Write_REG[50h]
下面的例题 4 则是设定 LCD Panel 的显示窗口为 240x160,工作窗口为 128x128 位于显示窗口的中上角, 如图 9-20 所示。
240
0 1 2 …………79 80……………………………. .208 …… . 
0 1 2
:
128 129
159
: : : : : :
:
80
Active Window
128 x 128
32
Display Window
240 x 160
239
32
160
9-20:例题 4 的显示窗口与工作窗口
例 题 4:
LDA #1Dh ; 设定 Display Window is 240x160 pixel Write_REG[28h] ; 设定 DWRR = (240/8) –1 = 29 = 1Dh LDA #9Fh ; 设定 DWBR = 100 –1 = 159 = 9Fh Write_REG[38h]
LDA #00h Write_REG[48h] ; 设定 DWLR, DWTR = 00h Write_REG[58h]
LDA #19h ; 设定 Active Window is 128x128 pixel Write_REG[20h] ; 设定 AWRR = (208/8) –1 = 25 = 19h LDA #7Fh Write_REG[30h] ; 设定 AWBR = 128 –1 = 127 = 7Fh
RAiO TECHNOLOGY INC. 64/115 www.raio.com.tw
Version 2.5
LDA #09h Write_REG[40h] ; 设定 AWLR = (80/8)-1 = 9 = 09h LDA #00h Write_REG[50h] ; Setup the AWTR = 00h
RA8802/8820
中文文字/图形
LCD
控制器应用手册
9.11
行距设定
RA8802/8820 在做文字显示时,提供了行距设定的功能,尤其是做中文显示时,每一行如果有适当的间隔, LCD 的显示画面看起来会比较舒适。RA8802/8820 行与行相隔的间距设定范围为 1~16 Pixel 的高度,使用
者可依需求来决定行与行间距的大小,一旦设定后,当每填完一行的中文字,跳到下一行时,其行距会依照 先前所设定的间距来显示。
REG [18h] Cursor Size Control Register (CSCR)
Bit Description Text/Graph Default Access
3-0
9.12
自动填入数据到
REG [E0h] Pattern Data Register (PDR)
Bit Description Text/Graph Default Access
行距设定
例 题:
Text 0010h R/W
LDA #00100010b ; 设定 LSB=0010, Write_REG[18h] ; 行距为 2 个 pixels 的高度
DDRAM
设定写入到 DDRAM 的数据
当缓存器[F0h]bit3 ‘1’RA8802/8820 内部将自动读取
7-0
REG [F0h] Font Control Register (FCR)
Bit Description Text/Graph Default Access
3
RAiO TECHNOLOGY INC. 65/115 www.raio.com.tw
本缓存器[E0h] Data,然后全部填写到 DDRAM 内,之后 缓存器[F0h]bit3 被清除为 ‘0’
重复写入 REG [E0h]的数据到 DDRAM
1:开始写入 0:未动作
题:
LDA #FFh ; 设定写入到 DDRAM Data = FFh, Write_REG[E0h]
Graph 0h R/W
Graph 0h R/W
Version 2.5
9.13
屏幕更新频率设定
REG [90h] Shift Clock Control Register (SCCR)
Bit Description Default Access
Read_REG[F0h] ; 设定缓存器[F0h]的 bit3 为 ‘1’ SMB3 Write_REG[F0h] ; 将屏幕数据全部填入 “FF” Æ 硬件开始清除屏幕
设定 XCK 讯号周期
SCCR = (SCLK x DBW) / (Column x Row x FRS)
SCLK:系统频率(System Clock) (单位:Hz)
RA8802/8820
中文文字/图形
LCD
控制器应用手册
7-0
如果设定数值太大,会造成 LCD 屏幕闪动,有时会伴随水波纹产生,除降低数值外也可以提高系统频率来
DBWLCD Driver Data Bus 宽度(单位:Bit)
-- R/W
ColumnLCD 面板的 Segment 大小(单位:Pixel) RowLCD 面板的 Common 大小 (单位:Pixel) FRSLCD 面板的 Frame Rate(单位:Hz)
题:
1. 如果使用 X’tal + PLL 的方式,系统频率(SCLK) = 8MHz
2. LCD Driver Data Bus 宽度(DBW) = 8Bit
3. 使用 320 x 240 Pixel LCD 面板,Column = 320Row = 240
4. LCD 面板的 Frame Rate 为 70Hz
SCCR = (8MHz x 8) / (320 x 240 x 70) = 11.9
所以建议设定 SCCR = 12 = 0Ch
解决Æ 调整 REG[08h] 设定数值。为达到良好 LCD 显示质量,使用者必须根据 Panel、Driver 之特性与 VLCD 电压、系统频率等等进行调整。
9.14
RAiO TECHNOLOGY INC. 66/115 www.raio.com.tw
(Interrupt)
中断
RA8802/8820 提供一中断信号线(INT)用来表示有三种中断讯息可能发生:
1. 假如光标 Segment 地址缓存器(CPXR)Segment 中断地址缓存器(INTX)值相同,发生中断。
2. 假如光标 Common 地址缓存器(CPYR)Common 中断地址缓存器(INTY)值相同,发生中断。
与忙碌
(Busy)
设定
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
忙碌状况指示
中文文字/图形
RA8802/8820
LCD
控制器应用手册
7
6
5
4
3
1RA8802/8820 为忙碌状态,MCU 需暂时等候到忙碌状态终止 0RA8802/8820 为闲置状态,随时可接受 MCU 存取
触控屏幕中断旗标 1:触控屏幕有侦测到接触(Touch) 0:触控屏幕未侦测到接触未触控
光标 Column 状态 1:光标的 Column 等于缓存器[B0h]INTX 0:光标的 Column 不等于缓存器[B0h]INTX
光标 Row 状态 1:光标的 Row 等于缓存器[B8h]INTY 0:光标的 Row 不等于缓存器[B8h]INTY
忙碌中断屏蔽( Busy Interrupt Mask) 1:致能 BUSY 去产生中断输出 0:禁能 BUSY 去产生中断输出
0h R
0h R
0h R
0h R
0h R/W
触控屏幕中断屏蔽
2
1
0
RAiO TECHNOLOGY INC. 67/115 www.raio.com.tw
1:如果触控屏幕被侦测到,则产生中断输出 0:如果触控屏幕被侦测到,则不产生中断输出
INTX 是否发生中断 1:致能 INTX 中断 0:禁能 INTX 中断
设定 INTY 是否发生中断 1:致能 INTY 中断
0h R/W
0h R/W
0h R/W
Version 2.5
REG [B0h] Interrupt Column Setup Register (INTX)
Bit Description Default Access
7-6
5-0
REG [B8h] Interrupt Row Setup Register (INTY)
Bit Description Default Access
7-0
REG [08h] Misc. Register (MIR)
Bit Description Default Access
4
9.15
省电模式
0:禁能 INTY 中断
Reserved
保留 设定行 Segment 中断地址
假如光标位置 X 缓存器(CPXR)=INTX,发生中断。
设定列 Common 中断地址 假如光标位置 Y 缓存器(CPYR)=INTY,发生中断。
设定输出脚 -- 中断(INT)和忙碌位(Busy Polarity)的准位
1:设定高电位动作 0:设定低电位动作
RA8802/8820
中文文字/图形
LCD
控制器应用手册
0h R
27h R/W
EFh R/W
0h R/W
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 亦照常工作。
01:睡眠模式(Sleep Mode)
除了允许缓存器的读写外,其它 LCD 显示与 DDRAM ROM 的存取将被禁止。
00:关闭模式(Off Mode)
-- 11h R/W
RAiO TECHNOLOGY INC. 68/115 www.raio.com.tw
Version 2.5
除了唤醒(Wake-Up)电路工作外,其它功能都被禁止。当
Wake-Up 电路被触发,RA8802/8820 将进入正常模式。
题:
Read_REG[00h] ; 读取缓存器[00h] AND #3Fh Write_REG[00h] ; 将 RA8802/8820 进入 OFF Mode Read_REG[00h] ; 读取缓存器[00h] OR #C0h Write_REG[00h] ; 将 RA8802/8820 进入 Normal Mode
RA8802/8820
中文文字/图形
LCD
控制器应用手册
进入 OFF Mode 后通常 RA8802/8820 的消耗电流会低于 2uA 以下,不过要注意,如果不使用外接字型 ROMMA[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
Version 2.5
b3-b0
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 111011001011 11111010 1101
b7-b4
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
RA8802/8820
中文文字/图形
LCD
控制器应用手册
1011
1100
1101
1110
1111
9-21:内建 ASCII 区块 Bank0
RAiO TECHNOLOGY INC. 70/115 www.raio.com.tw
Version 2.5
RA8802/8820
中文文字/图形
LCD
控制器应用手册
9.16.2 ASCII
字形区块
例 题:
1
LDA #xxxxxx01b ; 设定 选择 ASCII Code 表为 Block 1 Write_REG[F0h] LDA #00100011b ; 选择 Block 1里的 2 STA DATA_ADDR ; 光标所指的位置就会显示 “2”
b3-b0
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
b7-b4
0000
0001
0010
0011
0100
0101
0110
1010
1101
111011001011 1111
0111
1000
1001
1010
1011
1100
1101
1110
1111
9-22:内建 ASCII 区块 Bank1
RAiO TECHNOLOGY INC. 71/115 www.raio.com.tw
Version 2.5
RA8802/8820
中文文字/图形
LCD
控制器应用手册
9.16.3 ASCII
字形区块
2
区块 2 的选择方式与上面相同,只要设定缓存器[F0h]bit[1..0],再将选择的 Pattern 写入光标所在的位置 既可。
b3-b0
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 111011001011 11111010 1101
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
Version 2.5
RA8802/8820
中文文字/图形
LCD
控制器应用手册
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
0000
0001 0010
0011
0100 0101 0110 0111 1000
1001 11101100
1010
1011 1111
1101
1010
1011
1100
1101
1110
1111
9-24:内建 ASCII 区块 Bank3
RAiO TECHNOLOGY INC. 73/115 www.raio.com.tw
Version 2.5
中文文字/图形
RA8802/8820
LCD
控制器应用手册
A. 液晶驱动(LCD Driver)
附录 A RA8802/8820 搭配驱动器(Driver)ST8016/NT7701 Segment Common模式下的时序特性波形 图,及参数表。
t
WLPH
t
t
WCKH
LH
t
WCKL
LP
t
SL
t
LD
t
LS
XCK
t
R
t
F
t
WCK
t
DS
t
DH
DI7-DI0
LAST DATA TOP DATA
DISPOFF
WDL
t
SD
t
A-1Segment 模式的时序特性波形图
A-1Segment 操作的 Timing 参数
Parameter Symbol Conditions Min. Typ. Max. Unit Note
Shift Clock Period
Shift Clock “H” Pulse
Width
Shift Clock “L” Pulse
Width
Data Setup Time
Data Hold Time
Latch Pulse “H” Pulse
Width
Shift Clock Rise to Latch
Pulse Rise Time
Shift Clock Fall to Latch
Pulse Fall Time
Latch Pulse Rise to Shift
Clock Rise Time
Latch Pulse Fall to Shift
Clock Fall Time
t
WCK
t
WCKH
t
WCKL
t
DS
t
DH
t
WLPH
t
LD
t
t
t
LH
t
SL
LS
, tF≦11ns
R
51 ns
51 ns 30 ns
40 ns 51 ns
0 ns
21 ns
51 ns
51 ns
125 ns 1
Enable Setup Time
Input Signal Rise Time
Input Signal Fall Time
DISPOFF Removal Time
t
S
t
R
t
F
t
SD
36 ns 50 ns 2
50 ns 2 100 ns
RAiO TECHNOLOGY INC. 74/115 www.raio.com.tw
Version 2.5
RA8802/8820
中文文字/图形
LCD
控制器应用手册
DISPOFF “L” Pulse Width
t
WDL
Output Delay Time(1) Output Delay Time(2) Output Delay Time(3)
t
PD1
t
PD3
Note
1. Takes the cascade connection into consideration.
2. (
t
WCK-tWCKH-tWCKL
)/2 is maximum in the case of high-speed operation.
LP
tWLPH
tR
DISPOFF
A-2Common 模式的时序特性波形图
A-2Common 操作的 Timing 参数
Parameter Symbol Conditions Min. Typ. Max. Unit Note
Shift Clock Period
Shift Clock “H” Pulse
Width
t
WLP
t
WLPH
Input Signal Rise Time
Input Signal Fall Time
DISPOFF Removal Time
DISPOFF “L” Pulse Width
t
t
WDL
Output Delay Time(1) Output Delay Time(2) Output Delay Time(3)
t
PD1
t
PD3
t
D
, t
PD2
tF
1.2 ns CL=15pF 78 ns CL=15pF 1.2 us CL=15pF 1.2 us
tWLP
t
WDL
t
SD
t
t
R
t
F
SD
t
D
, t
PD2
, tF≦20ns
R
VDD=5 51 ns
50 ns 2 50 ns 2 100 ns
1.2 ns CL=10pF 78 ns CL=10pF 1.2 us CL=10pF 1.2 us
125 ns 1
RAiO TECHNOLOGY INC. 75/115 www.raio.com.tw
Version 2.5
E
分壓電路(此電路使用之分壓電阻
特性調整
录 B.
RA8802/8820
中文文字/图形
LCD
控制器应用手册
B.1 RA8802
应用电路
(320x240)
B-1A RA8802 应用在 LCM 模块(320x240)的控制电路图,也将 MCU Driver 的总线接口脚位拉出, 供使用者参考。
U1
1
COMP
2
INHIBIT
C1
3
Freq
45pF
4
sub
5
D
DAC
GND
6
Cathode Anode7EMIT
TL497
R1
1.2K
升壓電路(此電路使用之分壓電阻R1,R2請依LCD PANEL特性調整)
C
B
A
VCC
JP1
1 2
MPU_D0
3 4
MPU_D1
5 6
MPU_D2
7 8
MPU_D3
9 10
MPU_D4
11 12
MPU_D5
13 14
MPU_D6
15 16
MPU_D7
17 18 19 20 21 22 23 24
HEADER 12X2
VSS
VEE
MCU INTERFACE
R10
LD_D7
10K
R11
LD_D6
10K
R12
LD_D5
10K
R16
LD_D3
10K
R17
LD_D2
10K
LD_D1
LD_D0
R10¡ãR21 are Optional
R13
10K
R14
10K
R15
10K
R18
10K
R19
10K
R20
10K
R21
10K
硬體設定電路
1 2 3 4 56
BASE_D
R2
22K
C2
100uF
MPU_RS MPU_R/W MPU_EN MPU_CS1 MPU_CS2 BUSY INT RST
VCC
BASE
VCC
R3
10
14
VCC
13
CUR
12
100uH
L1
11 10
COL
9
NC
8
VEE
ROM_D0
VSS
100
VEE
VCC
V0 V2 V3 VSS VSS VCC VCC VCC EIO1B LD_D0 LD_D1 LD_D2 LD_D3 LD_D4 LD_D5 V0
VCC
R28 10K
ROM_D1
ROM_D2
ROM_D3
ROM_D4
ROM_D5
ROM_D6
ROM_D7
ROM_A0
ROM_A1
ROM_A2
ROM_A3
VCC
69
81
ROM_D0
82
NC
83
NC
84
NC
85
NC
86
NC
87
NC
88
NC
89
NC
90
NC
91
NC
92
NC
93
NC
94
NC
95
NC
96
NC
97
NC
98
NC
99
NC MD_SEL0
C7 104
74
ROM_A073ROM_A172ROM_A271ROM_A370ROM_A467ROM_A566ROM_A665ROM_A764ROM_A863ROM_A9
ROM_D180ROM_D279ROM_D378ROM_D477ROM_D576ROM_D675ROM_D7
MD_SEL1
LD_D02LD_D13LD_D24LD_D35LD_D46LD_D57LD_D68LD_D79LD_DOF10LD_XCK11LD_DY12LD_LP13LD_FR14INT_OUT18X126LM_CS127LM_RS29LM_CS228GND
1
XCKLPFLM
DISPOFF
LD_D1
LD_D2
LD_D3
LD_D4
LD_D5
LD_D6
LD_D7
LD_D0
VCC
C8
C9
104
104
For VEE
C13
C14
C15
104
104
104
For VDD
C5
104
GND
68
VDD
ROM_A4
GND
RA8801
FR
ROM_A5
15
GND
10 11 12 13 14 15
GND
1 2 3 4 5 6 7 8 9
ROM_A6
ROM_A7
VDD
17
16
BUSY
VCC
U2
NT7701(SEG)A
ROM_A8
BU_OUT
INT
C10 104
V0L V12L V43L
XCK
V5L
DISPOFF VSS L/R
EIO1 VDD S/C EIO2
TEST1
D0
TEST2 D1 D2
V5R
D3
V43R
D4
V12R
D5
V0R
ROM_A9
ROM_A10
ROM_A11
ROM_A12
ROM_A13
59
60
62
ROM_A1061ROM_A1358ROM_A1457ROM_A1556ROM_A1655ROM_A1754ROM_A18
ROM_A12
ROM_A11
V_REF20AGND
AVDD
I_OUT
19
21
22
GND
Vref
DAC
VCC
C11 104
16
LD_D6
D6
17
LD_D7
D7
18
XCK
19
DISPOFF
20
LP
LP
21
VSS
22
FR
FR
23
VCC
MD
24 25 26
VSS
VSS
27
VSS
28
V3
29
V2
30
ROM_A14
ROM_A15
ROM_A16
ROM_A17
ROM_A18
ROM_CEMPU_RS
GND
53
51
52
ROM_ZCS
Y125Y223X2
30
24
MPU_CS2
MPU_CS1
VCC
若VDD電壓>4.5V,可外加二極體降壓 若VDD電壓<4.5V,則VDD直接接VCC
ROM_A19 GND
CLK_OUT
ZRST#
LM_D7 LM_D6 LM_D5 LM_D4 LM_D3 LM_D2 LM_D1 LM_D0
LM_EN
LM_RW
S1
V0 V2 V3 VSS VSS VCC VCC VCC
LD_D0 LD_D1 LD_D2 LD_D3 LD_D4 LD_D5 V0
U4
50
VDD
ROM_A19
49 48
RST
47 46
Crystal1
XB
Crystal0
45
XA
LPF
44
LPF
43
RA
RA
42
RB
RB
41
MPU_D7
40
MPU_D6
39
MPU_D5
38
MPU_D4
37
MPU_D3 MPU_D2
36
MPU_D1
35
MPU_D0
34
MPU_EN
33 32
MPU_R/W
31
VCC
VDD
RA8802
D1
DIODE
U3
1
V0L
2
V12L
3
V43L
4
V5L
DISPOFF
5
VSS
6
L/R
7
VDD
8
S/C
9
EIO2
10
D0
11
D1
12
D2
13
D3
14
D4
15
D5
NT7701(SEG)B
LCD DRIVER(SEG)
VCC
C6 104
LPF
C12 104
VCC
VCC
XCK
EIO1
TEST1 TEST2
V43R V12R
VSS V5R
V0R
R22
2.7K
D6 D7
LP
FR
MD
C16
0.22uF
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
LD_D6 LD_D7 XCK DISPOFF LP EIO1B FR VCC
VSS VSS V3 V2
C17
0.01uF
V0
54321
Y1
32768
C3 15P
PLL震盪電路
R9
RA RB
3.9K
RC震盪電路(R9請依LCD PANEL特性調整)
U5
V0
1
V0L
2 3 4 5 6 7 8
9 10 11 12 13 14 15 16
V0L V12L
DISPOFF V43L V5L VSS VDD S/C EIO2 D0 D1 D2 D3
V43R
D4
V12R D5 D6
NT7702(COM)
D7
XCK
LP
EIO1
FR L/R MD NC
VSS
NC
V5R
V0R V0R
V0 V1 V4 VSS VSS VCC VSS GND GND GND GND GND GND GND GND
LCD DRIVER(COM)
U6
R4
1 2
10
C18
3
105
VEE
4 5 6
R5
V2 V3
7
10
C19
LM324D
105
R27
VEE
R8
10
C22 105
V2 V3
R23
3K
C23 105
30K
V1
R24
3K
Title
RA8802 FOR 320240 LCD PANEL AP CIRCUIT
Number RevisionSize
B
Date: 7-May-2003 Sheet of File: D:\justin project\RA8802\160x160_LCM\RA8802_320240LCD_AP_
Crystal0Crystal1
C4 15P
GND
17
XCK
18
DISPOFF
19
LP
20 21
GND
22
VSS
23
VSS
24 25
VSS
26 27
VSS
28
V4
29
V1
30
V0
31
V0
32
14
OUT1
OUT4
13
-IN1
-IN4 12
+IN1
+IN4
11
VCC
VEE
10
+IN2
+IN3
9
-IN2
-IN3 8
OUT2
OUT3
R25
3K
R23-R27請依LCD PANEL
B-1A320x240 LCM 模块电路图
注:
6
D
C
R6
V4V1
10
C20 105
R7
10
C21 105
B
V4
R26
3K
A
5.2
Drawn By:
Jason Huang
RAiO TECHNOLOGY INC. 76/115 www.raio.com.tw
1. 如果不使用外接字型 ROM,建议 MA[7:0]与 MD[7:0] 接到 VDD,这样可以减轻电源消耗,如所示图 B-
1B
2. RA8802D 版之后的版本,LD0~LD7 的设定脚位若为 Pull-Hi,则 Pull-Hi 电阻不用接上,如果设定脚位
Version 2.5
Pull-LowPull-Low 电阻建议使用 1K~2.2Kohm
3. Reset Pin – RST#,它可以由 MCU来控制,或是由一 RC 电路来产生,请参考 8.1 节与图 8-2 的说明。
请注意,RA8802/8820 没有完成 Reset 的动作是无法接受 MCU 的任何指令,甚至会造成起振不正确或 系统设定错误。
No.
1 1 0.01uF C17 0805C 2 1 0.22uF C16 0805C 3 1 1.2K R1 0805 4 1 2.7K R22 0805 5 1 3.9K R9 0805 6 4 3K R23, R24, R25, R26 0805 7 5 10 R4, R5, R6, R7, R8 0805 8 1 10 R3 0805
9 12 10K R12~R21 0805 10 2 15P C3, C4 0805C 11 1 22K R2 0805 12 1 30K R27 13 1 45pF C1 0805C 14 1 100uF C2 EC1 15 1 100uH L1 LH1 16 3 104 C7, C8, C9 0805C 17 8 104 C5, C6, C10~C15 0805C 18 6 105 C18~C23 0805C
19 1 32768 Y1 20 1 DIODE D1
21 1 HEADER 12X2 JP1 22 1 LM324D U6 23 1 NT7701(SEG)A U2 24 1 NT7701(SEG)B U3 25 1 NT7702(COM) U5
26 1 RA8802 U4 27 1 TL497 U1 DIP14
B-1320x240 LCM 模块电路图的组件窗体
使用数量 组件规格 组件序号 组件尺寸
中文文字/图形
RA8802/8820
LCD
控制器应用手册
CRYSTAL
3.8KHZ
DIE or
PQFP100
RAiO TECHNOLOGY INC. 77/115 www.raio.com.tw
Version 2.5
RA8802/8820
中文文字/图形
LCD
控制器应用手册
B.2 RA8802
应用电路
(320x240)
B-1B RA8802 Demo 电路图,也将 MCU Driver 的总线接口脚位拉出,供使用者参考。
U2
U1
1
COMP
2
INHIBIT
3
C1
Fre q
45pF
4
sub
5
GND
6
Cathode
7
Anode
TL497
R11
DAC
10K
R12 10K
R1
1.2 K C16
100u F
R2
20K
BASE_D
BASE
EMIT
VCC
R3
10
14
VCC
13
CUR
12
100u H
L1
11 10
COL
9
NC
8
VEE
升壓電路(此電路使用之分壓電阻R1/R2請依LCD panel特性調整)
JP1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
HEADE R 12X2
VCC
MPU _R S MPU _R / W MPU _E N MPU _C S1 MPU _C S2 BUSY INT RST CLK_OUT
VDD
ROM_D0 MPU_D0 MPU_D1 MPU_D2 MPU_D3 MPU_D4 MPU_D5 MPU_D6 MPU_D7
VCC
VEE
MCU Interface
VSS
100
R18
1K
R19
1K
R20
1K
R21
1K
R22
1K
R18 R 27 a re Optio nal
LD_D7
LD_D6
LD_D5
LD_D3
LD_D2
LD_D1
LD_D0
VDD
R23
10K
R24
10K
R25
10K
R26
10K
R27
10K
R28
10K
R29
10K
硬體設定電路
ST 8 0 1 6 ( SE G )
V0R
V12R
V43R
VSSMDFR
EIO1LPDISPOFF
XCK
DI7
DI6
LPFRVSS
VSSV3V2
V0
12345678910111213141516171819202122232425
XCK
LD_D6
LD_D7
VSS
DISPOFF
LCD Driver(SEG)
C2 104
VDDVDD
ROM_ D1
ROM_ D2
ROM_ D3
ROM_ D4
ROM_ D5
ROM_ D6
ROM_ D7
ROM_ A0
ROM_ A1
ROM_ A2
ROM_ A3
VCC
GND
80
81
MD0
82
NC
83
NC
84
NC
85
NC
86
NC
87
NC
88
NC
89
NC
90
NC
91
NC
92
NC
93
NC
94
NC
95
NC
96
NC
97
NC
98
NC
99
NC SEL 0
VEE
C5 104
For VEE
VDD
C10 104
For VDD
RA8802 -(S/ T)
RA8802
SE L 11LD02LD13LD24LD35LD46LD57LD68LD79DISPOFF10XCK11YD12LP13FRM14GND15VDD16BUSY17INT18AGND19Vref20AVDD21Iout22Y223X224Y125X126CS1#27CS228RS29GND
XCKLPFLM
DISPOFF
LD_D1
LD_D2
LD_D3
LD_D4
LD_D5
LD_D6
LD_D7
LD_D0
VDD
C6
C19
104
104
Vref
R30
C11 104
2K
C12 104
Y1
XAXB
DI5
DI4
DI3
DI2
DI1
DI0
EIO2
S/C
VDD
L/R
VSS
V43L
V12L
V0L
LD_D0
LD_D1
LD_D2
LD_D3
LD_D4
LD_D5
VDDV0V2V3VSS
VDD
VDD
3276 8
R9
106
C14
C15
15P
15P
26
PLL 震盪電路
R10
RA RB
3.9 K
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
61
MA962MA863MA764MA665MA566MA467GND68VDD69MA370MA271MA172MA073MD774MD675MD576MD477MD378MD279MD1
VDD
GND
VDD
INT
GND
Vref
DAC
BUSY
FR
C7 104
C20 30P
MPU_C S2
MPU_C S1
C8 104
ROM_ CEMPU_R S
52
51
U4
GND
MA1 853MA1 754MA1 655MA1 556MA1 457MA1 358MA1 259MA1 160MA1 0
MACS #
VDD
MA1 9
CK_OUT
RST#
XB XA LPF RA
RB DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
EN
RW# VDD
RA8820 /02
30
V0
RC震盪電路 (R10請依LCD panel特性調整)
VDD
50
ROM_A19
49
CLK_OUT
48
RST
47
XB
46
XA
45
LPF
44
RA
43
RB
42
MPU_D7
41
MPU_D6
40
MPU_D5
39
MPU_D4
38
MPU_D3
37
MPU_D2
36
MPU_D1
35
MPU_D0
34
MPU_ E N
33
MPU_ R / W
32
VDD
31
R8
10
C25 105
C4 104
LPF
R31
2.7 K
C9 104
R4
10
C21 105
R5
V2 V3
10
C22 105
VEE
R32
V1 V2 V3
3K
C26 105
C17
0.22uF
C18
0.01uF
1 2 3
VEE
4 5 6 7
R33 3K
分壓電路(此分壓電路使用之分壓電阻R32~R36請依LCD panel特性調整)
FLM XCK DISPOFF LD_D1 LD_D3
1 2 3 4 5 6 7 8
DISPOFF
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
LCD Driver(COM)
U6
OUT1
OUT4
-IN1
-IN4
+IN 1
+IN4
VCC
VEE
+IN 2
+IN3
-IN2
-IN3
OUT2
OUT3
LM324D
R36
24K
DV1
VCC VDD
1N414 8
LCD2
1 2 3 4 5 6 7 8 9 10 11 12
HEADE R 6X2
U5
V0
V0R
V1
V12R
V4
V43R
VSS
VSS
VSS
MD
FR
FR
FLM
EIO1
LP
LP DISPOFF
VSS
XCK
VSS
DI7
VSS
DI6
VSS
DI5
VSS
DI4
VSS
DI3
VSS
DI2
VSS
DI1
VSS
DI0 EIO2
VSS
S/C
VDD
VDD
VDD
L/R
VSS
VSS
V4
V43L
V1
V12L
V0
V0L
ST8016(COM)
R6
14 13
10
12 11 10 9
R7
8
10
R34
V4
3K
LP
LD_D0
VDD
LD_D2
VEE
V4V1
C23 105
C24 105
R35 3K
B-1B320x240 Demo 电路图
注:
1. 如前一节所述,图 B-1B MA[7:0]MD[7:0] 接到 VDD,这样可以减轻电源消耗。
2. RA8802D 版之后的版本,LD0~LD7 的设定脚位若为 Pull-Hi,则 Pull-Hi 电阻不用接上,如果设定脚位为 Pull-LowPull-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
Version 2.5
中文文字/图形
RA8802/8820
LCD
控制器应用手册
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 不焊),此时 Y1C14 C15R9 可不用接,当然 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
C1
100uF
C4
0.047uF
1 2 3 4
U1
R2
100K
VIN VREF SHDN FB
AIC1652
C3 10nF
CL
DHI
DLOW
GND
R1
1M
8 7 6 5
RCL
0~10
RB
470~1.8K
100uH
Q1 9012
1N4148
*L
Vout = -12V~-40V(-10mA)
D1
C2 100uF
图 B-1C:应用电路图-负压的升压电路
RAiO TECHNOLOGY INC. 79/115 www.raio.com.tw
Version 2.5
RA8802/8820
中文文字/图形
LCD
控制器应用手册
B.3 RA8820
应用电路
(160x160)
B-2 RA8820 160x160 Demo LCM 模块电路图,图中的 LCD Driver 使用 ST8016 供使用者参考。
D
DAC
此電路使用之分壓電阻R1,R2請依LCD PANEL特性調整
C
B
硬體設定電路
A
R11¡ãR22 are Optional
1 2 3 4 56
C1 45pF
MCU介面
R11
10K
R12
10K
R13
10K
R17
10K
R18
10K
U1
1
COMP
2
INHIBIT
3
Freq
4
sub
5
GND
6
Cathode Anode7EMIT
TL497
R1
1.2K
VCC
MPU_D0 MPU_D1 MPU_D2 MPU_D3 MPU_D4 MPU_D5 MPU_D6 MPU_D7
VSS
VEE
LD_D7
LD_D6
LD_D5
LD_D3
LD_D2
LD_D1
LD_D0
R2
22K
C2
100uF
JP1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
HEADER 12X2
R14
10K
R15
10K
R16
10K
R19
10K
R20
10K
R21
10K
R22
10K
BASE_D
VCC
R3
10
14
VCC
13
CUR
12
100uH
L1
11
BASE
10
COL
9
NC
8
VEE
ROM_D0
MPU_RS MPU_R/W MPU_EN MPU_CS1 MPU_CS2 BUSY INT RST
VSS
VEE
C9
C7
104
104
VCC
For VEE
VCC
C8
C10
104
104
For VDD
升壓電路
LCD Driver 介面
U2 ST8016(SEG)
V0R
V12R
V43R
VSSMDFR
EIO1LPDISPOFF
LPFRVSS
VSSV3V2
V0
VSS
12345678910111213141516171819202122232425
VCC
R28 10K
ROM_D1
ROM_D2
ROM_D3
ROM_D4
ROM_D5
ROM_D6
ROM_D7
ROM_A0
ROM_A1
ROM_A2
ROM_A3
81
ROM_D0
82
NC
83
NC
84
NC
85
NC
86
NC
87
NC
88
NC
89
NC
90
NC
91
NC
92
NC
93
NC
94
NC
95
NC
96
NC
97
NC
98
NC
99
NC
100
MD_SEL0
C11 104
C12 104
74
ROM_A073ROM_A172ROM_A271ROM_A370ROM_A467ROM_A566ROM_A665ROM_A764ROM_A863ROM_A9
ROM_D180ROM_D279ROM_D378ROM_D477ROM_D576ROM_D675ROM_D7
MD_SEL1
LD_D02LD_D13LD_D24LD_D35LD_D46LD_D57LD_D68LD_D79LD_DOF10LD_XCK11LD_DY12LD_LP13LD_FR14INT_OUT18X126LM_CS127LM_RS29LM_CS228GND
1
XCKLPFLM
DISPOFF
LD_D1
LD_D2
LD_D3
LD_D4
LD_D5
LD_D6
LD_D7
LD_D0
VCC
分壓電路
R4
V0
10 C18 105
此電路使用之分壓電阻R23-R27請依LCD PANEL特性調整
XCK
DI7
DI6
DI5
DI4
DI3
DI2
DI1
DI0
EIO2
S/C
VDD
L/R
VSS
V43L
V12L
V0L
XCK
LD_D0
LD_D1
LD_D2
LD_D3
LD_D4
LD_D5
LD_D6
LD_D7
VCCV0V2V3VSS
VCC
DISPOFF
C5
104
ROM_A4
VCC
GND
68
69
GND
VDD
RA8801
FR
VEE
VCC
26
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_CEMPU_RS
GND
53
59
60
ROM_A1061ROM_A1358ROM_A1457ROM_A1556ROM_A1655ROM_A1754ROM_A18
ROM_A12
ROM_A11
V_REF20AGND
AVDD
I_OUT
Y125Y223X2
21
22
24
DAC
VCC
C14 104
U5
1 2 3 4
VEE
5 6 7
LM324D
R27
V2 V3
24K
R24
3K
51
52
VDD
ROM_A19
GND
CLK_OUT
ZRST#
ROM_ZCS
LM_D7 LM_D6 LM_D5 LM_D4 LM_D3 LM_D2 LM_D1 LM_D0
LM_EN
LM_RW
VDD
RA8820
30
MPU_CS2
MPU_CS1
14
OUT1
OUT4
13
-IN1
-IN4 12
+IN1
+IN4
11
VCC
VEE
10
+IN2
+IN3
9
-IN2
-IN3 8
OUT2
OUT3
R25
3K
62
BU_OUT
GND
VDD
17
19
15
16
INT
GND
Vref
BUSY
VCC
GND
C13 104
R5
10 C20 105
R6
V2 V3
10 C21 105
R23
V1
3K C19 105
U3
50 49 48 47 46
XB
45
XA
44
LPF
43
RA
42
RB
41 40 39 38 37 36 35 34 33 32 31
R7
10
R8
10
V4
R26
3K
54321
PLL震盪電路
Y1
32768
C3 15P
RC震盪電路
R9
RA RB
4.7K
R9請依LCD PANEL特性調整
VCC
ROM_A19
C6 104
RST Crystal1 Crystal0 LPF RA RB
LPF MPU_D7 MPU_D6 MPU_D5 MPU_D4 MPU_D3 MPU_D2 MPU_D1 MPU_D0 MPU_EN MPU_R/W VCC
VCC
若VDD電壓>4.5V,可外加二極體降壓 若VDD電壓<4.5V,則VDD直接接VCC
V4V1
C16
0.22uF
R10
2.7K
C15 104
D1
S1
DIODE
C22 105
C23 105
Title
RA8820 FOR 160160 LCD PANEL AP CIRCUIT
C
Date: 8-May-2003 Sheet of File: D:\justin project\RA8802\160x160_LCM\RA8802_160160LCD_AP_E_9205071.DDBDrawn By:
Crystal0Crystal1
C4 15P
LCD Driver 介面
1
V0
2
V1
3
V4
4
VSS
5
VSS
6
FR
7
FLM
8
LP
9
DISPOFF
10
VSS
11
VSS
12
C17
0.01uF
VCC
VCC
Number RevisionSize
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
B-2160x160 LCM 模块电路图
注:
6
U4
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)
D
C
B
A
5.2
Jason Huang
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
Version 2.5
No.
使用数量 组件规格 组件序号 组件尺寸
1 1 0.01uF C17 0805C 2 1 0.22uF C16 0805C 3 1 1.2K R1 0805 4 1 2.7K R10 0805 5 4 3K R23~R25 0805 6 1 4.7K R9 0805 7 5 10 R4~R8 0805 8 1 10 R3 0805
9 12 10K R11~R22 0805 10 2 15p C3, C4 0805C 11 1 22K R2 0805 12 1 24K R27 0805 13 1 45pF C1 0805C 14 1 100uF C2 EC1 15 1 100uH L1 LH1 16 11 104 C5~C15 0805C 17 6 105 C18~C23 0805C
18 1 32768 Y1 19 1 DIODE D1
20 1 HEADER 12X2 JP1 21 1 LM324D U5 22 1 RA8820 U3 PQFP 1OO 23 1 ST8016(COM) U4 24 1 ST800016(SEG) U2 25 1 TL497 U1 DIP14
B-2160x160 LCM 模块电路图的组件窗体
RA8802/8820
中文文字/图形
LCD
控制器应用手册
CRYSTAL
3.8KHZ
RAiO TECHNOLOGY INC. 81/115 www.raio.com.tw
Version 2.5
RA8802/8820
中文文字/图形
LCD
控制器应用手册
B.4 Power
应用电路
附录 B.4 RA8802/8820 的电源接法,RA8802 可工作于 3VRA8820 可工作于 3V 5V,工作于 3V 可 减少电源功率消耗,如果有用到 Touch Panel(ADC)建议使用图 B-5
3V
0.1uF
RA8802
VDD AVDD
GND
AGND
B-3RA8802 Power 应用电路图(1)
3V/5V
0.1uF
RA8820
VDD AVDD
GND
AGND
B-4RA8820 Power 应用电路图(2)
RAiO TECHNOLOGY INC. 82/115 www.raio.com.tw
Version 2.5
RA8802/8820
中文文字/图形
LCD
控制器应用手册
Power
0.47uH
0.1uF
RA8802/8820
VDD AVDD
GND
AGND
B-5:使用 Touch Panel(ADC)时的 Power 应用电路图
B-6 B-7 RA8802/8820 用于 3V 5V 的系统上的电源接法。
MCU3V
VDD
3V
RA8802/8820
VDD AVDD
I/O
GND
MCU I/F
GND
AGND
B-63V System 应用电路图
5V
MCU
VDD
I/O
GND
5V
RA8802/8820
VDD AVDD
MCU I/F
GND
AGND
B-75V System 应用电路图
RAiO TECHNOLOGY INC. 83/115 www.raio.com.tw
Version 2.5
中文文字/图形
RA8802/8820
LCD
控制器应用手册
C. 与分析流程
附录 C 是在说明 RA8802/8820 在组合成 LCM 或系统时若遇到困难所采取的几个步骤,例如 Demo Circuit 完 成或 Demo PCB 焊接完成时,必须先核对的重要项目,在接上电源后检查 ClockReset 等信号,一但 MCU 可以透过软件进行缓存器的读写,表示 MCU RA8802/8820 间的硬件设定基本上没有问题,MCU 透过软件 进行缓存器的读写动作与 LCD DriverPanel、或升压电路无关联。
若缓存器的读写没问题,可以透过文字或绘图模式进行显示部份的测试。若遇到困难此时就必须检查与 LCD DriverPanel 或升压部份的电路了。
測試順序 核對項目
硬體設定
硬體量測
軟體量測
顯示量測
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
Version 2.5
中文文字/图形
RA8802/8820
LCD
录 D. 支援的 Driver
Company Driver Part. Driver capacity Support
HITACHI
SAMSUNG
Novatek
Sitronix
Elan
Toshiba
Epson
Eureka
Hynix
Sanyo
HD66130 320-channel segment driver S6A2067 80-dot segment driver S6B0794 160-dot seg/com driver S6B0086 80-dot seg/com driver S6B2104 80-dot segment driver NT3883 80-ch driver -­NT7701 160-dot seg/com driver NT7702 240-dot seg/com driver NT7703 160-dot seg/com driver NT7704 240-dot seg/com driver ST7063 80-dot segment driver --
ST7065 40-dot seg/com driver -­ST8016 160-dot seg/com driver ST8012 120-dot seg/com driver EM65160 160-dot seg/com driver EM65240 240-dot seg/com driver EM65H134 240-channel segment driver EM65H137 240-channel common driver T6A92 80-channel segment driver -­T6B07 80-channel segment driver T6B08 68-dot common driver -­T6B23 80-channel segment driver -­T6B36 80-dot common driver T6C03 160-dot seg/com driver T6C13B 240-dot seg/com driver T6C25 160-dot seg/com driver T6C61 160-channel segment driver T6C63 240-channel segment driver T6C72A 120-dot common driver T6J05 128-dot common driver T6J06 120-dot common driver S1D16501 100-dot common driver S1D16700 100-dot common driver S1D16702 68-dot common driver S1D17403 160-dot common driver S1D16006 80-channel segment driver S1D16400 80-channel segment driver S1D17503 120-dot common driver S1D17508 160-dot segment driver EK7010 240-dot seg/com driver EK7011 160-dot seg/com driver HM11S210 160-dot seg/com driver HM11S220 240-dot seg/com driver LC79430 80-dot common driver LC79401D 80-dot segment driver
▲:表示支持
控制器应用手册
▲ ▲ ▲ ▲
▲ ▲ ▲ ▲
▲ ▲ ▲ ▲ ▲ ▲
▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲
未列于表内的其它 Driver,可以将编号提供给 RAiO 判断是否有支持。
RAiO TECHNOLOGY INC. 85/115 www.raio.com.tw
Version 2.5
中文文字/图形
RA8802/8820
LCD
控制器应用手册
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
Version 2.5
中文文字/图形
RA8802/8820
LCD
控制器应用手册
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 RST P3_7 #define INT 3_6 #define BUSY 3_5 #define CS2 P3_4 #define CS1 P3_3 #define EN P3_2 #define RW P3_1 #define RS P3_0
RAiO TECHNOLOGY INC. 87/115 www.raio.com.tw
Version 2.5
#define LCD_Command P1 #define LCD_Data 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);
}
}
中文文字/图形
RA8802/8820
LCD
控制器应用手册
RAiO TECHNOLOGY INC. 88/115 www.raio.com.tw
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++;
}
}
中文文字/图形
RA8802/8820
LCD
控制器应用手册
RAiO TECHNOLOGY INC. 89/115 www.raio.com.tw
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);
中文文字/图形
RA8802/8820
LCD
控制器应用手册
RAiO TECHNOLOGY INC. 90/115 www.raio.com.tw
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);
}
中文文字/图形
RA8802/8820
LCD
控制器应用手册
RAiO TECHNOLOGY INC. 91/115 www.raio.com.tw
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;
}
中文文字/图形
RA8802/8820
LCD
控制器应用手册
RAiO TECHNOLOGY INC. 92/115 www.raio.com.tw
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_();
}
中文文字/图形
RA8802/8820
LCD
控制器应用手册
RAiO TECHNOLOGY INC. 93/115 www.raio.com.tw
Version 2.5
录 G. 字型与字(GB)
RA8802/8820
中文文字/图形
LCD
控制器应用手册
RAiO TECHNOLOGY INC. 94/115 www.raio.com.tw
Version 2.5
RA8802/8820
中文文字/图形
LCD
控制器应用手册
RAiO TECHNOLOGY INC. 95/115 www.raio.com.tw
Version 2.5
RA8802/8820
中文文字/图形
LCD
控制器应用手册
RAiO TECHNOLOGY INC. 96/115 www.raio.com.tw
Version 2.5
RA8802/8820
中文文字/图形
LCD
控制器应用手册
RAiO TECHNOLOGY INC. 97/115 www.raio.com.tw
Version 2.5
RA8802/8820
中文文字/图形
LCD
控制器应用手册
RAiO TECHNOLOGY INC. 98/115 www.raio.com.tw
Version 2.5
RA8802/8820
中文文字/图形
LCD
控制器应用手册
RAiO TECHNOLOGY INC. 99/115 www.raio.com.tw
Version 2.5
RA8802/8820
中文文字/图形
LCD
控制器应用手册
RAiO TECHNOLOGY INC. 100/115 www.raio.com.tw
Loading...