Для IP 54.173.237.152 доступно:
Главная страница

Новости сайта

Об авторе

Схемы

Статьи

Микроэлектроника

Микросхемы

Linux

Гостевая книга

Письмо админу

Реклама


LCD (ЖКИ). Часть 4. Команды.

В предыдущей статье мы разобрались с устройством LCD-модуля. Теперь немного о командах.

Команды для модуля даны либо в шестнадцатиричной (пример XXH), либо в двоичной системе (пример X X X X X X X X B). Как уже писалось, чтобы послать команду, нужно установить на выводе RS (4) "0" и выдать код команды на шине данных. А данные посылаем при RS (4) со значением "1".

Как только вы включили модуль, он показывает заполненную верхнюю строку блоками. Это означает, что всё в порядке и модуль готов к работе. Первая команда - 38H. Она установит режим отображения двух строк с матрицей 5х8 точек, с 8-ми битной шиной данных. Далее следует команда 0CH (без курсоров), или 0EH (курсор в виде мигающего блока), или 0DH (курсор в виде чёрточки). 06H устанавливает режим печати слева направо со сдвигом курсора, а не со сдвигом экрана. Это процесс инициализации экрана. Теперь разберём общие команды.

Управление.

0 0 0 0 0 0 0 1 - очищает экран и переводит курсор в верхнюю строку на начало. AC становится "0".
0 0 0 0 0 0 1 X - переводит курсор в верхнюю строку на начало, но экран не очищается. AC становится "0".
0 0 0 0 0 1 I/D S - выбирается направление сдвига курсора или экрана при появлении нового символа.
0 0 0 0 1 D C B - выбор режима отображения. (Курсоры и включение отображения).
0 0 0 1 S/C R/L X X - команда сдвига курсора или экрана. Выполняется сразу.
0 0 1 D/L N F X X - настройка отображения и шины данных.
0 1 AG AG AG AG AG AG - присвоение счётчику AC адреса в памяти CGRAM.
1 AD AD AD AD AD AD AD - присвоение счётчику AC адреса в памяти DDRAM.

Бит Х обозначает, что без разницы, что вы туда поставите, команда всё равно выполняется. Например, вам нужно, чтобы новый символ появлялся на одном месте, а сама надпись сдвигалась влево. Смотрим эти команды и описания регистров: нам нужны регистры I/D и S. Для сдвига S должен быть "1". Чтобы экран сдвигался влево, I/D должен быть "0". Значит нужно послать команду 00000101.

Далее нам нужно эксперементировать с командами и смотреть, что происходит. Так можно очень быстро понять что к чему. Чтобы вывести символ на экран, нужно послать его ASCII код. Если вы пошлёте 32H, то экранчик выведет цифру 2 и автоматически сдвинет курсор или экран в зависимости от режима. Таблицу кодов ASCII можно найти в документации на ваш LCD-модуль.

Для кириллицы таблица такая:

таблица

Символы могут отличаться в модулях от разных производителей. Можно создавать свои символы. Как видите, адреса от 00H до 0FH свободны. Туда можно записать свой символ. Когда вы запишите его, то вам нужно послать в модуль код Вашего символа, и модуль отобразит его. Естественно, при отключении питания Ваши символы стираются. А теперь расскажу, как создать символ.

Сначала устанавливаем AC на начало символа. Допустим, символ будет находиться под кодом 01H. Для этого устанавливаем AC на адрес 08H (если код будет 02H, то на 10H, если 03H - 18H и т.д. Всё это касается только для экранчиков с матрицей 5x8. Для модулей с матрицей 5х10 точек адреса будут такие 10H, 20H, 30H...) в памяти CGRAM. То есть команда будет 01001000B. Как присваивать адрес счётчику написано выше. Далее посылаем данные с верхней строки к нижней (8 строк). Там, где будет "1", там будет точка, где "0", там точки не будет. Например, чтобы полностью заполнить блок, нужно послать 8 раз число 00011111B. После этого нужно переставить AC на DDRAM (командой 81H) и дать код 01H.

В следующем выпуске я расскажу, как написать программу для LCD-модуля на языке C.

Продолжение.

К списку статей

ilus

Copyright. 2002-2019 Автор - Deryabin Ilya