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

Контроллер ЖК-дисплея Hitachi HD44780 — это буквенно-цифровой (ЖК-дисплея) с точечной матрицей контроллер жидкокристаллического дисплея , разработанный компанией Hitachi в 1980-х годах. Набор символов контроллера включает ASCII символы , японские символы кана и некоторые символы в двух строках по 40 символов. Используя драйвер расширения, устройство может отображать до 80 символов. [ 1 ] Многочисленные дисплеи сторонних производителей совместимы с его 16-контактным интерфейсом и набором инструкций, что делает его популярным и дешевым драйвером ЖК-дисплея. [ 2 ]
Архитектура
[ редактировать ]
ЖК-контроллер Hitachi HD44780 ограничен монохромными текстовыми дисплеями и часто используется в копировальных аппаратах , факсах , лазерных принтерах , промышленном испытательном оборудовании и сетевом оборудовании, таком как маршрутизаторы и устройства хранения данных .
Совместимые ЖК-экраны производятся в нескольких стандартных конфигурациях. Обычные размеры — это одна строка из восьми символов (8 × 1) и форматы 16 × 2, 20 × 2 и 20 × 4. Нестандартные размеры большего размера состоят из 32, 40 и 80 символов и из 1, 2, 4 или 8 строк. Чаще всего изготавливается более крупная конфигурация — 40×4 символа, для которой требуются два контроллера HD44780 с индивидуальной адресацией и микросхемами расширения, поскольку один чип HD44780 может адресовать только до 80 символов.
Символьные ЖК-дисплеи могут иметь подсветку , которая может быть светодиодной , флуоресцентной или электролюминесцентной . Номинальное рабочее напряжение для светодиодной подсветки составляет 5 В при полной яркости, затемнение при более низком напряжении зависит от таких деталей, как цвет светодиода. Несветодиодные подсветки часто требуют более высокого напряжения.
Интерфейс
[ редактировать ]
В символьных ЖК-дисплеях используется 16-контактный интерфейс, обычно с использованием контактов или краевых соединений карты с расстоянием между центрами 0,1 дюйма (2,54 мм). Те, у кого нет подсветки, могут иметь только 14 контактов, не считая двух контактов, питающих свет. Этот интерфейс был разработан для легкого подключения к интерфейсу Intel MCS-51 XRAM с использованием всего двух адресных контактов, что позволяло отображать текст на ЖК-дисплее с помощью простых команд MOVX, предлагая экономичный вариант добавления текстового дисплея на устройства. [ нужна ссылка ]
Преобладающая распиновка следующая (существуют исключения):
Приколоть# | Имя | Направление | Описание |
---|---|---|---|
1 | ВСС | Власть | Заземление источника питания |
2 | Вкк | Власть | Источник питания (+3,3 или +5 В в зависимости от модуля) |
3 | Вода | Вход | Регулировка контрастности (аналоговый вход) |
4 | РС | Вход | Выбор регистра (0 = команда, 1 = данные) |
5 | Ч/ З | Вход | Чтение/ запись (0 = запись в модуль дисплея, 1 = чтение из модуля дисплея) |
6 | И | Вход | Включение часов (срабатывает по заднему фронту) |
7 | ДБ0 | ввод/вывод | Бит данных 0 (не используется в 4-битном режиме) |
8 | БД1 | ввод/вывод | Бит данных 1 (не используется в 4-битном режиме) |
9 | DB2 | ввод/вывод | Бит данных 2 (не используется в 4-битной операции) |
10 | DB3 | ввод/вывод | Бит данных 3 (не используется в 4-битной операции) |
11 | ДБ4 | ввод/вывод | Бит данных 4 |
12 | ДБ5 | ввод/вывод | Бит данных 5 |
13 | ДБ6 | ввод/вывод | Бит данных 6 |
14 | ДБ7 | ввод/вывод | Бит данных 7 |
15 | светодиод+ | Власть | Анод подсветки (+) (если применимо) |
16 | светодиод- | Власть | Катод подсветки (-) (если применимо) |
Примечания:
- Vee (также V0): это аналоговый вход, обычно подключаемый к потенциометру. Пользователь должен иметь возможность контролировать это напряжение независимо от всех других регулировок, чтобы оптимизировать видимость дисплея, который меняется, т.е. а. с температурой и, в некоторых случаях, высотой над уровнем моря. При неправильной регулировке дисплей будет выглядеть неисправным.
- Чтение/ запись : в большинстве приложений чтение с HD44780 не требуется. В этом случае этот вывод может быть постоянно подключен к земле, и для его управления не нужно выделять контакты процессора.
Выбор режима
[ редактировать ]
В 8-битном режиме все передачи происходят за один цикл на выводе разрешения (E) со всеми 8 битами на шине данных и стабильными выводами RS и R/ W . В 4-битном режиме данные передаются в виде пар 4-битных « полубайтов RS и R/ W » на верхних выводах данных, D7–D4, с двумя разрешающими импульсами и стабильными выводами . Сначала должны быть записаны четыре старших бита (7–4), а затем четыре младших бита (3–0). Последовательность высокого/низкого уровня должна выполняться каждый раз, иначе контроллер не сможет правильно получать дальнейшие команды.
Выбор 4-битного или 8-битного режима требует тщательного выбора команд. Есть два основных соображения. Во-первых, когда D3–D0 не подключены, на этих линиях всегда будет высокий уровень (двоичный 1111) для HD44780, поскольку имеются внутренние подтягивающие МОП-транзисторы . [ 3 ] Во-вторых, ЖК-дисплей изначально может находиться в одном из трех состояний:
- Состояние 1: 8-битный режим
- Состояние 2: 4-битный режим, ожидание первого набора из 4 бит.
- Состояние 3: 4-битный режим, ожидание второго набора из 4 бит.
Состояние 3 может возникнуть, например, если предварительное управление было прервано после отправки только первых 4 битов команды, когда HD44780 находился в 4-битном режиме.
Следующий алгоритм гарантирует, что ЖК-дисплей находится в нужном режиме:
Одна и та же команда отправляется три раза, набор функций с 8-битным интерфейсом D7–D4 = двоичный 0011, младшие четыре бита «не заботятся», с использованием одиночных разрешающих импульсов. Если контроллер находится в 4-битном режиме, младшие четыре бита игнорируются, поэтому их нельзя отправить, пока интерфейс не будет в конфигурации известного размера.
Начиная с состояния 1 (8-битная конфигурация):
- Отправьте команду установки функции. Команда будет выполнена, установите 8-битный режим.
- Отправьте команду установки функции. Команда будет выполнена, установите 8-битный режим.
- Отправьте команду установки функции. Команда будет выполнена, установите 8-битный режим.
Начиная с состояния 2 (4-битная конфигурация, ожидание первой 4-битной передачи):
- Отправьте команду установки функции. Получены первые 4 бита.
- Отправьте команду установки функции. Последние 4 бита, команда принята, установлен 8-битный режим.
- Отправьте команду установки функции. Команда будет выполнена, установите 8-битный режим.
Начиная с состояния 3 (4-битная конфигурация, ожидание последней 4-битной передачи):
- Отправьте команду набора функций. Последние 4 бита: выполнена неизвестная команда.
- Отправьте команду установки функции. В 8-битном режиме команда будет выполнена, в противном случае будут получены первые 4 бита.
- Отправьте команду установки функции. Будет выполнена 8-битная команда или последние 4 бита предыдущей команды; установите 8-битный режим.
Во всех трех стартовых случаях интерфейс шины теперь находится в 8-битном режиме, 1 строка, 5х8 символов. Если требуется другая конфигурация 8-битного режима, необходимо отправить команду установки функций 8-битной шины для установки полных параметров. Если желателен 4-битный режим, двоичный код 0010 должен быть отправлен на D7–D4 одним разрешающим импульсом. Теперь контроллер будет в 4-битном режиме, и полная 4-битная последовательность команд набора функций шины (два включения с командными битами 7–4 и 3–0 в последующих циклах) завершит настройку регистра набора функций.
Набор инструкций
[ редактировать ]Набор инструкций HD44780 показан ниже: [ 4 ]
Инструкция | Код | Описание | Исполнение время (макс.) (при f cp = 270 кГц) | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
РС | Ч/З | Б7 | Б6 | Б5 | Б4 | Б3 | Б2 | Б1 | Б0 | |||
Четкий дисплей | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | Очищает дисплей и возвращает курсор в исходное положение (адрес 0). | 1,52 мс |
Курсор домой | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | * | Возвращает курсор в исходное положение. Также возвращает дисплей, сдвинутый в исходное положение. Содержимое DDRAM остается неизменным. | 1,52 мс |
Режим входа установлен | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | ИДЕНТИФИКАТОР | С | Устанавливает направление перемещения курсора (I/D); указывает на смещение дисплея (S). Эти операции выполняются во время чтения/записи данных. | 37 мкс |
Управление включением/выключением дисплея | 0 | 0 | 0 | 0 | 0 | 0 | 1 | Д | С | Б | Устанавливает включение/выключение всего дисплея (D), включение/выключение курсора (C) и мигание символа положения курсора (B). | 37 мкс |
Сдвиг курсора/дисплея | 0 | 0 | 0 | 0 | 0 | 1 | С/К | П/Л | * | * | Устанавливает перемещение курсора или сдвиг дисплея (S/C), направление сдвига (R/L). Содержимое DDRAM остается неизменным. | 37 мкс |
Набор функций | 0 | 0 | 0 | 0 | 1 | ДЛ | Н | Ф | * | * | Устанавливает длину данных интерфейса (DL), количество строк отображения (N) и шрифт символов (F). | 37 мкс |
Установить адрес CGRAM | 0 | 0 | 0 | 1 | CGRAM-адрес | Устанавливает адрес CGRAM. Данные CGRAM отправляются и принимаются после этой настройки. | 37 мкс | |||||
Установить адрес DDRAM | 0 | 0 | 1 | адрес DDRAM | Устанавливает адрес DDRAM. Данные DDRAM отправляются и принимаются после этой настройки. | 37 мкс | ||||||
Чтение флага занятости и счетчика адреса | 0 | 1 | лучший друг | Адрес CGRAM/DDRAM | Считывает флаг занятости (BF), указывающий на выполнение внутренней операции, и считывает содержимое счетчика адреса CGRAM или DDRAM (в зависимости от предыдущей инструкции). | 0 мкс | ||||||
Напишите CGRAM или DDRAM. | 1 | 0 | Запись данных | Запись данных в CGRAM или DDRAM. | 37 мкс | |||||||
Чтение из CG/DDRAM | 1 | 1 | Чтение данных | Чтение данных из CGRAM или DDRAM. | 37 мкс | |||||||
Имена битов инструкций — I/D – 0 = уменьшить позицию курсора, 1 = увеличить позицию курсора; S – 0 = нет смещения дисплея, 1 = сдвиг дисплея; D – 0 = отображение выключено, 1 = отображение включено; C – 0 = курсор выключен, 1 = курсор включен; B – 0 = курсор не мигает, 1 = курсор мигает; S/C – 0 = перемещение курсора, 1 = сдвиг отображения; П/Л – 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 — это ОЗУ для генератора символов. [ 5 ] Размер 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 кОм при V CC = 5 В частота генератора может изменяться от 190 кГц до 350 кГц, что приводит к времени ожидания 52,6 мкс и 28,6 мкс вместо 37 мкс. Если дисплей с рекомендованным резистором сопротивлением 91 кОм питается от напряжения 3,3 В, генератор будет работать намного медленнее. Если бит занятости не используется и инструкции синхронизируются внешней схемой, это следует принять во внимание.
Шрифт
[ редактировать ]Исходное ПЗУ генератора символов HD44780 содержит 208 символов в точечной матрице 5×8 и 32 символа в точечной матрице 5×10. Доступны более новые совместимые чипы с более высоким разрешением, соответствующие дисплеям с большим количеством пикселей. [ нужна ссылка ]
Разработаны две версии ПЗУ: [ 5 ]
- HD44780UA00, стандартная (японская) версия, включающая символы катаканы , некоторые греческие буквы и математические символы.
- HD44780UA02, европейская версия, включающая полный набор греческих, кириллических и западноевропейских символов (с диакритическими знаками ).
Подмножество 7-битного ASCII для японской версии нестандартно: оно содержит символ иены там, где обратной косой обычно встречается символ черты, а также символы стрелок влево и вправо вместо тильды и символа рубаута .
Ограниченное количество пользовательских символов можно запрограммировать в устройство в виде растрового изображения с помощью специальных команд. Эти символы необходимо записывать в устройство каждый раз при его включении, поскольку они хранятся в энергозависимой памяти .
См. также
[ редактировать ]- LCD Smartie – драйвер дисплея с открытым исходным кодом для Microsoft Windows
- JIS X 0201 – японская стандартная 7-битная и 8-битная кодировка символов.
Ссылки
[ редактировать ]- ^ Санчес и Кантон 2007 , с. 275
- ^ «Использование Hitachi HD44780 с Arduino» . Лучшие-Микроконтроллерные-Проекты . Проверено 2 января 2023 г.
- ^ «HD44780U (LCD-II)» (PDF) . Хитачи. п. 54 . Проверено 5 января 2023 г.
- ^ Хуан 2009 , с. 326
- ^ Jump up to: а б «Техническое описание HD44780U» (PDF) . Проверено 23 декабря 2021 г.
Дальнейшее чтение
[ редактировать ]- Хуан, Хан-Вэй (2009). HCS12 / 9S12: Введение в программный и аппаратный интерфейс (2-е изд.). Дельмар Сенгадж Обучение. ISBN 978-1-4354-2742-6 .
- Санчес, Хулио; Кантон, Мария П. (2007). Программирование микроконтроллера: микрочип PIC . ЦРК Пресс. ISBN 978-0-8493-7189-9 .