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

Лабораторная работа №5 Организация вывода данных в мк в последовательном коде в режиме реального времени

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

Задание 1

Для задачи из практической работы №8 провести отладку программы и детальную трассировку задания в AVR Studio 4, описать каждый шаг выполняемой программы. Проверить все возможные условия задачи. Составить отчёт по трассировке. Ответить на контрольные вопросы.

Контрольные вопросы

1. Организация таблицы прерываний и программирование передатчика USART МК ATmega8515.

2. Методика работы в AVR Studio 4.

Практическая работа №9 Организация ввода данных в последовательном коде в мк

Цель работы: изучение функционирования и программирования приемника модуля USART МК ATmega8515.

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

Задание 1.

1)Подробно изучить систему прерываний и функционирование приемника модуля USART МК AVR ATmega8515.[1]

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

Пример выполнения задачи:

Составить алгоритм, написать программу для вычисления функции z=X+Y, X- ввести с модуля USART, Y- ввести с порта PА, функцию Z вывести в порт PВ. Сделать проверку для X=02, Y=03.

а) Составим алгоритм задачи:

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

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

.include"8515def.inc"

.cseg

.org 0x00 ; обращение к вектору сброса

rjmp PROG ; безусловный переход на PROG

.org 0x09 ; организация вектора прер. по событию «прием завершен»

rjmp М0 ; безусловный переход на метку М0

PROG:

ldi R16,high(RAMEND) ;

out SPH,R16 ; организация стека в верхних ячейках памяти данных ОЗУ

ldi R16,low(RAMEND) ;

out SPL,R16 ; организация стека в верхних ячейках памяти данных ОЗУ

ldi R16,$FF ;

Out DDRA,R16 ; PORTA на вывод данных

LDI R16,$00 ;

out DDRB,R16 ; PORTB на ввод данных

SEI ; разрешение глобальных прерываний (I=1)

M1: ldi R16,$90 ; программирование приемника USART

out 0x0a,R16 ; Rg UCSRb

ldi R16,$86 ;

out 0x20,R16 ; Rg UCSRC

ldi R16,$06 ;

out 0x09,R16 ; Rg UBRRL

ldi R16,$80 ;

out 0x0b,R16 ; Rg UCSRA

jmp M1;

М0: in R16,0x0C ; ввод данных с UDR приемника

in r17,pinb ; ввод данных с порта РВ

add R16,r17 ; вычисление функции z=x+y

out PORTa,R16 ; вывод z в порт РА

reti ; возврат из подпрограммы прерываний

с) Проведем проверку Z =X+Y при Х=02,Y=03 и выставим флаги.

1) ADD R16, R17

В порт РА поместим результат Z = 05

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

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

Задание 2.

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

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

варианта

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

1

Составить алгоритм, написать программу для вычисления функции z=3X+Y, X- ввести с модуля USART, Y- ввести с порта PВ, функцию Z вывести в порт PА. Сделать проверку для X=04, Y=02.

2

Составить алгоритм, написать программу для вычисления функции z=3X^Y, X- ввести с модуля USART, Y- ввести с порта PС, функцию Z вывести в порт PD. Сделать проверку для X=03, Y=05.

3

Составить алгоритм, написать программу для вычисления функции z=X+3Y, X- ввести с модуля USART, Y- ввести с порта PC, функцию Z вывести в порт PА. Сделать проверку для X=03, Y=05.

4

Составить алгоритм, написать программу для вычисления функции z=3XvY, X- ввести с модуля USART, Y- ввести с порта PD, функцию Z вывести в порт PА. Сделать проверку для X=05, Y=07.

5

Составить алгоритм, написать программу для вычисления функции z=3X-Y, X- ввести с модуля USART, Y- ввести с порта PD, функцию Z вывести в порт PC. Сделать проверку для X=04, Y=08.

6

Составить алгоритм, написать программу для вычисления функции z=2X-Y, X- ввести с модуля USART, Y- ввести с порта PB, функцию Z вывести в порт PD. Сделать проверку для X=05, Y=06.

7

Составить алгоритм, написать программу для вычисления функции z=Xv3Y, X- ввести с модуля USART, Y- ввести с порта PC, функцию Z вывести в порт PD. Сделать проверку для X=05, Y=08.

8

Составить алгоритм, написать программу для вычисления функции z=3X^Y, X- ввести с модуля USART, Y- ввести с порта PB, функцию Z вывести в порт PC. Сделать проверку для X=07, Y=03.

9

Составить алгоритм, написать программу для вычисления функции z=4X-Y, X- ввести с модуля USART, Y- ввести с порта PD, функцию Z вывести в порт PB. Сделать проверку для X=04, Y=09.

10

Составить алгоритм, написать программу для вычисления функции z=X-3Y, X- ввести с модуля USART, Y- ввести с порта PA, функцию Z вывести в порт PB. Сделать проверку для X=09, Y=02.

11

Составить алгоритм, написать программу для вычисления функции z=3X+Y, X- ввести с модуля USART, Y- ввести с порта PD, функцию Z вывести в порт PC. Сделать проверку для X=04, Y=09.

12

Составить алгоритм, написать программу для вычисления функции z=3X-2Y, X- ввести с модуля USART, Y- ввести с порта PВ, функцию Z вывести в порт PC. Сделать проверку для X=04, Y=09.

13

Составить алгоритм, написать программу для вычисления функции z=5X-Y, X- ввести с модуля USART, Y- ввести с порта PВ, функцию Z вывести в порт PА. Сделать проверку для X=04, Y=02.

14

Составить алгоритм, написать программу для вычисления функции z=3X-3Y, X- ввести с модуля USART, Y- ввести с порта PD, функцию Z вывести в порт PC. Сделать проверку для X=05, Y=03.

15

Составить алгоритм, написать программу для вычисления функции z=7X-2Y, X- ввести с модуля USART, Y- ввести с порта PD, функцию Z вывести в порт PА. Сделать проверку для X=05, Y=03.

16

Составить алгоритм, написать программу для вычисления функции z=6X^2Y, X- ввести с модуля USART, Y- ввести с порта PВ, функцию Z вывести в порт PC. Сделать проверку для X=05, Y=03.

17

Составить алгоритм, написать программу для вычисления функции z=5X^3Y, X- ввести с модуля USART, Y- ввести с порта PD, функцию Z вывести в порт PB. Сделать проверку для X=03, Y=06.

18

Составить алгоритм, написать программу для вычисления функции z=5Xv3Y, X- ввести с модуля USART, Y- ввести с порта PD, функцию Z вывести в порт PB. Сделать проверку для X=05, Y=03.

19

Составить алгоритм, написать программу для вычисления функции z=2X+5Y, X- ввести с модуля USART, Y- ввести с порта PC, функцию Z вывести в порт PА. Сделать проверку для X=06, Y=04.

20

Составить алгоритм, написать программу для вычисления функции z=7X-5Y, X- ввести с модуля USART, Y- ввести с порта PA, функцию Z вывести в порт PC. Сделать проверку для X=05, Y=03.

Задание 3. Оформить отчет по работе. Продемонстрировать отчет преподавателю.