
- •1.Программирование типовых функций управления: опрос двоичного датчика, ожидание события, дребезг, формирование временной задержки, вывод управляющих сигналов
- •Борьба с дребезгом контактов
- •2. Формирование временных задержек с помощью таймеров
- •3.Виды клавиатур
- •Кодирующие клавиатуры.
- •Табличный метод.
- •Метод сдвигов унитарного кода.
- •4.Подключение светодиодов и светод. Семисегментных индикаторов
- •5. Статический метод управления линейным дисплеем.
- •1. С использованием дешифраторов семисегментного кода.
- •2. С использованием программной перекодировки:
- •6. ДинамичесКий метод управления линейным дисплеем.
- •7. Виды ацп, схемы подключения и программы опроса ацп
- •Интерфейс быстрых ацп с мпс
- •Интерфейс медленных ацп с мпс
- •8) Микроконтроллеры pic18: общая характеристика, особенности архитектуры и системы команд.
- •9. Язык с18 для pic-микроконтроллеров: структура программы, директивы препроцессора, ключевые слова.
- •10. Представление информации в языке Си
- •11. Операции и выражения в Си
- •12.Операторы управления вычислительным процессом
- •13. Функции в языке с18: определение функции, прототип, библиотечные функции.
- •14. Функции формирования временных задержек в языке с18
- •15. Программирование на языке с18 типовых функций управления и контроля: вывод информации в порт, управление отдельными разрядами портов, опрос переключателя.
- •16. Подключение жк-дисплея к pic-микроконтроллеру: структура жк-дисплея, функции управления дисплеем.
- •2.2. Библиотека функций управления жк-дисплеем
- •17. Аналого-цифровое преобразование в pic-микроконтроллерах: структура внутреннего ацп, функции управления ацп на языке с18.
- •18. Реализация широтно-импульсной модуляции в pic-микроконтроллерах: параметры шим, функции управления шим на языке с18.
- •19. Прерывания в pic18: источники прерываний, управляющие биты, программирование прерываний на языке с18.
- •24) Интегрированная среда CodeVisionAvr: состав и назначение, структура программы на языке Си в cvavr, управление портами и отдельными битами.
- •25) Программирование в CodeVisionAvr типовых функций управления и контроля: вывод информации в порт, управление отдельными разрядами портов, опрос переключателя, реализация временных задержек.
- •26. Интерфейс can: общее описание и основные параметры, виды и форматы сообщений в can.
- •27. Интерфейс can: арбитраж, обнаружение и обработка ошибок, скорость передачи и длина сети.
- •28. Понятия: микроконтроллерная система (мкс) и микроконтроллерное устройство (мку). Основные этапы разработки мкс.
- •29. Разработка и автономная отладка аппаратных и программных средств микроконтроллерных систем.
- •30. Методы и средства совместной отладки аппаратных и программных средств микроконтроллерных систем.
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 –
// установка курсора на начало второй строки дисплея