【发布时间】:2014-01-11 04:44:08
【问题描述】:
我很难找到有关 LCD 控制器初始化的简洁教程。我在数据表中读到了应该发送到 LCD 的特定位序列。此处介绍了这样的初始化序列:
我根本无法理解此处提供的信息。我可以看到前几个步骤需要用户给设备上电,等待足够长的时间,然后设置几根数据线的状态。我可以通过以下方式理解:
假设我们使用如下字节格式:D7 D6 D5 D4 RS RW X X
- 开机
- 等待 >40 毫秒
- 写入 0011 0000 => 0x30
- 等待 >4.1 毫秒
- 写入 0011 0000 => 0x30
- 等待 >100uS
- 写入 0011 0000 => 0x30
之后我就不知道了。我浏览了数据表,发现很少解释下面显示的 N、I/D、D、B、F、C 的引用(有些未显示)。此外,我读过的任何教程都经常引用一个不确定的神秘“Function Set”(即下面的Function set: interface is 8 bits long?)。
我实际拥有的液晶显示器型号是:WH2004A-CFH-JT# 但据我了解,大多数 LCD 都是 HD44780 的衍生产品
因此,我第一次尝试初始化此显示器是为了实现该显示器的数据表中给出的序列。
有什么好的资源可以推荐吗?谁能解释一下“函数集是什么以及相关的变量B、C、F、I/D ..等等?
此外,在 4 位模式下,是否只需首先显示最高数据位(7、6、5、4)的 4 位半字节,然后输入该数据,就可以将信息发送到 LCD,然后用低位半字节重复?
【问题讨论】:
-
我用了大约 2 秒,谷歌,找到'设置界面数据长度(DL),显示行数(N)和字符字体(F)','读取繁忙标志( BF) 指示正在执行的内部操作并读取 CGRAM 或 DDRAM 地址计数器内容(取决于先前的指令)。'、'设置所有显示器的开/关 (D)、光标开/关 (C) 和光标位置字符的闪烁(B).'。这一切都在文档中。我知道这很令人困惑('因为硬件接口通常是这样的),但是这些常见设备上的所有数据都在那里。
-
@MartinJames 伟大的侦探工作!你破案了! ;-)
-
你知道最后一张表是不是9个独立的数据写入事件吗?还是只有5个?它们被组合在一起,但没有提及这一点。
-
它们是独立的写事件。 DB5中第一行的0表示下一个输入是指令的第二行。
标签: c initialization lcd