第22章 LCD驱动程序
一个 LCD 驱动程序支持一个具体系列的 LCD 控制器,而所有的 LCD 都配备一个或多个这
些控制器。 驱动程序本质上是通用的,意思是它可以通过修改配置文件 LCDConf.h 来进行配
置。 这些文件包含所有可配置的选项用于驱动程序,以及多重的定义用于硬件如何访问及控
制器如何与 LCD 连接。
本章提供µC/GUI的LCD控制器的概述。它针对每一个驱动程序说明以下这些内容:
• 哪一个 LCD 控制器能被访问,及支持的颜色深度和接口类型。
• 额外的 RAM 需求。
• 附加函数。
• 如何访问硬件。
• 指定配置开关。
• 特定的 LCD 控制器的特别需求。
µC/GUI 中文手册
第 1 页
第 22 章 LCD 驱动程序
22.1 支持的LCD控制器及各自的驱动程序
下表列出了驱动程序及那些控制器支持它们:
驱动程序 宏 LCD_CONTROLLER 的值
LCD 控制器
LCD07X1
LCD13XX
711
741
1352
1354
1356
1374
1375
1376
1386
1300
Samsung KS0711
Samsung KS0741
Epson SED1352, S1D13502
Epson SED1354, S1D13504
Epson SED1356, S1D13506
Epson SED1374, S1D13704
Epson SED1375, S1D13705
Epson SED1376, S1D13706
Epson SED1386, S1D13806
Epson S1D13A03, S1D13A04
支持的位/像素
(bps)
2
1,2,4,8,16
LCD159A
LCD15E05
0x159A
0x15E05
713
1560
1565
1566
1567
1568
1569
1575
66420
66421
0
0
8811
1330
1335
6963
LCD15XX
LCD6642X
LCDMem
LCDMemC
LCDPage1bpp
LCDSLin
Epson SED159A
Epson S1D15E05
Samsung KS0713
Epson SED1560
Epson SED1565
Epson SED1566
Epson SED1567
Epson SED1568
Epson SED1569
Epson SED1575
Hitachi HD66420
Hitachi HD66421
无控制器,写入 RAM
(单色显示)
无控制器,写入 RAM
(彩色显示)
Philips PCF8810, PCF8811
Epson SED1330
Epson SED1335
Toshiba T6963
8
2
1
2
2
3,6
1
1
第 2 页
µC/GUI 中文手册
第 22 章 LCD 驱动程序
选择一个驱动程序
如第 20 章“底层配置”中所描述的那样,宏 LCD_CONTROLLER 定义所使用的 LCD 控制
器。一个控制器由上表列出它的适当的值指定。
下面部分分别讨论每一个有效的驱动程序。
22.2 LCD07X1
支持的硬件
控制器
该驱动程序在下列控制器身上测试通过:
•Samsung KS0711
•Samsung KS0741
应该能假设它也能够在任何与这两种控制器结构相类似的控制器上工作。
每像素的位
支持颜色深度为 2 bpp。
接口
芯片支持三种类型接口:
8 位并行(简单总线)接口
4 脚串行外围设备接口(SPI)
3 脚 SPI。
当前版本的驱动程序支持并行或 4 脚 SPI 模式。
µC/GUI 中文手册
第 3 页
第 22 章 LCD 驱动程序
显示屏数据 RAM 的结构
上图展示了显示存储器和 LCD 的 SEG 和 COM 引线之间的关系。 对于每个像素,显示存储
器被分成两个方框。 每个像素较低的位存储在 pane0 中而较高的位存储在 pane 1 中。
驱动程序的额外 RAM 要求
这些 LCD 驱动程序可以使用或不使用一个显示数据高速缓存,包含一个 LCD 数据 RAM 的
容量的完全拷贝。 如果高速缓存未使用,则没有额外的 RAM 需求。
推荐使用这些驱动程序时,一起使用一个数据高速缓存,以获得更快的 LCD 访问速度。 用
于高速缓存的内存的数值可以由以下公式计算:
第 4 页
µC/GUI 中文手册
第 22 章 LCD 驱动程序
RAM 的大小(字节)= ( LCD_YSIZE+7)/8*LCD_XSIZE*2
附加的驱动函数
LCD_L0_ControlCache
有关这个函数的信息,请参阅第 23 章“LCD 驱动程序 API”。
硬件配置
这个驱动程序使用一个如第 20 章“低层配置”所描述的简单总路线接口访问硬件。 下
表列出了必须为硬件访问所定义的宏:
并行模式
宏
说 明
LCD_INIT_CONTROLLER 初始化 LCD 控制器序列。
LCD_READ_A0
LCD_READ_A1
LCD_WRITE_A0
LCD_WRITE_A1
串行模式
A 线(A-line)为低电平时从 LCD 控制器读一个字节。
A 线(A-line)为高电平时从 LCD 控制器读一个字节。
A 线(A-line)为低电平时向 LCD 控制器写入一个字节。
A 线(A-line)为高电平时向 LCD 控制器写入一个字节。
宏
说 明
LCD_INIT_CONTROLLER 初始化 LCD 控制器序列。
LCD_WRITE_A0
LCD_WRITE_A1
A 线(A-line)为低电平时向 LCD 控制器写入一个字节。
A 线(A-line)为高电平时向 LCD 控制器写入一个字节。
LCD_WRITEM_A0
A 线(A-line)为低电平时向 LCD 控制器写入多个字节。
LCD_WRITEM_A1
A 线(A-line)为高电平时向 LCD 控制器写入多个字节。
附加的配置开关
无。
某些LCD控制器的特定要求
无。
µC/GUI 中文手册
第 5 页
第 22 章 LCD 驱动程序
22.3 LCD13XX
支持的硬件
控制器
该驱动程序通过了下列 LCD 控制器的测试:
•Epson SED1352,S1D13502
•Epson SED1354,S1D13504
•Epson SED1356,S1D13506
•Epson SED1374,S1D13704
•Epson SED1375,S1D13705
•Epson SED1376,S1D13706
•Epson SED1386,S1D13806
•Epson S1D13A03,S1D13A04
应该能假设它也能够在任何与以上控制器结构相类似的控制器上工作。
每像素的位
支持的颜色深度是 1,2,4,8 和 16 bpp。
接口
由这个驱动程序支持的芯片,能够以 8/16 位并行(完全总线)模式进行连接。
驱动程序同时支持两种接口。请参阅该各自的 LCD 控制器手册以确定是否你的芯片能够
以 8 位模式连接。
第 6 页
µC/GUI 中文手册
第 22 章 LCD 驱动程序
显示屏数据 RAM 的结构
上图展示了依据颜色深度,显示存储器和 LCD 的 SEG 和 COM 引线之间的关系。
驱动程序的附加 RAM 要求
无。
附加的驱动函数
无。
硬件配置
该驱动程序需要使用一个如第20章“低层配置”所描述的完全的总线接口来进行硬件访
µC/GUI 中文手册
第 7 页
问。 下表列出了必须为硬件访问所定义的宏:
第 22 章 LCD 驱动程序
宏
说明
LCD_INIT_CONTROLLER 初始化 LCD 控制器序列。
LCD_READ_MEM
LCD_READ_REG
LCD_WRITE_MEM
LCD_WRITE_REG
附加的配置开关
读控制器的图像存储器的内容。
读控制器的一个配置寄存器的内容。
向控制器的图像存储器(显示数据随机 RAM)写入数据。
向控制器的一个配置寄存器写入数据。
下表展示了对于这个驱动程序有效的可选择配置开关:
宏
LCD_BUSWIDTH
LCD_ENABLE_MEM_ACCESS
LCD_ENABLE_REG_ACCESS
LCD_SWAP_BYTE_ORDER
LCD_USE_BITBLT
LCD_ON
LCD_OFF
说明
选择 LCD 控制器/ CPU 接口的总线宽度(8/16)。 默认
值是 16。
切换 M/R 信号到存储器访问。 仅仅用于 SED1356 和
SED1386 LCD 控制器。
切换 M/R 信号到寄存器访问。 仅仅用于 SED1356 和
SED1386 LCD 控制器。
当使用一个 16 位总线接口时,反转 CPU 和 LCD 控制器
间的头端模式(高低字节交换)。
如果设置为 0,禁止 BitBLT 引擎。 如果设置为 1(缺
省值),驱动程序将使用全部有效的硬件加速。
LCD 切换到“开”的功能置换宏。
LCD 切换到“关”的功能置换宏。
某些LCD控制器SED1386或者S1 D13806的特殊要求
LCD_SWAP_RB
该配置开关 LCD_SWAP_RB(交换红和蓝色部分)必须通过向 LCDConf.h 插入下面一行而激
活(设置为 1):
#define LCD_SWAP_RB (1)
/* 必须设置 */
LCD_INIT_CONTROLLER
当写或者修改初始化宏时,要考虑下列问题:
初始化嵌入 SDRAM,寄存器 20 的第 7 位(SDRAM 初始化位)必须设置为 1(至少在复位
第 8 页
µC/GUI 中文手册