Подавляющее большинство текстовых ЖК-дисплеев для экранов 4х40 или меньше используют контроллер на базе Hitachi HD44780. Это довольно приятный дизайн во многих отношениях, поэтому его популярность понятна. Однако один аспект этого озадачивает меня.
Контроллер дисплея предназначен для работы со шрифтами 5x8 или 5x10; Согласно паспорту 44780, деталь доступна с двумя стандартными конфигурациями ПЗУ - одна с 248 символами 5x8, обозначенными A02, и одна с 160 5x8 формами и 32 формами 5x10, обозначенными A00. Формы символов 5x10 действительно полезны только на однострочных дисплеях с ЖК-матрицей высотой 10, и такие дисплеи кажутся очень редкими (я думаю, что я видел таблицы данных для нескольких из них, если это так, и я не знаю, что я когда-либо видел человека лично).
Я озадачен тем, почему кажется, что каждый ЖК-дисплей, который я видел на основе HD44780-совместимого контроллера, использует шаблон шрифта A00, который имеет много пустых символьных ячеек и глифы для ряда символов (включая 0xE4, 0xE6 0xE7, 0xEA, 0xF0, 0xF1 и 0xF9) практически бесполезны с чем-либо, кроме однострочного дисплея 5x10. Я ожидал бы, что, по крайней мере, некоторые поставщики по крайней мере изменили бы определения для этих символов, чтобы они хорошо выглядели на дисплее 5x8, но я не знаю, что это было сделано. Я также думаю, что для многих приложений шаблон ПЗУ A02 будет более полезным, чем шаблон ПЗУ A00, но все дисплеи, которые я когда-либо видел для продажи, используют шаблон ПЗУ A00.
Конечно, во многих приложениях возможность определения пользовательских глифов существенно уменьшает ограничения встроенного набора символов, но дисплей может отображать только восемь различных пользовательских символов одновременно. Наличие встроенных глифов для таких вещей, как стрелки, будет означать, что приложения, нуждающиеся в стрелках, могут иметь больше пользовательских глифов, оставленных для других целей.
В противном случае было бы логично, чтобы дисплеи имели возможность заполнять диапазоны символов 0x10-0x1F и 0x80-0x9F полезными символами. Если конкретный контроллер будет использоваться только со стеклом 5x8 или 5x16 (это может показаться довольно вероятным), использовать бит управления шрифтом 5x10 для включения или отключения этих символов должно быть просто. Это сделало бы контроллер совместимым с программным обеспечением, которое ожидало бы, что все эти символы были бы пустыми, но позволило бы программному обеспечению, которое знает, что это такое, использовать эти другие символы.