- •1. Операторы выбора языка c51: if и switch.
- •2. Операторы цикла языка с51: while, do…while, for.
- •3. Операторы перехода языка с51: break, continue, goto.
- •4. Программирование параллельным вводом/выводом в с51: операторы управления портами и отдельными разрядами портов. Примеры программ управления светодиодами и опроса контактов переключателей.
- •/* Программа управления светодиодом vd1 от кнопки sb1 */
- •5. Программирование таймеров микроконтроллеров mcs-51 на языке с51.
- •6. Программирование системы прерываний микроконтроллеров mcs-51 на языке с51.
- •7. Программирование последовательного ввода/вывода микроконтроллеров mcs-51 на языке с51.
- •8. Микроконтроллеры pic18: общая характеристика, особенности архитектуры и системы команд.
- •9. Язык с18 для pic-микроконтроллеров: структура программы, директивы препроцессора, ключевые слова.
- •10. Представление информации в языке с18: типы данных, переменные и константы.
- •11. Операции арифметические, поразрядные логические, логические и отношения в языке с18.
- •12. Операторы управления вычислительным процессом в языке с18.
- •13. Функции в языке с18: определение функции, прототип, библиотечные функции.
- •14. Функции формирования временных задержек в языке с18.
- •15. Программирование на языке с18 типовых функций управления и контроля: вывод информации в порт, управление отдельными разрядами портов, опрос переключателя.
- •16. Подключение жк-дисплея к pic-микроконтроллеру: структура жк-дисплея, функции управления дисплеем.
- •17. Аналого-цифровое преобразование в pic-микроконтроллерах: структура внутреннего ацп, функции управления ацп на языке с18.
- •18. Реализация широтно-импульсной модуляции в pic-микроконтроллерах: параметры шим, функции управления шим на языке с18.
- •Void ClosePwm1(void);
- •Void OpenPwm1(char period);
- •Void SetDcpwm1(unsigned int dutycycle);
- •19. Прерывания в pic18: источники прерываний, управляющие биты, программирование прерываний на языке с18.
- •20. Динамическое управление линейным дисплеем на семисегментных индикаторах в pic-микроконтроллерах.
- •21. Интерфейсы мпс: понятие и характеристики. Стандартные интерфейсы мпс.
- •22. Внешние интерфейсы мпс: основные параметры, последовательные и параллельные, синхронные и асинхронные, способы соединения устройств.
- •23. Интерфейс rs-232: назначение, основные технические характеристики, принципы передачи данных.
- •24. Интерфейс ирпс: назначение, основные технические характеристики, принципы передачи данных.
- •25. Интерфейсы rs-422 и rs-485: назначение, основные технические характеристики, принципы передачи данных.
- •26. Интерфейс spi: назначение, основные технические характеристики, принципы передачи данных.
- •27. Интерфейс i2c: назначение, основные технические характеристики, принципы передачи
- •28. Интерфейс can: общее описание и основные параметры, виды и форматы сообщений в can.
- •29. Интерфейс can: арбитраж, обнаружение и обработка ошибок, скорость передачи и длина сети.
16. Подключение жк-дисплея к pic-микроконтроллеру: структура жк-дисплея, функции управления дисплеем.
Существует несколько различных стандартных форматов ЖК-дисплеев (количество символов × число строк): 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 |
Биты данных |
Основными чертами интерфейса контроллера 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 символов.
Флаг занятости BF имеет значение 1, когда контроллер занят, и 0 – когда свободен. Необходимо учитывать, что большинство операций, выполняемых контроллером ЖКД, занимают значительное время, которое может доходить до нескольких единиц миллисекунд, поэтому цикл ожидания установки флага BF должен обязательно присутствовать в программах управления ЖК-дисплеем и предшествовать совершению любой операции.
Библиотека функций управления ЖК-дисплеем
Для облегчения разработки программ управления ЖК-дисплеем с контроллером Hitachi HD44780 в библиотеке пакета MCC18 имеются несколько функций, которые используют выводы портов микроконтроллеров семейства PIC18. Описания этих функций даны в заголовочном файле с именем xlcd.h. По умолчанию для управления контроллером используются выводы только порта В. Имеется возможность использования и других портов, но для этого надо произвести изменения некоторых констант, указанных в файле xlcd.h.
Функция |
Описание |
BusyXLCD |
Контроллер ЖКД занят? |
OpenXLCD |
Конфигурирует линии портов, используемых для ЖКД и инициализирует его |
putsXLCD |
Записывает строку в видеопамять контроллера ЖКД |
SetDDRamAddr |
Устанавливает адрес в видеопамяти контроллера ЖКД |
WriteCmdXLCD |
Записывает команду в контроллер ЖКД |
Для выполнения библиотечных функций управления ЖКД требуется также три функции временной задержки, которые должен организовать пользователь. Эти функции следующие:
Функция |
Описание |
DelayFor18TCY |
Задержка на 18 командных циклов |
DelayPORXLCD |
Задержка на 15 мс |
DelayXLCD |
Задержка на 5 мс |