Программирование и отладка программы на микроконтроллере ATmega16
Автор: koty67 • Ноябрь 14, 2022 • Лабораторная работа • 1,412 Слов (6 Страниц) • 194 Просмотры
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ
РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение
высшего образования
ИРКУТСКИЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ
ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Кафедра Вычислительные системы и сети
Лабораторная работа №6 по дисциплине
«Вычислительные системы и сети»
Вариант 27
Выполнил:
студент группы: АТПбз21-1 ________ Попов К.Д.
(шифр группы) (подпись)
Проверил:
доцент каф. ТОМП: ______________ Беломестных А.С
(подпись)
Иркутск 2022
Цель работы: Изучение основ программирования и отладки программ на микроконтроллере ATmega16.
Используемое оборудование и средства: персональный компьютер, пакет «AVR Studio 4.0».
Задание 1
На рисунке 1.1 представлен заданный в лабораторной работе код, который содержит ошибки. Кода, с устранёнными ошибками представлен на рисунке 1.2.
Рисунок 1.1 – Неверный код программы
Рисунок 1.2 – Код с исправленными ошибками
Результат работы программы, а также время её выполнения представлены на рисунке 1.3.
Рисунок 1.3 – Результат работы программы
Выполним оптимизацию кода, с целью сокращения времени выполнения команд. Из данного кода можно исключить команду “nop” и “clr r16”. Кроме того, повысим частоту до 16 МГц. Результат работы оптимизированной программы представлен на рисунке 1.4.
Рисунок 1.4 – Работа программы после оптимизации
В результате оптимизации программы, её быстродействие возросло и время выполнения стало 0,25 мкс.
Задание 2
Написать и отладить программу по выполнению заданной арифметической (логической) операции. Результат поместить в регистр R18 и вывести в заданный параллельный порт (PortХ). Ввод константы b выполнить с заданного порта (PortY). Параметры индивидуального задания выбираются из табл. 2.1.
Таблица 2.1 – Индивидуальное задание
Константа a Константа b Константа с Операция Тактовая частота МК (МГц) Порт вывода X Порт ввода Y
100 150 25 a’*(b’+c) (логич.) 4 B C
Для выполнения заданной операции, написана и отлажена программа. Результат помещен в регистр R18 и выведен на заданный порт. Ввод константы b выполнен с указанного в задании порта. Заданные параметры приведены в таблице 2.1. Код и результат работы программы приведен на рисунках 2.5 – 2.8.
Рисунок 2.5 – Код программы
Рисунок 2.6 – Окно Watch
Рисунок 2.7 – Окно I/O View
Рисунок 2.8 – Окно Processor
Таблица 2.2 – Время выполнения команд
Операция Время (us)
ser 0,25
out 0,5
clr 0,75
out 1,0
ldi 1,25
com 1,5
in 1,75
com 2,0
ori 2,25
and 2,5
out 2,75
Общее время выполнения 2,75
Сделаем проверку.
a = 100 = 011001002; b = 150 = 100101102; c = 000110012.
a ̅*(b ̅+c)=10011011*(01101001+00011001)=10011011*01111001=00011001=0x19=25.
Программа
...