Лекция: Практическая работа №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. Варианты заданий на практическую работу

№ варианта Задание на практическую работу
В режиме реального времени ввести данные с портов x – (PС), y – (PВ), если x≥y, то в порт РD вывести z=2x+2y; если x<y, то в порт РD вывести z=xÅy. Провести проверку при x=55h, y=35h.
В режиме реального времени ввести данные с портов x – (PВ), y – (PC), если x≥y, то в порт РD вывести z=x+3y; если x<y, то в порт РD вывести z=xÚy. Провести проверку при x=5Ah, y=25h.
В режиме реального времени ввести данные с портов x – (PA), y – (PВ), если y≥x, то в порт РD вывести z=3x+y; если x<y, то в порт РD вывести z=yÙx. Провести проверку при x=78h, y=35h.
В режиме реального времени ввести данные с портов x – (PС), y – (PA), если x≥y, то в порт РB вывести z=2x+2y; если x<y, то в порт РB вывести z=xÅy. Провести проверку при x=65h, y=48h.
В режиме реального времени ввести данные с портов x – (PA), y – (PD), если x=y, то в порт РB вывести z=3x; если x¹y, то в порт РB вывести z=4xÅy. Провести проверку при x=55h, y=55h.
В режиме реального времени ввести данные с портов x – (PD), y – (PC), если x=y, то в порт РA вывести z=3x; если x¹y, то в порт РB вывести z=xÙ3y. Провести проверку при x=75h, y=75h.
В режиме реального времени ввести данные с портов x – (PA), y – (PC), если x=y, то в порт РD вывести z=4x; если x¹y, то в порт РB вывести z=2xÙy. Провести проверку при x=75h, y=75h.
В режиме реального времени ввести данные с портов x – (PB), y – (PC), если x=y, то в порт РA вывести z=2x; если x¹y, то в порт РD вывести z=xÙ4y. Провести проверку при x=65h, y=65h.
В режиме реального времени ввести данные с портов x – (PA), y – (PB), если x=y, то в порт РD вывести z=2x; если x¹y, то в порт РC вывести z=2xÙy. Провести проверку при x=A5h, y=A5h.
В режиме реального времени ввести данные с портов x – (PD), y – (PC), если x=y, то в порт РA вывести z=5x; если x¹y, то в порт РB вывести z=2xÙy. Провести проверку при x=95h, y=95h.
В режиме реального времени ввести данные с портов x – (PB), y – (PC), если x=y, то в порт РA вывести z=3x; если x¹y, то в порт РD вывести z=xÙ3y. Провести проверку при x=75h, y=75h.
В режиме реального времени ввести данные с портов x – (PС), y – (PВ), если x≥y, то в порт РD вывести z=3x+2y; если x<y, то в порт РA вывести z=2xÅy. Провести проверку при x=55h, y=35h.
В режиме реального времени ввести данные с портов x – (PA), y – (PВ), если x≥y, то в порт РD вывести z=2x+3y; если x<y, то в порт РC вывести z=3xÅy. Провести проверку при x=75h, y=3Fh.
В режиме реального времени ввести данные с портов x – (PС), y – (PA), если x≥y, то в порт РD вывести z=5x+y; если x<y, то в порт РB вывести z=xÚ2y. Провести проверку при x=65h, y=1Ch.
В режиме реального времени ввести данные с портов x – (PС), y – (PA), если x≥y, то в порт РD вывести z=2x+4y; если x<y, то в порт РB вывести z=4xÅy. Провести проверку при x=45h, y=1Dh.
В режиме реального времени ввести данные с портов x – (PD), y – (PВ), если x≥y, то в порт РA вывести z=2x+5y; если x<y, то в порт РC вывести z=xÅ2y. Провести проверку при x=35h, y=2Eh.
В режиме реального времени ввести данные с портов x – (PD), y – (PВ), если x≥y, то в порт РA вывести z=x+6y; если x<y, то в порт РD вывести z=2xÅy. Провести проверку при x=75h, y=35h.
В режиме реального времени ввести данные с портов x – (PA), y – (PВ), если x≥y, то в порт РC вывести z=5x+2y; если x<y, то в порт РD вывести z=3xÅy. Провести проверку при x=75h, y=3Ah.
В режиме реального времени ввести данные с портов x – (PA), y – (PC), если x≥y, то в порт РD вывести z=2x+2y; если x<y, то в порт РB вывести z=xÅ4y. Провести проверку при x=6Bh, y=3Fh.
В режиме реального времени ввести данные с портов x – (PA), y – (PВ), если x≥y, то в порт РD вывести z=3x+2y; если x<y, то в порт РC вывести z=6xÅ3y. Провести проверку при x=25h, y=15h.

Содержание отчета

· Наименование практической работы.

· Цель практической работы.

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

· Блок-схема алгоритма.

· Программа на языке ассемблер.

· Проверка реализуемой задачи (выполнить функции, выставить флаги).

 

 

еще рефераты
Еще работы по информатике