第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 中文手册