ЖК-контроллер Hitachi HD44780 - Hitachi HD44780 LCD controller

ЖК-контроллер HD44780 и драйверы HD44100 на задней стороне ЖК-модуля 40266

В ЖК-контроллер Hitachi HD44780 это буквенно-цифровой матрица точек жидкокристаллический дисплей (LCD) контроллер, разработанный Hitachi в 1980-е. Набор символов контроллера включает ASCII иероглифы, японские Кана символы и некоторые символы в двух строках по 28 символов. Используя драйвер расширения, устройство может отображать до 80 символов.[1] HD44780 - один из самых популярных символьных ЖК-дисплеев, когда-либо созданных, с многочисленными сторонними дисплеями, использующими его 16-контактный интерфейс и набор инструкций для совместимости.

Архитектура

Блок-схема ЖК-модуля на базе HD44780U
Символьный ЖК-модуль на беспаечный макет находится под контролем Ардуино Уно

Контроллер Hitachi HD44780 LCD ограничен монохромными текстовыми дисплеями и часто используется в копировальные аппараты, факсы, лазерные принтеры, промышленное испытательное оборудование и сетевое оборудование, такое как маршрутизаторы и устройства хранения данных.

Совместимые ЖК-экраны производятся в нескольких стандартных конфигурациях. Стандартные размеры - одна строка из восьми символов (8x1) и форматы 16 × 2, 20 × 2 и 20 × 4. Более крупные нестандартные размеры состоят из 32, 40 и 80 символов и из 1, 2, 4 или 8 строк. Наиболее часто производимая большая конфигурация - это 40x4 символов, для чего требуются два индивидуально адресуемых контроллера HD44780 с микросхемами расширения, поскольку одна микросхема HD44780 может адресовать только до 80 символов.

Символьные ЖК-дисплеи могут иметь подсветка, который может быть ВЕЛ, флуоресцентный, или же электролюминесцентный.

Символьные ЖК-дисплеи используют 16-контактный интерфейс, обычно с использованием контактов или краевых соединений карты с центрами 0,1 дюйма (2,54 мм). Те, у кого нет подсветки, могут иметь только 14 контактов, не считая двух контактов, питающих свет. Этот интерфейс был разработан таким образом, чтобы его можно было легко подключить к Intel MCS-51 Интерфейс XRAM, использующий только два адресных контакта, позволял отображать текст на ЖК-дисплее с помощью простых команд MOVX, предлагая экономичный вариант добавления текстового дисплея на устройства.[нужна цитата ] Распиновка такая:

  1. Земля
  2. VCC от +3,3 до +5 В (тип.)
  3. Регулировка контрастности (VO) Это аналоговый вход, обычно подключенный к потенциометру. Пользователь должен иметь возможность управлять этим напряжением независимо от всех других настроек, чтобы оптимизировать видимость дисплея, который изменяется, например, с температурой и, в некоторых случаях, высотой над уровнем моря. При неправильной настройке будет казаться, что дисплей неисправен.
  4. Выбрать регистр (RS). RS = 0: команда, RS = 1: данные
  5. Чтение / запись (R / W). R / W = 0: запись, R / W = 1: чтение (в большинстве приложений чтение с HD44780 не имеет смысла. В этом случае этот вывод может быть постоянно подключен к земле, и никакие выводы io не должны выделяться для управления им. )
  6. Часы (Включить). Сработал падающий край
  7. Бит 0 (не используется в 4-битной операции)
  8. Бит 1 (не используется в 4-битной операции)
  9. Бит 2 (не используется в 4-битной операции)
  10. Бит 3 (не используется в 4-битной операции)
  11. Бит 4
  12. Бит 5
  13. Бит 6
  14. Бит 7
  15. Анод подсветки (+) (если применимо)
  16. Катод подсветки (-) (если применимо)

Номинальное рабочее напряжение для светодиодной подсветки составляет 5 В при полной яркости, с уменьшением яркости при более низких напряжениях в зависимости от таких деталей, как цвет светодиода. Для подсветки без использования светодиодов часто требуется более высокое напряжение (например, электролюминесцентный ).

Выбор режима

DTV-LCD-MOD.jpg

В 8-битном режиме все передачи происходят за один цикл вывода разрешения, при этом все 8 бит на шине данных и выводы RS и RW стабильны. В 4-битном режиме данные передаются парами 4-битных "грызет "на верхних выводах данных, D7-D4 с двумя разрешающими импульсами и стабильными выводами RS и RW. Сначала должны быть записаны четыре старших бита (7-4), а затем четыре младших бита (3-0). Последовательность высокого / низкого уровня должна выполняться каждый раз, иначе контроллер не будет должным образом получать дальнейшие команды.

Выбор 4-битный или 8-битный режим требует тщательного подбора команд. Есть два основных соображения. Во-первых, если D3-D0 не подключен, эти линии всегда будут выглядеть низкими (0b0000) для HD44780. Во-вторых, изначально ЖКД может находиться в одном из трех состояний:

  • (State1) 8-битный режим
  • (State2) 4-битный режим, ожидание первого набора из 4 бит
  • (State3) 4-битный режим, ожидание второго набора из 4 бит

Состояние 3 может возникнуть, например, если предыдущее управление было прервано после отправки только первых 4 бит команды, когда ЖК-дисплей находился в 4-битном режиме.

Следующий алгоритм гарантирует, что ЖК-дисплей находится в желаемом режиме:

Одна и та же команда отправляется три раза, функция установлена ​​с 8-битным интерфейсом D7-D4 = 0b0011, младшие четыре бита не важны, с использованием одиночных импульсов включения. Если контроллер находится в 4-битном режиме, младшие четыре бита игнорируются, поэтому их нельзя отправить, пока интерфейс не будет иметь конфигурацию известного размера.

Запуск в состоянии 1 - 8-битная конфигурация

 Отправить команду «Установить функцию». Команда будет выполнена, установите 8-битный режим. Отправить команду «Установить функцию». Команда будет выполнена, установите 8-битный режим. Отправить команду «Установить функцию». Команда будет выполнена, установите 8-битный режим. 

Запуск в состоянии 2 - 4-битной конфигурации, ожидание первой 4-битной передачи

 Отправить команду «Установить функцию». Получены первые четыре бита. Отправить команду «Установить функцию». Последние четыре бита, команда принята, установить 8-битный режим. Отправить команду «Установить функцию». Команда будет выполнена, установите 8-битный режим. 

Запуск в состоянии 3-4-битной конфигурации, ожидание передачи последних 4-х битов

 Отправить команду «Установить функцию». Последние четыре бита, неизвестная команда выполнена. Отправить команду «Установить функцию». В 8-битном режиме команда будет выполняться, иначе первые 4 бита. Отправить команду «Установить функцию». Будет выполнена 8-битная команда или последние 4 бита предыдущей команды, установите 8-битный режим. 

Во всех трех начальных случаях интерфейс шины теперь находится в 8-битном режиме, 1 строка, 5x8 символов. Если желательна другая конфигурация, 8-битный режим, необходимо послать 8-битную команду настройки функций шины для установки всех параметров. Если требуется 4-битный режим, 0b0010 должен быть отправлен на D7-D4 с одним разрешающим импульсом. Теперь контроллер будет в 4-битном режиме, и полная 4-битная последовательность команд набора функций шины (два включения с битами команд 7-4 и 3-0 в последующих циклах) завершит настройку регистра набора функций.

Набор инструкций

Набор команд HD44780 показан ниже:[2]

Набор команд на основе HD44780U
ИнструкцияКодОписаниеИсполнение
время (макс.)
(когда fcp = 270 кГц)
RSR / WB7B6B5B4B3Би 2B1B0
Четкий дисплей0000000001Очищает дисплей и возвращает курсор в исходное положение (адрес 0).1,52 мс
Курсор на главную000000001*Возвращает курсор в исходное положение. Также возвращает дисплей, смещенный в исходное положение. Содержимое DDRAM остается без изменений.1,52 мс
Установлен режим входа00000001Я БЫSУстанавливает направление движения курсора (I / D); указывает на смещение дисплея (S). Эти операции выполняются во время чтения / записи данных.37 мкс
Управление включением / выключением дисплея0000001DCBУстанавливает включение / выключение всего дисплея (D), включение / выключение курсора (C) и мигание символа позиции курсора (B).37 мкс
Курсор / смещение дисплея000001S / CR / L**Устанавливает перемещение курсора или сдвиг отображения (S / C), направление сдвига (R / L). Содержимое DDRAM остается без изменений.37 мкс
Набор функций00001DLNF**Устанавливает длину данных интерфейса (DL), количество отображаемых строк (N) и шрифт символов (F).37 мкс
Установить адрес CGRAM0001Адрес CGRAMУстанавливает адрес CGRAM. Данные CGRAM отправляются и принимаются после этой настройки.37 мкс
Установить адрес DDRAM001Адрес DDRAMУстанавливает адрес DDRAM. Данные DDRAM отправляются и принимаются после этой настройки.37 мкс
Прочитать флаг занятости и
счетчик адресов
01BFАдрес CGRAM / DDRAMСчитывает флаг занятости (BF), указывающий на выполнение внутренней операции, и считывает содержимое счетчика адресов CGRAM или DDRAM (в зависимости от предыдущей инструкции).0 мкс
Напишите CGRAM или
DDRAM
10Запись данныхЗаписывать данные в CGRAM или DDRAM.37 мкс
Чтение из CG / DDRAM11Прочитать данныеСчитайте данные из CGRAM или DDRAM.37 мкс
Имена командных бит -

Я БЫ - 0 = уменьшить позицию курсора, 1 = увеличить позицию курсора;S - 0 = нет сдвига дисплея, 1 = сдвиг дисплея;D - 0 = дисплей выключен, 1 = дисплей включен;C - 0 = курсор выключен, 1 = курсор включен;B - 0 = курсор выключен, 1 = курсор включен;S / C - 0 = перемещение курсора, 1 = отображение сдвига;R / L - 0 = сдвиг влево, 1 = сдвиг вправо;DL - 0 = 4-битный интерфейс, 1 = 8-битный интерфейс;N - 0 = 1/8 или 1/11 (1 строка), 1 = 1/16 (2 строки);F - 0 = 5 × 8 точек, 1 = 5 × 10 точек;BF - 0 = можно принять инструкцию, 1 = выполняется внутренняя операция.

DDRAM - это ОЗУ данных дисплея, а CGRAM - ОЗУ генератора символов.[3] DDRAM имеет адрес 80 байтов (40 на строку) с зазором между двумя строками. Первая строка - это адреса от 0 до 39 в десятичной системе счисления или от 0 до 27 в шестнадцатеричной системе. Вторая строка - это адреса от 64 до 103 десятичных или от 40 до 67 шестнадцатеричных.

CGRAM - это память чтения / записи, используемая для кодирования до 8 символов в генераторе символов. Он состоит из 64 полей по адресам от 0 до 3F. Каждое поле представляет собой 5-битное сопоставление с строкой пикселей каждого символа. Каждые 8 ​​полей в CGRAM используются для каждого символа. Младшие 3 бита кодов символов 0-7 и 8-15 выбирают группы из 8 полей в памяти CGRAM.

Чтение и запись в DDRAM выполняется путем установки высокого уровня входа RS во время передачи данных по шине. DDRAM также необходимо выбрать с помощью команды Set DDRAM address, которая выбирает DDRAM для доступа, а также устанавливает начальный адрес для доступа к DDRAM.

Точно так же чтение и запись в CGRAM выполняется путем установки высокого уровня входа RS во время передачи данных по шине. CGRAM также должен быть выбран командой Set CGRAM address, которая выбирает CGRAM для доступа, а также устанавливает начальный адрес для доступа CGRAM.

Время выполнения, указанное в этой таблице, основано на частоте генератора 270 кГц. В таблице данных указано, что для резистора 91 кОм при 5 В Vcc частота генератора может варьироваться от 190 кГц до 350 кГц, что приводит к времени ожидания от 52,6 до 28,6 мкс вместо 37 мкс. Если дисплей с рекомендованным резистором 91 кОм запитан от 3,3 В, генератор будет работать намного медленнее. Если бит занятости не используется и команды синхронизируются внешней схемой, это следует учитывать.

Шрифт

Янтарная подсветка дисплея HD44780

Исходное ПЗУ генератора символов HD44780 содержит 208 символов в точечной матрице 5 × 8 и 32 символа в точечной матрице 5 × 10. Доступны более современные совместимые чипы с более высоким разрешением, подходящим для дисплеев с большим количеством пикселей.[нужна цитата ]

Были разработаны две версии ПЗУ:[4]

7-битный ASCII подмножество для японской версии нестандартно: оно обеспечивает Символ йены где обратная косая черта символ обычно встречается, а слева и справа символы стрелок на месте тильда и обидный характер.

Ограниченное количество пользовательских символов можно запрограммировать в устройство в виде битовая карта с помощью специальных команд. Эти символы необходимо записывать в устройство при каждом включении, так как они сохраняются в энергозависимая память.

Смотрите также

  • ЖК Смарти - Драйвер дисплея с открытым исходным кодом для Microsoft Windows
  • JIS X 0201 - Японская стандартная 7-битная и 8-битная кодировка символов

Рекомендации

  1. ^ Санчес и Кантон 2007, п. 275
  2. ^ Хуан 2009, п. 326
  3. ^ "Техническое описание HD44780U" (PDF).
  4. ^ "Техническое описание HD44780U" (PDF).

дальнейшее чтение

  • Хуанг, Хан-Вэй (2009). HCS12 / 9S12: Введение в интерфейс программного и аппаратного обеспечения (2-е изд.). Delmar Cengage Learning. ISBN  978-1-4354-2742-6.
  • Санчес, Хулио; Кантон, Мария П. (2007). Программирование микроконтроллера: Microchip PIC. CRC Press. ISBN  978-0-8493-7189-9.