Как управлять жки дисплеем
В качестве примера подключим дисплей к управляющей плате Arduino Uno.
Подключение к Arduino
Вывод | Обозначение | Пин Arduino Uno |
---|---|---|
1 | GND | GND |
2 | VCC | 5V |
3 | VO | GND |
4 | RS | 11 |
5 | R/W | GND |
6 | E | 12 |
7 | DB0 | — |
8 | DB1 | — |
9 | DB2 | — |
10 | DB3 | — |
11 | DB4 | 5 |
12 | DB5 | 4 |
13 | DB6 | 3 |
14 | DB7 | 2 |
15 | VCC | 5V |
16 | GND | GND |
Для упрощения работы с LCD-дисплеем используйте встроенную библиотеку Liquid Crystal. В ней вы найдёте примеры кода с подробными комментариями.
Вывод текста
Для вывода первой программы приветствия, воспользуйтесь кодом вроде этого:
Кириллица
Существует два способа вывода кириллицы на текстовые дисплеи:
Рассмотрим оба способа более подробно.
Таблица знакогенератора
Дисплейный модуль хранит в памяти две страницы знакогенератора, которые состоят из различных символов и букв.
Для вывода символа на дисплей необходимо передать его номер в шестнадцатеричной системе из таблицы знакогенератора.
Вы можете смешивать в одной строке обычные символы и явные коды как угодно. Единственный нюанс в том, что после того, как компилятор в строке видит последовательность \x , он считывает за ним все символы, которые могут являться разрядами шестнадцатеричной системы даже если их больше двух. Из-за этого нельзя использовать символы из диапазона 0-9 и A-F следом за двузначным кодом символа, иначе на дисплее отобразится неправильная информация. Чтобы обойти этот момент, можно использовать тот факт, что две записанные рядом строки склеиваются.
Сравните две строки кода для вывода надписи «Яeee»:
Переключение страниц знакогенератора
Дисплейный модуль хранит в памяти две страницы знакогенератора. По умолчанию установлена нулевая страница. Для переключения между страницами используйте методы:
Дисплей не может одновременно отображать символы разных страниц.
Рассмотрим пример, в котором одна и та же строка будет отображаться по-разному — в зависимости от выбранной страницы.
Полную таблицу символов с кодами можно найти в документации к экрану.
Использование библиотеки LiquidCrystalRus
Совсем не обязательно мучатся со знакогенератором, чтобы вывести русский символ. Для решения проблемы скачайте и установите библиотеку LiquidCrystalRus.
Это копия оригинальной библиотеки LiquidCrystal с добавлением русского языка. Добавленный в библиотеку код трансформирует русские символы UTF8 в правильные коды для текстового экрана.
В качестве примера выведем фразу «Привет от Амперки» на дисплей.
Примеры работы для Espruino
В качестве примера подключим дисплей к управляющей плате Iskra JS.
Подключение к Iskra JS
Вывод | Обозначение | Пин Iskra JS |
---|---|---|
1 | GND | GND |
2 | VCC | 5V |
3 | VO | GND |
4 | RS | P11 |
5 | R/W | GND |
6 | E | P12 |
7 | DB0 | — |
8 | DB1 | — |
9 | DB2 | — |
10 | DB3 | — |
11 | DB4 | P5 |
12 | DB5 | P4 |
13 | DB6 | P3 |
14 | DB7 | P2 |
15 | VCC | 5V |
16 | GND | GND |
Для работы с LCD-дисплеем из среды Espruino существует библиотека HD44780.
Вывод текста
Для вывода программы приветствия, воспользуйтесь скриптом:
Кирилица
Вывод кирилицы на дисплей с помощью платформы Iskra JS доступен через встроенную в дисплей таблицу знакогенератора.
Таблица знакогенератора
Дисплейный модуль хранит в памяти две страницы знакогенератора, которые состоят из различных символов и букв.
Для вывода символа на дисплей необходимо передать его номер в шестнадцатеричной системе из таблицы знакогенератора.
Вы можете смешивать в одной строке обычные символы и явные коды как угодно. Единственный нюанс в том, что после того, как компилятор в строке видит последовательность \x , он считывает за ним все символы, которые могут являться разрядами шестнадцатеричной системы даже если их больше двух. Из-за этого нельзя использовать символы из диапазона 0–9 и A–F следом за двузначным кодом символа, иначе на дисплее отобразится неправильная информация. Чтобы обойти этот момент, можно использовать тот факт, что две строки записанные рядом склеиваются.
Сравните две строки кода для вывода надписи «Яeee»:
Переключение страниц знакогенератора
Дисплейный модуль хранит в памяти две страницы знакогенератора. По умолчанию установлена нулевая страница. Для переключения между страницами используйте методы:
Дисплей не может одновременно отображать символы разных страниц.
Рассмотрим пример, в котором одна и та же строка будет отображаться по-разному — в зависимости от выбранной страницы.
Полную таблицу символов с кодами можно найти в документации к экрану.
Комнатный термометр
Дисплей удобен для отображения показаний модулей и сенсоров. Сделаем задатки «Умного Дома», а именно «комнатный термометр».
В этом разделе даётся объяснение технических основ функционирования пассивных ЖК-элементов.
1 Физические основы
Основные характеристики ЖК обусловлены анизотропными характеристиками используемых материалов. Наиболее распространены нематические ЖК-молекулы, оси которых вытянуты параллельно друг другу.
Ниже будет рассмотрена базовая конструкция и основы функционирования стандартного индикатора. Первая деталь – специальное стекло, придающее неполяризованному световому потоку плоскую поляризацию. В следующем слое «скрученная» структура ЖК-молекул вращает плоскость поляризации света на 90 градусов. Таким образом, свет проходит через второй поляризатор и устройство выглядит белым.
Если к ячейке приложено электрическое поле, оси молекул поворачиваются перпендикулярно электродам и структура перестаёт вращать плоскость поляризации падающего света, который при этом поглощается вторым поляризатором и устройство выглядит чёрным.
После снятия поля нематик возвращается в «скрученное» состояние.
Подвижность кристаллов сильно зависит от температуры, при низкой температуре движение происходит очень медленно.
С электрической точки зрения, каждый элемент представляет собой конденсатор, с учётом сигнальных линий он представляет из себя RC-цепь.
Постоянный ток вредит жидким кристаллам и в конечном счёте разрушает их. Таким образом, следует защищать молекулы от постоянного напряжения. Как правило, документация на ЖК индикаторы позволяет подавать не более 50мВ.
2 Управление
Управление – это процесс включения и выключения пиксела с целью создания изображения. Существуют 2 основных типа управления – статическое и мультиплексированное.
2.1 Статическое управление.
Прямое управление приемлемо лишь для индикаторов с небольшим количеством активизируемых элементов. При статическом управлении каждый пиксел индикатора имеет собственную цепь управления. Управляющее напряжение прикладывается к каждому элементу.
Наибольшее применение статическая индикация находит в традиционных семисегментных ЖК индикаторах устанавливаемых в наручные часы и др. устройства.
2.2 Мультиплексное управление
Мультиплексирование позволяет управлять большим количеством пикселов. Когда элементы упорядочены, вместо раздельного управления каждым элементом, они могут адресоваться по строкам и столбцам.
Таким способом упрощается управляющая схема, т.к. каждому пикселу не требуется собственная управляющая линия. Для матрицы 4х4 пикселов потребуется 16 драйверов при статическом управлении. При использовании мультиплексного управления их число снизится до восьми – по одному на каждый столбец и строку.
На рис. 1.2 показан формат 2х2 (bias 1:2 duty 1:2).
Кроме этого, интервал действия каждого сигнала также является постоянным.
Если число «общих» (COM) линий возрастает, время контроля каждого пиксела (duty) уменьшается, что приводит к ухудшению контраста и угла обзора, но это компенсируется менее сложной схемой управления.
Способ управления мультиплексными индикаторами это, по сути, временное разделение управляющих сигналов с числом интервалов, равным удвоенному количеству «общих» электродов (COM). Так же, как и для обычных ЖКИ, с целью предотвращения нежелательных электрохимических реакций и разрушения индикатора, напряжение на всех сегментах должно периодически изменять полярность таким образом, чтобы суммарное напряжение было равно нулю.
Именно это является целью удвоения временных интервалов – к каждой цепочке сегментов попеременно прикладывается напряжение противоположной полярности.
3. Управление ЖК
В этом разделе будет показано, как управлять пассивными ЖК-индикаторами
3.1 Микроконтроллеры с драйвером ЖК
Fujitsu Microelectronics предлагает ряд МК с встроенным ЖК-драйвером:
3.1.1 Встроенный ЖК-контроллер
Для примера изучения ЖК-контроллера будет рассмотрена серия MB90420. Блок-схема демонстрирует основные функции.
ЖК-контроллер/драйвер имеет встроенную дисплейную память данных 12х8 бит и управляет ЖК-индикатором при помощи четырёх «общих» (COM) выходов и 24-х выходов сегментов (SEG). Возможно задействование только трёх выходов. ЖК-контроллер/драйвер содержит средства вывода дисплейной памяти на ЖК-индикатор посредством выходов COM и SEG, индикатор подключается непосредственно к драйверу.
- Встроенный резистивный делитель управляющих напряжений ЖК. Также имеется возможность подключения внешнего делителя.
- До 4-х «общих» выходов (COM0…COM3)
- До 24-х выходов сегментов (SEG0…SEG23)
- Встроенная дисплейная память (ОЗУ) объёмом 12 байт
- Возможность выбора ?, 1/3 или ? Duty (ограничено выбором Bias)
- Непосредственное подключение ЖКИ
3.1.2. Регистр управления ЖК
Кроме дисплейного ОЗУ для управления основными функциями встроенного ЖК-контроллера используются 2 управляющих регистра – LCRH и LCRL. Один регистр используется для выбора режима контроллера. Второй регистр определяет, какие из сегментных выходов будут использованы, остальные выходы могут использоваться как обычные порты ввода-вывода.
Дисплейное ОЗУ 12х8 бит хранит информацию о состоянии («вкл/выкл» ) каждого из 4х24 сегментов. Данное ОЗУ читается автоматически, синхронно, в соответствии с установленными в регистре LCRL настройками. Каждый «единичный» бит создаёт выходной сигнал, включающий соответствующий сегмент, каждый «нулевой» бит выключает сегмент.
*Названия бит могут отличаться от приведенных в Datasheet и/или Hardware manual. Но в целях упрощения ПО для пользователя, соответствующие переименования сделаны в заголовочных (Header) файлах согласно вышеприведенной таблице. Благодаря этому программный код легко переносим на разные серии МК.
3.1.3 Пример программы 1/2 bias, 1/2 duty
Приведенный пример программы переводит ЖК-контроллер в режим 1/2 bias, 1/2 duty, который обсуждался в разделе 2.2.2
Примечание:
Обратите внимание, что в старых версиях Hardware Manual на серии MB90420/425 содержится ошибка. К сожалению, не упомянут бит DTCH (Duty Change) в регистре LCRH, однако этот бит должен быть установлен в «1» для получения режима ? bias, ? duty.
3.2 Внешний ЖК-контроллер
Ряд компаний, выпускающих микросхемы предлагает несколько типов внешних ЖК-контроллеров. Принцип функционирования у них в большой степени схож, основные различия относятся к числу линий COM/SEG и интерфейсу подключения к МК.
Одна из весьма интересных ИС выпускается фирмой Philips. PCF8576 – однокристальный контроллер ЖКИ с встроенным драйвером и ОЗУ данных до 160 сегментов. Подключение к МК осуществляется всего по двум проводам.
В разделе "Контроллеры и драйвера для ЖК индикаторов" приведен неполный список производителей внешних контроллеров ЖКИ.
3.3 Дискретные контроллеры ЖКИ с использованием портов ввода-вывода.
ЖК индикатор также может быть подключен непосредственно к портам ВВ микроконтроллера. При такой реализации важной задачей является обеспечение симметричного управляющего напряжения для предотвращения повреждения молекул ЖК. Постоянное смещение должно быть минимизировано.
Существуют несколько рекомендаций по созданию напряжений смещения на общих линиях (COM).
На рис. 2.3а показан пример использования высокоимпедансного (Z) состояния порта ввода-вывода, настроенного на ввод для создания трёх выходных уровней – 0,Vcc/2 и Vcc.
Недостатком этого метода является необходимость частого переключения настроек порта ВВ со входа на выход, что приводит к снижению производительности.
Другой вариант представлен на рис. 2.3б. В этом примере управляющее напряжение формируется двумя выходами P00 и P01.
В этом случае не требуется переключать направление порта. Программное обеспечение при этом упрощается, т.к. для хранения матрицы уровней управляющих напряжений можно использовать простую таблицу констант.
Управление ЖК при помощи портов ввода-вывода содержит в себе ряд потенциальных опасностей.
Как уже отмечалось выше, ЖК-молекулы весьма чувствительны к постоянному напряжению. Даже смещение в 50мВ (точное значение зависит от производителя и техпроцесса) может вызвать повреждение молекул. Длительности положительного и отрицательного полупериодов должны совпадать с высокой точностью. Сложность формирования управляющих напряжений периодическим изменением выходного значения порта (а также его направления в первом примере) приводит к существенному программному оверхеду. Контроль ЖКИ становится при этом высокоприоритетной задачей для МК, снижая производительность для других задач. Следует иметь это в виду при написании программы. Кроме этого, сильное влияние будут оказывать прерывания.
Кроме этого, электрические характеристики выходных уровней порта и их температурная нестабильность также как нестабильность внешнего резистора также могут существенно влиять на величину управляющих напряжений.
Принимая во внимание все перечисленные недостатки, такой метод управления ЖК -индикатором не рекомендуется.
3.4 Символьные ЖКИ
Многие задачи требуют значительно больше, чем вывод нескольких символов. Если необходимо выводить цифробуквенную информацию, для этих целей существует большое число готовых символьных ЖК-модулей.
Данные модули имеют встроенный ЖК-контроллер и драйверы. Для связи с МК используется простой параллельный интерфейс. В большинстве таких модулей используется контроллер HD44780 или его аналоги. Де-факто, протокол данного контроллера от Hitachi Semiconductor стал стандартом, что сделало возможным использование программных библиотек.
Контроллер поддерживает до 80 цифробуквенных символов, обычно выпускаются модули с конфигурацией 2x14, 2x16, 2x20, 2x24, 2x40, 4x20 символов.
Требования, предъявляемые к интерфейсу микроконтроллера несложны. Для связи требуется всего 7 линий ввода-вывода. На рис. 2.4 показано подключение такого стандартного модуля.
Большинство модулей имеет стандартное расположение выводов:
Для установки режимов работы модуля и выбора 4-битной шины требуется подать ряд команд начальной инициализации. Поток данных между микроконтроллером и ЖК-модулем состоит из команд и данных (ASCII-совместимых символов).
Инструкция | RS | RW | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 | Описание |
Очистка дисплея | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | Очищает дисплей и возвращает курсор в начальное положение |
Возврат курсора | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | * | Возвращает курсор в начальное положение |
Выбор направления сдвига | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | ID | S | Выбирается направление сдвига курсора |
0 | 0 | 0 | 0 | 0 | 0 | 1 | D | C | B | Включает/выключает весь дисплей (D) или курсор | |
Сдвиг курсора/экрана | 0 | 0 | 0 | 0 | 0 | 1 | SL | RL | * | * | Сдвигает курсор или экран |
Программирование режима | 0 | 0 | 0 | 0 | 1 | DL | N | F | * | * | Определение режима отображения и ширины шины данных |
Установка адреса CGRAM | 0 | 0 | 0 | 1 | a | a | a | a | a | a | Устанавливает адрес CGRAM |
Установка адреса DDRAM | 0 | 0 | 1 | a | a | a | a | a | a | a | Устанавливает адрес DDRAM |
Чтение флага занятости | 0 | 1 | BF | a | a | a | a | a | a | a | Чтение флага занятости и счётчика адреса |
Запись в CGRAM или DDRAM | 1 | 0 | d | d | d | d | d | d | d | d | Записывает данные в CGRAM или DDRAM |
Чтение из CGRAM или DDRAM | 1 | 1 | d | d | d | d | d | d | d | d | Читает данные из CGRAM или DDRAM |
DDRAM – ОЗУ данных дисплея (Display Data RAM) ; CGRAM – ОЗУ знакогенератора (Character Generator RAM); a – адрес; d – данные
3.4.1 Пример программы
Ниже приведен пример программы на языке С
4. Заключение
В этой части подводятся итоги в части рассмотрения различных механизмов управления ЖК-индикаторами.
Оптимальный метод управления ЖК-дисплеем сильно зависит от задачи.
Для простейших применений, таких как игрушки, где отсутствуют задачи жизнеобеспечения, можно применять программное управление линиями ввода-вывода.
Для промышленных и автомобильных применений, где имеет большое значение время эксплуатации и температурные воздействия необходимо применять специализированный ЖК-контроллер. Микроконтроллер с встроенным контроллером ЖКИ позволяет снизить затраты за счёт отсутствия внешних компонентов. В случае необходимости управления большим количеством сегментов требуется внешний контроллер ЖКИ.
5. Приложение
В этом разделе рассматриваются наиболее частые вопросы
5.1 Вопросы и Ответы о дискретном контроллере на базе портов ВВ
В: Можно ли подключить матричный ЖКИ к порту ВВ моего МК Fujitsu?
О: Да, но Fujitsu не рекомендует подключать матричные ЖКИ к порту ВВ. Мы предлагаем МК с встроенным контроллером ЖКИ.
В: Почему Fujitsu не рекомендует подключать матричные ЖКИ к порту ВВ?
В: Почему другие фирмы предлагают использовать «ЖК на порту»?
О: Они это делают таким же образом, как и мы, но иногда с демонстрационными примерами программ. Если вы внимательно прочитаете их Application Notes, то увидите те же предупреждения.
В: Почему Fujitsu не предлагает пример программы?
О: Fujitsu не хочет вводить пользователей в заблуждение. Управление «ЖК на порту» возможно в некоторых случаях, но этот вопрос должен решаться индивидуально в каждом случае с внимательным рассмотрением как программистом, так и схемотехником.
Любой пример программы подразумевает простоту и безопасность, чего мы в данном случае не можем обеспечить.
«ЖК на порту» всегда должен рассматриваться в рамках всей системы целиком и не может быть выделен в качестве самостоятельной задачи, либо с рядом оговорок.
Заключение
Конечно, небольшое количество сегментов ЖКИ может управляться при помощи порта ВВ, тем более, что большинство входных вентилей у Fujitsu имеют гистерезис, позволяющий легко организовать напряжение ? bias при помощи внешних резисторов.
Но программный и аппаратный оверхед, так же, как и риск долговременных последствий в плане качества и времени наработки высоки.
Наилучшее и наиболее профессиональное решение всегда обеспечивается микроконтроллером с встроенным драйвером ЖКИ.
Благодаря достижениям в технологии ЖК-дисплеев и более глубокому пониманию модуляции плотности появились новые способы цифрового управления изображением. Они менее затратны с экономической точки зрения и применимы для любого уровня миниатюризации. В данной статье рассматриваются два цифровых способа управления ЖК-дисплеем в сравнении с классическим.
Обычно управление ЖК-дисплеем осуществляется посредством аналогового метода с помощью резистивного делителя или генератора подкачки. Причем резистивный делитель используется гораздо чаще. Цепочка резисторов образует делитель напряжения. Управляющий сигнал формируется путем мультиплексирования уровней напряжения на выводах GPIO в определенные моменты времени. Недостатком данного подхода является большое потребление и низкое качество изображения за счет емкостного характера ЖК-дисплея. Генератор подкачки или резистивный делитель генерирует ступенчатое напряжение (см. рис. 1). Количество ступеней зависит от уровня смещения (коэффициента мультиплексирования).
По организации сегментов ЖКИ делятся на симплексные и мультиплексные. Преимущества и недостатки каждого типа перечислены в таблице 1.
Таблица 1. Сравнение симплексного и мультиплексного способов управленияСвойство
Симплексный
Мультиплексный
В дисплее с симплексным управлением каждый сегмент управляется собственным контроллером. Такие ЖКИ имеют высокий контраст и широкий температурный диапазон и применяются в основном в уличных устройствах отображения (колонки АЗС, часы). Симплексные контроллеры обычно создают управляющее напряжение частотой 30…60 Гц. Сегменты мультиплексного индикатора сгруппированы в матрицу. Имеется несколько общих выводов (COM), на каждом из которых адресация к конкретному сегменту производится с помощью сигнала SEG.
Цифровая корреляция обеспечивает высокий коэффициент разделения. Однако при этом возрастает мощность потребления и стоимость изготовления схемы. Вместо аналоговых ступеней для формирования управляющего сигнала используются стандартные цифровые уровни — напряжение питания и земля, переключение между которыми производится в заданные моменты времени. Достоинством данного подхода является простая аппаратная реализация (таймер или ШИМ с ПДП или прошивка МК и ISR). Таким образом, управление может проводиться с помощью FPGA или МК.
Вторым важным преимуществом является наличие энергосберегающего режима работы. Когда устройство выходит из режима ожидания и сменяет субкадр, контроллеру достаточно перевести напряжение на выводе GPIO на низкий или высокий уровень, после чего снова перейти в энергосберегающий режим. В результате в активном режиме схема управления находится очень короткий промежуток времени.
Если общий сигнал (СОМ) совпадает с сигналом сегмента (SEG), то сегмент считается выбранным (см. рис. 2). В конце каждого субкадра вставляется «мертвый» цикл. Уровни включения и выключения генерируются не с помощью ЦАП, как в аналоговых схемах, а за счет регулирования среднеквадратичного напряжения.
Напряжение на сегменте ЖКИ есть разность между напряжениями SEG и COM. Пороговые значения для напряжения включения и выключения сегмента вычисляются по формулам (1) и (2) соответственно.
где n — количество сигналов COM, d — количество «мертвых» состояний.
Коэффициент разделения равен отношению Vrms_on к Vrms_off:
Чем больше D, тем сильнее контраст между включенным и выключенным состояниями сегмента. Чем меньше общих выводов (СОМ), тем коэффициент разделения больше. Рекомендуется использовать не более 4 общих линий.
Многоуровневый ступенчатый сигнал, похожий на управляющий сигнал с рисунка 1, можно получить с помощью модуляции плотности.
В идеальном случае ЖКИ представляет собой конденсатор. Однако за счет внутренних свойств стекла ЖК-дисплея он работает как фильтр. Соответственно, изменяя параметры ШИМ, можно добиться, чтобы он обеспечивал постоянное напряжение.
Достоинством данного подхода является низкая стоимость и малый риск в процессе проектирования, поскольку вместо аналоговых компонентов используется программное обеспечение. С другой стороны, схема имеет высокую мощность потребления за счет высокой тактовой частоты ШИМ. Для масштабирования мощности потребления к выводам ЖКИ подсоединяются внешние резисторы.
Управляющее напряжение при использовании ШИМ вычисляется по формулам (3) и (4).
Контрастность при этом подходе выше, чем в случае цифровой корреляции:
Для наглядности сравним рассмотренные выше способы управления на примере ЖКИ VIM-404 TN. Схема управления дисплеем делится на две части: блок установления управляющей последовательности с драйвером (см. рис. 3) и блок формирования логических уровней (см. рис. 4).
На рисунке 3 показана схема для дисплея с 4 общими сигналами. Управляющая последовательность (блок Sequencer) задает очередность управления сегментами, а также тип сигнала (инвертированный или нет). Для определения текущего состояния сегмента Sequencer обращается к ОЗУ (см. рис. 4). Это автомат, работающий непрерывно. Регулировка контраста производится путем изменения скважности ШИМ в блоке Dead Time. ШИМ в блоке смещения (Bias) генерирует высокое и низкое напряжения смещения.
На рисунке 5 показан ЖКИ, управляемый методом цифровой корреляции. Изображение не отличается высокой контрастностью и мало отличается от изображения, полученного аналоговым способом. Показанные на рисунках 6 и 7 ЖКИ управляются ШИМ со смещением 1/2 и 1/3. Сегменты имеют более четкий контраст, чем при цифровой корреляции, однако между двумя вариантами смещения разница видна только при очень тщательном рассмотрении.
Аналоговое управление ЖКИ применяется уже более 20 лет. С появлением более сложных дисплеев с большим количеством пикселов этот подход вытесняется цифровым. Программная реализация позволяет сэкономить место на кристалле и снизить потребление схемы за счет работы в энергосберегающем режиме.
Vdd – вывод подачи напряжения питания (+5V ). Подключаем этот пин к плюсу источника питания.
Vo – вывод управления контрастностью. На этот вывод подается напряжение от Vss до Vdd (по вкусу), через (10 .. 20)КΩ переменный резистор.
У некоторых производителей Vss идет первым а Vdd вторым, у других наоборот. Будьте осторожны и не перепутайте Vdd с Vss, так как в этом случае дисплеи горят на ура. При первом включении дисплея, на экране может не отображаться ничего. Следует покрутить переменный резистор до появления, как минимум черных квадратиков, после чего (более плавно) подобрать нужную вам контрастность.
RS – Register Select | При помощи этого вывода мы сообщаем дисплею какой тип данных будет записан/прочитан.RS = 0, работаем с регистром команд (Instruction Register) RS = 1, работаем с регистром данных (Data Register) |
RW – Read/Write | При помощи этого вывода, мы переключаем дисплей в режим записи или чтения.RW = 0, записываем данные/команды в дисплэй RW = 1, читаем данные/переменные из дисплэя |
E – Enable | При помощи этого вывода, активизируется исполнение операции записи/чтения команд/данных. Или другими словами, на этот вывод подается "стробирующий сигнал”, без которого не может быть выполнена ни одна операция. Исполнение операций дисплеем, начинаются при спадающем фронте |
В большинстве случаев читать данные/параметры не приходиться – так что вывод RW можно смело подключать к Vss (земля), то есть дисплей все время будет работать в режиме записи (Write mode).
Если намереваетесь использовать 4-битную шину данных, то в этом случае используются последние (старшие) четыре бита: DB4 .. DB7, а первые четыре подключаются к земле.
Пины 15, 16 – подсветка | Эти выводы могут как присутствовать так и отсутствовать. Если дисплей оснащен подсветкой то, выводы подключены к аноду и катоду подсветки, если нет то, их ни к чему подключать не надо – пущай болтаются |
Как узнать есть ли подсветка у дисплея? Во первых – спросить у продавца :) . Во вторых – прозвонить эти два вывода и найти какой из них анод и какой катод.
Рис.3 Видимая часть (по умолчанию) RAM памяти дисплея
CGROM (Character Generator ROM), здесь хранится расшифровка записанных в DDRAM символов. То есть, когда мы записываем в DDRAM ячейку, скажем, символ 0×41, то на экране появится символ хранящийся в ячейке CGROM памяти с адресом 0×41 – "A". Как и ASCII таблицы для разных стран, символы хранящиеся в CGROM памяти отличаются, так что выбирайте индикатор с нужной вам ASCII таблицей (CGROM памятью).
CGRAM (Character Generator RAM), в общем это маленький участок CGROM-памяти в которой нет никаких символом и которую можно изменять – первые 64 байта CGROM памяти. Так что пользователь может нарисовать парочку своих символов.
Для того чтобы помнить адрес последней ячейки, к которой мы обращались, есть специальный регистр – address counter, по умолчанию он указывает на ячейку 0×00, DDRAM памяти. После каждого обращения к памяти он автоинкрементируется или декрементируется в зависимости от настроек режима ввода.
Дисплей распознает всего 11 команд, в которые входят и команды инициализации дисплея.
RS | RW | Тип команды |
0 | 0 | Записать команду. Все команды от Clear Displayдо Set DDRAM Address включительно. |
0 | 1 | Прочитать параметры. Единственные параметры которые можно прочитать из дисплея это busy flag и address counter. |
1 | 0 | Записать данные в DDRAM или CGRAM память. |
1 | 1 | Прочитать данные из DDRAM или CGRAM память. |
После отправки этой команды дисплею, он начинает записывать во все ячейки DDRAM памяти символ "Space”, тобиш пустоту, после чего в address counter записывает 0×00. Поскольку ячеек относительно много, а дисплей относительно медленно работает, то Clear Display самая долго-выполняемая команда
Читайте также: