Лабораторная работа №1 "Микропроцессорные устройства и системы" Вариант №6 ТУСУР
Задание 1. Знакомство с компилятором и режимом отладки (общее для всех вариантов) Найти и удалить из проекта следующий код:
Задание 2. Знакомство с регистрами порта (общее для всех вариантов) Модифицировать программу в цикле while(1) так, чтобы при пошаговом режиме выполнения инвертировались значения всех светодиодов в порту PORTD (рис. 26). Привести код ассемблера.
Задание 3. Создание переменных, изучение условий if(), циклов Объявить переменную i в процедуре main, int main(void) { // Variable to put switch input into uint8t val; uint8t i; // Модифицировать код в бесконечном цикле while(1) while(1) { PORTD = (1 i); i++; } Установить брейкпоинт на добавленной команде (рис. 27)
Вариант 6. Реализовать инверсный эффект эквалайзера (см. п. 5, заменив 0 на 1).
Задание 4. Изучение кнопки Модифицировать код программы в бесконечном цикле
Задание 5. Изучение массивов, семисегментных индикаторов Модифицировать программу, добавив после команд #include: #include "compiler.h" #include #include "conf_example.h" Массив из двух переменных:
Задание: Добавить в свой вариант изменение направления эффекта при нажатии на кнопку PIN.7(PORTB) и возвращении направления при отпускании. Дополнительно сформировать на половине порта В бегущую единицу (…0001 0010 0100 1000 0001…), эмулирующую динамический опрос клавиатуры. 36 Дополнительно на порту С, к которому подключен семисегментный индикатор, сформировать индикацию десятичного счета от 0 до 9, т. е. выводить соответствующие коды цифр индикатора. Привести в отчете код ассемблера итоговой программы