RAiO RA8803, RA8822 User Manual

RAiO
RA8803 RA8822
双图层中文文字/图形
LCD 控制器
Version 2.4
August 4, 2005
RAiO Technology Inc.
Copyright RAiO Technology Inc. 2004, 2005
RAiO TECHNOLOGY INC. 1/128 www.raio.com.tw
Version 2.4
改 版 说 明
版 本 日 期 说 明
1.0 January 26, 2004 First Release Version
RA8803/8822
双图层
LCD
控制器应用手册
1.1 March 9, 2004
1.2 April, 12, 2004
1.3 May 3, 2004
1.4 October 1, 2004
增加 9-23 灰阶显示 增加 附录 B-3 Power 应用电路 增加 9-24 扩展模式显示 增加 4-1、4-2、8-2、附录 C、D 节 修改 2-3、5、7、8、8-1、9-24、附录 B 节
增加表 3-1:RA8803/8822 与驱动器 IC的接口名称对照表 修改图 5-2:用 DAC 控制 LCD亮度的应用电路及文字说明 增加图 8-2A:重置脚位 RST# 的时序 修改图 8-3:一般 RA8803/8822 电源开启或重置的流程图 修改表 8-2:基本的缓存器设定范例 增加图 9-21B : Key Scan 流程图 修改图 B-3, B-4 修改附录 G. 范例程序 – C51 增加附录 H. 字型与字码表(BIG-5)
2.0 January 20, 2005
2.1 March 4, 2005
2.2 March 11, 2005
2.3 April 22, 2005
2.4 August 4, 2005
修改附录 B-2 电源应用电路 修改附录 B-2 电源应用电路的图 B-4, B-5 增加附录 B-2-4 电路板的电源布局建议 增加附录 B-3 Frame 信号、增加图 B-7 修改表 8-2:基本的缓存器设定范例 移除附录 B-3 Frame 信号
修改第 5 章液晶显示器的亮度调整 增加图 5-4 REG[D0h]与 Iout 输出的对应曲线图 修改附录 B-2-1 电源结构与图 B-3
RAiO TECHNOLOGY INC. 2/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
章 节 内 容 页 数
1. 简介 ......................................................................................................................................6
2. 微控制器(MPU)的接口 ..........................................................................................................7
2-1 8080 系列的 MPU 接口 ..................................................................................................................................7
2-2 6800 系列的 MPU 接口 ..................................................................................................................................8
2-3 4Bit/8Bit MPU 界面................................................................................................................................10
2-4 MPU 接口的程序范例.................................................................................................................................. 11
3. 液晶显示驱动器(LCD Driver)的接口................................................................................... 15
3-1 液晶显示器面板(LCD Panel) 大小的设定................................................................................................... 16
4. 中文字型 ROM ....................................................................................................................18
4-1 中文字型 ROM 的使用................................................................................................................................. 18
4-2 自建字型 ROM ............................................................................................................................................ 19
5. 液晶显示器的亮度调整........................................................................................................24
6. 触摸式面板(Touch Panel)的界面 .......................................................................................27
6-1 电阻式触摸面板........................................................................................................................................... 27
6-2 触摸面板的应用........................................................................................................................................... 29
7. 系统时序(System Clock)....................................................................................................34
8. 软硬件的启始设定...............................................................................................................36
8-1 重置(Reset)与系统设定 .............................................................................................................................. 36
8-2 电源开启或重置(Power On/Reset)的程序 ................................................................................................. 38
8-3 缓存器的起始设定 ....................................................................................................................................... 39
8-4 Wakeup 的程序........................................................................................................................................... 41
9. RA8803/8822 功能应用介绍 ...............................................................................................42
9-1 文字模式设定............................................................................................................................................... 42
9-1-1 文字显示 .............................................................................................................................................. 42
9-1-2 粗体字之显示功能................................................................................................................................43
9-2 绘图模式设定 .............................................................................................................................................. 44
9-3 闪烁与反白显示........................................................................................................................................... 49
9-3-1 闪烁显示 .............................................................................................................................................. 49
9-3-2 屏幕反白 .............................................................................................................................................. 49
9-3-3 文字反白 .............................................................................................................................................. 50
9-4 /英文文字对齐.......................................................................................................................................... 51
9-5 LCD 屏幕显示 On/Off 设定......................................................................................................................... 52
RAiO TECHNOLOGY INC. 3/128 www.raio.com.tw
Version 2.4
9-6 光标 On/Off 设定......................................................................................................................................... 53
9-7 光标位置与移位设定.................................................................................................................................... 53
9-7-1 光标位置 .............................................................................................................................................. 53
9-7-2 游标移位 .............................................................................................................................................. 55
9-8 光标闪烁设定 .............................................................................................................................................. 55
9-10 工作及显示窗口大小设定 .......................................................................................................................... 57
9-11 行距设定 .................................................................................................................................................... 62
9-12 自动填入数据到 DDRAM .......................................................................................................................... 62
9-13 屏幕更新频率设定..................................................................................................................................... 63
9-14 中断(Interrupt)与忙碌(Busy)设定............................................................................................................ 63
9-15 省电模式 .................................................................................................................................................... 65
9-16 如何读取 Font ROM 字型 ......................................................................................................................... 66
9-17 字号放大设定 ............................................................................................................................................ 67
9-18 图层显示功能设定..................................................................................................................................... 68
9-19 Key Scan 应用.......................................................................................................................................... 71
9-20 屏幕水平卷动及垂直卷动设定................................................................................................................... 73
9-21 ASCII 区块选择设定.................................................................................................................................. 76
9-21-1 ASCII 字形区块 0............................................................................................................................... 76
9-21-2 ASCII 字形区块 1............................................................................................................................... 77
9-21-3 ASCII 字形区块 2............................................................................................................................... 78
9-21-4 ASCII 字形区块 3............................................................................................................................... 79
9-22 自行造字 .................................................................................................................................................... 79
9-23 灰阶显示 .................................................................................................................................................... 81
9-24 扩展模式显示 ............................................................................................................................................ 83
RA8803/8822
双图层
LCD
控制器应用手册
附录 A. 液晶显示驱动器(LCD Driver)的时序图 ......................................................................87
附录 B. 应用电路图 .................................................................................................................89
B-1 应用电路 ..................................................................................................................................................... 89
B-2 电源(Power)应用电路 ................................................................................................................................91
B-2-1 电源结构.............................................................................................................................................. 91
B-2-2 3V 电源应用电路 ................................................................................................................................. 92
B-2-3 5V 电源应用电路 ................................................................................................................................. 92
B-2-4 电路板的电源布局建议........................................................................................................................ 93
附录 C. RA8803/8822 控制板 .................................................................................................94
附录 D. 除错与分析流程..........................................................................................................95
附录 E. RA8803/8822 支持的驱动器型号................................................................................96
附录 F. 指令时间 .....................................................................................................................97
RAiO TECHNOLOGY INC. 4/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
附录 G. 范例程序 – C51..........................................................................................................98
G-1 范例程序(1) – 显示一中文字....................................................................................................................... 98
G-2 范例程序(2) – 显示一中文字符串 ............................................................................................................... 98
G-3 范例程序(3) – 8x8(Key_Scan)扫描 ........................................................................................................... 99
G-4 子程序范例 ............................................................................................................................................... 102
附录 H. 字型与字码表(GB)....................................................................................................107
RAiO TECHNOLOGY INC. 5/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
1. 简介
RA8803/8822 是一个双图层(Two Pages)中英文文字与绘图模式的点矩阵液晶显示(LCD)控制器,可支持最 大 320x240 / 240x160 点的 LCD 面板。内建 512K Byte 的字型码,可以显示中文字型、数字符号、英日欧 文等字母,使用者只要透过 MPU RA8803/8822 写入中/英文字型码,就可以直接在 LCD 面板上显示中英 文字型,而不需要透过 MPU 以绘图方式来处理中英文的显示。为了让使用者更加了解 RA8803/8822 的使用 与其附加的许多软硬件功能,因此建立此应用手册供客户参考。
1-1 RA8803/8822 的系统接口图,我们将依据此系统接口图,在以下的几章分别做完整的界面介绍, 同时会在每一个应用上举出图示与例题,让使用者了解硬件的连接状态。在第九章我们将对 RA8803/8822 所提供的功能做详细的说明与介绍,同样配合许多图示与例题让使用者在实际设计时能轻易上手。最后在目 录内我们附了很多参考数据,如完整电路图、Demo Program 等等,为了配合此应用手册,希望使用者能与 RA8803/8822 的规格书一同参考,以其达到最快的学习效果。
微控制器
(MPU)
液晶驅動器
(LCD Driver)
液晶顯示器
(LCD Panel)
RA8803
硬體起始
設定
時脈
(Clock)
RA8822
8x8 鍵盤
Key Scan
1-1RA8803/8822 系统接口图
升壓電路
(亮度調整)
觸控式面板
(Touch Panel)
RAiO TECHNOLOGY INC. 6/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
2. 微控制器(MPU)的接口
RA8803/8822 文字/图形 LCD 控制器与一般的 LCD 控制器相类似,都有支持 8080 6800 两大系列属性的 MPU 接口。使用者可以透过 SYS_MI 这根脚位去选择 RA8803/8822 MPU 接口是 8080 或者是 6800 的兼
容系统,如果 SYS_MI 外接一 Pull Low 电阻,则 RA8803/8822 MPU 将定义成与 8080 兼容的接口。反 之,如果 SYS_MI 外接一 Pull High电阻,则 RA8803/8822 MPU 接口将定义成与 6800 兼容的接口。
2-1 8080
系列的
MPU
接口
2-1 RA8803/8822 8080 兼容系列的 MPU 接口示意图,此时 RA8803/8822 将只接受与 8080 系 列兼容的 MPU 所传送出来的控制信号。
8080 MPU
A0
A1-A7
IORQ
D0-D3(D0 -D7)
RD
WR
RES
Decoder
RA8803/8822
RS CS1 CS2
SYS_MI
DB0-3(DB0-7)­RD WR RST
2-18080 (4/8-bit) MPU RA8803/8822 的界面图
2-2 8080 系列 MPU RA8803/8822 间的系统时序图,在 RA8803/8822 的定义中,RS “L” 时 是表示对缓存器下命令,也就是对 RA8803/8822 的缓存器进行读写的动作(Register Access Cycle),而
RS “H” 时是表示对 Display RAM 进行 Data 读写的动作(Data Access Cycle)。不论是 8080 6800 “RS” Pin 通常接到 MPU Address Pin “A0”8080 系列 MPU 6800 最大的不同是 Read Write 的控制信号是分开的,RD Low 时是进行读取动作,WR Low 时是进行写入动作,至于读写
的目的地则由 RS 决定。
下面图 2-2 表示如果是对缓存器进行读取动作,MPU 必须透过数据总线先送出缓存器的地址,然后才能 在数据总线上读取缓存器的数据,如果是对缓存器进行写入动作,MPU 必须透过数据总线先送出缓存器 的地址,然后再送出要写入的数据。当 8088 MPU RA8803/8822 Display RAM 进行数据的读取动 作,MPU 能直接在数据总线上读取 Display RAM 的数据,如果 8088 MPU Display RAM 进行数据的
RAiO TECHNOLOGY INC. 7/128 www.raio.com.tw
Version 2.4
写入动作,MPU 则直接在数据总线上送出要写入的数据。
AH8
t
RS, CS1
AW8
WR, RD
DB0~DB7
(WRITE)
DB0~DB7
(READ)
t
DS8
t
t
ACC8
CYC
t
CC
t
DH8
t
OH8
t
RA8803/8822
双图层
LCD
控制器应用手册
2-28-Bit 8080 MPU RA8803/8822 缓存器/Data 进行读取/写入动作
Signal Symbol Parameter
t
Address hold time 10 -- ns
RS, CS1#
AH8
Address setup time 63 -- ns
t
Aw8
t
System cycle time 800 -- ns
CYC
WR#, RD#
Strobe pulse width 400 -- ns
t
CC
t
Data setup time 63 -- ns
DS8
t
Data hold time 10 -- ns
DH8
DB0 to DB7
t
RD access time -- 330 ns
ACC8
t
Output disable time 10 -- ns
OH8
2-1
Rating
Min Max
Unit Condition
System Clock: 8MHz Voltage: 3.3V
2-2 6800
系列的
MPU
接口
2-3 RA8803/8822 6800 兼容系列的 MPU 接口示意图,此时 RA8803/8822 将只接受 6800 系列 兼容的 MPU 所传送出来的控制时序。6800系列 MPU ReadWrite 的控制信号是同一根 PinR/W#
High 时是进行读取动作,R/W# Low 时是进行写入动作,而 EN 则是确定读写的动作是否有效 (Enable),至于读写的目的地仍由 RS 决定。
RAiO TECHNOLOGY INC. 8/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
6800 MPU
A0
A1-A7
VMA
D0-D7
EN
R/W
RES
Decoder
RA8803/8822
RS CS1 CS2
SYS_MI
DB0-7 EN R/W RST
VDD
2-36800 (8-bit) MPU RA8803/8822 的界面图
RA8803/8822 无法同时接受 6800 8080 的控制信号,因此在 MPU 的接口上,某些脚位上会因为使用 者选择不同的 MPU 而有不同的定义,例如脚位 RD#(EN),当使用者选择的 MPU 接口为 8080 时是定义 成 RD#,而选择 6800 MPU 时是定义为 EN。而脚位 WR#(R/W#),当使用者选择的 MPU 接口为 8080 时是定义成 WR#,而选择 6800 MPU 时是定义为 R/W#,对于 MPU 接口的脚位定义,使用者可以参考 RA8803/8822 规格书第 4-1 节的说明。
下面图 2-4 表示如果是 6800 MPU RA8803/8822 缓存器进行读取动作,MPU 必须透过数据总线先送 出缓存器的地址,然后才能在数据总线上读取缓存器的数据,如果是对缓存器进行写入动作,MPU 必须 透过数据总线先送出缓存器的地址,然后再送出要写入的数据。当 6800 RA8803/8822 Display RAM 进行数据的读取动作,MPU 能直接在数据总线上读取 Display RAM的数据,如果 6800 MPU Display RAM 进行数据的写入动作,则 MPU直接在数据总线上送出要写入的数据。
对于 6800 MPU 的接口,RA8803/8822 只提供 8Bit 的传输功能,而对于 8080 MPU 的接口, RA8803/8822 提供 4Bit8Bit 的传输功能。
RAiO TECHNOLOGY INC. 9/128 www.raio.com.tw
Version 2.4
CYC6
EN
t
RA8803/8822
双图层
LCD
控制器应用手册
RS, R/W, CS1
DB0~DB7
(WRITE)
DB0~DB7
(READ)
2-48-bit 6800 MPU RA8803/8822 缓存器/Data 进行读取/写入动作
Signal Symbol Parameter
t
Address hold time 10 -- ns
AH6
A0, R/W#,
CS1#
t
Address setup time 63 -- ns
Aw6
t
System cycle time 800 -- ns
CYC6
AW6
t
DS6
t
ACC6
t
2-2
Rating
Min Max
EW
t
AH6
t
DH6
t
OH6
t
Unit Condition
System Clock: 8MHz Voltage: 3.3V
t
Data setup time 63 -- ns
DS6
t
Data hold time 10 -- ns
DH6
DB0 to DB7
t
Access time -- 330 ns
ACC6
Output disable time 10 -- ns
t
OH6
EN tEW Enable pulse width 400 -- ns
2-3 4Bit/8Bit的MPU
界面
对于 8080 MPU 的接口,RA8803/8822 提供 4Bit 8Bit 的传输功能。使用者可以透过 SYS_DB 这根脚 位去选择 MPU 的数据总线(Data Bus)接口,如果 SYS_DB 外接一 Pull Low 电阻,则 RA8803/8822
MPU 数据总线接口将定义成 4-Bit。反之,如果 SYS_DB 外接一 Pull High 电阻,则 RA8803/8822 MPU 数据总线接口将定为 8-Bit。因为 RA8803/8822 内部的缓存器大多是 8-Bit 的架构,因此如果使用 4-Bit 的数据总线接口,MPU将会花较多的周期(Cycle)去存取 RA8803/8822 内部的缓存器。
RAiO TECHNOLOGY INC. 10/128 www.raio.com.tw
Version 2.4
当选择 4-bit MPU 作传输模式时,RA8803/8822 的 MPU 接口只有用到数据总线的 D3~D0,而没有用到 的 D7~D4 则不必理会(当成 NC Pin),同时每一个八位的指令或数据将被分为两个 Nibble(4-Bit)依序透过 数据总线的 D3~D0 进行传送,第一次先透过总线(DB3~DB0)传送数据的较高位 Bit[7..4],第二次再透过 总线(D3~D0)传送数据的较低位 Bit[3..0],使用者可以参考 2-4 节中的例题 5~8。
不过对于 6800 MPU 的接口,RA8803/8822只提供 8Bit 的传输功能,且由于大部份使用者使用 8051 系 统产品做系统开发,也比较熟悉此系列的 MPU,因此建议使用 8080 MPU 接口。
RA8803/8822
双图层
LCD
控制器应用手册
2-4 MPU
接口的程序范例
下面将列出一些简单的程序说明 MPU RA8803/8822 存取缓存器的方式,这些程序及以后的范例都是 以 8051 的汇编语言撰写,非常浅显易懂,也相当容易转成其它的语言格式。
No.
1
2
3
4
5
RS
1 1 0 1 xxh Read Display Data
1 0 1 0
1 0 1 0 xxh
1 0 1 0 xxh
0 0 1 0 Address
6800 8080
R/W# RD# WR#
2-3
DB0-DB7 Function
Write Display Data (Character Mode--
High Byte
Æ Low Byte
文) 步骤
2必须作两次,第一次写入中文字型
码高字节数据,第二次再写入中文字型码 低字节数据
Write Display Data (Character Mode--英 文,ASCII)
3只须作一次,直接写入英文字型码
步骤
Write Display Data (Graphic Mode)
当要读取状态(Read Status)必须要完成两 项步骤:
先步骤
5 Æ 步骤6,才可以读取状态
6
7
8
RAiO TECHNOLOGY INC. 11/128 www.raio.com.tw
0 1 0 1 Status
当要写入控制命令到缓存器必须要完成两
0 0 1 0 Address
0 0 1 0 Command
项步骤: 先步骤
令到缓存器
7 Æ 步骤8,才可以写入控制命
Version 2.4
范例 1-1: REG [00h] = #CDH
MOV A, #00h CALL RegAddr_WRITE
MOV A,#CDh CALL RegAddr_WRITE
范例 1-2: REG [E0h] = #5AH
MOV A, #E0h CALL RegAddr_WRITE
MOV A,#5Ah CALL RegAddr_WRITE
范例 2-1: 读取 REG [00h] MOV A,#00h CALL RegAddr_WRITE CALL RegAddr_Read
范例 2-2: 读取 REG [E0h]
MOV A,#E0h CALL RegAddr_WRITE
CALL RegAddr_Read
范例 3-1: LCD 显示 MOV A,#BAH CALL RegData_Write MOV A,#F4H CALL RegData_Write
范例 3-2: LCD 显示 MOV A,#ADH CALL RegData_Write MOV A,#B6H CALL RegData_Write
CALL RegData_Read
例 题 18-Bit MPU 写入 Data RA8803/8822 的缓存器
; 选择 LCD Controller Register (WLCR)
; 写入“CD” WLCR 缓存器
; 选择 Pattern Data Register (PNTR)
; 写入“5A” 到 PNTR 缓存器
例 题 28-Bit MPU 读取 RA8803/8822 的缓存器的 Data
; 选择 LCD Controller Register (WLCR)
; 读取 WLCR 缓存器的值
; 选择 Pattern Data Register (PNTR)
; 读取 PNTR 缓存器的值
例 题 38-Bit MPU 写入一中文到光标所在的位置
; 加载的中文码高位 “BA” ; 加载的中文码低位 “F4”
; 光标所在的位置将显示的中文字
; 加载的中文码高位 “AD” ; 加载的中文码低位 “B6”
; 光标所在的位置将显示的中文字
例 题 48-Bit MPU 读取 Display RAM Data
; 读取光标所在的位置的 Display RAM Data
RA8803/8822
双图层
LCD
控制器应用手册
RAiO TECHNOLOGY INC. 12/128 www.raio.com.tw
Version 2.4
上面的例题 1~4 8-Bit MPU 存取方式,如果是使用 4-Bit 的数据总线接口,MPU 将会花较多的 Cycle Time 去存取 RA8803/8822内部的缓存器及 Display RAM Data,使用者可以比较一下例题 5~8 与
例题 1~4 的差异性。
范例 5-1: REG [00h] = #CDH
MOV A, #00h CALL RegAddr_WRITE
MOV A, #00h CALL RegAddr_WRITE
MOV A,#0Ch CALL RegAddr_WRITE
MOV A,#0Dh CALL RegAddr_WRITE
范例 5-2: REG [E0h] = #5AH
MOV A, #0Eh CALL RegAddr_WRITE
MOV A, #00h CALL RegAddr_WRITE
MOV A,#05h CALL RegAddr_WRITE
MOV A,#0Ah CALL RegAddr_WRITE
范例 6-1: 读取 REG [00h] MOV A,#00h CALL RegAddr_WRITE MOV A,#00h CALL RegAddr_WRITE CALL RegAddr_Read
: : CALL RegAddr_Read
范例 6-2: 读取 REG [E0h]
MOV A,#0Eh CALL RegAddr_WRITE
MOV A,#00h CALL RegAddr_WRITE
CALL RegAddr_Read
: : CALL RegAddr_Read
54-Bit MPU 写入 Data RA8803/8822 的缓存器
; 选择 LCD Controller Register (WLCR)
; 选择 LCD Controller Register (WLCR)
; 写入“C” WLCR 缓存器
; 写入“D” WLCR 缓存器
; 选择 Pattern Data Register (PNTR)
; 选择 Pattern Data Register (PNTR)
; 写入“5” 到 PNTR 缓存器
; 写入“A” 到 PNTR 缓存器
例 题 64-Bit MPU 读取 RA8803/8822 的缓存器的 Data
; 选择 LCD Controller Register (WLCR)
; 选择 LCD Controller Register (WLCR)
; 读取 WLCR 缓存器的值(High Nibble)
; 读取 WLCR 缓存器的值(Low Nibble)
; 选择 Pattern Data Register (PNTR)
; 选择 Pattern Data Register (PNTR)
; 读取 PNTR 缓存器的值(High Nibble)
; 读取 PNTR 缓存器的值(Low Nibble)
RA8803/8822
双图层
LCD
控制器应用手册
RAiO TECHNOLOGY INC. 13/128 www.raio.com.tw
Version 2.4
范例 7-1: LCD 显示 MOV A,#0BH CALL RegData_Write MOV A,#0AH CALL RegData_Write MOV A,#0FH CALL RegData_Write MOV A,#04H CALL RegData_Write
范例 7-2: LCD 显示 MOV A,#0AH CALL RegData_Write MOV A,#0DH CALL RegData_Write MOV A,#0BH CALL RegData_Write MOV A,#06H CALL RegData_Write
CALL RegData_Read
: :
CALL RegData_Read
例 题 7:4-Bit MPU 写入一中文到光标所在的位置
; 加载的中文码高位 “B” ; 加载的中文码高位 “A” ; 加载的中文码低位 “F” ; 加载的中文码低位 “4”
; 光标所在的位置将显示的中文字
; 加载的中文码高位 “A” ; 加载的中文码高位 “D” ; 加载的中文码低位 “B” ; 加载的中文码低位 “6”
; 光标所在的位置将显示的中文字
例 题 84-Bit MPU 读取 Display RAM Data
; 读取光标所在的位置的 Display RAM Data(High Nibble)
; 读取光标所在的位置的 Display RAM Data(Low Nibble)
RA8803/8822
双图层
LCD
控制器应用手册
RAiO TECHNOLOGY INC. 14/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
3. 液晶显示驱动器(LCD Driver)的接口
本章将介绍 RA8803/8822 与液晶显示驱动器(LCD Driver)之间的接口,RA8803 在双图层模式下最大可支持 320x240 点的液晶显示器(LCD Panel),而 RA8822 最大可支持 240x160 点,使用者可以依据在此范围内想 设计的显示器 Panel 大小来选择适当的 LCD驱动器。图 3-1 RA8803/8822 ST8016 LCD Driver 连接的 示意图,用来驱动 160x160 的液晶显示器面板。
VDD
VSS
DISPOFF
LD0~LD7
RA8803
YD
FRM
XCK
LP
EIO1
MD
S/C L/R
DI0~DI7 EIO2
DISPOFF
ST8016
(Common)
FR LP
XCK
Y1~Y160
160*160 DOT LCD
PANEL
DISPOFF
XCK
EIO2
FR
LP
DI0~DI7
S/C
L/R
ST8016
(Segment)
MD
Y1~Y160
EIO1
3-1RA8803/8822 LCD Driver(ST8016)的接线图
在图 3-1 中使用两个 ST8016 LCD 驱动器,分别处理 160x160 LCD Panel Common Segment,而
RA8803/8822 则送出 Frame(FRM)Latch Pulse(LP)YD 及 Data Bus 等信号给 ST8016,图 3-2 RA8803/8822 LCD 驱动器之间的接口讯号波形图,对于 LCD 驱动器接口的脚位定义,使用者可以参考 RA8803/8822 规格书第 4-2 节的说明。
RAiO TECHNOLOGY INC. 15/128 www.raio.com.tw
Version 2.4
Total 160 LP for
one frame
FRM
YD
LP
XCK
DATA
COM1 Period
FRM
YD
LP
XCK
DATA
D1 D2D1D39D38D37D12D11D10D9D8D7D6D5
D2
D4D3
RA8803/8822
双图层
LCD
控制器应用手册
COM (N) Period
FRM
YD
LP
XCK
DATA
D
N-5DN-4DN
-
3
D
N-2DN-1
D
N
D1 D2
3-2RA8803/8822 与驱动器的接口讯号波形图
RA8803/8822 也可以设定连接至 LCD 驱动器上的数据总线接口是 4-Bit 或是 8-Bit,使用者可以透过 SYS_DW 这根脚位去选择,如果 SYS_DW 外接一 Pull Low 电阻,则 RA8803/8822 LCD 驱动器数据总
线接口将定义成 4-Bit。反之,如果 SYS_DW 外接一 Pull High 电阻,则 RA8803/8822 LCD 驱动器数据 总线接口将定为 8-Bit。图 3-1 RA8803/8822ST8016 LCD 驱动器连接的就是 8-Bit 的总线接口。
3-1
液晶显示器面板
(LCD Panel)
大小的设定
RA8803 可以支持 320x240 点尺寸的液晶显示器(LCD Panel),也就是 20 x 15 行的中文字 (RA8803/8822 内定每一中文字型为 16x16 点),RA8822 可以支持 240x160 点尺寸的液晶显示器(LCD Panel),也就是 15 x 10 行的中文字,针对不同尺寸的液晶显示器,可以用软件的方式来设定,使用 者透过设定缓存器的方式,来更改对应的显示器大小。利用显示窗口(Display Window) REG[21h, 31h, 41h, 51h]和工作窗口(Active Window)REG[20h, 30h, 40h, 50h],来改变 RA8803/8822 对显示器大小的
RAiO TECHNOLOGY INC. 16/128 www.raio.com.tw
Version 2.4
设定。例如 RA8803,使用者选用的是 320x240 LCD 面板,所使用到的范围也是 320x240 点的大小, 此时的显示窗口与工作窗口的缓存器设定值是相同的。
例如使用 RA8803 用在 320x240LCD Panel,那么显示窗口相关缓存器设法如下:
DWRR = ( 320 / 8 ) - 1 = 39 = 27h DWBR = 240 – 1 = 239 = EFh DWLR = 0 DWTR = 0
工作窗口一般比显示窗口还小,相关缓存器须依照下列规则:
1. DWRR AWRR CPXR AWLR DWLR
2. DWBR AWBR CPYR AWTR DWTR
3-1RA8803/8822 与驱动器 IC 的接口名称对照表
RA8803/8822
双图层
LCD
控制器应用手册
RA8803/8822
Driver 界面名称
LP
XCK
YD
FRM
LD[7:0]
DISPOFF
Driver IC 界面名称 Driver IC 界面名称之定义
LP
LOAD
CL1
CP
SCP CL2
HSCP
FLM
FR FRAME CDATA
DF(M) D[7:0]
/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 Shift Clock Pulse
Scan Start-up Signal First Line Marker
Frame Pulse Frame start signal(First line mark of common
signal) Synchronous Data
Switch signal to convert LCD drive waveform into AC
LCD Data Bus Display OFF
Display OFF Display OFF
RAiO TECHNOLOGY INC. 17/128 www.raio.com.tw
Version 2.4
4. 中文字型 ROM
RA8803/8822
双图层
LCD
控制器应用手册
4-1
中文字型
RA8803/8822 内建有 512KByte 16x16 中文显示字型 ROM(Font ROM) 8x16 ASCII 半型字型。 除了内建的 8x16 16x16 的字号外,还提供字型放大的功能,可利用 REG[F1h]的设定,将显示字号放 大到 32x3248x48 64x64。其中 RA8803/8822-T 储存标准繁体中文 BIG5 码,包含 13,094 个常用 与次常用字型、408 个特殊字与两组 ASCII CODERA8803/8822-S 储存 7602 个标准 GB 码的简体中 文。
缓存器[F0h]是用来设定与字型 ROM 相关的功能,当使用者选择 RA8803/8822-T 时,必须将 Bit[5..4]设 成 “01” 才能正确显示繁体字型,选择 RA8803/8822-S 时,必须将 Bit[5..4]设成 “10” 才能正确显示简体 字型。
REG [F0h] Font Control Register (FNCR)
Bit Description Text/Graph Default Access
7
ROM
的使用
字型 ROM 的转换电路控制
1:致能 0Bypass (客户建立字型 ROM 时使用)
字型 ROM 的地址空间选择
-- 1h R/W
bit5~4 设定 ”00”¼ ROM Mode0,该位可以用来选择上或
6
5-4
2
下面的例题在第一章有提到,只要先设定光标位置,然后将要显示的中文其中文码(Big-5 或 GB 码)共两 个 Byte,透过 MPU 写入 Data Address 既可:
下的 256KB ROM 的地址空间。
1:选择下部 256KB 字型 ROM 0:选择上部 256KB 字型 ROM
字型 ROM 的语系选择
0 0:选择简体(GB)字型 (256KB, Mode0) 0 1:选择繁体(BIG5)字型 (512KB, Mode1)
1 0:选择简体(GB)字型 (512KB, Mode2)
强制为 ASCII 解碼 (注 1)
1:所有输入的 Data,都以 ASCII 解碼(00~FFh) 0RA8803/22 会先检视输入 Data的第一个字节介于:
00~9Fh,视为 ASCII (半角字) A0~FFh,视为 GB/BIG5 (全角字)
-- 0h R/W
-- 00h R/W
Text 0h R/W
RAiO TECHNOLOGY INC. 18/128 www.raio.com.tw
Version 2.4
MOV A, #F0h CALL RegAddr_WRITE
MOV A, #90h CALL RegAddr_WRITE
MOV A,#BAH CALL RegData_Write
MOV A,#F4H CALL RegData_Write
1:中文内码不论是 GB BIG5 码都是由两个 Byte 组成,但是英文及一些符号 ASCII 码只由一个
例 题 :8-Bit MPU 写入一中文字 “网” 到光标所在的位置
; 选择 LCD Controller Register (WLCR)
; 选择繁体字型
; 加载的中文码高位 “BA” ; 加载的中文码低位 “F4”
; 光标所在的位置将显示的中文字
Byte 组成(00h~FFh),通常 RA8803/8822 将送到 Display RAM Data(00h~9Fh)视为 ASCII
码,也就半角文字(8x16),大于等于 “A0h” 的视为全角码(如繁简中文)的高位,必须再送一次低 位内码,才能显示全角字型。如果使用者有用到 A0h~FFh ASCII 码,则 MPU 在送
RA8803/8822
双图层
LCD
控制器应用手册
Data(ASCII 码)到 Display RAM之前必须将缓存器[F0h]的 Bit2 设成 “1” 。
4-2
自建字型
RA8803/8822 内建有 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:
ROM
4-1
Addr[18:5] Addr[4:0]
000,0000,0000,000 XXXXX 1 000,0000,0000,001 XXXXX 2
: :
XXXXX XXXXX
字型 No.
: :
111,1111,1111,110 XXXXX 16383 111,1111,1111,111 XXXXX 16384
至于 32Byte 的字型储存顺序如图 4-1所示,假设您想将图 4-2 的字当成 Font ROM 的第一个字形,那么 ROM 00000h~0001Fh 的储存数据如下表 4-2:
RAiO TECHNOLOGY INC. 19/128 www.raio.com.tw
Version 2.4
4-2
Addr[18:5] Addr[4:0] Data
RA8803/8822
双图层
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. 20/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
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-132Byte 的字型储存顺序 图 4-232Byte 的字型 Data
因为 512Kbyte ROM 共可以储存 16K 的字型,所以我们用 2 Byte 的字型码来选择显示的字型,事 实上字型码与 ROM Address 的对应如图 4-3所示。字型码的 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 Bit70 1 皆不影响选择显示的字型。
High Byte
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-3:字型码与 ROM Address 的对应
如果 Font ROM 00000h~0001Fh 储存表 4-2 Data,那么在文字模式下连续写入”00h”(80h)两次
(High Byte and Lowe Byte) ,光标所在位置会秀出图 4-2 所示的字型,请参考图 4-4。图 4-4 中 High Byte Low ByteBit7为 X,代表 Don’t Care,也就是 0 或 1皆不影响选择显示的字型。
RAiO TECHNOLOGY INC. 21/128 www.raio.com.tw
Version 2.4
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
RA8803/8822
双图层
LCD
控制器应用手册
X 0 0 0 0 0 0 0
7 6 5 4 3 2 1 0
High Byte =00h or 80h
4-4:字型码与 ROM Address 对应的例题(1)
再假设 Font ROM 5C8A0h~5C8BFh 储存表 4-2 Data,那么在文字模式下连续写入”5Ch”(High
Byte) ”45h”(Lowe Byte),光标所在位置会秀出图 4-4 所示的字型,请参考图 4-5。同样的在图 4-5 High Byte Low Byte的 Bit7为 X,代表 Don’t Care,也就是 0 或 1皆不影响选择显示的字型。
因此客户可以依据上述法则建立自己的 ROM Code 与字型码,经由下 Mask 产生专有的字型用于产品 上。而客户拿到自己建立字型 ROM RA8803/8822 后,在使用上必须将缓存器[F0h]Bit[7]设成 “0” 才能正确显示相对应于字型码的字型。至于外挂字型 ROM 也是同样的根据这个规则,只是使用时要将 缓存器[F0h]Bit6 要设成 1
附带一提的是您也可以将字型当成一 16x16 Bitmap,每个 Bitmap 2 Byte 码来定义,利用不同
X 00000 0 0
7 65432 1 0
Low Byte = 00h or 80h
Bitmap 组合成一图形,相对于 512KbyteROM,可以储存许多图形在里面!
RAiO TECHNOLOGY INC. 22/128 www.raio.com.tw
Version 2.4
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
RA8803/8822
双图层
LCD
控制器应用手册
X 1 0 1 1 1 0 0
7 6 5 4 3 2 1 0
High Byte = 5Ch or DCh
4-5:字型码与 ROM Address 对应的例题(2)
X 10001 0 1
7 65432 1 0
Low Byte = 45h or C5h
RAiO TECHNOLOGY INC. 23/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
5. 液晶显示器的亮度调整
传统的 LCD 亮度调整方式大都是以可调式电阻为主,藉由电阻值的改变去控制供给 LCD 面板的升压电路, 来达到调整 LCD 亮度的目的,使用上非常不方便。因此 RA8803/8822 内建了一个定电流输出的 5-bit 数字­模拟转换器(Digital to Analog Converter, DAC),使用者可以利用这个 DAC 产生不同的电流输出,进而控制 外部的升压电路,使得供给 LCD Panel 高压的电压准位随着 DAC 的设定值而改变,这样透过 MPU 就可以 达到用程序的方法去控制 LCD 的亮度。
VEE
R2
3.9K
R3 39K
VEE
VEE
100K
RA8803
Iout
R1 680
104
LM358
V1
100K
LM358
100K
R7
100K
V0
LCD
PANEL
5-1:用 DAC 控制 LCD 亮度的应用电路(I)
VDD
VEE
4.7u
IOUT
RA8803/8822
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” 的变动范围,进而得到想要的亮度控 制。图 5-2 是藉由升压组件(LT1615)来做 VEE 电压的输出调整,以供给 LCD 面板的应用电路,R5 用来调
RAiO TECHNOLOGY INC. 24/128 www.raio.com.tw
Version 2.4
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 亮度的方法很简单,只要透过 MPU 去设定缓存器 LCCR 就可以控制整个 DAC 的功 能,下面的程序例题是说明控制 LCD 的亮度为最亮及最暗的方法。
REG [D0h] LCD Contrast Control Register (LCCR)
Bit Description Default Access
7
4-0
5-3 RA8803/8822 DAC的输出电流 “Iout” 和图 5-2 LCD 面板的输出电压 “VEE”,两者之间的对应曲线
LCD 亮度控制(DAC 功能)
1:禁能 0:致能
设定 DAC 输出电流 Iout 的值(LCD 亮度控制)
0 0 0 0 0b Æ 0µA±0.2 uA (Min. Current)
: :
1 1 1 1 1b Æ 600uA±120 uA (Max. Current)
例 题:DAC - LCD 亮度调整
MOV A, #D0h CALL RegAddr_WRITE
MOV A, #00011111b CALL RegAddr_WRITE
MOV A, #D0h CALL RegAddr_WRITE
MOV A, #00000000b CALL RegAddr_WRITE
; 选择 LCD Controller Register (WLCR)
; 设定 LCD 的亮度为最暗 ; 存入 Data 到缓存器[D0h]LCCR
; 选择 LCD Controller Register (WLCR)
; 设定 LCD 的亮度为最亮 ; 存入 Data 到缓存器[D0h]LCCR
RA8803/8822
双图层
LCD
控制器应用手册
1h R/W
0h R/W
图。每种 LCD 面板所需要的电压与明亮控制范围不同,因此使用者在开发时应配合 LCD 面板规格、升压电 路与控制 DAC 电流输出范围,才能得到想要的亮度控制,就如同图 5-1 的外部减法器电路,使用者可能需 要改变 R1R2 R3,以及用软件的方式和控制 DAC电流输出范围,才能得到适当的亮度控制。
5
RA8803/8822 5-bit DAC,因此在 Iout 的输出电流会有 2
路,可以得到 32 组不同的 V0 输出电压供给 LCD 面板,来达到亮度调整的功能。当使用者搭配不同的 LCD 面板,所需要的电压与明亮控制范围会不同,所以在整个减法电路的 R1R2 R3 也可以依照需求来做调 整,得到适合的 V0 输出电压供给 LCD面板(VLCD)电流输出脚位 IOUTDisable 时为 Tri-state
RAiO TECHNOLOGY INC. 25/128 www.raio.com.tw
32 组的电流,当不同的电流输出到减法电
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
虽然 DAC 可用于控制升压电路,进行对比显示(Contrast)设定,但仍须要注意的是升压电路本身的精确度, 即使是同一批号的生压 IC,产生的 VLCD 电压准位也会不同,而且 LCD Panel 对相同 VLCD 电压产生的对 比显示效果也不一样,因此如果使用 RA8803/8822 DAC 进行对比显示(Contrast)设定,建议仍要加上可 调电阻做为出厂设定,可参考图 B-15-4 REG[D0h]Iout输出的对应曲线图范例。
VEE
25.0
20.0
15.0
10.0
5.0
0.0
Iout(uA)
700 600 500 400 300 200 100
0
0
REG[D0h] Iout(uA)
0 0.1 1 20.1 2 40.6 3 60.5 4 80.5 5 101.4 6 121.4 7
141.6
0
4
21
8
1
03
63
2
1
01
54
3
2
00
51
4
3
86
46
4
4
65
26
5
5
44
05
6
6
1
1
5-3Iout 输出透过亮度调整电路与 VEE 的对应曲线图
2
4
6
8
A
C
E
10
12
14
16
18
1A
1C
1E
5-4REG[D0h]Iout 输出的对应曲线图
REG[D0h] Iout(uA)
8
9 A B C D E F
162.7
182.4
203.3
227.2
254.4 276 301
325.5
REG[D0h] Iout(uA)
10 11
350.9 375
12 400.1 13 425 14 446 15 466 16 486 17 506
VEE
Iout(uA)
VDD3=3.3V
REG[D0h]
REG[D0h] Iout(uA)
18 526
19 545 1A 565 1B 585 1C 605 1D 624 1E 644 1F 664
RAiO TECHNOLOGY INC. 26/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
6. 触摸式面板(Touch Panel)的界面
目前触摸式面板(Touch Panel)的应用愈来愈多,然而目前市面上的 LCD Controller 或驱动器大都无法直接 提供触摸式面板的解决方案,因此使用者必须外加许多电路与零件,造成成本上的增加,而 RA8803/8822 内建了一个 10-bit 模拟-数字转换器(Analog to Digital Converter, ADC)及数个模拟开关(Analog Switch),使 用者可以将四线电阻式触摸式面板的 XL, XR, YU, YD 接到 RA8803/8822,然后利用模拟开关切换让 ADC 读取电阻上的电压值,再由 MPU 读取 ADC的转换值,而得到触摸面板 Touch的相对位置。
6-1
电阻式触摸面板
电阻式触摸面板是由两层极薄的电阻面板组成,如图 6-1 所示,两层面板之间有一个很小的间距,当有 外力在面板上的某一点压下去时,会在施力点造成两层电阻接触,也就是短路(Short),而两层电阻面板 的端点都各有电极,如图 6-2 所示 YU, YD, XL, XR,因此配合一些开关就可侦测出面板上哪一相对位置 被 Touch
YU
XL
YD
Y Plate
X Plate
Electrode
XR
6-1:触摸面板(Touch Panel)
VDD
SW2
YU
Resistor -Y
VDD
XL
SW0 SW1
SW3
XR
Resistor -X
YD
GND
6-2:触摸面板与侦测开关
RAiO TECHNOLOGY INC. 27/128 www.raio.com.tw
Version 2.4
在图 6-3 中,设定开关 SW2 SW3 OFF(Open)SW0 SW1 ON(Close),当有外力在面板上的 某一点压下去时,由 YU 点取得电压接到 ADC(Analog to Digital Converter),就可以得到被 Touch 点的
X 坐标相对位置。
VCC
SW2
To ADC
OFF
YU
Resistor-Y
RA8803/8822
双图层
LCD
控制器应用手册
VCC
VCC
XL XR
SW0
ON
6-3:读取 X 坐标
X5 X4 X3 X2 X1
X-axis
6-4Resistor-X 的分压
SW3
OFF
Resistor-X
YD
GND
SW1
ON
VCC
V+
VP
0
X5 X4 X3 X2 X1
P
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 面板上面,因此在程序设计上如果
RAiO TECHNOLOGY INC. 28/128 www.raio.com.tw
Version 2.4
重复图 6-3 6-5的读取步骤就可以顺利得知被 Touch 的点是在屏幕上的哪一位置。
VCC
SW2
ON
To ADC
YU
Resistor-Y
RA8803/8822
双图层
LCD
控制器应用手册
Y-axis
VCC
XL
SW0 OFF
SW3
ON
6-5:读取 Y 坐标
VCC
Y1 Y2
Y3
Y4
Y5
Resistor-X
YD
GND
XR
SW1 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 是用 RA8803/8822 的触摸式面板应用电路,电路图上的电容可以少噪声,图 6-8 触摸式面板侦测 的示意图与 6-9 的流程图则是说明 RA8803/8822 触摸式面板读取的控制方式,与触摸式面板有关的缓存 器为 TPCRTPXRTPYR TPSR(ADCS),在使用触摸式面板时必须先将触摸式面板功能开启,缓 存器 TPCR Bit-7 Bit-6 设为 “1”,同时 TPCR Bit[3..0] 设为 “1000”,也就是 Switch SW3 On
RAiO TECHNOLOGY INC. 29/128 www.raio.com.tw
Version 2.4
的状态,然后程序可以侦测缓存器 TPSR Bit-6是否为 “1”,如果缓存器 TPSRBit-6 “1”,则表示 触摸式面板目前被 Touch,请参考图 6-8
在侦测阶段时,缓存器 TPCR Bit-7 Bit-6 可以先为 “0” (ADC Disable),如果程序侦测到缓存器 TPSR Bit-6 “1”,表示触摸式面板目前被 Touch,然后再将 ADC Enable -- 缓存器 TPCR Bit-7Bit-6 设为 “1” 也可以,如此可避免触摸式面板未被 Touch而让 ADC 动作产生不必要的耗电。
RA8803/8822
双图层
LCD
控制器应用手册
RA8803 RA8822
X1 X2 Y1 Y2
Touch Panel
XL
XR YU YD
20pF x 4
6-7RA8803/8822 的触摸式面板应用电路
VCC
500K
ADET
XL
VCC
SW0
ON
SW2
OFF
YU
Resistor-Y
Resistor-X
XR
SW1
OFF
YD
SW3
ON
GND
6-8RA8803/8822 的触摸式面板的侦测
RAiO TECHNOLOGY INC. 30/128 www.raio.com.tw
Version 2.4
開始
開啟觸摸偵測
設定暫存器
設定暫存器
0xC0-TPCR: Bit[7..4]=0000 Bit[3..0]=1000
0xC1-ADCS:
Bit[4,5]=11
RA8803/8822
双图层
LCD
控制器应用手册
觸摸發生
ADET=1 (
0xC1-Bit6=1)
設定暫存器
Bit[3..0]=1100(SW2,3遒ON)
1.
讀取暫存器
讀取Y座標高位元組
2.
讀取暫存器
讀取Y座標低位元組
設定暫存器
Bit[3..0]=0011(SW0,1遒ON)
1.
讀取暫存器
讀取X座標高位元組
2.
讀取暫存器
讀取X座標低位元組
讀取
Yes
0xC0-TPCR
0xC9-TPYR
bit7~0=Y[bit9~2]
0xCA-TPZR
bit5~4=Y[bit1~0]
0xC0-TPCR
0xC8-TPXR
bit7~0=X[bit9~2]
0xCA-TPZR
bit1~0=X[bit1~0]
?
NO
YES
繼續偵測
關閉觸控功能
0xC0-TPCR:
暫存器
Bit[7..4]=1111
結束
NO
6-9:触摸式面板读取的控制流程图
RAiO TECHNOLOGY INC. 31/128 www.raio.com.tw
Version 2.4
REG [C0h] Touch Panel Control Register (TPCR)
Bit Description Default Access
触控屏幕功能启动
RA8803/8822
双图层
LCD
控制器应用手册
7
6
4
3-0
REG [C1h] ADC Status Register (TPSR/ADCS)
Bit Description Default Access
1:致能 0:禁能
触控屏幕数据输出
1:致能触控屏幕的数据输出 0:禁能触控屏幕的数据输出
触控屏幕自动/手动扫描
1:自动 0:手动
触控屏幕控制位
Bit3 = 0 Æ Switch SW3 OFF, Bit3 = 1 Æ Switch SW3 ON 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
ADC 数据转换完成指示
1h R/W
1h R/W
1h R
6-2
R/W
7
6
5
3-2
1ADC 数据转换已完成 0ADC 数据转换未完成
触摸事件的侦测指示
1:有被触摸 0:没被触摸
此位必须为 “1 “ 设定 ADC 的频率转换速度
0 0:SCLK/32 0 1:SCLK//64 1 0:SCLK/128 1 1:SCLK/256
0h R/W
0h R/W
1h R/W
2h R/W
RAiO TECHNOLOGY INC. 32/128 www.raio.com.tw
Version 2.4
REG [C8h] Touch Panel Segment High Byte Data Register (TPXR)
Bit Description Default Access
RA8803/8822
双图层
LCD
控制器应用手册
7-0
REG [C9h] Touch Panel Common High Byte Data Register (TPYR)
Bit Description Default Access
7-0
REG [CAh] Touch Panel Segment/Common Low Byte Data Register (TPZR)
Bit Description Default Access 7-6 3-2
下面的程序( *.C )例题是说明如何判断触摸式面板被 “Touch” 及如何读取 ADC Data 值。
储存触控屏幕行的高字节(bit9~2)的相对位置数据
储存触控屏幕列的高字节(bit9~2)的相对位置数据
储存触控屏幕行的低字节(bit1~0)数据 储存触控屏幕列的低字节(bit1~0)数据
例 题:
while(Read_TP_status() == 0x40) {
LCD_CmdWrite(0xC0,0xCC);
y_temp = LCD_CmdRead(0xC9);
: :
LCD_CmdWrite(0xC0,0xC3); x_temp = LCD_CmdRead(0xC8);
: :
}
// 侦测 Touch Panel 是否被按下 子程序 ………………………....... //
unsigned char Read_TP_status(void) { LCD_CmdWrite(0xC0,0x08);
LCD_CmdWrite(0xC1,0x35); delay(1000); return LCD_CmdRead(0xC1) & 0x40;
}
// 侦测 Touch Panel 是否被 “Touch” // 如果 0xC1-bit6=1 表示有被 “Touch”
// 切换模拟开关,准备读取垂直数据 // 读取垂直相对位置(Get Column Data)
// 切换模拟开关,准备读取水平数据 // 读取水平相对位置(Get Row Data)
// 平常侦测触控屏幕状态只要将 SW3-ON 即可 // ADC 初始值设定 // delay()只是防止触控时的噪声抑制 // 0xC1 地址之 bit6若为”1”,表示有触控发生
80h R
80h R
0h R 0h R
RAiO TECHNOLOGY INC. 33/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
7. 系统时序(System Clock)
RA8803/8822 内部的系统时序(System Clock)可以由一外部的 32768Hz 石英晶体(X’tal)配合内部的一锁相回 路(PLL)所产生。图 7-1 7-2RA8803/8822 的系统时序接线应用电路图。
RA8803/8822
0.22 µ LPF
0.022µ
2.4K
20P
20P
32768Hz
7-1:系统时序产生方式为 X’Tal 与 内部 PLL
XA
SYS_FQ
XB
RA8803/8822
0.022µ
2.4K
0.22 µ LPF
External
Clock
XA
SYS_FQ
VDD
7-2:系统时序产生方式为外部 Clock
如果是使用外部 X’tal(32.678KHz)与锁相回路(PLL)所产生的系统频率(System Clock),则不同电压(VDD)对 系统频率所产生的影响将非常小。RA8803/8822 的锁相回路(PLL)所产生的系统频率(System Clock)可透过 缓存器[01]设定选择不同的系统频率,设定方式为如下:
REG [01h] Misc. Register (MISC)
Bit Description Default Access
CLK_OUT 致能控制
6
1:致能
1h R/W
0:禁能
RAiO TECHNOLOGY INC. 34/128 www.raio.com.tw
Version 2.4
系统频率选择 0 0:3MHz
RA8803/8822
双图层
LCD
控制器应用手册
1-0
当选择不同的 System Clock 时,RA8803/8822提供 CLK_OUT输出脚位,可直接量测实际输出频率,此输出 频率可作为验证 MPU 与 RA8803/8822的接口连接是否有错,或是 RA8803/8822 是否正常工作。
0 1:4MHz 1 0:8MHz 1 1:12MHz
0h R/W
RAiO TECHNOLOGY INC. 35/128 www.raio.com.tw
Version 2.4
8. 软硬件的启始设定
RA8803/8822
双图层
LCD
控制器应用手册
8-1
(Reset)
重置
RA8803/8822 驱动器可以在系统开机(Power-On)或进行硬件重置(Hardware Reset)时做启始化的设定, 如 SYS_MI 这根脚位,可以由 Pull High Pull Low 电阻去选择 RA8803/8822 MPU 接口是 8080 或 者是 6800,表 8-1 将这些硬件的启始设定列出供使用者参考。
PIN
99 SYS_MI MPU Type Select M6800 8080
SYS_MI 是用来做 MPU形式之选择。
如果 SYS_MI 外接一 Pull Low电阻,则 RA8803/8822 MPU 接口将定义成 8080,反之, 如果 SYS_MI 外接一 Pull High电阻,则 RA8803/8822 MPU 接口将定义成 6800
98 SYS_DB MPU Data Bus Select 8-bit 4-bit
SYS_DB 是选择 8080 MPU的数据总线为 4 位或 8 位。
如果 SYS_DB 外接一 Pull Low电阻,则 RA8803/8822 8080 MPU Data Bus 接口将定义 成 4-Bit,反之,如果 SYS_DB 外接一 Pull High电阻,则 RA8803/8822 8080 MPU Data
与系统设定
脚 位 名 称 简 述
8-1:硬件的启始设定
“1” mean
(Pull High)
“0” mean
(Pull Low)
Bus 界面将定为 8-Bit。
3 SYS_FQ Clock Select PLL_CLK EX-CLOCK
SYS_FQ 是选择产生系统频率为 PLL或是 外接 CLOCK
如果 SYS_FQ 外接一 Pull High 电阻,则 RA8803/8822 系统时序产生将是外接 CLOCK 的 方式,反之,如果 SYS_FQ 外接一 Pull Low 电阻,则 RA8803/8822 的系统时序产生将是
X’tal PLL
100 SYS_DW LCD Data Bus Select 8-bit 4-bit
如果 SYS_DW 外接一 Pull Low 电阻,则 RA8803/8822 LCD Driver Data Bus 接口将定 义成 4-Bit。反之,如果 SYS_DW 外接一 Pull High 电阻,则 RA8803/8822 LCD Driver
Data Bus 界面将定为 8-Bit。
4 SYS_NM Test Mode Set “1”
系统测试脚位,此脚位必需强制接到 High 准位
50 OPM1 49 OPM0
测试模式,一般使用者将 OPM0 OPM1 设成 NC Pin 既可。
Test Mode Set “1”
RAiO TECHNOLOGY INC. 36/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
VDD
RA8803/8822
SYS_NM SYS_MI
SYS_DB
SYS_FQ SYS_DW
8-1:硬件的设定范例
RST# 动作时会读取 SYS_MISYS_DBSYS_FQ 等输入值作为系统设定,如果相对应的 Pin 外接 Pull-High 电阻,则输入值将被视为 ”1”,如果相对应的 Pin 外接 Pull-Low 电阻则输入值将被视为 “0” Pull 的电阻为 10Kohm即可。
8-1 是一硬件设定范例,表示 RA8803/8822选择 6800 series MPU 界面,MPU Data Bus 接口将定义 成 8-Bit,系统时序的产生将是 X’tal PLL LCD Driver Data Bus 接口定义成 4-Bit,请参考表 8-1
From MCU
0.1uF
RA8803/8822
RST#
(1) (2)
VDD
100K
2.2uF
RA8803/8822
RST#
8-2:重置脚位 RST# 的接法范例
8-2 是一 Reset Pin – RST# 的应用范例,它可以由 MPU 来控制如图 8-2(1),或是由一 RC 电路来 产生,如图 8-2 (2)RA8803/8822 没有完成 Reset 的动作是无法接受 MPU 的任何指令,甚至会造成 系统设定错误。
REG [00h] Whole Chip LCD Controller Register (WLCR)
Bit Description Text/Graph Default Access
RAiO TECHNOLOGY INC. 37/128 www.raio.com.tw
Version 2.4
软件重置 所有缓存器回到初始值,但是 RAM 的内容不会被清除。
5
1:重置所有缓存器 0:正常模式,平常应保持为 ”0”
RA8803/8822 也可以由缓存器[00h]Bit5 来进行软件重置,缓存器[00h]Bit5 MPU 写入”1” RA8803/8822 会被重置,之后缓存器[00h]Bit5会自动回复到”0”
RA8803/8822
双图层
LCD
控制器应用手册
-- 0h R/W
8-2
电源开启或重置
(Power On/Reset)
的程序
8-2A 为一般 RA8803/8822 重置(Reset)的时序,以 RA8803 使用 320x240 pixel LCD Panel 例,
必须大于 250mst
t
RST
必须大于 50ms,足够的重置时间才能确定 RA8803/8822 Reset 完成。
RSTH
tRST
RST#
Internal
State
During Reset Reset Complete
tRSTH
8-2A:重置脚位 RST# 的时序
下图 8-3 为一般 RA8803/8822 电源开启或重置(Power On/Reset)的程序说明,此范例也是以 RA8803 使用 320x240 pixel LCD Panel 例子,说明设定方式的流程。
RAiO TECHNOLOGY INC. 38/128 www.raio.com.tw
Version 2.4
開啟電源
硬體重置
( RST# Active 250ms)
延遲50ms
設定顯示視窗與工作視窗
REG[20,21]=#27h
REG[30,31]=#EFh
REG[40,41]=#00h REG[50,51]=#00h
清除螢幕
REG[E0]=#00h
REG[F0]:bit3=1
RA8803/8822
双图层
LCD
控制器应用手册
延遲2ms
設定工作模式
&
設定游標位置
其他暫存器的起始設定
(或使用default 值)
設定字型碼 或
8-3:一般 RA8803/8822 电源开启或重置的流程图
8-3
缓存器的起始设定
RA8803/8822 的缓存器在系统电源开启或重置(Power On/Reset)时大都会产生 Default 的值,但是随系
Bit-Map
: :
统应用不同等因素,若干缓存器最好在电源开启或重置后进行设定,表 8-2 提供基本的缓存器设定范 例。
RAiO TECHNOLOGY INC. 39/128 www.raio.com.tw
Version 2.4
8-2:基本的缓存器设定范例
LCD_CmdWrite(0x00, 0Xc5) ; // 设定显示工作模式 LCD_CmdWrite(0x01, 0xF1) ; // 设定 System Clock, 此例为 4MHz
LCD_CmdWrite(0x10, 0x6B); // 游标相关信息 LCD_CmdWrite(0x11, 0x22); // 设定光标高度与行距 LCD_CmdWrite(0x20, 0x27); // 设定工作窗口(Active window)右边位置 Æ Segment-Right // 此例为 320x240 , 工作窗口与显示窗口设成一样 LCD_CmdWrite(0x30, 0xEF); // 设定工作窗口(Active window) 底边位置Æ Common-Bottom LCD_CmdWrite(0x40, 0x00); // 设定工作窗口(Active window)左边位置 Æ Segment-Left LCD_CmdWrite(0x50, 0x00); // 设定工作窗口(Active window) 顶边位置 Æ Common-Top LCD_CmdWrite(0x21, 0x27); // 设定显示窗口(Display Window)右边位置 Æ Segment-Right
RA8803/8822
双图层
LCD
控制器应用手册
// 此例为 320x240 , 工作窗口与显示窗口设成一样 LCD_CmdWrite(0x31, 0xEF); // 设定显示窗口(Display Window) 底边位置 Æ Common-Bottom LCD_CmdWrite(0x41, 0x00); // 设定显示窗口(Display Window) 左边位置 Æ Segment-Le LCD_CmdWrite(0x51, 0x00); // 设定显示窗口(Display Window) 顶边位置 Æ Common-Top LCD_CmdWrite(0x60, 0x00); // 设定光标 Segment 地址 LCD_CmdWrite(0x70, 0x00); // 设定光标 Common 地址 LCD_CmdWrite(0x80, 0x06); // 光标闪烁时间设定 LCD_CmdWrite(0x90, 0x06); // 设定 XCK 讯号周期
LCD_CmdWrite(0x81, 0x0C); // 缓存器[81h]必须设成 0Ch
LCD_CmdWrite(0xC0, 0xC0); // 触控屏幕功能, 没用到可不设定
LCD_CmdWrite(0xC1, 0x35); // 触控屏幕相关信息, Bit[5:4] 必须设成 11b
LCD_CmdWrite(0xD0, 0x11); // LCD 亮度控制(DAC 功能) , 没用到可不设定
: LCD_CmdWrite 是一写入 Data 到缓存器的子程序,请参考附录 G-3 子程序范例。
RAiO TECHNOLOGY INC. 40/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
8-4 Wakeup
REG[00]bit7-6 ”00”,则进入关闭模式(OFF MODE),若是要做唤醒的动作(Wake-UP),此时可使 用三种方式,将 RA8803/8822 唤醒。
利用
1.
2. Touch Panel
设定缓存器[A0]bit2 ”1”及缓存器[C0]bit3=”1”,当整个系统进入 OFF-mode 之后,若此时有任何 触控屏幕的动作,则 RA8803/8822 将产生中断讯号 INT ”0””1”的变化,此控制讯号可连接至微处理 机做其它动作的延续。
MPU将
unsigned char intr=LCD_CmdRead(0xA0) | 0x04 ; unsigned char tpcr=LCD_CmdRead(0xC0) & 0xf8 ; tpcr |= 0x80;
LCD_CmdWrite(0xA0,intr); LCD_CmdWrite(0xC0,tpcr); : :
的程序
缓存器
[00]的bit7-6
中断功能
再设定为
:
缓存器设定方法可参考下面程序:
”11”
,就可回到正常模式
// REG[A0]:bit2=1 // REG[C0]:bit[3..0]=1000
(Normal Mode) 。
3. Key SCAN
应用方式与触控屏幕相同,也是产生中断 INT 输出讯号。
unsigned char kscr=LCD_CmdRead(0xA1) | 0x80 ; unsigned char intr=LCD_CmdRead(0xA0) | 0x08 ;
LCD_CmdWrite(0xA1,kscr); LCD_CmdWrite(0xA0,intr);
: :
中断功能
:
缓存器设定方法可参考下面程序:
// REG[A1]:bit7=1(Key Scan 致能) // REG[A0]:bit3=1
RAiO TECHNOLOGY INC. 41/128 www.raio.com.tw
Version 2.4
9. RA8803/8822 功能应用介绍
RA8803/8822
双图层
LCD
控制器应用手册
9-1
文字模式设定
9-1-1
文字显示
RA8803/8822 的文字模式可以支持全角(中文或英文)及半角(英文)的显示,全角文字是以 16x16 的 点矩阵组成,半角文字是 8x16 的点矩阵组成,如图 9-1所示,而图 9-2 是全角(中文)及半角(英文) 文字的混和显示:
中文16x16 英文 8x16
9-1:全角与半角文字
9-2:全角与半角文字的混和显示
RA8803/8822 的中文显示方式与传统的 LCD Controller不同,传统的 LCD Controller 是在绘图模式 下,以 Bit-Map 的方式去绘出中文,RA8803/8822 的中文显示方式则是在文字模式,直接输入中文 字码(GB BIG5 码) ,就可以在光标所在位置显示中文。因为中文字码占两个 Byte,所以如果 MPU 接口是 8-Bit,则 MPU必须分两次将中文字码(High Byte & Low Byte)写入 RA8803/8822,而 英文或数字码只占一个 Byte,因此只要将内码一次写入 RA8803/8822 既可。RA8803 支持之最大显 示像素范围为 320x240 点,若以显示文字为例,全角字型(16x16)即是 20 x15 列,半角字型 (8x16)则可以显示到 40 x15 列。RA8822 支持之最大显示像素范围为 240x160 点,若以显示 文字为例,全角字型即是 15 x10 列,半角字型则可以显示到 30 x10 列。表 9-1 为图 9-2 所示
RAiO TECHNOLOGY INC. 42/128 www.raio.com.tw
Version 2.4
之全角(中文)与半角文字的字型码,下面例题程序就是说明如何显示图 9-2 的画面。
9-1:文字码的对照表(BIG5
显示字型 字型码
RA8803/8822
双图层
LCD
控制器应用手册
例 题:
MOV A,#A4H CALL RegData_Write
MOV A,#A4H CALL RegData_Write
MOV A,#A4H CALL RegData_Write
MOV A,#E5H CALL RegData_Write
: :
中 文 文 字
/ 2F
图 形
L 4C C 43 D 44
控 制 器
; 写入的字型码 High Byte ; 写入的字型码 Low Byte
; 在光标所在位置会显示” ; 写入的字型码 High Byte ; 写入的字型码 Low Byte
; 在光标所在位置会显示
A4A4 A4E5 A4E5
A672
B9CF
2F
B1B1 A8EE BEB9
9-1-2
粗体字之显示功能
RA8803/8822 的中英文显示都可以秀出粗体字的显示效果,图 9-3 说明欲表现粗体字的显示效果 时,缓存器应如何设定。
RAiO TECHNOLOGY INC. 43/128 www.raio.com.tw
Version 2.4
REG [10h] Whole Chip Cursor Control Register (WCCR)
Bit Description Text/Graph Default Access
设定粗体字型(仅文字模式适用)
RA8803/8822
双图层
LCD
控制器应用手册
4
9-2
绘图模式设定
RA8803/8822 的绘图模式是以字符映像(bit map)方式填入图形数据在 Display RAM上,图 9-4 说明进入 绘图模式时,缓存器要如何设定:
0:正常字型
1:粗体字型
1. 设定缓存器[10h] bit4=1
2. 写入中文字型码
Text 1h R/W
9-3:粗体字的显示
1. 设定 REG[00h] bit3=0
2. 使用字符映像(bit map) 方式填入图形数据
REG [00h] Whole Chip LCD Controller Register (WLCR)
Bit Description Text/Graph Default Access
选择显示工作模式
1:文字模式,写入的数据会被视为是 GB/BIG/ASCII 等字
3
码。 0:绘图模式,写入的数据会被视为是 Bit-Map 的模式。
9-4:绘图模式的显示
-- 1h R/W
RAiO TECHNOLOGY INC. 44/128 www.raio.com.tw
Version 2.4
REG [12h] Memory Access Mode Register (MAMR)
Bit Description Default Access
图形模式时,光标自动移位的方向选择
RA8803/8822
双图层
LCD
控制器应用手册
7
REG [10h] Whole Chip Cursor Control Register (WCCR)
Bit Description Text/Graph Default Access
7
3
RA8803 支持之最大显示像素范围为 320 x240 点,因此需要约 9.6K Byte Display Data RAM (DDRAM)来储存欲显示的每个像素点,而 RA8822 支持之最大显示像素范围为 240x 160点,因此需
要约 4.8K Byte Display Data RAM 来储存欲显示的每个像素点,在 DDRAM 里,只有在显示范围内 的对应数据会被显示于 LCD 面板上,不在显示范围内的则会被忽略掉。当 RA8803/8822 在显示图形的
1:先水平移动再垂直移动 0:先垂直移动再水平移动
设定当数据读出 DDRAM 时,光标是否自动移位。
1:致能(自动移位) 0:禁能(不自动移位)
此位用来设定当数据写入 DDRAM 时,光标是否自动移位
1:致能(自动移位) 0:禁能(不自动移位)
1h R/W
Text/Graph 0h R/W
Text/Graph 1h R/W
时候,是以字符映像(Bit Map)的方式写入 DDRAM,若 DDRAM 的某个位置被填满为 ‘1’ 时,相对于 LCD 面板的位置会被显示出亮点,由图 9-5 可看出,在 DDRAM 上所储存之像素数据,会对应到显示屏 (LCD)上,而构成文字、符号或图形之显示效果。
Segment
D7 D6 D5 D4 D3 D2 D1 D0
0 1 2 3 4 5 6 7 …..
1 1 1 0 0 1 1 0
Display Data RAM Display On LCD
9-5Display Data LCD 显示的映像
RAiO TECHNOLOGY INC. 45/128 www.raio.com.tw
Version 2.4
以下程序就是以图 9-5 做例子,用绘图模式在 LCD Panel的左上角秀出 Pattern
例 题:(8051-ASM)
MOV A, #60h CALL RegAddr_WRITE
; 选择光标设定缓存器 (CPXR)
MOV A, #00h CALL RegAddr_WRITE
; 设定坐标 X=0
MOV A, #70h CALL RegAddr_WRITE
MOV A, #00h CALL RegAddr_WRITE
MOV A,#E6H
; 选择光标设定缓存器 (CPYR)
; 设定坐标 Y=0 ; 设定光标位置为(0,0)
;LCD Panel 的左上角秀出 “E6” 的图形 Pattern
CALL RegData_Write
例 题:(8051-C)
LCD_CmdWrite(0x60,0x00); LCD_CmdWrite(0x70,0x00);
LCD_DataWrite(0xE6);
// 设定坐标 X=0 // 设定坐标 Y=0
//LCD Panel 的左上角秀出 “E6” 的图形 Pattern
RA8803/8822
双图层
LCD
控制器应用手册
320
D7 D 6 D5 D4 D 3 D2 D1 D 0 D7 D6 D 5 D4 D3 D2 D1 D0
00 01 02 03
: : : : : : ;
: 236 237 238 239
Display Data RAM
D7 D 6 D5 D4 D 3 D2 D1 D 0 Æ (40Bytes)
240
9-6Display Data RAM 的格式(320 x 240)
RAiO TECHNOLOGY INC. 46/128 www.raio.com.tw
Version 2.4
在绘图模式下,缓存器[12h]Bit7 用来选择光标的移动是先水平移动再垂直移动或是先垂直移动再水平 移动,如图 9-7A
::::::::
:::::::::::::
REG[12h]Bit7 = 1 REG[12h]Bit7 = 0
9-7A:选择光标的移动
9-7B 范例:
RA8803/8822
双图层
LCD
控制器应用手册
MOV A, #12h CALL RegAddr_WRITE
MOV A, #91h CALL RegAddr_WRITE
MOV A,#11H
; 选择缓存器 [12h] (MAMR)
; Bit7=1, 先水平移动再垂直移动
;LCD Panel 的左上角秀出 “11” 的图形 Pattern CALL RegData_Write MOV A,#22H
;LCD Panel 的左上角秀出 “22” 的图形 Pattern CALL RegData_Write MOV A,#33H
;LCD Panel 的左上角秀出 “33” 的图形 Pattern CALL RegData_Write MOV A,#44H
;LCD Panel 的左上角秀出 “44” 的图形 Pattern CALL RegData_Write
0 8 16 24 32 319
COM0 COM1 COM2 COM3
: : : : : : : :
COM239
9-7B:光标先水平移动再垂直移动
RAiO TECHNOLOGY INC. 47/128 www.raio.com.tw
Version 2.4
9-7C 范例:
RA8803/8822
双图层
LCD
控制器应用手册
MOV A, #12h CALL RegAddr_WRITE
MOV A, #11h CALL RegAddr_WRITE
MOV A,#11H
; 选择缓存器 [12h] (MAMR)
; Bit7=0, 先垂直移动再水平移动
;LCD Panel 的左上角秀出 “11” 的图形 Pattern CALL RegData_Write MOV A,#22H
;LCD Panel 的左上角秀出 “22” 的图形 Pattern CALL RegData_Write MOV A,#33H
;LCD Panel 的左上角秀出 “33” 的图形 Pattern CALL RegData_Write MOV A,#44H
;LCD Panel 的左上角秀出 “44” 的图形 Pattern CALL RegData_Write
0 1 2 3 4 5 6 7 8 319
COM0 COM1 COM2 COM3
: : : : : : : :
COM239
9-7C:光标先垂直移动再水平移动
在绘图模式下,若要读取 Display RAM 的数据时,也是由缓存器[12h]的 Bit7 用来选择光标的移动是先 水平移动再垂直移动或是先垂直移动再水平移动,如图 9-7A。不论写入或读取 Display RAM 的数据都 必须注意光标的设定是否有自动加一的功能,也就是缓存器[10h]的 Bit7 与 Bit3。如图 9-7D 是代表缓存 器[12h]Bit7=1( 先水平移动再垂直移动)时 Display RAM 数据的读取方向(以 320x240显示器为例)。
0 1 2 3 …………….……………………….39(Byte)
00 01 02
: : :
239
320 x 240Pixel
9-7D:图形模式时数据读取方向
RAiO TECHNOLOGY INC. 48/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
9-3
闪烁与反白显示
9-3-1
闪烁显示
9-8 说明要闪烁显示时,缓存器要如何设定:
1. 设定 REG[00h] bit1=0
2. 设定 REG[00h] bit1=1
9-8:屏幕闪烁
REG [00h] Whole Chip LCD Controller Register (WLCR)
Bit Description Text/Graph Default Access
闪烁模式选择
1
9-3-2
0:正常显示 1:整个屏幕闪烁,闪烁时间由缓存器[80h]BTR 来设定
屏幕反白
如果要将 LCD 画面全部反白只要设定缓存器[00]Bit0 既可,图 9-9 说明要反白显示时,缓存器要 如何设定:
Text/Graph 0h R/W
RAiO TECHNOLOGY INC. 49/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
9-9:屏幕反白
REG [00h] Whole Chip LCD Controller Register (WLCR)
Bit Description Text/Graph Default Access
屏幕反白模式选择
0
9-3-3
a.
1:正常显示 0:全屏幕反白显示,DDRAM 内的数据会被全部反相。
文字反白
如果要将 LCD 画面秀出反白的字体只要设定缓存器[10]Bit5 既可,图 9-10 说明要反白显示时, 缓存器要如何设定:
Text/Graph 1h R/W
b.
9-10:反白显示
RAiO TECHNOLOGY INC. 50/128 www.raio.com.tw
Version 2.4
(a)
1. 设定缓存器[10h] bit5=0
2. 写入"中文文字/图形 LCD 控制器"的 BIG5码,然后可显示出"中文文字/图形 LCD 控制器"
(b)
3. Hold on (a)
4. 设定缓存器[10h] bit5=1
5. 写入"文字"的 BIG5 码,LCD就可显示出"文字"
6. Hold on
7. 设定缓存器[10h] bit5=0
8. 写入"反白"的 BIG5 码,LCD就可显示出"反白"字样
9. Hold on
10. 设定缓存器[10h] bit5=1
11. 写入"功能”的 BIG5 码,LCD就可显示出 "功能"
REG [10h] Whole Chip Cursor Control Register (WCCR)
RA8803/8822
双图层
LCD
控制器应用手册
Bit Description Text/Graph Default Access
储存 MPU 进来数据(正相/反相)于 DDRAM
5
9-4 中/
由于英文字体与中文字体所占的宽度不一样,因此在显示中文英文都有的画面时必须考虑整体显示效 果,RA8803/8822 可以设定中文英文显示时不同行的显示效果以决定文字是否对齐,图 9-11 说明要表 现出中英文文字对齐之情形时,缓存器要如何设定:
1:直接储存数据于 DDRAM 0:存入相反的数据于 DDRAM
英文文字对齐
1. 设定 缓存器 WCCR,ALG=1
2. 写入“中文文字/图形 LCD 控制器两次,则屏幕会秀出”中文文 /图形 LCD 控制器Å上下两行文字对齐
Text 1h R/W
9-11:文字对齐的显示范例
RAiO TECHNOLOGY INC. 51/128 www.raio.com.tw
Version 2.4
REG [10h] Whole Chip Cursor Control Register (WCCR)
Bit Description Text/Graph Default Access
/英文字对齐 1:致能
RA8803/8822
双图层
LCD
控制器应用手册
6
9-12 说明要表现出中英文文字不对齐之情形时,缓存器要如何设定:
0:禁能
此功能仅在文字模式时有效,可以将全角与半角混合显示时作 对齐调整。
1. 设定 缓存器 WCCR,ALG=1
2. 写入“中文文字/图形 LCD 控制器
3. 设定 缓存器 WCCR,ALG=0
4. 写入“中文文字/图形 LCD 控制器Å上下两行文字没对齐
Text 1h R/W
9-12:文字不对齐的显示范例
9-5 LCD
REG [00h] Whole Chip LCD Controller Register (WLCR)
RAiO TECHNOLOGY INC. 52/128 www.raio.com.tw
屏幕显示
Bit Description Text/Graph Default Access
2
On/Off
设定屏幕显示为开启或关闭,此位用来控制连接到 LCD 驱动 IC 接口的 “DISPOFF#” 信号 1 “DISPOFF” 讯号输出 High(屏幕开启) 0 “DISPOFF” 讯号输出 Low(屏幕关闭)
设定
Text/Graph 0h R/W
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
9-6
REG [10h] Whole Chip Cursor Control Register (WCCR)
9-7
On/Off
光标
Bit Description Text/Graph Default Access
光标显示 On/Off 设定
2
光标位置与移位设定
9-7-1
1:设定光标显示 On
0:设定光标显示 Off
光标位置
缓存器[60h]CPXR Bit[5..0]用来设定光标的 Segment 地址,RA8803/8822 可以分别支持 320 (Segment) x 240 (Common) 240x160 Panel Size,但是光标的 Segment地址是以每 8-Bit 单位,例如,想在 Panel 的左上角秀出,则必须设定光标缓存器 CPXR = 00hCPYR = 00h, 又例如想在 Panel 的左上角第三个全角位置秀出 “制,则必须设定光标缓存器 CPXR = 04h CPYR = 00h,同理,想在 Panel 的左上角第二行第一个全角位置秀出 “器,则必须设定光标缓存
设定
Text/Graph 0h R/W
CPXR = 00hCPYR = 10h,请参考图 9-13
00
10
20
EF
00 01 02 03 04 05 06 …………………………………..…..39
: :
: :
: : : : : : : : : : : :
320(Segment) x 240(Common)
9-13:光标位置设定的显示范例
RAiO TECHNOLOGY INC. 53/128 www.raio.com.tw
Version 2.4
REG [60h] Cursor Position X Register (CPXR)
Bit Description Default Access
RA8803/8822
双图层
LCD
控制器应用手册
5-0
设定光标 Segment 地址
REG [70h] Cursor Position Y Register (CPYR)
Bit Description Default Access
7-0
设定光标 Common 地址
不论文字或是绘图模式,都是使用缓存器[60h]CPXR [70h]CPYR 来设定光标的地址,如下图 9-14 所示,在绘图模式下设定光标缓存器 CPXR = 00hCPYR = 10h,则由 DDRAM 读到的的数值会是
“00h”,如果缓存器 CPXR = 00hCPYR = 12hDDRAM 读到的数值会是 “78h”,又如缓存器 CPXR = 00hCPYR = 14h,DDRAM 读到的数值会是 “0Ah”。请参考图 9-15。
00 01 02 03 04 ……………………………………..  .. 39
00
: : : :
0h R/W
0h R/W
10
: : : :
20
: : : : : : : :
::
EF
320(Segment) x 240(Common)
9-14:光标位置设定与 DDRAM 的读取范例
缓存器[60h]CPXR [70h]CPYR 的光标地址是属于绝对地址,不会因工作窗口大小而改变,也就是 (0 ,0)始终是在屏幕的左上角,请参考 9-10 节的说明。
RAiO TECHNOLOGY INC. 54/128 www.raio.com.tw
Version 2.4
9-7-2
游标移位
REG [10h] Whole Chip Cursor Control Register (WCCR)
Bit Description Text/Graph Default Access
Bit Bit
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
00h
78h
0Ah
9-15:将图 9-14 字放大
设定当数据读出 DDRAM 时,光标是否自动移位。
RA8803/8822
双图层
LCD
控制器应用手册
7
3
9-8
光标闪烁设定
REG [10h] Whole Chip Cursor Control Register (WCCR)
Bit Description Text/Graph Default Access
1
1:致能 (自动移位) 0:禁能(不自动移位)
此位用来设定当数据写入 DDRAM 时,光标是否自动移位
1:致能 (自动移位) 0:禁能(不自动移位)
请参考 9-2 节绘图模式设定的说明。
光标闪烁控制
1:光标闪烁,闪烁时间由缓存器[80h] BTR 决定。
0:游标不闪烁
Text/Graph 0h R/W
Text/Graph 1h R/W
Text/Graph 0h R/W
REG [80h] Blink Time Register (BTR)
Bit Description Text/Graph Default Access
光标/屏幕闪烁时间设定
7-0
闪烁时间 = Bit[7..0] x (1/Frame_Rate)
RAiO TECHNOLOGY INC. 55/128 www.raio.com.tw
Text/Graph 23h R/W
Version 2.4
如果 Frame Rate = 60Hz,则 1/Frame_Rate = 1/60Hz = 1.67ms,光标闪烁时间 = REG[80h] x
1.67ms,例如设定 REG[80h] = 35h = 53(十进制),因此光标闪烁时间 = 53 x 16.7ms = 885ms
RA8803/8822
双图层
LCD
控制器应用手册
9-9
光标高度与宽度设定
9-9-1
游标高度
RA8803/8822 在做文字显示时,有提供光标高度的设定,在正常显示文字时,光标的高度为一个 Pixel 的高度,但依不同使用者的需要,提供了 Pixel 的高度的设定,Pixel 的高度设定范围为 (1~16)Pixel,使用者可依需求来决定光标的高度大小。
REG [11h] Distance of Words or Lines Register (DWLR)
Bit Description Text/Graph Default Access
1 Pixel 2 Pixel 3 Pixel 16 Pixel
9-16:光标高度之设定
7-4
9-9-2
REG [10h] Whole Chip Cursor Control Register (WCCR)
Bit Description Text/Graph Default Access
0
RAiO TECHNOLOGY INC. 56/128 www.raio.com.tw
设定光标高度
游标宽度
RA8803/8822 在做文字显示时,有提供两种光标宽度的设定。第一种为 REG[10h] bit0=0 时,光标 的宽度将会固定为 1 个 Byte 的宽度(也就是 8 个 Pixel)。第二种为 REG[10h] bit0=1 时,光标的宽度 会随着所输入文字来做变化,例如当输入一个全角字时,文字后面的光标宽度会自动变为 2 个 Byte(也就是 16 个 Pixel)。当输入一个半角字时,文字后面的光标宽度会自动变为 1 个 Byte。
设定光标宽度 1:会随着输入的数据而变动光标宽度,当数据为半型时,光
标为一个字节宽度(8 Pixel),当数据为全型时,光标为
Text 0010h R/W
Text 0h R/W
Version 2.4
二个字节宽度(16 Pixel)
0:光标固定为一个字节的宽度(8 Pixel)
RA8803/8822
双图层
LCD
控制器应用手册
9-10
工作及显示窗口大小设定
RA8803/8822 应用在面板的显示上,供使用者有两种窗口选择。一个是显示窗口(Display Window),一 个是工作窗口(Active Window)。显示窗口(Display Window)是实际 LCD 面板的大小,而工作窗口(Active Window)是在实际的显示窗口(Display Window)内设定比显示窗口小的子窗口。
例如面板大小为 320x240,而它的显示窗口就为 320x240。在显示窗口(320x240)内可依使用者需要, 来设定工作窗口的大小,也就是子窗口的大小,子窗口也可在显示窗口内任意调整所要放置的地方。以 下是相关的缓存器说明:
REG [21h] Display Window Right Register (DWRR)
Bit Description Default Access
设定显示窗口(Display Window)右边位置 Æ Segment-Right (1)
Segment_ Right = (Segment Number / 8) – 1
RA8803: 如果 LCD Panel 320x240,则此缓存器的值为:
5-0
( 320 / 8 ) – 1 = 39 = 27h
RA8822: 如果 LCD Panel 240x160,则此缓存器的值为:
xxh R/W
( 240 / 8 ) – 1 = 29 = 1Dh
REG [31] Display Window Bottom Register (DWBR)
Bit Description Default Access
设定显示窗口(Display Window) 底边位置 Æ Common_Bottom
Common_Bottom = LCD Common Number –1
RA8803: 如果 LCD Panel 320x240,则此缓存器的值为:
7-0
REG [41] Display Window Left Register (DWLR)
Bit Description Default Access
7-0
240 – 1 = 239 = EFh
RA8822: 如果 LCD Panel 240x160,则此缓存器的值为: 160 – 1 = 159 = 9Fh
设定显示窗口(Display Window) 左边位置 Æ Segment-Left (注 1)
xxh R/W
xxh R/W
RAiO TECHNOLOGY INC. 57/128 www.raio.com.tw
Version 2.4
通常将此缓存器的值设定为 “00h”
REG [51] Display Window Top Register (DWTR)
Bit Description Default Access
RA8803/8822
双图层
LCD
控制器应用手册
7-0
1:光标地址应设定在显示窗口的范围内,因此缓存器[60h, 70h][B0h, B1h][21h, 31h, 41h, 51h]
REG [20h] Active Window Right Register (AWRR)
Bit Description Default Access
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. DWRR AWRR CPXR AWLR DWLR
2. DWBR AWBR CPYR AWTR DWTR
设定工作窗口(Active window)右边位置 Æ Segment-Right (注 2)
设定工作窗口(Active window) 底边位置Æ Common-Bottom (2)
xxh R/W
xxh R/W
xxh R/W
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. 58/128 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]所设定的值),继续的将数据填入窗口。
xxh R/W
xxh R/W
Version 2.4
设定完工作窗口后,光标地址不会自动移到工作窗口的范围内,因为缓存器[60h]CPXR [70h]CPYR 的光标地址是属于绝对地址,不会因工作窗口大小而改变,也就是(0 ,0)始终是在屏幕
的左上角,因此设定完工作窗口后想要进行秀字,必须先将光标地址设定在工作窗口的范围内, 之后光标地址就只会在工作窗口的范围内移动。
下面的例题 1 2 是以 RA8803 为例,设定 LCD Panel 的显示窗口为 320x240,工作窗口为 160x160 且位于显示窗口的左上角,如图 9-17A 所示。
320
0 1 2 ………………………….159 160 ……….…………………319 0 1 2
: : : : : :
: 159 160
:
:
: 239
Active Window
160 x 160
Display Window
320 x 240
RA8803/8822
双图层
240
LCD
控制器应用手册
9-17A:例题 1 的显示窗口与工作窗口
例 题 1(8051-ASM)
MOV A, #21h CALL RegAddr_WRITE
MOV A, #27h CALL RegAddr_WRITE
MOV A, #31h CALL RegAddr_WRITE MOV A, #EFh
; 设定 Display Window is 320x240 pixel
; 设定 DWRR = (320/8) –1 = 39 = 27h
; 设定 DWBR = 240 –1 = 239 = EFh
MOV A, #41h CALL RegAddr_WRITE MOV A, #00h
CALL RegAddr_WRITE MOV A, #51h CALL RegAddr_WRITE MOV A, #00h
MOV A, #20h CALL RegAddr_WRITE
; 设定 DWLR, DWTR = 00h
; 设定 DWLR, DWTR = 00h
; 设定 Active Window is 160x160 pixel
RAiO TECHNOLOGY INC. 59/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
MOV A, #13h CALL RegAddr_WRITE
MOV A, #30h CALL RegAddr_WRITE MOV A, #9Fh
; 设定 AWRR = (160)/8 –1 = 19 = 13h
; 设定 AWBR = 160 –1 = 159 = 9Fh
MOV A, #40h CALL RegAddr_WRITE MOV A, #00h
CALL RegAddr_WRITE MOV A, #50h CALL RegAddr_WRITE
; 设定 DWLR, DWTR = 00h
MOV A, #00h ; Setup the AWLR, AWTR = 00h
例 题 2(8051-C)
LCD_CmdWrite(0x21,0x27); // Display Window Right Register(DWRR) LCD_CmdWrite(0x31,0xEF); // Display Window Bottom Register(DWBR) LCD_CmdWrite(0x41,0x00); // Display Window Left Register(DWLR) LCD_CmdWrite(0x51,0x00); // Display Window Top Register(DWTR)
LCD_CmdWrite(0x20,0x13); // Active Window Right Register(AWRR) LCD_CmdWrite(0x30,0x9F); // Active Window Bottom Register(AWBR) LCD_CmdWrite(0x40,0x00); // Active Window Left Register(AWLR) LCD_CmdWrite(0x50,0x00); // Active Window Top Register(AWTR)
下面的例题 3 4 是以 RA8822 为例,设定 LCD Panel 的显示窗口为 240x160,工作窗口为 120x120 且位于显示窗口的左上角,如图 9-17B 所示。
240
119 120
159
……………………….
0 1 2
0 1 2
: : : : : : :
: : :
Active Window
120 x 120
……………………… 
119 120
Display Window
239
160
240 x 160
9-17B:例题 2 的显示窗口与工作窗口
RAiO TECHNOLOGY INC. 60/128 www.raio.com.tw
Version 2.4
MOV A, #21h CALL RegAddr_WRITE
MOV A, #1Dh CALL RegAddr_WRITE
MOV A, #31h CALL RegAddr_WRITE MOV A, #9Fh
MOV A, #41h CALL RegAddr_WRITE MOV A, #00h
CALL RegAddr_WRITE MOV A, #51h CALL RegAddr_WRITE MOV A, #00h
MOV A, #20h CALL RegAddr_WRITE
MOV A, #0Eh CALL RegAddr_WRITE
MOV A, #30h CALL RegAddr_WRITE MOV A, #77h
MOV A, #40h CALL RegAddr_WRITE MOV A, #00h
CALL RegAddr_WRITE MOV A, #50h CALL RegAddr_WRITE MOV A, #00h ; Setup the AWLR, AWTR = 00h
LCD_CmdWrite(0x21,0x1D); // Display Window Right Register(DWRR) LCD_CmdWrite(0x31,0x9F); // Display Window Bottom Register(DWBR) LCD_CmdWrite(0x41,0x00); // Display Window Left Register(DWLR) LCD_CmdWrite(0x51,0x00); // Display Window Top Register(DWTR)
LCD_CmdWrite(0x20,0x0E); // Active Window Right Register(AWRR) LCD_CmdWrite(0x30,0x77); // Active Window Bottom Register(AWBR) LCD_CmdWrite(0x40,0x00); // Active Window Left Register(AWLR) LCD_CmdWrite(0x50,0x00); // Active Window Top Register(AWTR)
例 题 3(8051-ASM)
; 设定 Display Window is 240x160 pixel
; 设定 DWRR = (240/8) –1 = 29 = 1Dh
; 设定 DWBR = 160 –1 = 159 = 9Fh
; 设定 DWLR, DWTR = 00h
; 设定 DWLR, DWTR = 00h
; 设定 Active Window is 120x120 pixel
; 设定 AWRR = (120)/8 –1 = 14 = 0Eh
; 设定 AWBR = 120 –1 = 119 = 77h
; 设定 DWLR, DWTR = 00h
4(8051-C)
RA8803/8822
双图层
LCD
控制器应用手册
RAiO TECHNOLOGY INC. 61/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
9-11
行距设定
RA8803/8822 在做文字显示时,提供了行距设定的功能,尤其是做中文显示时,每一行如果有适当的间 隔,LCD 的显示画面看起来会比较舒适。RA8803/8822 行与行相隔的间距设定范围为 1~16 Pixel 的高 度,使用者可依需求来决定行与行间距的大小,一旦设定后,当每填完一行的中文字,跳到下一行时, 其行距会依照先前所设定的间距来显示。
REG [11h] Distance of Words or Lines (DWLR)
Bit Description Text/Graph Default Access
3-0
9-12
自动填入数据到
REG [E0h] Pattern Data Register (PNTR)
Bit Description Text/Graph Default Access
7-0
行距设定
DDRAM
设定写入到 DDRAM 的数据
当缓存器[F0h]bit3 ‘1’RA8803/8822内部将自动读取本 缓存器[E0h] Data,然后全部填写到 DDRAM 内,之后缓存
Text 0010h R/W
Graph 0h R/W
[F0h]bit3 被清除为 ‘0’
REG [F0h] Font Control Register (FNCR)
Bit Description Text/Graph Default Access
重复写入 PNTR -- REG [E0h]的数据到 DDRAM
1:开始写入 0:未动作
3
FDA ‘1’RA8803/8822内部将自动读取 PNTR Data,填写到 DDRAM (Range:[AISR, AICR] ~ [AXSR, AXCR]),之后此位会被自动清除为 ‘0’
例 题:
void LCD_Clear(void) small
{
unsigned char READ_REG;
LCD_CmdWrite(0xE0,0x00);
READ_REG = LCD_CmdRead(0xF0); READ_REG &= 0xF7; READ_REG |= 0x08;
LCD_CmdWrite(0xF0,READ_REG);
Graph 0h R/W
//清除屏幕子程序
//设定 REG[E0] = #00h
//设定 REG[F0] :bit3=1
RAiO TECHNOLOGY INC. 62/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
}
9-13
屏幕更新频率设定
REG [90h] Shift Clock Control Register (SCCR)
Bit Description Default Access
设定 XCK 讯号周期 SCCR = (SCLK x DBW) / (Column x Row x FRS)
SCLK:系统频率(System Clock) (单位:Hz) DBWLCD 驱动器 的 Data Bus 宽度(单位:Bit)
7-0
ColumnLCD 面板的 Segment大小(单位:Pixel) RowLCD 面板的 Common大小 (单位:Pixel) FRSLCD 面板的 Frame Rate(单位:Hz)
限制条件 SYS_DW=0LCD Data Bus 4itSCCR 4
例 题:
SYS_DW=1LCD Data Bus 8itSCCR 2
1. 如果使用 X’tal + PLL 的方式,系统频率(SCLK) = 8MHz
//此时 DDRAM 就全部自动被写入”00”, //而达到快速清除屏幕的动作。
-- R/W
2. LCD 驱动器 的 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
如果设定数值太大,会造成 LCD 屏幕闪动,有时会伴随水波纹产生,除降低数值外也可以提高系统频率 来解决Æ 调整 REG[01h] 设定数值。为达到良好 LCD 显示质量,使用者必须根据 Panel、Driver 之特性 与 VLCD 电压、系统频率等等进行调整。
9-14
(Interrupt)
中断
RA8803/8822 提供一中断信号线(INT)用来表示有三种中断讯息可能发生:
1. 假如光标 Segment 地址缓存器(CPXR)Segment 中断地址缓存器(INTX)值相同,发生中断。
2. 假如光标 Common 地址缓存器(CPYR)Common 中断地址缓存器(INTY)值相同,发生中断。
3. 触控屏幕侦测到被 Touch,发生中断。
与忙碌
(Busy)
设定
RAiO TECHNOLOGY INC. 63/128 www.raio.com.tw
Version 2.4
这三种中断都可以单独被致能或禁能,而中断的设定与中断讯息可有由缓存器[A0h] INTR 来控制与读 取。此外 RA8803/8822 提供一忙碌(Busy)信号线,用来表示 RA8803/8822 内部 DDRAM ROM 的存 取状态是否因 Busy 而暂时无法接收 MPU 来的 Command 。此 BUSY Pin 通常与 MPU I/O 端连接, MPU 在对 RA8803/8822 做存取前可以先判断 RA8803/8822 是否可以接受存取动作(Available)。以下是 相关的缓存器说明:
REG [01h] Misc. Register (MISC)
Bit Description Default Access
设定输出脚 -- 中断讯号(INT)与忙碌讯号 BUSY 的触发准位
RA8803/8822
双图层
LCD
控制器应用手册
4
REG [A0h] Interrupt Setup & Status Register (INTR)
Bit Description Default Access
7
6
5
1:设定高电位触发动作 0:设定低电位触发动作
Key Scan 中断旗标
1Key Scan 有侦测到按键输入 0Key Scan 无侦测到按键输入
触控屏幕侦测
1:触控屏幕有侦测到触摸(Touch) 0:触控屏幕未侦测到触摸
光标 Column 状态
1:光标的 Column 等于缓存器[B0h]INTX 0:光标的 Column 不等于缓存器[B0h]INTX
光标 Row 状态
1h R/W
0h R
0h R
0h R
4
3
2
RAiO TECHNOLOGY INC. 64/128 www.raio.com.tw
1:光标的 Row 等于缓存器[B1h]INTY 0:光标的 Row 不等于缓存器[B1h]INTY
Key Scan 中断屏蔽控制
1:致能 Key Scan 中断
0:禁能 Key Scan 中断
触控屏幕中断屏蔽
1:如果触控屏幕被侦测到,则产生中断输出
0:如果触控屏幕被侦测到,则不产生中断输出
0h R
0h R/W
0h R/W
Version 2.4
设定缓存器[B0h]INTX 是否发生中断
RA8803/8822
双图层
LCD
控制器应用手册
1
0
REG [B0h] Interrupt Column Setup Register (INTX)
Bit Description Default Access
5-0
REG [B1h] Interrupt Row Setup Register (INTY)
Bit Description Default Access
7-0
1:致能 INTX 中断 0:禁能 INTX 中断
设定缓存器[B1h]INTY 是否发生中断
1:致能 INTY 中断 0:禁能 INTY 中断
设定行(Column)中断地址 假如光标位置 X 缓存器(CPXR)=INTX,发生中断。
设定列(Row)中断地址 假如光标位置 Y 缓存器(CPYR)=INTY,发生中断。
0h R/W
0h R/W
27h R/W
EFh R/W
9-15
省电模式
RA8803/8822 的电源工作模式分两种:正常模式(Normal Mode),关闭模式(Off Mode),请参考下面缓 存器及例题。
REG [00h] Whole Chip LCD Controller Register (WLCR)
Bit Description Text/Graph Default Access
7-6
电源模式(Power Mode)
1 1:正常模式(Normal Mode)
RA8803/8822 的所有功能都可以使用(Available)
0 0:关闭模式(Off Mode)
除了唤醒(Wake-Up)电路工作外,其它功能都被禁止。
Wake-Up 电路被触发,RA8803/8822 将进入正常 模式。
例 题: Normal_Mode:
CALL Read_R00 MOV A, REG00_READ OR A, #00000011b
-- 3h R/W
RAiO TECHNOLOGY INC. 65/128 www.raio.com.tw
Version 2.4
CALL Write_R00 RTS
Sleep_Mode: CALL Read_R00 MOV A,REG00_READ AND A, #11111100b CALL Write_R00 RTS
RA8803/8822
双图层
LCD
控制器应用手册
9-16
如何读取
RA8803/8822 允许 MPU 读取 Font ROM Data,只要将缓存器[02h]Bit3 设为 1,然后写入两个 Byte 的中文码,之后连续读取的 32Byte Data 就是该中文码相对映的 Font Data,如下图 9-18A 的流程 图。
REG [02h] Advance Power Setup Register (APSR)
Bit Description Default Access
3
Font ROM
字型 ROM 的直接读取
1:致能 0:禁能
字型
0h R/W
設定REG[02h]bit3--> 1
寫入所要讀取的中文字碼
(BIG5/ GB)
讀取該中文資料32次即可
獲得完整的中文字型
9-18A : 读取 Font ROM 字型流程
之前提过 RA8803/8822 的全型字型为 16x16 的 Bitmap 所组成,每个全型字型占用 Font ROM 32Byte,在 MPU 读取 Font ROM Data时其顺序如下图 9-18B 所示。
RAiO TECHNOLOGY INC. 66/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
Byte1
2 3 4 5 6 7 8
9 10 11 12 13 14 15 16
Byte17
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
9-18B : 读取 Font ROM 字型 Data 的顺序
9-17
字号放大设定
RA8803/8822 内建有 512KByte 的中文显示字型 ROM(Font ROM),全角 16x16 中文与 8x16 ASCII 半型字型。除了内建的 8x16 16x16 的字号外,还提供字型放大的功能,可利用 REG[F1h]bit7~4 的设 定,将显示字号放大到 32x32 48x4864x64。下图 9-19是表示 16x16的字型放大到 32x32
16
16
32
32
9-19 : 字号放大
RAiO TECHNOLOGY INC. 67/128 www.raio.com.tw
Version 2.4
REG [F1h] Font Size Control Register (FVHT)
Bit Description Default Access
7-6
5-4
设定字型水平的大小
0 0:一倍 0 1
:二倍
1 0
:三倍
1 1
:四倍
设定字型垂直的大小
0 0:一倍 0 1
:二倍
1 0
:三倍
1 1
:四倍
RA8803/8822
双图层
LCD
控制器应用手册
0h R/W
0h R/W
例 题:
Font_Tab: db "",0Dh Test_Font_Size: MOV A, #5Fh ; Set Font Size = 32 x 32 CALL Font_Size Printf Font_Tab ; MOV A, #AFh ; Set Font Size = 48 x 48 CALL Font_Size Printf Font_Tab ; : : : Font_Size: CALL Write_RF1 ; Write A to Register $F1 RTS
9-18
图层显示功能设定
RA8803/8822 提供了双图层的功能,可经由缓存器 REG[12h]来做设定,并提供 4 (ORNORXOR
AND)图层显示模式,供使用者设定选用。实际的显示效果,请参考图 9-20
显示 32x32
显示 48x48
REG [12h] Memory Access Mode Register (MAMR)
Bit Description Default Access
设定选择 Display Data RAM 的图层显示模式
6-4
RAiO TECHNOLOGY INC. 68/128 www.raio.com.tw
0 0 1:只有显示 Page1 的图层 (单一上层显示模式)
1h R/W
Version 2.4
0 1 0:只有显示 Page2 的图层 (单一下层显示模式) 0 1 1
:同时显示 Page1 和 Page2的图层 (双层模式)
0 0 0
:灰阶显示(Gray Mode),此模式下每一个点的灰度决定于 DDRAM
RA8803/8822
双图层
LCD
控制器应用手册
3-2
Page1
1 1 0
:扩展模式(1),同时显示 Page1 Page2的图层,让 RA8803 可用
1 1 1
:扩展模式(2),同时显示 Page1 Page2的图层,让 RA8803 可用
在双层模式下图层逻辑关系
0 0Page1 RAM “OR” Page2 RAM
Page1 RAM “XOR” Page2 RAM
0 1
Page1 RAM “NOR” Page2 RAM
1 0
Page2 相对映的值。
Page1 Page2 灰度
-------------------------------------------­ 0 0 Level1
1 0 Level2 0 1 Level3
1 1 Level4
640x240RA8822 可用于 480x160Panel
320x480RA8822 可用于 240x320Panel
0h R/W
1-0
Page1 RAM “AND” Page2 RAM
1 1
请参考 图 9-20 的图形说明 设定 Read/ Write 要在哪一个图层运行
0 0:存取 Page0 (512B SRAM)Display Data RAM
:存取 Page1 (9.6KB SRAM)Display Data RAM
0 1
:存取 Page2 (9.6KB SRAM)Display Data RAM
1 0
:同时存取 Page1 Page2Display Data RAM
1 1
1h R/W
RAiO TECHNOLOGY INC. 69/128 www.raio.com.tw
Version 2.4
Page1 Page2 Visible Display
RA8803/8822
双图层
LCD
控制器应用手册
1
Controller Controller
2
Controller Controller
3
Controller Controller
4
Controller roller
9-20 : 图层显示效果
例 题:
CALL Display_Off ; 先将显示器 OFF CALL Graphic_Mode ; MOV A,#91h ;
进入绘图模式 设定数据写入 Page#1
CALL Write_R12 CALL Show_Page1 ;
填入 Page#1 的图
CALL A, #a2h ;
设定数据写入 Page#2
CALL Write_R12 CALL Show_Page2 ;
填入 Page#2 的图
MOV A,#bdh ;
设定显示 Page#1 AND Page#2
CALL Write_R12 CALL Display_On ;
将显示器 ON
: : :
Display_On:
CALL Read_R00 MOV A, REG00_READ OR A, #00000100b CALL Write_R00 RTS
Display_Off:
CALL Read_R00 MOV A,REG00_READ AND A, #11111011b CALL Write_R00 RTS
OR
NOR
XOR
AND
RAiO TECHNOLOGY INC. 70/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
9-19 Key Scan
RA8803/8822 内建有 4x8/8x8 Key Scan 电路,可用来作为 Keyboard 的功能,帮助系统发展者可轻
易整合开发含有
9-21A Key Scan 的应用电路图,事实上只要将 Key PAD 直接接到 RA8803/8822 就可以了。设定 完缓存器
REG [A1h] Key Scan Controller Register (KSCR)
Bit Description Default Access
Key Scan 的致能控制位
7
6
1:致能
:禁能
0
Key San 的数组选择
1Key Scan 8x8 数组 0
Key Scan 4x8 数组
选择消除弹跳的计数波长设定
应用
Keyboard 的周边电路,其相关设定缓存器为 KSCRKSDRKSER
KSCR 后直接由缓存器 KSDRKSER读取按键数据就可判断哪一个按键被按下。
0h R/W
0h R/W
0 02h 0 1
5-4
2-0
REG [A2h] Key Scan Data Register (KSDR)
Bit Description Default Access
7-0
4h
1 0
8h
1 1
16h
Key Scan 的波形频率选择
0 0 0:2 倍 (2 x FRM) 0 0 1
4 (2 x FRM)
0 1 0
8 (2 x FRM)
0 1 1
16 (2 x FRM)
1 0 0
32 (2 x FRM)
1 0 1
64 (2 x FRM)
1 1 0
128 (2 x FRM)
1 1 1
256 (2 x FRM)
Key Scan KC[7~0] 的输出值
0h R/W
0h R/W
0h R
RAiO TECHNOLOGY INC. 71/128 www.raio.com.tw
Version 2.4
REG [A3h] Key Scan Data Expand Register (KSER)
Bit Description Default Access
RA8803/8822
双图层
LCD
控制器应用手册
7-0
Key Scan KR[7~0] 的输入值
0h R
RA8803
KO0 KO1 KO2 KO3 KO4 KO5 KO6 KO7
KI0 KI1 KI2 KI3 KI4 KI5 KI6 KI7
9-21A : Key Scan 示意图
Set REG[A1h] = 0xF1
Set REG[A0h] = 0x08
Set Temp = REG[A0h]
Set REG[A1h] = 0xF1
Delay 20ms
Temp & 0x80 = 0x80?
Yes
Read Key-In = REG[A3h]
Read Key-Out = REG[A2h]
No
9-21B : Key Scan 流程图
RAiO TECHNOLOGY INC. 72/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
9-20
屏幕水平卷动及垂直卷动设定
在屏幕所显示的画面可以作水平卷动,须由缓存器 次移动的刻度为
22B
REG [03h] Advance Display Setup Register (ADSR)
Bit Description Default Access
设定 Common 的自动卷动
2
1
0
REG [71h] Shift action range, Begin Common Register (BGCM)
Bit Description Default Access
7-0
REG [72h] Shift action range END Common Register (EDCM)
Bit Description Default Access
7-0
1 致能 0
: 禁能
设定 Segment 的自动平移
1 致能 0
: 禁能
设定选择 Common 的卷动或是 Segment 的平移模式
1Segment 的平移 0
Common 的卷动
在水平移动模式下,设定区块移动的启始 Common 位置
在水平移动模式下,设定区块移动的结束 Common 位置
1 Byte。另外,还可透过缓存器[71h, 72h]来设定屏幕的区块水平卷动,如图 9-
[03h]来做设定。该项功能可达到左右的水平卷动,每
0h R/W
0h R/W
0h R/W
0h R/W
EFh R/W
9-22A:水平卷动的效果
RAiO TECHNOLOGY INC. 73/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
LCD_CmdWrite(0x80,0x05); LCD_CmdWrite(0x71,0x00); LCD_CmdWrite(0x72,0x00);
LCD_CmdWrite(0x03,0x83);
//设定水平或垂直卷动速度
设定 REG[71]区块 Y1 坐标
//
设定 REG[72]区块 Y2 坐标
// //设定 REG[03]:bit[1,0]=”11” //此时屏幕将以 Y1/Y2 设定的区块做水平卷动
水平區塊移動
的啟始
Common位置
水平區塊移動
的結束
Common位置
RA8803 RA8822
LCD Driver
支援螢幕水平捲動
垂直捲動功能
RAiO
RA8803 RA8822
LCD Driver
支援螢幕水平捲動
垂直捲動功能
RAiO
9-22B:水平卷动的效果
RA8803 RA8822
LCD Driver
螢幕水平捲動
垂直捲動功能
RAiO
9-22B,透过缓存器[71h, 72h]来设定水平卷动范围,屏幕的画面是由 Common 的哪一段区域进行卷 动。
在屏幕所显示的画面可以作垂直卷动,须由缓存器[03h]来做设定。该项功能可达到上下的垂直卷动,每 次移动的刻度为
1 个像素(Pixel)。如图 9-23所示,可作卷动的效果。
RAiO TECHNOLOGY INC. 74/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
9-23:垂直卷动的效果
LCD_CmdWrite(0x80,0x05);
LCD_CmdWrite(0x03,0x86);
//设定水平或垂直卷动速度 //设定 REG[03]:bit[2,1]=”11” ,此时整个屏幕将
做垂直卷动
RAiO TECHNOLOGY INC. 75/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
9-21 ASCII
区块选择设定
RA8803/8822 内建四个 ASCII 区块,包含许多文字特殊符号或图形等,可供使用者直接取用,此功
能可以由缓存器
[F0h]bit[1..0]来设定。如果使用者需要特殊符号或图形,亦可经由调整 ROM Code
方式来建立。下面我们将介绍这四个区块的
REG [F0h] Font Control Register (FNCR)
Bit Description Text/Graph Default Access
4 ASCII 区块选择
0 0ASCII 选择区块 0Latin_1 0 1
1-0
ASCII 选择区块 1 Latin_2
1 0
ASCII 选择区块 2 Latin_3
1 1
ASCII 选择区块 3 Latin_4
9-21-1 ASCII
字形区块
0
b3-b0
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 111011001011 11111010 1101
b7-b4
0000
Pattern(如图 9-24~9-27)选择方式及使用范例
-- 2h R/W
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
9-24:内建 ASCII 区块 Bank0
RAiO TECHNOLOGY INC. 76/128 www.raio.com.tw
Version 2.4
题:
MOV A,#xxxxxx00b ;
设定 选择 ASCII Code 表为 Block 0
CALL Write_RF0 MOV A, #00000100b ; MOV DATA_ADDR,A ; MOV A,#10010011b ; MOV DATA_ADDR,A ;
选择 Block0 里的“@” 光标所指的位置就会显示“@” 选择 Block0 里的“9”
“@”之后,光标所指的位置就会显示“9
9-21-2 ASCII
字形区块
1
RA8803/8822
双图层
LCD
控制器应用手册
b3-b0
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
b7-b4
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1010
1101
111011001011 1111
1101
1110
1111
9-25:内建 ASCII 区块 Bank1
RAiO TECHNOLOGY INC. 77/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
9-21-3 ASCII
字形区块
区块
2 的选择方式与上面相同,只要设定缓存器[F0h]bit[1..0],再将选择的 Pattern写入光标所在
的位置既可。
2
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-26:内建 ASCII 区块 Bank2
RAiO TECHNOLOGY INC. 78/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
9-21-4 ASCII
区块
字形区块
3 的选择方式与上面相同,也只要设定缓存器[F0h]bit[1..0],再将选择的 Pattern写入光标所
在的位置既可。在区块
3
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-27:内建 ASCII 区块 Bank3
9-22
自行造字
RA8803/8822 内建 512Byte SRAM 可支持自行造字功能,最大字数为 16 个全角中文字(16x16)。若用
到特殊字,是字库内没有的字型,可利用该项功能,增加内建字库的内容,来提升 下面是造字会用到的缓存器及范例
:
REG [12h] Memory Access Mode Register (MAMR)
Bit Description Default Access
MPU 的存取效率。
设定 Read/ Write 要在哪一个图层运行
1-0
1h R/W
0 0:存取 Page0 (512B SRAM)Display Data RAM
RAiO TECHNOLOGY INC. 79/128 www.raio.com.tw
Version 2.4
0 1:存取 Page1 (9.6KB SRAM)Display Data RAM
:存取 Page2 (9.6KB SRAM)Display Data RAM
1 0
:同时存取 Page1 Page2Display Data RAM
1 1
REG [60h] Cursor Position X Register (CPXR)
Bit Description Default Access
RA8803/8822
双图层
LCD
控制器应用手册
5-0
设定光标 Segment 地址
例 题:
Create_Font_Tab0: db 08h,1ch,1ch,ffh,7fh,1ch,3eh,3eh, 77h,41h,00h,00h,83h,7fh,3fh,0fh, 0Dh Create_Font_Tab1: db 20h,10h,1ch,9eh,1eh,1fh,1fh,1fh,
1fh,3fh,7eh,feh,fch,f8h,f0h,c0h, 0Dh
Create_Font_Tab2: db FFh, F0h, 0Dh Test_Create_Font:
CALL Graphic_Mode ; MOV A, #10h ; Write to Page0
设定成绘图模式
Æ 512Byte SRAM
CALL Write_R12 MOV A, #0h ; CALL Write_R60 ; Printf Create_Font_Tab0 ;
对中文码 ”FFF0” 进行造字 设定光标 Segment 地址 前 16Byte
MOV A, #01h CALL Write_R60 ; Printf Create_Font_Tab1 ;
设定光标 Segment 地址(每 16Byte 要加 1) 16Byte
CALL Text_Mode ;
设定成文字模式
MOV A, #91h ; Page1 CALL Write_R12 Printf Create_Font_Tab2 ; 显示码为 “FFF0”的字样 Æ 图 9-28
0h R/W
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,
9-28 : 造字
每个全角 16X16 中文字占 32Byte ,因此内建 512Byte SRAM 可造 16 个字,中文码内订
”FFF0~FFFF” 。上例为自建中文码为”FFF0”的字样,若是”FFF1”则写入 Data Page0 之前的前
16Byte 要先将缓存器[60h]设成”02h”,写入 Data Page0 之前的后 16Byte 要将缓存器[60h]
RAiO TECHNOLOGY INC. 80/128 www.raio.com.tw
Version 2.4
”03h”,依此类推。
注: 在可造字时须要先将 Line Distance 设为 0,也就是缓存器[11h]的 Bit[3:0]设成 0,造完字后就无此限
RA8803/8822
双图层
LCD
控制器应用手册
定,请参考
9-23
灰阶显示
RA8803/8822 可利用分时显示的原理达到灰阶显示的效果,灰阶模式需要同时使用 Page1 Page2
图层,在此模式下 一点来说, 度效果,由于是利用分时显示的原理,为了达到良好的显示质量及避免闪烁必须将 频率提高。下面是灰阶显示会用到的缓存器及范例
REG [12h] Memory Access Mode Register (MAMR)
Bit Description Default Access
设定选择 Display Data RAM 的图层显示模式
0 0 1:只有显示 Page1 的图层 (单一上层显示模式) 0 1 0 0 1 1
0 0 0
6-4
1 1 0
9-11 节。
LCD 每一个点的灰阶效果决定于 Display RAM Page1 Page2 的值。对 LCD 的同
[Page1, Page2] 可以为[0,0][1,0][0,1]、或 [1,1],如果它们的显示不同将会产生不同的灰
Frame Rate 或系统
:
:只有显示 Page2 的图层 (单一下层显示模式) :同时显示 Page1 和 Page2的图层 (双层模式)
:灰阶模式(同时显示 Page1 和 Page2的图层),在此模式下 LCD每
一个点的灰阶效果决定于
Page1 Page2 Gray
-------------------------------------------­ 0 0 Level1 1 0 Level2 0 1 Level3
1 1 Level4
:扩展模式(1),同时显示 Page1 Page2的图层,让 RA8803 可用
640x240RA8822 可用于 480x160Panel
Display RAM Page1 Page2的值。
1h R/W
1 1 1
:扩展模式(2),同时显示 Page1 Page2的图层,让 RA8803 可用
320x480RA8822 可用于 240x320Panel
RAiO TECHNOLOGY INC. 81/128 www.raio.com.tw
Version 2.4
REG [E0h] Pattern Data Register (PNTR)
Bit Description Default Access
(1) Data Written to DDRAM (2) Display Times of Gray Mode
RA8803/8822
双图层
LCD
控制器应用手册
7-0
PNTR = 55h, AAh, 0Fh, F0h, CCh, 33h99h 皆表示缓存器 Data “1” “0” 的数目一样,那么灰阶 Level2 Level3 的显示效果是一样的,如果设成这些值只能有 3 阶的显示效果,必须让 ”1” 的数目多
9-29 是在屏幕上秀出四灰阶的基本概念,如果 Display RAM Page1 上半部全部填”00”,下半部全 部填 四个不同灰阶的方块。
在灰阶模式下 时间,如果 的比率。
“0” 的数目才能有 4 灰阶显示的效果。
”FF”,且 Page2 的左半部全部填”00”,右半部全部填”FF”,那么启动灰阶功能后可以在屏幕上秀出
(Register MAMR bit[6..4] = 000) ,此缓存器用来控制显示
Frame Rate 固定,此缓存器 “1” “0” 的数目代表显示 10
00h
Page1
FFh
00h FFh
0h R/W
Page2
9-29 : 灰阶
例 题:
CALL Graphic_Mode LCD_CmdWrite(0x12, 0X91); //Write Page#1 CALL Show_Gray2 LCD_CmdWrite(0x12,0x92); //Write Page#2 CALL Show_Gray1 LCD_CmdWrite(0x01,0XF2); // LCD_CmdWrite(0xD0,0x01); //
RAiO TECHNOLOGY INC. 82/128 www.raio.com.tw
提高 System Clock
提高亮度
Version 2.4
LCD_CmdWrite(0xE0,0x3F); //灰阶对比
RA8803/8822
双图层
LCD
控制器应用手册
9-24
RA8803/8822 提供了扩展模式,让 DDRAM 的双图层(Page1 & Page2)同时显示在更大的 LCD 面板上,
可经由缓存器
LCD 面板上,RA8822 可显示到 480x160 LCD 面板,Screen 的左半部会显示 DDRAM Page1 的内
容,
Bit[6:4] 说明请参考上一节 9-23 或规格书的说明。
LCD_CmdWrite(0x90,0x04); // LCD_CmdWrite(0x12,0x00); //
提高 Frame Rate 显示灰阶
CALL Display_Off CALL Display_On CALL Delay1s
扩展模式显示
MAMR Bit[6:4]来做设定,当 MAMR Bit[6:4]=110b 时,RA8803 可显示到 640x240
Screen 的右半部会显示 DDRAM Page2 的内容,实际的显示效果,如图 9-30。缓存器 MAMR
320 320
240
160
Page1 Page2
RA8803
240 240
Page1 Page2
RA8822
9-30:扩展模式(1) 缓存器 MAMR bit[6:4] = 110h
MAMR Bit[6:4]=111b 时,RA8803 可显示到 320x480 LCD 面板上,RA8822 可显示到 240x320LCD 面板,Screen 的上半部会显示 DDRAM Page1 的内容,Screen 的下半部会显示 DDRAM Page2 的内容,实际的显示效果,如图 9-31
RAiO TECHNOLOGY INC. 83/128 www.raio.com.tw
Version 2.4
320 240
RA8803/8822
双图层
LCD
控制器应用手册
240
240
Page1
Page2
RA8803 RA8822
160
160
Page1
Page2
9-31:扩展模式(2) 缓存器 MAMR bit[6:4] = 111h
在扩展模式下使用有些地方会受限制,如图 9-30 RA8803 设成扩展模式(1),为显示 600x240
Panel,必须将 Data 分别写入 Page1 Page2,游标的移位会以 Page 为单位,而非延续由 0 599(Common),如图 9-32 所示。使用者必须将显示画面分为两个,再分别写入 Page1 Page2,才能
构成一完整的
640x240 画面。
Page1 Page2
9-32:扩展模式(1)的光标移位
以图 9-30 RA8803为例,做水平卷动时会如图 9-33 所示。
RAiO TECHNOLOGY INC. 84/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
Page1 Page2
9-33:扩展模式(1)的水平卷动
相反的,如图 9-31 RA8803 设成扩展模式(2),为显示 320x480 PanelData 也必须分别写入 Page1
Page2,但游标的移位仍由 0 319(Common),如图 9-34所示。而做水平卷动时会如图 9-35所示。
Page1
Page2
Page1
Page2
9-34:扩展模式(2)的光标移位
9-35:扩展模式(2)的水平卷动
RAiO TECHNOLOGY INC. 85/128 www.raio.com.tw
Version 2.4
在扩展模式下不提供垂直卷动功能,此外在扩展模式下因为
Page1 Page2 都被使用到,因此像灰阶显示、
RA8803/8822
双图层
LCD
控制器应用手册
双图层的
4 (ORNORXORAND)图层显示模式等将无法使用。
RAiO TECHNOLOGY INC. 86/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
附录 A. 液晶显示驱动器(LCD Driver)的时序图
附录 A RA8803/8822 搭配驱动器(Driver)ST8016/NT7701 Segment Common 模式下的时序特性波 形图,及参数表。
Shift Clock Rise to Latch
Shift Clock Fall to Latch
Latch Pulse Rise to Shift
Latch Pulse Fall to Shift
t
WLPH
t
t
WCKH
t
DS
LH
t
WCKL
t
DH
XCK
LP
t
SL
t
LD
t
R
t
F
t
WCK
t
LS
DI7-DI0
LAST DATA TOP DATA
t
DISPOFF
WDL
t
SD
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
Pulse Rise Time
Pulse Fall Time
Clock Rise Time
Clock Fall Time
t
WCK
t
WCKH
t
WCKL
t
DS
t
DH
t
WLPH
t
LD
t
SL
t
LS
t
LH
t
, t
11ns
R
F
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. 87/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
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
t
R
t
F
SD
t
D
, t
PD2
20ns
R
F
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. 88/128 www.raio.com.tw
Version 2.4
附录 B. 应用电路图
RA8803/8822
双图层
LCD
控制器应用手册
B-1
应用电路
附录
B RA8803/8822 应用在 LCM 模块或系统端的控制电路图,也将 MPU Driver 的总线接口脚位
拉出,供使用者参考。
J1
PHONEJACK
DB0 RS DB1 DB2 DB3 DB4 DB5 DB6 DB7
LD0 LD1 LD2 LD3 LD4 LD5 LD6 LD7
LCD INTERFACE
KR0 KR1 KR2 KR3 KR4 KR5 KR6 KR7
KEYBOARD INTERFACE
R9 10K R10 10K
R11
10K R12 10K
R13
10K
D1
JP1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
MPU INTERFACE
JP3
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
JP4
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
SYS_MI
SYS_DB
SYS_FQ
SYS_NM
SYS_DW
1N4148
VDDVCC
VDDVCC
R14 10K
R15
10K R16 10K
R17
10K R18 10K
RW EN CS1 CS2 BSY INT RST
DOFF XCK YD LP
FRM OPM1 OPM0
CLK_OUT
KC0 KC1 KC2 KC3 KC4 KC5 KC6 KC7
VCC
On / Off
S1
U1 5V
1
C1 220uF
VCC2
VDD2
SYS_DB SYS_MI SYS_DW
Vin
KC0 KC1 KC2 KC3 KC4 KC5 KC6 KC7 KR0 KR1 KR2 KR3 KR4 KR5 KR6 KR7
L1 or R=0 INDUCTOR1
L2 or R=0 INDUCTOR1
VDD
R19 0
R20 0
VCC
U2 3.3V
VCC
3
Vout
2
GND
VCC
VDD
81
NC
82
KC0
83
KC1
84
KC2
85
KC3
86
KC4
87
KC5
88
KC6
89
KC7
90
KR0
91
KR1
92
KR2
93
KR3
94
KR4
95
KR5
96
KR6
97
KR7
98
SYS_DB
99
SYS_MI
100
SYS_DW
VDD3
1
Vin
Vout
2
C2 220uF
L4 or R=0 INDUCTOR 1
807978777675747372717069686766656463626160595857565554
NCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNC
GND
VREG
RA8803 RA8822
VDDP
GNDP
SYS_FQ
SYS_NM
LD0
LD1
LD2
LD3
LD4
LD5
LD6
LD7
DISPOFF
LD3
1011121314
LD4
LD5
XCKYDLP
LD6
LD7
XCK
DOFF
CP5
2.2uF
123456789
VREG
XCK LP YD FRM LD0 LD1 LD2 LD3 VLCD
DOFF
X2 Y1 X1 Y2
LD0
LD1
LD2
GND
SYS_FQ
SYS_NM
C11 104
LCD1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
CON18
VDD
3
C3 220uF
FRM
GND
VDD3
VDD5
BUSY
INT
17
1822232524262728291530
162119
20
LP
YD
INT
BSY
FRM
GND
GND
VDD2
C12 104
VDD3
R21
VDD3
0
R22 0
R1 330
D2 LED
AGND
AVDDY2X2Y1X1
Y2X2Y1
VREG
C14 104
XCK LP YD
LD0 LD1 LD2 LD3 VLCD
VSS BLE VELG
VCCVDD
JP2
1 2 3
CON3
CLK_OUT
DAC
R2
10K
RZ1 0
53
51
52
R5
50
OPM1 OPM0
VDDP GNDP
RST#
OPM1 OPM0
49
RST
48
XA
47
XA
XB
46
XB
LPF
45
LPF
DB7
44
DB7
DB6
43
DB6
DB5
42
DB5
DB4
41
DB4
DB3
40
DB3
DB2
39
DB2
DB1
38
DB1
DB0
37
DB0
EN
36
EN
RW
35
RW#
VREG
34 33
GND
32
RS
RS
31
CS2
CS2
LD0 LD1 LD2 LD3
CLK_OUT
IOUT
CS1#
X1
CS1
DAC
LCD interface for Panel
LCD3
1 2 3 4 5 6 7 8 9 10 11 12 13 14
X1
15
X2
16
Y1
17
Y2
18
CON18
C4 30pF
VR2
R3 10K
50K
VCC
RST
CP1 30pF
YD LP XCK
DOFF LD0 LD1 LD2
VDD3
LD3 VSS
VLCD
U3
1
COMP
2
INHIBIT
3
Freq
4
sub
5
GND
6
Cathode Anode7EMIT
TL497
R5
1.2K
R4 100K
C6
2.2uF
C15 104
CP2
CP3
CP4
30pF
30pF
30pF
LCD2
1 2 3 4 5 6 7 8 9 10 11 12
CON12
C5
100uF
BASE_D
LPF
X1 X2 Y1 Y2
BASE
VCC CUR
COL
NC
Y1
32768
C8 15P
C7
0.22uF
R8
2.7K
R7
VCC2
2.7~10 ohm
14 13 12 11 10 9 8
R6 10K
CP5
30pF
C9 15P
XBXA
C10
0.01uF
100uH
L5
VLCD
VR1
20K
CP6
CP7
CP8
30pF
30pF
30pF
B-1:应用电路图
注:
1. Reset Pin – RST#,它可以由 MPU 来控制,或是由一 RC(R4 C6)电路来产生,请参考 8-1 节与 8-2 的说明。请注意,RA8803/8822 没有完成 Reset 的动作是无法接受 MPU 的任何指令,甚至
图 会造成起振不正确或系统设定错误。
2. VLCD
制由
的电压是正的,由 U3 TL497 产生,电压范围由 VR1 来控制(≒12V~30V),输出电流的限
R7 决定,且 R7 不能短路,如果接上 LCD Panel VLCD 电压下降,表示 LCD Panel 上的
RAiO TECHNOLOGY INC. 89/128 www.raio.com.tw
Version 2.4
Droving 负载(Loading)较大,此时可将 R7调小。
B-1 VLCD 电压是正的,如果须要的 VLCD 电压是负的,则必须使用别的升压电路。如图 B-2
3.
就是一负压的升压电路。
RA8803/8822
双图层
LCD
控制器应用手册
4. VR2
用来调整 DAC VLCD 的变动范围,虽然 DAC 可用于控制升压电路,进行对比显示
(Contrast)设定,但仍须要注意的是升压电路本身的精确度,即使是同一批号的生压 IC,产生的 VLCD 电压准位也会不同,而且不同批的 LCD Panel 对相同 VLCD 电压产生的对比显示效果也不一
样,因此如果使用 阻做为出厂设定。
5. R19
6. R9~R18
7.
R20 用来选择接到 LCD Panel 的电压是 5V3.3V
用来选择系统设定,请参考 8-1 节的说明。
B-1 RA8803/8822 的电源使用的是 3.3V(VREG VDD2 L2 L4 VDD),而 VDD
RA8803/8822 DAC 进行对比显示(Contrast)设定,建议仍要加上 VR2 可调电
3.3V
如果系统时序(System Clock)产生方式为外部 Clock(也就是 R16 焊上,R11 不焊),外部 Clock 须由
8.
XA 输入,此时 Y1C8C9可不用接。
9. LD[3:0]
如果使用触摸式面板,电路图上的 CP5~CP9 电容可以少噪声增加稳定度。
10.
各并接一电容(CP1~CP4),可以减少噪声产生。
IOUT
RA8803/8822
C5
0.1uF
Vin = 2.4~7V
U1
1
C1
100uF
R3
2.2K
0
200K
C4
0.047uF
R4
R5
VIN
2
VREF
3
SHDN
4
FB
R2
100K
CL
DHI
DLOW
GND
AIC1652
R1
1M
C3 10nF
RCL
0~10
8 7
RB
6
470~1.8K
5
100uH
Q1 9012
*L
D1
1N4148
Vout = -12V~-40V
(-10mA)
C2 100uF
图 B-2:应用电路图-负压的升压电路
RAiO TECHNOLOGY INC. 90/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
B-2
(Power)
电源
B-2-1
电源结构
RA8803/8822 的电源结构如于图 B-3 所示,VDDP 为芯片的 I/O 接脚电源,其对映的地线为 GNDPRA8803/8822 内部有一 5V 3V DC-to-DC 电路,此电路的电源为 VDD5,而 VDD3
此电路的输出电源,供给芯片内部的组件
DC-to-DC 电路其对映的地线为 GNDRA8803/8822 内部还有一 ADC 电路,用于触摸式面板的控
制器,
应用电路
AVDD 为此 ADC的电源,其对映的地线为 AGND
(Core) DAC 使用,也可以由外部再接给 AVDD 使用,
RA8803/8822
GNDP
VDDP
Core
DAC
VDD3
VDD5
AVDD
B-3:电源结构
如果系统应用上没有使用 RA8803/8822 内部的 ADC电路,则建议将 AVDD 接到 VDD3
5V Æ 3V
ADC
GND
AGND
RAiO TECHNOLOGY INC. 91/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
B-2-2 3V
电源应用电路
RA8803/8822 工作于 3V 可减少芯片及系统的电源功率消耗,其电源接法如图 B-4,由于此时内部 5V 3V DC-to-DC 电路不需被使用,因此 VDD5 保持浮接即可。图 B-4 中的 0.47uH 电感与
0.1u 电容可以增加系统稳定度及避免 ADC 受到严重干扰影响精确度,如果系统工作环境较严格及有
使用内部触摸控制器
(Touch Panel Controller),建议加上这些组件。
RA8803/8822
VDDP
VDD3
VDD5
AVDD
GNDP
GND
AGND
MCU I/F
VDD
GND
MCU3V
I/O
3V
0.47uH
(Option)
0.47uH
(Option)
10u 0.1u 0.1u 0.1u
B-43V 电源应用电路
B-2-3 5V
电源应用电路
RA8803/8822 工作于 5V 时,其电源接法建议如图 B-5,由于此时内部 5V 3V DC-to-DC
路必须启动以供给芯片内部的组件使用,因此 性必须外加一 及避免
ADC 受到严重干扰影响精确度,如果系统工作环境较严格及有使用内部触摸控制器(Touch
Panel Controller)
VDD5 接到 5V 的电源,同时为了增加 VDD3 的稳定
1uF 0.1uF 的电容。另外图 B-5 中的 0.47uH 电感与 0.1u 电容可以增加系统稳定度
,建议加上这些组件。
值得注意的是此情况下内部 DC-to-DC 电路会产生些许电流消耗,即使在 RA8803/8822 进入 Sleep 模式时仍有约 20uA 的静态电流耗损。
注: 原先
1.4 版之前的应用手册(1.4)并未提到 5V 3V Dc to DC 电路,并且在 5V 的系统是
5V 直接接到 VDDPVDD3(VDD)AVDD,但在考虑系统的稳定度情况下,我们建议客户
将 如果应用在
5V 的系统,可考虑使用图 B-5的方式,同时也可以减少工作电流的消耗。
RAiO TECHNOLOGY INC. 92/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
VDD
GND
B-2-4
电路板的电源布局建议
B-6 PCB在电源布局时的建议方式,可以减少芯片 ESD受损的机会,并增加抗干扰能力,供
图 使用者参考。
MCU5V
5V
RA8803/8822
VDDP
VDD3
VDD5
0.47uH
(Option)
10u 0.1u 1u 0.1u 0.1u
AVDD
GNDP
GND
AGND
I/O
MCU I/F
B-55V 电源应用电路
電源輸入點
VDD
突波吸收器
GND
到其它元件的 GND, 電路板的 GND 或金屬殼
到其它元件的 VDD
0.1uF電容 靠近晶片
Cap closer
to chip
RA8803/8822
VDD
RST
GND
XA XB
其他晶片
VDD
GND
避免接到其它 GND
R
X’tal Cap 靠近晶片
避免接到其它 GND
避免接到其它 VDD
避免接到其它 VDD
0.01uF
避免接到其它 GND
B-6:电源 PCB 布局建议
RAiO TECHNOLOGY INC. 93/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
附录 C. RA8803/8822 控制板
RAiO 提供 RA8803/8822 的控制板、Gerber File 与电路图,供客户以现有 Panel 或模块进行验证,图 C-1 RA8803/8822 的控制板,其电路图请参考图 B-1,客户可以利用 JP1 与使用的 MPU 相连接,现有 Panel
以接到
JP3LCD1LCD2LCD3Driver 界面,Key-Scan 可以用 JP4 来实验,如图 C-2
LCD2 LCD3 LCD1
TL497
U1
RST
U3
JP1
S1
U2
RA8803 RA8822
U4
JP4 JP3
C-1RA8803/8822 的控制板
LCD Panel
Driver
MCU
C-2:控制板应用图
RAiO TECHNOLOGY INC. 94/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
附录 D. 除错与分析流程
附录 D 是在说明 RA8803/8822 在组合成 LCM 或系统时若遇到困难时所采取的几个步骤,例如 Demo Circuit 完成或 Demo PCB 焊接完成时,必须先核对的重要项目,在接上电源后检查 ClockReset 等信号,一但
MPU 可以透过软件进行缓存器的读写,表示 MPU RA8803/8822 间的硬件设定基本上没有问题,MPU
过软件进行缓存器的读写动作与
LCD DriverPanel、或升压电路无关联。
若缓存器的读写没问题,可以透过文字或绘图模式进行显示部份的测试。若遇到困难此时就必须检查与 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
D-1:除错与分析流程
RAiO TECHNOLOGY INC. 95/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
附录 E. RA8803/8822 支持的驱动器型号
Company Driver Part. Driver capacity Support
HITACHI
SAMSUNG
Novatek
Sitronix
Elan
Toshiba
Epson
Eureka
Hynix
Sanyo
未列于表内的其它 Driver,可以将编号提供给 RAiO 判断是否有支持。
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
控制器应用手册
▲:表示支持
▲ ▲ ▲ ▲
▲ ▲ ▲ ▲
▲ ▲ ▲ ▲ ▲ ▲
▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲
RAiO TECHNOLOGY INC. 96/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
附录 F. 指令时间
附录 D 是在说明 RA8803/8822 在做读/写或是各种模式下写到内存所需的时间。可依使用者所设定的不同系 统频率
=1/SYS_CLK=125ns,而写入缓存器所需的 Clock 3 个机械周期,所以对缓存器做读取或是写入时所需的
时间约为
下列是说明各个指令动作所需的机械周期时间:
(SYS_CLK),来决定各个指令所需要的时间。例如,SYS_CLK=8MHz,每个 Clock 的时间
125ns X 3 lock=375ns,用以此方式来计算指令所需的时间。
写入缓存器的时间为 3 个机械周期 读取缓存器的时间为 3 个机械周期 写入内存的时间为 3 个机械周期 在绘图模式下写入内存的时间为 3 个机械周期 在中文字型下写入一个字到内存的时间为 35 个机械周期 在 ASCII 字型下写入一个字到内存的时间为 19个机械周期 硬件清除屏幕所需的机械周期时间,公式: 3 + (Com x Seg) / 8
RAiO TECHNOLOGY INC. 97/128 www.raio.com.tw
Version 2.4
附录 G. 范例程序 – C51
RA8803/8822
双图层
LCD
控制器应用手册
G-1
范例程序
//******************************************************************************// // *** Demo1.c ****************************************************************// //******************************************************************************// #include <stdio.h> #include <absacc.h> #include "command.h"
void main (void)
{
LCD_Reset(); LCD_Initial(); LCD_Clear();
LCD_CmdWrite(0x00,0xCD); // 中文模式 + DISPLAY ON GotoXY(0,0); // 设定光标位置
LCD_DataWrite(0xA4); // 显示单一中文字” (BIG-5 码为 A4A4)
LCD_DataWrite(0xA4);
. . .
}
(1) –
显示一中文字
G-2
范例程序
//******************************************************************************// // *** Demo2.c ****************************************************************// //******************************************************************************// #include <stdio.h> #include <absacc.h> #include "command.h"
void main (void)
{
LCD_Reset(); LCD_Initial(); LCD_Clear();
LCD_CmdWrite(0x00,0xCD); // 中文模式 + DISPLAY ON GotoXY(0,0); // 设定光标位置
PrintStr("中文字号可变",1); // 显示字符串“中文字号可变” .
. .
}
(2) –
显示一中文字符串
RAiO TECHNOLOGY INC. 98/128 www.raio.com.tw
Version 2.4
RA8803/8822
双图层
LCD
控制器应用手册
G-3
范例程序
//******************************************************************************// // *** 这个范例程序是做 8x8(Key_scan)扫描的程序 ***********************************// // *** 程序说明: 8x8 按键,每按一个按键出现一个值,总共 1-64 个数字 **********************//
//******************************************************************************// #include <stdio.h>
#include <reg52.h> // 定义 8051 RA8803 输入/输出 控制信号 #include <absacc.h>
#include "command.h" // RA8803 读写命令 控制子程序 bit KeyPress; // 参数的宣告
void putHEX10(unsigned char var) small; // 子程序-LCD 显示”10 进制的”宣告 unsigned char FindKey(void); // 子程序-取得按键输入值的宣告 bit Key_TP_ststus(void) small; // 子程序-判断 key_scan 的宣告
void main (void) {
bit KeyPress; // 参数的宣告 unsigned char Key_Number; unsigned char x_temp=0,y_temp=0; unsigned char test;
LCD_Reset(); // 重置 RA8803 “pin-48 RESET”维持 // 低电位 250ms LCD_Initial(); // 所有缓存器的初始值设定 LCD_Clear(); // 屏幕清除 LCD_CmdWrite(0xA1,0xF1); // 设定缓存器(Kscr) LCD_CmdWrite(0xA0,0x08); // 设定缓存器(Intr) LCD_CmdWrite(0x00,0xCD); // 设定写入 LCD 数据为文字模式且将 LCD // 显示开启, GotoXY(0,0); // 设定显示坐标
PrintStr("Please pull any key",00); // LCD 显示字符串"Please pull any key" GotoXY(0,40); // 设定显示坐标 PrintStr("Key Number : ",0); // LCD 显示字符串” Key Number :”
KeyPress = 0;
while(1) // 侦测按键输入主程序 {
if(Key_TP_ststus()) // 判断 key_scan 是否有中断 {
delay(500); // 延迟时间 GotoXY(13,40); // 设定显示坐标 Key_Number = FindKey(); // 取得按键输入的值 putHEX10(Key_Number); // 把值转换成 10 进制并显示于 LCD
} } while(1); }
(3) – 8x8(Key_Scan)
扫描
RAiO TECHNOLOGY INC. 99/128 www.raio.com.tw
Version 2.4
//*******************************************************************************// // *** Key_scan 的判断子程序 ****************************************************//
//*******************************************************************************// bit Key_TP_ststus(void) small
{ unsigned char temp;
temp = LCD_CmdRead(0xA0); // 读取缓存器[0xA0],并判断 Bit7 是否为”1” temp &= 0x80;
LCD_CmdWrite(0xA1,0xF1); //设定缓存器(Kscr) delay(5000); //延迟时间
if(temp) return 1; // 若缓存器[0xA0]-Bit7 = 1,表示有按键输入
else return 0; // 若缓存器[0xA0]-Bit7 = 0,表示无按键输入
}
//*******************************************************************************// // *** 取得按键输入的值子程序 ****************************************************//
//*******************************************************************************// unsigned char FindKey(void) { unsigned char Key_Out; unsigned char Key_In; unsigned char Key_Number;
Key_Out = LCD_CmdRead(0xa2); //读取按键输出缓存器 Key_In = LCD_CmdRead(0xa3); //读取按键输入缓存器 switch(Key_Out) //扫描判断方式,并设定相对应的按键数值
{ case 0xfe: Key_Number = 1; break; case 0xfd: Key_Number = 9; break; case 0xfb: Key_Number = 17; break; case 0xf7: Key_Number = 25; break; case 0xef: Key_Number = 33; break; case 0xdf: Key_Number = 41; break; case 0xbf: Key_Number = 49; break; case 0x7f: Key_Number = 57; break; default:
RA8803/8822
双图层
LCD
控制器应用手册
RAiO TECHNOLOGY INC. 100/128 www.raio.com.tw
Loading...