ЖК-дисплей 16 × 2 назван так потому, что; в нем 16 столбцов и 2 строки. Доступно множество комбинаций, таких как 8 × 1, 8 × 2, 10 × 2, 16 × 1 и т. Д. Но наиболее используемой является ЖК-дисплей 16 * 2, поэтому мы используем его здесь.
Все вышеупомянутые ЖК-дисплеи будут иметь 16 контактов, и подход к программированию такой же, поэтому выбор остается за вами. Ниже приводится описание выводов и выводов ЖК-модуля 16x2:
Старший Нет |
№ контакта |
Имя контакта |
Тип штифта |
Описание контакта |
Контактное соединение |
1 |
Контакт 1 |
Земля |
Исходный PIN-код |
Это заземляющий контакт ЖК-дисплея. |
Подключен к заземлению MCU / источника питания |
2 |
Контакт 2 |
VCC |
Исходный PIN-код |
Это вывод напряжения питания ЖК-дисплея. |
Подключен к выводу питания источника питания |
3 |
Пин 3 |
V0 / VEE |
Пин управления |
Регулирует контраст ЖК-дисплея. |
Подключен к переменному POT, который может подавать 0-5 В |
4 |
Штырь 4 |
Зарегистрироваться Выбрать |
Пин управления |
Переключение между регистром команд / данных |
Подключается к выводу MCU и получает 0 или 1. 0 -> Командный режим 1-> Режим данных |
5 |
Контакт 5 |
Читай пиши |
Пин управления |
Переключает ЖК-дисплей между операциями чтения / записи |
Подключается к выводу MCU и получает 0 или 1. 0 -> Запись 1-> Читать операцию |
6 |
Пин 6 |
включить |
Пин управления |
Должен быть установлен на высоком уровне для выполнения операции чтения / записи |
Подключен к MCU и всегда на высоте. |
7 |
Штифт 7-14 |
Биты данных (0-7) |
Данные / ПИН-код команды |
Контакты, используемые для отправки команд или данных на ЖК-дисплей. |
В 4-проводном режиме Только 4 контакта (0-3) подключены к MCU В 8-проводном режиме Все 8 контактов (0-7) подключены к MCU |
8 |
Штырь 15 |
Светодиод Положительный |
Светодиодный вывод |
Обычный светодиод, как при работе для подсветки ЖК-дисплея |
Подключен к + 5В |
9 |
Штырь 16 |
Светодиод отрицательный |
Светодиодный вывод |
Обычный светодиод, как при работе для освещения ЖК-дисплея, подключенного к заземлению. |
Подключен к земле |
Ничего страшного, если вы не понимаете функции всех контактов, я подробно объясню ниже. Теперь вернемся к нашему ЖК-дисплею:
Эти черные круги состоят из интерфейсной ИС и связанных с ней компонентов, которые помогают нам использовать этот ЖК-дисплей с микроконтроллером. Потому что наш ЖК-дисплей представляет собой ЖК-дисплей с точечной матрицей 16 * 2, поэтому он будет иметь (16 * 2 = 32) в общей сложности 32 символа, а каждый символ будет состоять из 5 * 8 пикселей. Одиночный символ со всеми включенными пикселями показан на рисунке ниже.
Итак, теперь мы знаем, что каждый символ имеет (5 * 8 = 40) 40 пикселей, а для 32 символов у нас будет (32 * 40) 1280 пикселей. Кроме того, ЖК-дисплей также должен быть проинструктирован о положении пикселей.
Обработка всего с помощью MCU будет сложной задачей, поэтому используется интерфейсная ИС, такая как HD44780, которая устанавливается на самом ЖК-модуле. Функция этой ИС - получать команды и данные от MCU и обрабатывать их для отображения значимой информации на нашем ЖК-экране.
Давайте обсудим различные типы режимов и параметры, доступные на нашем ЖК-дисплее, которые должны управляться нашими контактами управления.
4-битный и 8-битный режим ЖК-дисплея:
ЖК-дисплей может работать в двух разных режимах, а именно в 4-битном режиме и 8-битном режиме. В 4-битном режиме мы отправляем полубайт за полубайтом, сначала верхний полубайт, а затем нижний полубайт. Для тех из вас, кто не знает, что такое полубайт: полубайт - это группа из четырех битов, поэтому младшие четыре бита (D0-D3) байта образуют нижний полубайт, а верхние четыре бита (D4-D7) байта образуют старший полубайт. Это позволяет нам отправлять 8-битные данные.
В то время как в 8-битном режиме мы можем отправить 8-битные данные непосредственно за один ход, поскольку мы используем все 8 строк данных.
Теперь вы, должно быть, догадались. Да, 8-битный режим быстрее и безупречен, чем 4-битный режим. Но главный недостаток в том, что к микроконтроллеру нужно подключить 8 линий данных. Это приведет к тому, что у нас закончатся контакты ввода / вывода на нашем MCU, поэтому широко используется 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 |
Ознакомьтесь с нашими статьями по интерфейсу ЖК-дисплея с различными микроконтроллерами:
- Интерфейс ЖК-дисплея с микроконтроллером 8051
- Сопряжение ЖК-дисплея с микроконтроллером ATmega32
- Интерфейс ЖК-дисплея с микроконтроллером PIC
- Подключение ЖК-дисплея 16x2 к Arduino
- Интерфейс ЖК-дисплея 16x2 с Raspberry Pi с использованием Python