ЖК-дисплей 16×2 назван так потому что он имеет 16 столбцов и 2 строки. Доступно множество модификаций подобных дисплеев, например 8×1, 8×2, 10×2, 16×1 и т. д. Но наиболее часто используемой является ЖК-дисплей 16*2, поэтому мы и рассмотрим его в данной статье.
Все вышеупомянутые ЖК-дисплеи будут иметь 16 контактов, и принцип их программирования тоже будет одинаковый.
Распиновка и принцип работы ЖК-дисплея 16x2
На следующем рисунке приведена распиновка и описание контактов ЖК-дисплея 16x2.
№ п/п | Номер контакта | Имя контакта | Тип контакта | Описание контакта | Куда подключается |
1 | Pin 1 | Ground | Source Pin | земля (общий провод) | к земле MCU/источника питания |
2 | Pin 2 | VCC | Source Pin | напряжения питания | к источнику питания |
3 | Pin 3 | V0/VEE | Control Pin | управление контрастностью | к переменному потенциометру, который может подавать напряжение 0-5 В. |
4 | Pin 4 | Register Select | Control Pin | переключение между режимом данных/режимом команд |
к выводу MCU и получает либо 0, либо 1. 0 -> Командный режим 1-> Режим данных |
5 | Pin 5 | Read/Write | Control Pin | переключение между режимами записи/чтения |
к выводу MCU и получает либо 0, либо 1. 0 -> Операция записи 1-> Операция чтения |
6 | Pin 6 | Enable | Control Pin | Должен удерживаться на высоком уровне для выполнения операции чтения/записи | к MCU и всегда на высоком уровне |
7 | Pin 7-14 | Data Bits (0-7) | Data/Command Pin | контакты для передачи команд или данных |
В 4-проводном режиме Только 4 контакта (0-3) подключены к MCU. В 8-проводном режиме Все 8 контактов (0-7) подключены к MCU. |
8 | Pin 15 | LED Positive | LED Pin | подсветка дисплея | к +5 В |
9 | Pin 16 | LED Negative | LED Pin | подсветка дисплея (земля) | к земле |
Теперь посмотрим на обратную сторону модуля ЖК-дисплея 16x2.
Черные кружки на этом рисунке представляют собой интерфейсную микросхему и связанные с ней компоненты, которые помогут нам использовать этот ЖК-дисплей с MCU (микроконтроллером). Поскольку наш ЖК-дисплей представляет собой ЖК-дисплей с точечной матрицей 16*2, поэтому всего на нем будет (16*2=32) 32 символа, и каждый символ будет состоять из 5*8 пикселей. Одиночный символ со всеми включенными пикселями показан на следующем рисунке.
Итак, теперь мы знаем, что каждый символ на дисплее содержит (5*8=40) 40 пикселей, а для 32 символов у нас будет (32*40) 1280 пикселей. Кроме того, ЖК-дисплей также должен быть проинструктирован о положении пикселей.
Обработать всю эту логику управления дисплеем в чистом виде с помощью микроконтроллера будет непростой задачей, поэтому используется интерфейсная микросхема, такая как HD44780 , которая устанавливается на самом ЖК-модуле. Функция этой микросхемы — получать команды и данные от микроконтроллера и обрабатывать их для отображения значимой информации на нашем ЖК дисплее.
Давайте обсудим различные типы режимов и опций, доступных на нашем ЖК-дисплее, которыми необходимо управлять с помощью управляющих контактов дисплея.
4-битный и 8-битный режимы ЖК дисплея
ЖК-дисплей может работать в двух разных режимах, а именно в 4-битном и 8-битном режиме. В 4-битном режиме мы отправляем данные по полубайту, сначала верхний полубайт, а затем младший полубайт. Для тех из вас, кто не знает, что такое полубайт: полубайт — это группа из четырех битов, поэтому четыре младших бита (D0–D3) байта образуют нижний полубайт, а четыре старших бита (D4–D7) байта образуют старший полубайт. Это позволяет нам отправлять 8-битные данные.
Тогда как в 8-битном режиме мы можем отправлять 8-битные данные непосредственно за один проход, поскольку мы используем все 8 строк данных.
Теперь вы, должно быть, догадались: да, 8-битный режим быстрее и безупречнее, чем 4-битный режим. Но основным недостатком является то, что в данном случае микроконтроллеру требуется 8 линий/контактов для передачи дисплею команд/данных. Это может привести к тому, что на нашем микроконтроллере закончатся контакты ввода-вывода, поэтому широкое применение находит 4-битный режим. Для установки этих режимов не используются никакие управляющие контакты. Меняется только способ программирования.
Режимы чтения и записи ЖК дисплея
Как уже отмечалось, модуль ЖК дисплея содержит интерфейсную микросхему. MCU может либо читать, либо писать на эту интерфейсную микросхему. В большинстве случаев мы будем просто писать в микросхему, поскольку чтение усложнит задачу, а такие сценарии очень редки. При необходимости можно прочитать такую информацию, как положение курсора, прерывания завершения статуса и т. д., но это выходит за рамки нашей статьи.
Интерфейсная микросхема, присутствующая в большинстве ЖК-дисплеев — это HD44780U. Чтобы запрограммировать наш ЖК-дисплей, нам необходимо изучить полную спецификацию данной микросхемы. Даташит на нее можно скачать по этой ссылке.
ЖК-команды
На ЖК-дисплее есть несколько инструкций по предустановленным командам, которые нам нужно отправить на ЖК-дисплей через какой-либо микроконтроллер. Наиболее важные (часто используемые) из этих команд приведены в следующей таблице:
Шестнадцатеричный код | Команда для регистра инструкций ЖК-дисплея |
0F | ЖК-дисплей включен, курсор включен |
01 | Очистить экран дисплея |
02 | Вернуться домой (в начало строки) |
04 | Уменьшить курсор (сдвинуть курсор влево) |
06 | Увеличить курсор (смещение курсора вправо) |
05 | Сдвинуть дисплей вправо |
07 | Сдвинуть дисплей влево |
0E | Дисплей включен, курсор мигает |
80 | Переместить курсор в начало первой строки |
C0 | Переместить курсор в начало второй строки |
38 | 2 строки и матрица 5×7 |
83 | Курсорная линия 1, позиция 3 |
3C | Активировать вторую линию |
08 | Дисплей ВЫКЛ, курсор ВЫКЛ |
C1 | Перейти на вторую строку, позиция 1 |
OC | Дисплей ВКЛ, курсор ВЫКЛ |
C1 | Перейти на вторую строку, позиция 1 |
C2 | Перейти на вторую строку, позиция 2 |
Наиболее подробно принципы непосредственного (без использования библиотек) управления ЖК дисплеем 16х2 описаны в статье про его подключение к микроконтроллеру AVR.
Также на нашем сайте мы рассматривали подключение ЖК дисплея 16x2 и к другим микроконтроллерам (платам):
277 просмотров