 
        
        
Программирование 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.
