绝大多数用于 4x40 或更小屏幕的文本 LCD 显示器都使用基于 Hitachi HD44780 的控制器。从很多方面来说,这是一个相当不错的设计,所以它的受欢迎程度是可以理解的。然而,它的一方面让我感到困惑。
显示控制器设计为使用 5x8 或 5x10 字体进行操作;根据 44780 数据表,该器件有两种库存 ROM 配置——一种具有 248 个 5x8 字符形状,指定为 A02,另一种具有 160 个 5x8 形状和 32 个 5x10 形状,指定为 A00。5x10 字符形状仅在具有 10 高 LCD 矩阵的单行显示器上真正有用,而且这样的显示器似乎非常罕见(我想我已经看过其中少数的数据表,如果那样的话,我不知道我有没有亲眼见过)。
然后,我很困惑,为什么我看到的每个 LCD 显示器都基于兼容 HD44780 的控制器,使用的字体模式 A00 有许多空白字符单元,并且其字形用于多个字符(包括 0xE4、0xE6 , 0xE7, 0xEA, 0xF0, 0xF1, 和 0xF9) 除了单行 5x10 显示器外,基本上没有用处。我原以为至少有一些供应商至少会更改这些字符的定义,以便在 5x8 显示器上看起来不错,但我不知道有任何人这样做过。我也认为对于许多应用程序,ROM 模式 A02 会比 ROM 模式 A00 更有用,但我见过的所有出售的显示器都使用 ROM 模式 A00。
可以肯定的是,在许多应用程序中,定义自定义字形的能力大大减轻了内置字符集的限制,但显示器一次只能显示八个不同的自定义字形。为箭头之类的东西内置字形意味着需要箭头的应用程序可以保留更多用于其他目的的自定义字形。
如果不出意外,显示器可以选择用有用的字符填充字符范围 0x10-0x1F 和 0x80-0x9F 似乎是合乎逻辑的。如果特定控制器仅用于 5x8 或 5x16 玻璃(看起来很可能),使用 5x10 字体控制位来启用或禁用这些字符应该是一件简单的事情。这将使控制器与期望所有这些字符都显示为空白的软件兼容,但允许知道它是什么的软件利用这些其他字符。