Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы по МПТ Оля.docx
Скачиваний:
18
Добавлен:
15.04.2015
Размер:
153.55 Кб
Скачать

16. Подключение жк-дисплея к pic-микроконтроллеру: структура жк-дисплея, функции управления дисплеем.

Структура жидкокристаллического дисплея

Японская фирма Hitachi разработала специальную микросхему - контроллер HD44780 для управления подобными ЖК-дисплеями. Этот контроллер определил интерфейс, который стал стандартом «де-факто» для ЖК-дисплеев. Эти дисплеи можно встретить в самых разнообразных устройствах: измерительных приборах, медицинс-м оборуд-ии, телеф-ах, факсимил-х и копиров-х аппа-х.

Существует несколько различных стандартных форматов ЖК-дисплеев (количество символов × число строк): 8×2, 16×1, 16×2, 16×4, 20×1, 20×2, 20×4, 40×2, 40×4. Конструктивно дисплей представляет собой печатную плату с установленными на ней контроллером HD44780 и ЖК-индикатором. Плата содержит 14-контактное поле, расположенное в нижней части, а также 2 контакта (выводы питания подсветки) в правой части. Назначение выводов поясняет табл. Таблица 1

№ вывода

Обозначение

Функция

1

VDD

Напряжение питания ( + 5 В )

2

VSS

Общий (земля)

3

VEE

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

4

RS

Сигнал выбора регистра

5

R/W

Сигнал чтение/запись

6

E

Сигнал разрешение

7-14

D0-D7

Биты данных

Управление выполняется с использованием трех линий:

1.линия RS (выбор регистра), которая определяет, будет передаваться команда или символьные данные; 2.линия R/W (чтение / запись), которая определяет направление перемещения данных (R/W = 1 – чтение, R/W = 0 – запись); 3.линия Е (разрешение), которая выполняет функцию тактирования с целью синхронизации процесса передачи данных. Контроллер имеет простой набор команд, который позволяет управлять работой дисплея. В его состав входят команды инициализации и сброса дисплея, управления положением и характеристиками курсора и т.д. В контроллере 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).

Библиотека функций управления ЖК-дисплеем

По умолчанию для управления контроллером используются выводы только порта В. Имеется возможность использования и других портов, но для этого надо произвести изменения некоторых констант, указанных в файле xlcd.h.

Функция

Описание

BusyXLCD

Контроллер ЖКД занят?

OpenXLCD

Конфигурирует линии портов, используемых для ЖКД и инициализирует его

putsXLCD

Записывает строку в видеопамять контроллера ЖКД

SetDDRamAddr

Устанавливает адрес в видеопамяти контроллера ЖКД

WriteCmdXLCD

Записывает команду в контроллер ЖКД

BusyXLCD( ) - контроллер ЖКД занят? Эта функция возвращает значение флага занятости BF контроллера Hitachi HD44780. Если BF = 1, то контроллер занят, если BF = 0, то свободен. Обычно эта функция используется для ожидания готовности контроллера ЖКД с помощью оператора: while(BusyXLCD( ));

OpenXLCD(unsigned char lcdtype) – функция конфигурации и инициализации ЖКД. Здесь ledtype – это маска из битов конфигурации ЖКД, значения которых определены в файле xlcd.h. Пример записи этой функции, который будет использоваться в лабораторной работе: OpenXLCD(FOUR_BIT & LINES_5X7);

Здесь FOUR_BIT – режим 4-разрядных данных, LINES_5X7 - многострочный дисплей с символами 5×7 точек.

WriteCmdXLCD(unsigned char cmd) – запись команды в контроллер, cmd – маска из битов, определенных в файле xlcd.h. В лабораторной работе эта функция используется в виде:

WriteCmdXLCD(CURSOR_OFF & BLINK_OFF);

Здесь CURSOR_OFF – отключить отображение курсора, BLINK_OFF – отключить мерцание курсора.

SetDDRamAddr(unsigned char addr) – установка адреса в ОЗУ данных (видеопамяти) дисплея. Эта функция устанавливает адрес в ОЗУ данных контроллера Hitachi HD44780. Контроллер не должен быть занят во время выполнения этой операции – это можно проверить с помощью функции BusyXLCD( ). Пример использования этой функции в лабораторной работе:

while(BusyXLCD( )); // ожидание готовности контроллера ЖКД

SetDDRamAddr(0x40); // установка адреса видеопамяти равным 0x40 – // установка курсора на начало второй строки дисплея