ЖК-контроллер Hitachi HD44780 - Hitachi HD44780 LCD controller
В ЖК-контроллер Hitachi HD44780 это буквенно-цифровой матрица точек жидкокристаллический дисплей (LCD) контроллер, разработанный Hitachi в 1980-е. Набор символов контроллера включает ASCII иероглифы, японские Кана символы и некоторые символы в двух строках по 28 символов. Используя драйвер расширения, устройство может отображать до 80 символов.[1] HD44780 - один из самых популярных символьных ЖК-дисплеев, когда-либо созданных, с многочисленными сторонними дисплеями, использующими его 16-контактный интерфейс и набор инструкций для совместимости.
Архитектура
Контроллер 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, предлагая экономичный вариант добавления текстового дисплея на устройства.[нужна цитата ] Распиновка такая:
- Земля
- VCC от +3,3 до +5 В (тип.)
- Регулировка контрастности (VO) Это аналоговый вход, обычно подключенный к потенциометру. Пользователь должен иметь возможность управлять этим напряжением независимо от всех других настроек, чтобы оптимизировать видимость дисплея, который изменяется, например, с температурой и, в некоторых случаях, высотой над уровнем моря. При неправильной настройке будет казаться, что дисплей неисправен.
- Выбрать регистр (RS). RS = 0: команда, RS = 1: данные
- Чтение / запись (R / W). R / W = 0: запись, R / W = 1: чтение (в большинстве приложений чтение с HD44780 не имеет смысла. В этом случае этот вывод может быть постоянно подключен к земле, и никакие выводы io не должны выделяться для управления им. )
- Часы (Включить). Сработал падающий край
- Бит 0 (не используется в 4-битной операции)
- Бит 1 (не используется в 4-битной операции)
- Бит 2 (не используется в 4-битной операции)
- Бит 3 (не используется в 4-битной операции)
- Бит 4
- Бит 5
- Бит 6
- Бит 7
- Анод подсветки (+) (если применимо)
- Катод подсветки (-) (если применимо)
Номинальное рабочее напряжение для светодиодной подсветки составляет 5 В при полной яркости, с уменьшением яркости при более низких напряжениях в зависимости от таких деталей, как цвет светодиода. Для подсветки без использования светодиодов часто требуется более высокое напряжение (например, электролюминесцентный ).
Выбор режима
В 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]
Инструкция | Код | Описание | Исполнение время (макс.) (когда fcp = 270 кГц) | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
RS | R / W | B7 | B6 | B5 | B4 | B3 | Би 2 | B1 | B0 | |||
Четкий дисплей | 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 | Я БЫ | S | Устанавливает направление движения курсора (I / D); указывает на смещение дисплея (S). Эти операции выполняются во время чтения / записи данных. | 37 мкс |
Управление включением / выключением дисплея | 0 | 0 | 0 | 0 | 0 | 0 | 1 | D | C | B | Устанавливает включение / выключение всего дисплея (D), включение / выключение курсора (C) и мигание символа позиции курсора (B). | 37 мкс |
Курсор / смещение дисплея | 0 | 0 | 0 | 0 | 0 | 1 | S / C | R / L | * | * | Устанавливает перемещение курсора или сдвиг отображения (S / C), направление сдвига (R / L). Содержимое DDRAM остается без изменений. | 37 мкс |
Набор функций | 0 | 0 | 0 | 0 | 1 | DL | N | F | * | * | Устанавливает длину данных интерфейса (DL), количество отображаемых строк (N) и шрифт символов (F). | 37 мкс |
Установить адрес CGRAM | 0 | 0 | 0 | 1 | Адрес CGRAM | Устанавливает адрес CGRAM. Данные CGRAM отправляются и принимаются после этой настройки. | 37 мкс | |||||
Установить адрес DDRAM | 0 | 0 | 1 | Адрес DDRAM | Устанавливает адрес DDRAM. Данные DDRAM отправляются и принимаются после этой настройки. | 37 мкс | ||||||
Прочитать флаг занятости и счетчик адресов | 0 | 1 | BF | Адрес CGRAM / DDRAM | Считывает флаг занятости (BF), указывающий на выполнение внутренней операции, и считывает содержимое счетчика адресов CGRAM или DDRAM (в зависимости от предыдущей инструкции). | 0 мкс | ||||||
Напишите CGRAM или DDRAM | 1 | 0 | Запись данных | Записывать данные в CGRAM или DDRAM. | 37 мкс | |||||||
Чтение из CG / DDRAM | 1 | 1 | Прочитать данные | Считайте данные из 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 содержит 208 символов в точечной матрице 5 × 8 и 32 символа в точечной матрице 5 × 10. Доступны более современные совместимые чипы с более высоким разрешением, подходящим для дисплеев с большим количеством пикселей.[нужна цитата ]
Были разработаны две версии ПЗУ:[4]
- HD44780UA00, стандартный (Японский ) версия, которая включает катакана персонажи и некоторые Греческие буквы и математические символы
- HD44780UA02, а Европейский версия, включающая полный набор греческого языка, Кириллица и Западноевропейский персонажи (с диакритические знаки )
7-битный ASCII подмножество для японской версии нестандартно: оно обеспечивает Символ йены где обратная косая черта символ обычно встречается, а слева и справа символы стрелок на месте тильда и обидный характер.
Ограниченное количество пользовательских символов можно запрограммировать в устройство в виде битовая карта с помощью специальных команд. Эти символы необходимо записывать в устройство при каждом включении, так как они сохраняются в энергозависимая память.
Смотрите также
- ЖК Смарти - Драйвер дисплея с открытым исходным кодом для Microsoft Windows
- JIS X 0201 - Японская стандартная 7-битная и 8-битная кодировка символов
Рекомендации
- ^ Санчес и Кантон 2007, п. 275
- ^ Хуан 2009, п. 326
- ^ "Техническое описание HD44780U" (PDF).
- ^ "Техническое описание 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.