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