首页 解决方案 STN 字符型液晶显示屏控制接口指南

STN 字符型液晶显示屏控制接口指南

January 19,2023

介紹

华凌拥有丰富的字符型液晶显示模块标准产品,依据显示形式提供 WH0802、WH1202、WH1601、WH1602、WH1604、WH2002、WH2004、WH2402、WH4002 等系列标准品。客户可通过最少数量的控制引脚实现显示功能,使 MCU 的选择更加灵活方便。市场上常见的字符型液晶显示模块(Character LCD Module),若需要使用 I2C 接口,通常会在模块上额外增加一块 I2C 接口转接板。除了会增加 LCM 厚度外,生产制造过程中也会增加额外工序,进而提高制造复杂度并影响产品良率,如图 1 所示。

图1:市场上常见的字符型液晶显示模块,需要额外增加 I2C 转接板。

图1:市场上常见的字符型液晶显示模块,需要额外增加 I2C 转接板。

图2:华凌 WH1602 字符型液晶显示模块,无需额外转接板即可直接使用 I2C、SPI 接口进行控制。

图2:华凌 WH1602 字符型液晶显示模块,无需额外转接板即可直接使用 I2C、SPI 接口进行控制。

 

以下将介绍华凌字符型液晶显示模块,在无需额外转接板的情况下,搭配 Arduino Uno 开发板即可直接通过不同通信接口控制字符型液晶显示模块。

  • WINSTAR WH1602 LCM:每行可显示 16 个字符,共可显示 2 行。
  • WINSTAR WH2002 LCM:每行可显示 20 个字符,共可显示 2 行。
  • WINSTAR WH2004 LCM:每行可显示 20 个字符,共可显示 4 行。

以上三款 LCM 内置 RW1063 LCD 控制器,支持 I2C、SPI 两种串行接口以及 6800 并行接口。

备注:关于显示接口的详细说明,请参考 认识显示接口

识别 LCM 的引脚

编号 引脚名称 描述
No.1 Vss 电源负极输入引脚(接地)。
No.2 Vdd 电源正极输入引脚(5V)。
No.3 V0 对比度调节引脚。
No.4 RS 命令/数据选择线。
No.5 RW 仅用于 6800 8/4bit 接口,为读写选择线。
No.6 E 仅用于 6800 8/4bit 接口,为使能控制线。
No.7 DB0/SA0 6800 8bit 接口时为数据线位元 0。
I2C 接口时为 SA0 地址设定线。
No.8 DB1/SA1 6800 8bit 接口时为数据线位元 1。
I2C 接口时为 SA1 地址设定线。
No.9 DB2 仅用于 6800 8bit 接口,为数据线位元 2。
No.10 DB3 仅用于 6800 8bit 接口,为数据线位元 3。
No.11 DB4 仅用于 6800 8/4bit 接口,为数据线位元 4。
No.12 DB5/CSB/CSB 6800 8/4bit 接口时为数据线位元 5。
I2C 和 SPI 接口时为 CSB 芯片使能选择线。
No.13 DB6/SDA/SCLK 6800 8/4bit 接口时为数据线位元 6。
I2C 接口时为 SDA 数据线。
SPI 接口时为 SCLK 时钟控制线。
No.14 DB7/SCL/SID 6800 8/4bit 接口时为数据线位元 7。
I2C 接口时为 SCL 时钟控制线。
SPI 接口时为 SID 数据线。
No.15 A+ 背光电源正极输入引脚。
No.16 K- 背光电源负极输入引脚。
表1:LCM 引脚说明

关于上表中的 V0,此处使用 20kΩ 可调电阻调节字符显示的对比度。如果测试时无法看清文字,或持续显示背景阴影画面,可通过调整该可调电阻来设定适合的对比度。

V0 可调电阻连接方式如下图 3 所示:

图3:VR 可调电阻连接方式示意图。
图3:VR 可调电阻连接方式示意图。

LCM 和开发板 Arduino Uno 连接方式

如图4所示,LCM 四种通信接口(I2C、SPI、6800 8bit/4bit)连接 Arduino Uno 的方式。通过比较可以发现,I2C 和 SPI 接口仅需要较少数量的 GPIO 引脚即可控制字符型液晶显示模块。

其中,I2C 接口的连接方式,由于 Arduino Uno 的 I2C 引脚内部已提供上拉电阻,因此无需额外在 SDA 和 SCL 引脚连接上拉电阻。若用户在程序中关闭内部上拉电阻,则必须自行外接上拉电阻。

(a) 采用 I2C 接口的连接方式

(a) 采用 I2C 接口的连接方式

(b) 采用 SPI 接口的连接方式

(b) 采用 SPI 接口的连接方式

(c) 采用 6800-4bit 接口的连接方式

(c) 采用 6800-4bit 接口的连接方式

(d) 采用 6800-8bit 接口的连接方式

(d) 采用 6800-8bit 接口的连接方式

图4:LCM 四种通信接口连接 Arduino Uno 的方式。

LCM 指令

并不是每种通信接口都支持 LCM 完整的指令集。采用 SPI 接口时,由于没有 RW 控制线和 MISO 引脚,因此不支持读取指令。写入操作时,通过 RS 控制线判断当前写入的是命令数据还是显示数据。

在 I2C 接口中,同样没有 RW 控制线,因此也不支持读取指令。由于没有 RS 控制线,在写入命令数据或显示数据前,需要先发送命令控制码(A0=0)或数据控制码(A0=1),以判断下一个发送的字节属于命令数据还是显示数据。

SPI 和 I2C 接口时序

如图5和图6所示,为通过 SPI 接口控制 LCM 的时序图。用户可以观察到,LCM 所采用的 SPI 并非一般 MCU 所提供的标准 SPI 接口,而是需要额外增加一条 RS 信号线,用于判断当前发送的字节是命令数据还是显示数据。数据线(SID)的位(BIT7~BIT0)在时钟线(SCLK)为低电平时变化,并在时钟线(SCLK)为高电平时读取。

图5:SPI写入命令的时序。

图5:SPI 写入命令的时序。

图6:SPI写入数据的时序。

图6:SPI 写入数据的时序。

如图7和图8所示,为通过 I2C 接口控制 LCM 的时序图。除晶片选择线(CSB)外,I2C 接口控制方式为每次发送三个字节,以写入一笔命令数据或显示数据。其中,第二个字节中的 A0 位将决定第三个字节属于命令数据还是显示数据。

图7:I2C写入命令的时序。

图7:I2C 写入命令的时序。

图8:I2C写入数据的时序。

图8:I2C 写入数据的时序。

代码

根据所使用的液晶显示模块修改程序设置后,即可直接编译并使用。
步骤一:设置 LCM 单行最大字符数。
例如以下设置单行最多显示 16 个字符。

步骤一:设置 LCM 单行最大字符数。例如以下设置单行最多显示 16 个字符。

步骤二:设置 LCM 最大行数。
例如以下设置 LCM 共有 2 行。

步骤二:设置 LCM 最大行数。

步骤三:设置 LCM 使用的通信接口。
例如以下设置使用 I2C 接口。

步骤三:设置 LCM 使用的通信接口。

步骤四:编译并上传程序至 Arduino Uno 开发板。
如图9所示,为三款 LCM 显示画面的示意图。
当显示对比度出现偏淡或偏深时,可调整 V0 引脚的可调电阻至适合的对比度,如图10所示。

(a) 对比度偏淡,仅能看到浅色字符 (b) 对比度适中 (c) 对比度偏深,每个字符出现明显残影
figure9-a-1-screens-of-three-lcms figure9-b-1-screens-of-three-lcms figure9-c-1-screens-of-three-lcms
figure9-a-2-screens-of-three-lcms figure9-b-2-screens-of-three-lcms figure9-c-2-screens-of-three-lcms
figure9-a-3-screens-of-three-lcms figure9-b-3-screens-of-three-lcms figure9-c-3-screens-of-three-lcms
图9:三款 LCM 显示画面示意图。

图10:V0引脚可调节。

图10:V0 引脚可调节。

如需获取完整程序代码,请联系我们

对显示器解决方案有疑问?您想做的,由我们实现。 联络我们!

订阅

接收最新显示器技术知识与新品消息

联络我们

价格/规格书/一般查询

技术支持

联系我们询问技术内容

go top
联络我们
close

我们重视您的隐私

通过点击「允许所有 Cookie」,代表您同意在您的设备上存储 Cookie 以增强网站浏览体验、分析网站使用情况并协助我们的营销和网站效能优化工作。您可以在我们的隐私权政策中找到有关于此的更多信息。

我们重视您的隐私

Winstar 及部分第三方在 www.winstar.com.tw 上使用 cookies。关于 cookie 的种类、用途及相关第三方的详细信息,请参见下文及我们的《Cookie 政策》。请点击“允许全部”来同意我们使用 cookies,以确保您在我们网站上获得最佳体验。您也可以设置您的偏好或拒绝 cookies(必要的 cookies 除外)。

管理同意声明

永久启用
必要的 Cookie

这些 Cookie 是必不可少的,以便让您在浏览网站并使用其功能上有更好地体验,例如设置您的隐私偏好、登录或填写窗体。

分析 Cookie

这些也被称为「统计cookie」,用于收集您使用网站的信息,例如您访问了哪些页面以及点击了哪些连结。查看详细信息