Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_Работа_3.doc
Скачиваний:
12
Добавлен:
04.05.2019
Размер:
185.86 Кб
Скачать

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

Для облегчения разработки программ управления ЖК-дисплеем с контроллером Hitachi HD44780 в библиотеке пакета MCC18 имеются несколько функций, которые используют выводы портов микроконтроллеров семейства PIC18. Описания этих функций даны в заголовочном файле с именем xlcd.h. По умолчанию для управления контроллером используются выводы только порта В. Имеется возможность использования и других портов, но для этого надо произвести изменения некоторых констант, указанных в файле xlcd.h.

В данной лабораторной работе используется 4-разрядный формат передачи данных, и для управления дисплеем достаточно только 7 линий. В табл.3 указаны выводы ЖКД и соответствующие им выводы МК.

Таблица 3

Соответствие выводов ЖКД и МК

Наименования выводов ЖКД

Наименование выводов порта В МК

RS

RB5

R/W

RB6

E

RB4

D4

RB0

D5

RB1

D6

RB2

D7

RB3

В данной лабораторной работе будут использованы следующие функции:

Функция

Описание

BusyXLCD

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

OpenXLCD

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

putsXLCD

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

SetDDRamAddr

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

WriteCmdXLCD

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

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

Функция

Описание

DelayFor18TCY

Задержка на 18 командных циклов

DelayPORXLCD

Задержка на 15 мс

DelayXLCD

Задержка на 5 мс

Рассмотрим вкратце библиотечные функции.

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 –

// установка курсора на начало второй строки дисплея

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]