Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мет-AVR.doc
Скачиваний:
94
Добавлен:
02.11.2018
Размер:
3.04 Mб
Скачать
    1. . Содержание отчета

  • Наименование лабораторной работы.

  • Цель лабораторной работы.

  • Формулировка задания.

  • Отчет по трассировке.

  • Вычисления и выводы.

  • Электронный вариант выполненной работы.

3.2. Практическая работа №1 Изучение системы команд мк avr aTmega8515

Цель работы: изучение системы команд МК AVR.

Методические рекомендации по выполнению практической работы

Необходимо составить алгоритм, написать программу на ассемблере МК AVR ATmega8515, провести проверку, выставить флаги для реализации следующей задачи:

В режиме реального времени ввести данные с портов x – (PА), y – (PВ), если состояние портов совпало (x=y), то в порт РС вывести удвоенное входное значение z=2x; если (xy), то в порт РС вывести z=xy.

а) Составим алгоритм задачи. Данная задача реализуется циклическим (режим реального времени) разветвляющимся (реализуется условие задачи) алгоритмом (рис. 33):

Рис. 33. Алгоритм рассматриваемой задачи

в) Программа на языке ассемблер:

LDI R20, $00 ; загрузка регистра R20 константой

OUT DDRA, R20 ; инициализация порта РА – ввод данных

OUT DDRB, R20 ; инициализация порта РВ – ввод данных

LDI R21, $FF ; загрузка регистра R21 константой

OUT DDRD, R21 ; инициализация порта РD – вывод данных

M0: IN R10, PINA ; ввод данных х (РА) – в регистр R10

IN R11, PINB ; ввод данных y (PB) – R11

CP R10, R11 ; сравнение x и y

BREQ M1 ; переход на М1, если x=y; иначе выполн. след. ком.

AND R10, R11 ; z=xy

M2: OUT PORTD, R10 ; вывод z в порт PD

JMP M0 ; переход на М0, ввод новых данных с портов

M1: ADD R10, R11 ; z=2x

JMP M2 ; переход на М2, для вывода z в PD

с) Проведем проверку при x=y. Пусть х=35h, тогда z=2x:

, в R10 поместится результат (R10=6Ah).

d) Выставим флаги по результату действия в АЛУ:

H=0, N=0, C=0, Z=0, V=0, S=0.

Задание 1.

Получить у преподавателя задачу для реализации в соответствии с Вашим вариантом. Составить алгоритм, написать программу на ассемблере МК AVR ATmega8515, провести проверку, выставить флаги для реализации задачи в соответствии с рассмотренными выше методическими указаниями.

Таблица 24. Варианты заданий на практическую работу

№ варианта

Задание на практическую работу

1

В режиме реального времени ввести данные с портов x – (PС), y – (PВ), если x≥y, то в порт РD вывести z=2x+2y; если x<y, то в порт РD вывести z=xy. Провести проверку при x=55h, y=35h.

2

В режиме реального времени ввести данные с портов x – (PВ), y – (PC), если x≥y, то в порт РD вывести z=x+3y; если x<y, то в порт РD вывести z=xy. Провести проверку при x=5Ah, y=25h.

3

В режиме реального времени ввести данные с портов x – (PA), y – (PВ), если y≥x, то в порт РD вывести z=3x+y; если x<y, то в порт РD вывести z=yx . Провести проверку при x=78h, y=35h.

4

В режиме реального времени ввести данные с портов x – (PС), y – (PA), если x≥y, то в порт РB вывести z=2x+2y; если x<y, то в порт РB вывести z=xy. Провести проверку при x=65h, y=48h.

5

В режиме реального времени ввести данные с портов x – (PA), y – (PD), если x=y, то в порт РB вывести z=3x; если xy, то в порт РB вывести z=4xy. Провести проверку при x=55h, y=55h.

6

В режиме реального времени ввести данные с портов x – (PD), y – (PC), если x=y, то в порт РA вывести z=3x; если xy, то в порт РB вывести z=x3y. Провести проверку при x=75h, y=75h.

7

В режиме реального времени ввести данные с портов x – (PA), y – (PC), если x=y, то в порт РD вывести z=4x; если xy, то в порт РB вывести z=2xy. Провести проверку при x=75h, y=75h.

8

В режиме реального времени ввести данные с портов x – (PB), y – (PC), если x=y, то в порт РA вывести z=2x; если xy, то в порт РD вывести z=x4y. Провести проверку при x=65h, y=65h.

9

В режиме реального времени ввести данные с портов x – (PA), y – (PB), если x=y, то в порт РD вывести z=2x; если xy, то в порт РC вывести z=2xy. Провести проверку при x=A5h, y=A5h.

10

В режиме реального времени ввести данные с портов x – (PD), y – (PC), если x=y, то в порт РA вывести z=5x; если xy, то в порт РB вывести z=2xy. Провести проверку при x=95h, y=95h.

11

В режиме реального времени ввести данные с портов x – (PB), y – (PC), если x=y, то в порт РA вывести z=3x; если xy, то в порт РD вывести z=x3y. Провести проверку при x=75h, y=75h.

12

В режиме реального времени ввести данные с портов x – (PС), y – (PВ), если x≥y, то в порт РD вывести z=3x+2y; если x<y, то в порт РA вывести z=2xy. Провести проверку при x=55h, y=35h.

13

В режиме реального времени ввести данные с портов x – (PA), y – (PВ), если x≥y, то в порт РD вывести z=2x+3y; если x<y, то в порт РC вывести z=3xy. Провести проверку при x=75h, y=3Fh.

14

В режиме реального времени ввести данные с портов x – (PС), y – (PA), если x≥y, то в порт РD вывести z=5x+y; если x<y, то в порт РB вывести z=x2y. Провести проверку при x=65h, y=1Ch.

15

В режиме реального времени ввести данные с портов x – (PС), y – (PA), если x≥y, то в порт РD вывести z=2x+4y; если x<y, то в порт РB вывести z=4xy. Провести проверку при x=45h, y=1Dh.

16

В режиме реального времени ввести данные с портов x – (PD), y – (PВ), если x≥y, то в порт РA вывести z=2x+5y; если x<y, то в порт РC вывести z=x2y. Провести проверку при x=35h, y=2Eh.

17

В режиме реального времени ввести данные с портов x – (PD), y – (PВ), если x≥y, то в порт РA вывести z=x+6y; если x<y, то в порт РD вывести z=2xy. Провести проверку при x=75h, y=35h.

18

В режиме реального времени ввести данные с портов x – (PA), y – (PВ), если x≥y, то в порт РC вывести z=5x+2y; если x<y, то в порт РD вывести z=3xy. Провести проверку при x=75h, y=3Ah.

19

В режиме реального времени ввести данные с портов x – (PA), y – (PC), если x≥y, то в порт РD вывести z=2x+2y; если x<y, то в порт РB вывести z=x4y. Провести проверку при x=6Bh, y=3Fh.

20

В режиме реального времени ввести данные с портов x – (PA), y – (PВ), если x≥y, то в порт РD вывести z=3x+2y; если x<y, то в порт РC вывести z=6x3y. Провести проверку при x=25h, y=15h.