Управление светодиодом с помощью кнопки с использованием прерывания
Автор: PSofya • Ноябрь 23, 2019 • Лабораторная работа • 793 Слов (4 Страниц) • 397 Просмотры
[pic 1] | |
МИНОБРНАУКИ РОССИИ | |
Федеральное государственное бюджетное образовательное учреждениевысшего профессионального образования"Российский технологический университет"МИРЭА[pic 2] | |
Институт Кибернетики | |
Кафедра проблем управления |
ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ | |
по дисциплине | |
«Микропроцессорная техника в мехатронике и робототехнике» | |
Лабораторная работа №2 Программирование портов ввода/вывода, Управление светодиодом с помощью кнопки с использованием прерывания | |
Выполнила студентка учебной группы КРБО-01-17
|
Петрова С.В. |
Приняла | Маркарян. М.М |
Лабораторная работа выполнена | «__»_______2019 г. | |
«Зачтено» | «__»_______2019 г. |
Цель работы:
Изучение структуры программы на языке ассемблер и знакомство с внешними прерываниями.
Задание на лабораторную работу:
1. Продемонстрировать работу с портом ввода/вывода на примере программы
мигания светодиодом.
2. Изучить виды прерываний.
3. Составить программу, которая по нажатию на кнопку включает или
выключает светодиод в зависимости от его текущего состояния.
Ход выполнения:
Часть 1.
Программа мигания светодиодом.
В данной лабораторной работе используется микроконтроллер «ATmega16» (Рисунок 1).
[pic 3]
Рисунок 1 – Схема портов Atmega16
В качестве выхода для работы со светодиодом был выбран порт PB0 (Рисунок 2).
[pic 4]
Рисунок 2 - Схема подключения компонентов
Для взаимодействия со светодиодом необходимо установить регистр направления передачи данных DDRx в значение 1, тогда соответствующий порт будет являться выходом.
Для зажигания диода на выводе формируется сигнал низкого уровня.
Также для реализации вызова подфункции RCALL в программе необходимо инициализировать стек, в котором будет сохраняться текущая позиция, на которую необходимо вернуться после выполнения подпрограммы.
Для обеспечения задержки (мигания) диода реализована отдельная подпрограмма, на выполнение которой уходит некоторое время, обеспечивая временной промежуток между включением и выключением диода (Рисунок 3).
[pic 5]
Рисунок 3 - Программа управления светодиодом
Логика программы может быть представлена в виде блок-схемы (Рисунок 4):
[pic 6]
Рисунок 4 – Блок-схема программы
[pic 7]
[pic 8]
Рисунок 5 - Результат выполнения программы
Часть 2.
Программа управления светодиодом с помощью кнопки.
Прерывание прекращает нормальный ход работы программы для выполнения приоритетной задачи, определяемой внутренним или внешним событием МК. При возникновении прерывания после сохранения в стеке текущего значения счетчика команд происходит выполнение подпрограммы, расположенной по адресу соответствующего вектора. Поэтому по данным адресам располагаются команды перехода к подпрограммам обработки прерываний. Последней командой программы обработки прерывания должна
...