Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Исследование основ программирования микроконтроллера ATmega16

Автор:   •  Февраль 3, 2023  •  Лабораторная работа  •  1,957 Слов (8 Страниц)  •  176 Просмотры

Страница 1 из 8

Министерство науки и высшего образования Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего образования

ИРКУТСКИЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ

ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Институт заочно-вечернего образования

Кафедра вычислительные системы и сети

Лабораторная работа

Лабораторная работа №6. Исследование основ программирования микроконтроллера ATmega16

Выполнил:

студент группы АТПбз-21-1

Пилипенко И.В.

Проверил преподаватель:

_________________________

Иркутск 2023 г.

Цель работы: Изучение основ программирования и отладки программ на микроконтроллере ATmega16.

Используемое оборудование и средства: персональный компьютер, пакет «AVR Studio 4.0»

Задание 1

В поле программы записан код, представленный в лабораторной работе (рисунок 1.1). Исходя из задания, были устранены ошибки в написании кода, результат – на рисунке 1.2.

[pic 1]

Рисунок 1.1 Неверный код программы 

[pic 2]

Рисунок 1.2 Код с исправленными ошибками
Результат работы программы, а также время её выполнения представлены на рисунке 1.3:

[pic 3]

Рисунок 1.3 Результат работы программы
Далее необходимо выполнить оптимизацию кода, с целью сокращения времени выполнения команд. Из данного кода можно убрать команду “nop” и “clr r16”. Кроме того, повысим частоту до 16МГц.

 Результаты работы – на рисунке 1.4:

[pic 4]

Рисунок 1.4 Работа программы после оптимизации
В результате оптимизации программы, её быстродействие возросло и время выполнения стало 0,25мкс.

Задача №2

Написать и отладить программу по вычислению заданной арифметической операции. Результат поместить в регистр R18 и вывести в заданный параллельный порт (PortХ). Ввод константы b выполнить с заданного порта (PortY). Параметры индивидуального задания выбираются из табл. 1.

Таблица 1 – Индивидуальные задания по вариантам

№ студента в журнале

Константа

a

Константа

b

Константа

с

Операция

Тактовая частота МК (МГц)

Порт вывода X

Порт ввода Y

8

240

13

111

b+(a – 2*c)

 (арифм.)

2

A

С

Программа:

.include "m16def.inc" ;подключение библиотеки для работы с ATmega16

;описание псевдонимов регистров

.def a=r16

.def b=r17

.def c=r19

;**********************************************************

; Начало основной программы

;**********************************************************

        ser        R16                ; R16 = 0xFF

        out        DDRA, R16        ; DDRA = R16 - настройка на выход порта A

        clr        R16                ; R16 = 0

        out        DDRC, R16        ; DDRC = R16 - настройка на вход порта C

                        

        ldi         a, 240        ; a = 240

        in          b, PINC        ; b = PINC = 13 (ввод константы b из порта C)

        ldi         c, 111        ; с = 111

        mov         R18, c        ; R18 = c = 111

        lsl        R18                ; R18 = R18 << 1 = 111 << 1 = 222

        neg         R18                ; R18 = -R18 = -222

        add         R18, a        ; R18 = R18 + a = a - 2*c = 18

        add         R18, b        ; R18 = R18 + b = b + (a - 2*c) = 31

        out        PORTA, R18        ; PORTA = R18 (вывод результата в порт A)

loop:

        rjmp loop                ; зацикливание программы

        

Результаты выполнения программы приводятся на рисунках 3 – 5.

[pic 5]

Рисунок 3 – Ввод в R17 значения константы b из порта C

[pic 6]

Рисунок 4 – Вычисление R18 = a – 2*c (арифм.)

[pic 7]

Рисунок 5 – Вычисление результата выражения в R18 и вывод в порт A

...

Скачать:   txt (21.8 Kb)   pdf (564.2 Kb)   docx (561.9 Kb)  
Продолжить читать еще 7 страниц(ы) »
Доступно только на Essays.club