KEEN SIDE успешно заменяет аналогичные продукты таких известных брендов, как Phoenix Contact, Weidmueller, Degson, Winstar, Hsuan Mao, KLS, G-NOR, Mean Well и др.

Символьные LCD дисплеи. Часть1

Введение

Символьные ЖК можно встретить в кофеварках, лазерных принтерах, детских игрушках и может быть даже в тостерах. Контроллер Hitachi HD44780 стал промышленным стандартом для этих типов дисплеев. Это пособие, использующее DIP переключатели и несколько других компонентов, научит вас основам управления HD44780 совместимым дисплеем.

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Символьные LCD дисплеи

Схема расположения выводов

Мы будем использовать 16-символьный 2-строчный дисплей. Он использует контроллер ST7065C, совместимый с HD44780. На рисунке внизу показан ЖК модуль и схема расположения выводов.

Символьные LCD дисплеи

Последние 2 контакта (15 и 16) необязательные и используются только если дисплей имеет подсветку.

На схеме внизу показан ЖК модуль с подключенными основными проводами. Вы, наверное, заметили, что контакт 5 (RW) соединен с общим проводом. Этот контакт служит для управления чтением или записью в дисплей. Так как чтение из дисплея почти никогда не используется, большинство людей просто соединяют этот контакт с общим проводом.

Потенциометр, подключенный к контакту 3, регулирует контрастность ЖК дисплея.

Символьные LCD дисплеи

Передача данных и команд

Данные и команды посылаются модулю по 8 линиям данных (контакты 7…14) и линии RS (контакт 4).
Линия RS указывают модулю, к чему относятся 8 бит: к данным или к команде. Данные или команда считываются по спаду сигнала на линии Enable (контакт 6). Это означает, что когда уровень на линии Enable переходит из высокого в низкий, значения линий D0…D7 и RS считываются.

Чтобы послать данные или команду дисплею, вы должны:

  1. Установить на линии Enable высокий уровень
  2. Установить нужные значения на RS и D0…D7
  3. Установить на линии Enable низкий уровень

Между этими операциями должно быть небольшое время ожидания, но здесь рассматривать это я не буду.

Модули дисплеев на основе HD44780 могут работать также в режиме 4-битного интерфейса. В этом режиме данные или команды передаются модулю, используя два 4-битных полубайта. Детально мы обсудим это ниже.

Команды и символы

Ниже приведены таблицы инструкций и символов. 

Инструкция

 RS

R/W

Код инструкции

Описание

Время
выполнения
(fOSC=270 кГц)

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

Очистка дисплея

0

0

0

0

0

0

0

0

0

1

Очистка дисплея и установка адреса
DDRAM в 00H.

1.53 мс

Возврат

0

0

0

0

0

0

0

0

1

-

Установка адреса DDRAM в 00H,
сброс сдвигов.
Содержимое DDRAM не меняется.

1.53 мс

Установка
режима ввода

0

0

0

0

0

0

0

1

l/D

SH

Выбор направленя сдвига курсора или
экрана, разрешение сдвига дисплея.
Действие выполняется во время операции
чтения или записи.

39 мкс

Выбор режима
отображения

0

0

0

0

0

0

1

D

C

B

Включение/выключение дисплея (D),
включение/выключение курсора
ON/OFF (C), включение мерцания символа
в позиции курсора (B).

39 мкс

Сдвиг курсора
или дисплея

0

0

0

0

0

1

S/C

R/L

-

-

Перемещеие курсора или дисплея без
изменения содержимого DDRAM.

39 мкс

Установка
параметров

0

0

0

0

1

DL

N

F

-

-

Установка ширины шины данных
(DL: 8 бит /4 бит), числа строк
дисплея (N: 2 строки/1 строка),
и размер матрицы символов
(F: 5×11 точек / 5×8 точек)

39 мкс

Установка
адреса CGRAM

0

0

0

1

AC5

AC4

AC3

AC2

AC1

AC0

Присваивает адресу CGRAM значение
счетчика адреса.

39 мкс

Установка
адреса DDRAM

0

0

1

AC6

AC5

AC4

AC3

AC2

AC1

AC0

Присваивает адресу DDRAM значение
счетчика адреса.

39 мкс

Чтение флага
«занято» и адреса

0

1

BF

AC6

AC5

AC4

AC3

AC2

AC1

AC0

Чтение флага «занято» (BF), указывающего
на то, что контроллер занят выполнением
инструкции и чтение адреса счетчика.

0 мкс

Запись данных
в CG
или DD RAM

1

0

D7

D6

D5

D4

D3

D2

D1

D0

Запись данных во внутреннюю память
(DDRAM/CGRAM).

43 мкс

Чтение данных
из CG
или DD RAM

1

1

D7

D6

D5

D4

D3

D2

D1

D0

Чтение данных из внутренней памяти
(DDRAM/CGRAM).

43 мкс


Кликните для увеличения

 Сборка схемы

Обычно ЖК дисплеем управляют с помощью микроконтроллера, компьютера или подобного устройства. В этом упражнении мы будем использовать просто набор переключателей. Это позволит разобраться в подробностях интерфейса.

Схема устройства показана ниже.

Символьные LCD дисплеи
Кликните для увеличения

На фотографии ниже показано устройство на макетной плате без ЖК модуля. Я так же добавил небольшой источник питания на основе L7805 (с правой стороны платы).

Линии данных и Register Select соединены с общим проводом через резисторы 10 кОм, и когда переключатель замкнут, на этих линиях устанавливается высокий уровень. Линия Enable, с другой стороны, всегда подтянута к высокому уровню, а когда кнопка нажата, переходит в низкий. Для подавления дребезга к кнопке на линии Enable подключен конденсатор 10 нФ.

Символьные LCD дисплеи

Перед тем как подключить ЖК модуль к плате, вам понадобится припаять 16-контактный разъем, как показано на рисунке ниже.

Символьные LCD дисплеи

Затем мы вставим ЖК модуль в макетную плату и подадим питание. Когда вы будете вставлять модуль ЖК в макетную плату, вам следует быть аккуратным и не торопиться, так как контакты разъема немного толще, чем отверстия в макетной плате.

Если показанное ниже изображение на дисплее вы не видите, покрутите потенциометр контраста. Это изображение отображается по умолчанию на неинициализированном ЖК дисплее.

Символьные LCD дисплеи

Работа в 8-битном режиме

Для взаимодействия с дисплеем и вывода текста нам необходимо

  1. Инициализировать дисплей
  2. Установить режим ввода и
  3. Послать последовательность символов в дисплей

Таким образом, для вывода текста нам потребуется включить устройство и затем ввести последовательность Данных/Команд, нажимая Enable после каждой порции данных или команды.

RS

D7 … D0

Описание

0

0 0 1 1 - 1 0 0 0

Функция set, 8 бит, 2 строки, 5×7

0

0 0 0 0 - 1 1 1 1

Дисплей Включен, Курсор включен, Курсор мигает

0

0 0 0 0 - 0 1 1 0

Режим ввода, Увеличение позиции курсора,
Не сдвигать текст вертикально

1

0 1 0 0 - 1 0 0 0

H

1

0 1 1 0 - 0 1 0 1

e

1

0 1 1 0 - 1 1 0 0

l

1

0 1 1 0 - 1 1 0 0

l

1

0 1 1 0 - 1 1 1 1

o

1

0 0 1 0 - 0 0 0 0

пробел

1

0 1 0 1 - 0 1 1 1

w

1

0 1 1 0 - 1 1 1 1

o

1

0 1 1 1 - 0 0 1 0

r

1

0 1 1 0 - 1 1 0 0

l

1

0 1 1 0 - 0 1 0 0

d

Управление в 4-битном режиме

Главное преимущество 4-битного режима в том, что требуется меньше линий данных. В этом режиме линии с D3 по D0 замкнуты на землю, а данные/команды передаются 4-битными полубайтами.

RS

D7 … D0

Описание

0

0 0 1 0 - 0 0 0 0

Установить 4 битный режим (заметьте: занимает 1 полубайт)

0

0 0 1 0 - 0 0 0 0

Функция set, 8 бит

0

1 0 0 0 - 0 0 0 0

2-й полубайт

   

0

0 0 0 0 - 0 0 0 0

Дисплей Включен, Курсор включен, Курсор мигает

0

1 1 1 1 - 0 0 0 0

2-й полубайт

   

0

0 0 0 0 - 0 0 0 0

Режим ввода, Приращение адреса курсора, Текст не сдвигать

0

0 1 1 0 - 0 0 0 0

2-й полубайт

   

1

0 1 0 0 - 0 0 0 0

H

1

1 0 0 0 - 0 0 0 0

2-й полубайт

   

1

0 1 1 0 - 0 0 0 0

e

1

0 1 0 1 - 0 0 0 0

2-й полубайт

 

1

0 1 1 0 - 0 0 0 0

l

1

1 1 0 0 - 0 0 0 0

 2-й полубайт

   

1

0 1 1 0 - 0 0 0 0

l

1

1 1 0 0 - 0 0 0 0

 2-й полубайт

   

1

0 1 1 0 - 0 0 0 0

o

1

1 1 1 1 - 0 0 0 0

2-й полубайт

   

1

0 0 1 0 - 0 0 0 0

пробел

1

0 0 0 0 - 0 0 0 0

2-й полубайт

   

1

0 1 0 1 - 0 0 0 0

w

1

0 1 1 1 - 0 0 0 0

2-й полубайт

   

1

0 1 1 0 - 0 0 0 0

o

1

1 1 1 1 - 0 0 0 0

2-й полубайт

   

1

0 1 1 1 - 0 0 0 0

r

1

0 0 1 0 - 0 0 0 0

2-й полубайт

    

1

0 1 1 0 - 0 0 0 0

l

1

1 1 0 0 - 0 0 0 0

2-й полубайт

   

1

0 1 1 0 - 0 0 0 0

d

1

0 1 0 0 - 0 0 0 0

2-й полубайт

Это очень легко!

В следующей части мы обсудим как связать модуль с микроконтроллером и сделаем за вас всю тяжелую работу.

Оклнчание читайте здесь

protostack.com

Перевод: [IMG]/i/Image/wand.gif[/IMG] по заказу РадиоЛоцман

На английском языке: Character LCD Displays. Part 1

Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя