LCD 1602 Работа c ЖК дисплеем

Принципы работы самого популярного ЖК индикатора формата 2 строки по 16 символов

Дисплей на жидких кристаллах (ЖК, LCD) — это самый распространенный тип дисплея, который используется в современных цифровых устройствах, таких как MP3 плееры, часы, компьютеры, мобильные телефоны и т.д. Эти экраны очень компактны и потребляют мало энергии.

К тому же ЖК индикаторы легкодоступны и дешевы, поэтому радиолюбители очень часто используют их в своих проектах. В настоящее время производится огромное количество различных типов LCD экранов, которые отличаются друг от друга конструкцией, назначением, возможностью вывода графической информации или только текстовых символов. Наибольшее распространение среди радиолюбителей получил текстовый ЖК индикатор, позволяющий выводить 2 строки по 16 символов. Именно такой дисплей используется как стандартный модуль отображения информации в мире Arduino. В этой статье мы разберем принципы работы с ЖК-дисплеем 16X2 на базе контроллера, совместимого с  HD44780 (KS0066).

Для вывода символа дисплей использует т.н. память DDRAM (Display Data RAM), которая хранит ASCII-коды символов, которые выводятся на экран. Память содержит 80 ячеек. На ЖКИ 16X2 мы увидим лишь часть символов, которые находятся в DDRAM:

Схема контактов ЖК-дисплея 16 × 2

Контакт 1 (Земля) — это контакт GND дисплея, используемый для подключения терминала GND блока микроконтроллера или источника питанияКонтакт 2 (VCC / Source Pin) — это вывод питания дисплея, используемый для подключения + источника питанияКонтакт 3 (V0 / VEE / Control Pin) — этот вывод для регулировки контрастности дисплея, обычно сюда подключается вывод движка потенциометра регулировки контрастности, либо другой источник управляющего напряжения в диапазоне от 0 до 5 вольт.Контакт 4 (выбор регистра / вывод управления) — этот вывод переключает регистр команд или регистр данных, и принимает значение 0 или 1 (0 = режим данных и 1 = командный режим). Вывод 5 (вывод чтения / записи / управления) — это вывод выьора режима работы дисплея, чтение или запись (0 = операция записи и 1 = операция чтения).Контакт 6 (контакт включения / управления) — Для работы дисплея этот контакт должен иметь высокий уровень. Контакты 7-14 (выводы данных) — эти выводы используются для отправки данных на дисплей. Дисплей может использоваться в 4-проводном или 8-проводном режиме данных. В 4-проводном режиме только четыре контакта подключены к блоку микроконтроллера, (от 0 до 3), тогда как в 8-проводном режиме к блоку микроконтроллера подключены все 8 контактов, от 0 до 7.Контакт 15 (контакт + ve светодиода) — этот контакт питания подсветки дисплея. Подключается к + 5В.Контакт 16 (-ve контакт светодиода) — Вывод катода светодиода подсветки. Необходимо подключить к GNDХарактеристики LCD16x2

Рабочее напряжение составляет 4,7-5,3 В.Две строки, каждая из которых может содержать 16 символов.Потребляемый ток около 1 мА (без подсветки).Каждый символ отображается матрицей 5 × 8 пикселей.Отображение цифр и букв.Два режима передачи данных: 4-битный и 8-битныйЕсть варианты с синей и зеленой подсветкой.Возможность отображения нескольких пользовательских символовРегистры LCD

ЖК-дисплей 16 × 2 имеет два регистра, регистр данных и регистр команд. Вывод RS (выбор регистра) используется для перехода от одного регистра к другому. Когда на RS установлен «0», активен регистр команд. если на RS подать «1», то подключается регистр данных.

Регистр команд

Основная функция регистра команд — хранить инструкции управления дисплеем. Таким образом, можно выполнять предопределенные задачи, такие как очистка дисплея, инициализация, установка позиции курсора и управление отображением.

Регистр данных

Основная функция регистра данных — хранить информацию, которая должна отображаться на ЖК-экране. Посылаем сюда ASCII код нужного символаи он отображается на экране. Всякий раз, когда вывод RS установлен в «0» и мы отправляем информацию на ЖК-дисплей, она передается в регистр данных, отображается на экране.

Все команды дисплея 1602

Формат представления команды: RS RW | D7 D6 D5 D4 D3 D2 D1 D0

Clear display Очистка дисплея и установка адреса DDRAM в 0использование команды:0 0 | 0 0 0 0 0 0 0 1

Return home — Установка текущего адреса DDRAM в 0 (курсор – домой) Данные DDRAM не меняютсяиспользование команды:0 0 | 0 0 0 0 0 0 0 1

Entry mode set — Установка направления движения курсора (I/D) и смещения дисплея (S) при выводе данныхиспользование команды:0 0 | 0 0 0 0 0 1 I/D SЕсли: I/D=1: адрес DDRAM увеличивается, I/D=0: адрес DDRAM уменьшаетсяS=1: сдвиг рабочей области дисплея по DDRAM разрешен

Display on/off contro — включение или отключение дисплея(D), включение и отключение курсора(C), режим мигания курсора(B).использование команды:0 0 | 0 0 0 0 1 D C BD = 1: дисплей включенC = 1: курсор включенВ = 1: мерцание курсора включеноCursor or display shift — Перемещает курсор и смещает «окно) дисплея по памяти DDRAMиспользование команды:0 0 | 0 0 0 1 S/C R/L Х ХS/C=1 —  сдвинуть дисплей S/C=0 — переместить курсор;R/L=1 — вправо R/L=0:  влевоX — любое значение

Function set — Установка интерфейса(DL), число строк(N) и шрифт символов(F)использование команды:0 0 | 0 0 1 DL N F Х ХDL=1 — 8 bit интерфейс; DL=0 —  4 bits интерфейсN=1 — 2 строки:  N=0 — 1 строкаF= 1 — 5х10 матрица; F=0 — 5х8 матрица

Set CGRAM address — Установка счетчика адреса CGRAM. После этого можно записывать данные в CGRAMиспользование команды:0 0 | 0 1 ACG5 ACG4 ACG3 ACG2 ACG1 ACG0ACG: CGRAM address

Set DDRAM address — Установка счетчика адреса DDRAMиспользование команды:0 0 | 1 ADD6  ADD5 ADD4 ADD3 ADD2 ADD1 ADD0ADD: DDRAM address (адрес курсора)

Read busy flag & address — Если BF=1 то контроллер ЖКИ выполняет внутреннюю операцию (занят). АC6-АC0 – текущее значение адреса DDRAMиспользование команды:0 1 | BF AC6 AC5 AC4 AC3 AC2 AC1 AC0AC: Счетчик адресов DD и CGRAM адресов

Подключаем ЖКИ 1602 к плате Arduino

На следующей принципиальной схеме показано, как подключить дисплей к  модулю Arduino . Вывод RS ЖК-дисплея подключен к выводу 12 Arduino. Вывод R/W подключен к земле. Вывод 11 Arduino подключен к выводу сигнала включения ЖК-модуля. В этом проекте ЖК-модуль и модуль Arduino взаимодействуют в 4-битным режимом. Следовательно, для обмена информацией с дисплеем используются его лини от DB4 .. DB7. Процесс очень простой, он требует меньше соединительных проводов, однако мы можем максимально использовать потенциал ЖК-модуля.

Линии данных дисплея (DB4-DB7) подключены к контактам 5…2 Arduino. Чтобы отрегулировать контрастность дисплея, мы используем потенциометр 10K. Ток через светодиод подсветки ограничивается резистора 560 Ом. Разъем для внешнего питания предусмотрен платой для Arduino. Можно также запитать плату Arduino от USB порта компьютера. Напряжение питания +5 дисплея берем с платы Arduino.

Для работы с дисплеем используется встроенная в среду Arduino IDE библиотека LiquidCrystal.h

Код:

// Подключаем библиотеку для работы с LCD#include <LiquidCrystal.h>
// Инициализация библиотеки// сообщаем библиотеке к каким контактам платы подключен дисплейconst int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() {   // Устанавливаем число символов и строк   lcd.begin(16, 2);   // Выводим сообщение на дисплей   lcd.print(«hello, world!»);}
void loop() {   //Устанавливаем курсор в позицию 0 строки 1   lcd.setCursor(0, 1);   // Выводим количество секунд с момента перезагрузки контроллера   lcd.print(millis() / 1000);}

 

О admin

x

Check Also

USB-UART TTL Адаптер на FTDI FT232

Самодельный преобразователь USB to UART / COM на FT232RL На современных компьютерных материнских платах и ...