Программирование PIC-микроконтроллеров
на языке Си
Лабораторная работа № 3
Исследование совместной работы ЖК-дисплея и PIC-микроконтроллера
1. Цель работы
Изучить принципы построения алфавитно-цифрового жидкокристаллического дисплея (ЖКД) с контроллером HD44780. Изучить и исследовать методы программирования его работы на языке Си для микроконтроллеров семейства PIC18 с помощью интегрированной среды программирования MPLAB IDE. Исследовать методику проверки работы МКУ с ЖК-дисплеем с помощью среды моделирования Proteus.
2. Основные теоретические сведения
2.1. Структура жидкокристаллического дисплея
Алфавитно-цифровые ЖК-дисплеи (ЖКД), или по-английски LCD (Liquid Crystal Display), представляют собой недорогие и удобные модули, позволяющие сэкономить время и ресурсы при разработке новых изделий, при этом обеспечивающие отображение большого объема информации при хорошей различимости и низком энергопотреблении.
Японская фирма Hitachi разработала специальную микросхему - контроллер HD44780 для управления подобными ЖК-дисплеями. Этот контроллер определил интерфейс, который стал стандартом «де-факто» для ЖК-дисплеев. Аналоги этого контроллера или совместимые с ним по интерфейсу микросхемы выпускают множество фирм, среди которых: Epson, Toshiba, Sanyo, Samsung, Philips. Еще большее число форм производит ЖК-дисплеи на базе данных контроллеров. Эти дисплеи можно встретить в самых разнообразных устройствах: измерительных приборах, медицинском оборудовании, промышленном и технологическом оборудовании, офисной технике – принтерах, телефонах, факсимильных и копировальных аппаратах.
Контроллер HD44780 может управлять 2-мя строками по 40 символов в каждой (для дисплеев с 4-мя строками по 40 символов используются два однотипных контроллера), при матрице символов 5×7 точек. Контроллер также поддерживает символы с матрицей 5×10 точек, но в последнее время ЖК-дисплеи с такой матрицей практически не применяются.
Существует несколько различных стандартных форматов ЖК-дисплеев (количество символов × число строк): 8×2, 16×1, 16×2, 16×4, 20×1, 20×2, 20×4, 40×2, 40×4. В лабораторной работе будет применяться ЖК-дисплей типа WM-C1602N-2YLY с 32 позиционным индикатором (16×2 символов, размер 64×16,5 мм). Конструктивно дисплей представляет собой печатную плату с установленными на ней контроллером HD44780 и ЖК-индикатором. Плата содержит 14-контактное поле, расположенное в нижней части, а также 2 контакта (выводы питания подсветки) в правой части. Назначение выводов поясняет табл. 1.
Таблица 1
Назначение выводов ЖК-дисплея
№ вывода |
Обозначение |
Функция |
1 |
VDD |
Напряжение питания ( + 5 В ) |
2 |
VSS |
Общий (земля) |
3 |
VEE |
Управление контрастом |
4 |
RS |
Сигнал выбора регистра |
5 |
R/W |
Сигнал чтение/запись |
6 |
E |
Сигнал разрешение |
7-14 |
D0-D7 |
Биты данных |
Основными чертами интерфейса контроллера HD44780 являются такие характеристики.
Данные передаются по 4- или 8-разрядной шине данных, что определяется пользователем. Эти данные могут быть либо командами, либо символьной информацией. Использование 4-разрядного режима позволяет ограничить весь интерфейс 7-ю линиями, однако процесс передачи данных будет немного более медленным, чем при 8-разрядном режиме.
Управление выполняется с использованием трех линий:
линия RS (выбор регистра), которая определяет, будет передаваться команда или символьные данные;
линия R/W (чтение / запись), которая определяет направление перемещения данных (R/W = 1 – чтение, R/W = 0 – запись);
линия Е (разрешение), которая выполняет функцию тактирования с целью синхронизации процесса передачи данных.
Контроллер имеет простой набор команд, который позволяет управлять работой дисплея. В его состав входят команды инициализации и сброса дисплея, управления положением и характеристиками курсора и т.д.
В контроллере HD44780 можно выделить основные элементы, с которыми приходится взаимодействовать при программном управлении: регистр данных (DR), регистр команд (IR), видеопамять (DDRAM), ОЗУ знакогенератора (CGRAM), счетчик адреса памяти (AC), флаг занятости контроллера (BF). Основными объектами взаимодействия являются регистры DR и IR. Выбор адресуемого регистра производится линией RS: если RS = 0 – адресуется регистр команд (IR), если RS = 1 – регистр данных (DR).
Данные через регистр DR в зависимости от текущего режима могут помещаться (или считываться) в видеопамять (DDRAM) или ОЗУ знакогенератора (CGRAM) по текущему адресу, указываемому счетчиком адреса (AC). Информация, попадающая в регистр IR, интерпретируется устройством выполнения команд как управляющая, т.е. команда. Прочтение регистра IR возвращает в 7-ми младших разрядах текущее значение счетчика AC, а в старшем разряде флаг занятости (BF).
Видеопамять, имеющая общий объем 80 байтов, предназначена для хранения кодов символов, отображаемых на ЖКИ. Видеопамять организована в виде двух строк по 40 символов в каждой. Эта привязка является жесткой и не подлежит изменению. Другими словами, независимо от того, сколько реальных строк будет иметь конкретный ЖКД, скажем, 80×1 или 20×4, адресация видеопамяти всегда производится как к двум строкам по 40 символов.
Программная модель ЖК-дисплея, используемого в лабораторной работе, показана в табл.2. Первой (верхней строке) дисплея соответствуют адреса видеопамяти 00H…0FH, а второй - адреса памяти 40H…4FH.
Таблица 2
Программная модель ЖК-дисплея
Позиция дисплея |
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
|
|
Адреса |
|
00 |
01 |
02 |
03 |
04 |
05 |
06 |
07 |
08 |
09 |
0A |
0B |
0C |
0D |
0E |
0F |
|
|
видеопамяти, HEX |
|
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
4A |
4B |
4C |
4D |
4E |
4F |
|
|
Флаг занятости BF имеет значение 1, когда контроллер занят, и 0 – когда свободен. Необходимо учитывать, что большинство операций, выполняемых контроллером ЖКД, занимают значительное время, которое может доходить до нескольких единиц миллисекунд, поэтому цикл ожидания установки флага BF должен обязательно присутствовать в программах управления ЖК-дисплеем и предшествовать совершению любой операции.
Необходимо учитывать, что контроллеры, устанавливаемые на ЖК-дисплеи, могут иметь различный набор символов, причем это может зависеть как от производителя контроллера, так и от модификации данной конкретной модели. Например, фирма POWERTIP выпускает ЖК-дисплеи с 4-мя базовыми модификациями набора символов: японской, английской, французской и русской. Контроллер фирмы EPSON содержит полный набор русских символов в прописном и строчном вариантов, поэтому он весьма удобен для отечественных применений. Этот же контроллер используется в ЖК-дисплее WM-C1602N-2YLY.