
- •1. Теоретическая часть
- •1.1. Методические указания по выполнению лабораторной работы
- •1.1.1. Создайте новый проект.
- •1.1.2. Напишите и отладьте программу lab1
- •Контрольные вопросы.
- •Практическая часть
- •2.1. Задание:
- •Программа lab1:
- •. Содержание отчета
- •Практическая работа №1,2 Изучение методики «сквозного проектирования» мпс на мк
- •Контрольные вопросы
- •Практическая работа №3,4 Изучение команд пересылки данных в мк Организация параллельного обмена данными в мк
- •Контрольные вопросы
- •Лабораторная работа № 2 Изучение команд пересылки данных мк в avr Studio 4
- •Практическая работа №5 Изучение команд арифметики мк
- •Лабораторная работа № 4 Изучение команд битовой обработки данных мк
- •Контрольные вопросы
- •Практическая работа №8 Организация вывода данных в последовательном коде в мк
- •Подпрограмма прерываний
- •Лабораторная работа №5 Организация вывода данных в мк в последовательном коде в режиме реального времени
- •Практическая работа №9 Организация ввода данных в последовательном коде в мк
- •Лабораторная работа №6 Организация ввода данных в мк в последовательном коде в режиме реального времени
- •Практическая работа №10 Организация процесса обмена данными в мк через spi - интерфейс
- •Лабораторная работа №7 Организация обмена данными в мпс через spi – интерфейс
- •Практическая работа №11 Программирование сторожевого таймера (Watch Dog Timer) мк aTmega8515
- •Сброс wdt
- •Инициализация wdt
- •Инициализация портов
- •Лабораторная работа № 8,9 Организация простейших мпс на базе мк
Лабораторная работа №7 Организация обмена данными в мпс через spi – интерфейс
Цель работы: изучение системы прерываний и структуры последовательного периферийного интерфейса SPI МК AVR ATmega8515.
Задание 1
Для задачи из практической работы №10 провести отладку программы и детальную трассировку задания в AVR Studio 4, описать каждый шаг выполняемой программы. Проверить все возможные условия задачи. Составить отчёт по трассировке. Ответить на контрольные вопросы.
Контрольные вопросы
1. Организация таблицы прерываний, структура, программирование и функционирование SPI МК ATmega8515.
2. Методика работы в AVR Studio 4.
Практическая работа №11 Программирование сторожевого таймера (Watch Dog Timer) мк aTmega8515
Цель работы: изучение структуры, функционирования и программирования сторожевого таймера на базе МК AVR ATmega 8515.
Методические рекомендации по выполнению практической работы
Задание 1.
1)Подробно изучить систему прерываний и функционирование сторожевого таймера WDR МК AVR ATmega8515.[1]
2)Необходимо составить алгоритм, написать программу на ассемблере МК AVR ATmega8515, провести проверку, выставить флаги для выполнения следующей задачи:
Пример выполнения задачи:
Составить алгоритм и написать программу для реализации функции X+Y=Z в режиме реального времени при включенном сторожевом таймере. Аргумент X ввести с PORTА, аргумент Y ввести с PORTВ, результат функции Z вывести в PORTС. Время тайм-аута сторожевого таймера установить равным 16 миллисекундам.
а) алгоритм программы:
X(PA)
-> r1
Y(PB)
-> r2
X+Y=Z
Z
-> PORTCСброс wdt
Инициализация wdt
Инициализация портов
Рисунок 17. Блок-схема алгоритма программы.
в) Программа на языке ассемблер:
.include"8515def.inc" ;подключение файла описания МК
.org 0x000 ;обращение к вектору сброса
Rjmp M0 ; безусловный переход на М0
M0: wdr ; сброс сторожевого таймера
ldi r16,$08 ; разрешение сторожевого таймера
out WDTCR,r16 ; минимальное время тайм-аута (16384 такта)
SEI ; разрешение глобальных прерываний (I=1 в Rg Sreg)
M1: Ldi r17,$00 ; инициализация портов МК
out DDRa, r17 ; инициализация PORTA на ввод
Out ddrb,r17 ; инициализация PORTB на ввод
Ldi r18,$ff ; инициализация портов МК на вывод
Out ddrc, R18 ; инициализация PORTС на вывод
in r1,pina ; ввод аргумента X
in r2,pinb ; ввод аргумента Y
Add r1,r2 ; сложение аргументов
Out portc,r1 ; вывод результата сложения - Z
rjmp M1 ;организован бесконечный цикл при вычислении ;простейшей функции для сброса МК от сторожевого ;таймера
с) Проведем проверку Z =X+Y при Х=02,Y=03 и выставим флаги.
1) ADD R1, R2
В порт PC поместим результат Z = 05
Выставим флаги по результату действия:
H=0, N=0, C=0, Z=0, V=0, S=0.
Задание 2.
Получить у преподавателя задачу для реализации в соответствии с Вашим вариантом. Составить алгоритм, написать программу на ассемблере МК AVR ATmega8515, провести проверку, выставить флаги для реализации задачи в соответствии с рассмотренными выше методическими указаниями.
Таблица №8 – Варианты заданий на практическую работу № 11.
№ Вари анта |
Задание на практическую работу. |
1 |
Составить алгоритм и написать программу для реализации функции a+2b=c в режиме реального времени при включенном сторожевом таймере. Аргумент а ввести с PORTА, аргумент b ввести с PORTВ, результат функции с вывести в PORTС. Время тайм-аута сторожевого таймера равно 16 миллисекундам. |
2 |
Составить
алгоритм и написать программу для
реализации функции ( |
3 |
Составить
алгоритм и написать программу для
реализации функции ( |
4 |
Составить
алгоритм и написать программу для
реализации функции 2y^( |
5 |
Составить алгоритм и написать программу для реализации функции x^ =z в режиме реального времени при включенном сторожевом таймере. Аргумент x ввести с PORTA, аргумент y ввести с PORTВ., результат функции z вывести в PORTС. Время тайм-аута сторожевого таймера равно 1024 миллисекундам. |
6 |
Составить
алгоритм и написать программу для
реализации функции
|
7 |
Составить
алгоритм и написать программу для
реализации функции ( |
8 |
Составить алгоритм и написать программу для реализации функции (y- )^y=z в режиме реального времени при включенном сторожевом таймере. Аргумент x ввести с PORTB, аргумент y ввести с PORTA, результат функции z вывести в PORTD. Время тайм-аута сторожевого таймера равно 256 миллисекундам. |
9 |
Составить алгоритм и написать программу для реализации функции ( + )^x=z в режиме реального времени при включенном сторожевом таймере. Аргумент x ввести с PORTА, аргумент y ввести с PORTD, результат функции z вывести в PORTB. Время тайм-аута сторожевого таймера равно 16 миллисекундам. |
10 |
Составить алгоритм и написать программу для реализации функции (x-$12)^(y+$23)=z в режиме реального времени при включенном сторожевом таймере. Аргумент x ввести с PORTD, аргумент y ввести с PORTВ, результат функции z вывести в PORTА. Время тайм-аута сторожевого таймера равно 128 миллисекундам. |
11 |
Составить алгоритм и написать программу для реализации функции 5y+7x =z в режиме реального времени при включенном сторожевом таймере. Аргумент x ввести с PORTC, аргумент y ввести с PORTА., результат функции z вывести в PORTС. Время тайм-аута сторожевого таймера равно 512 миллисекундам. |
12 |
Составить
алгоритм и написать программу для
реализации функции
x^ |
13 |
Составить алгоритм и написать программу для реализации функции ^(y+$27)=z в режиме реального времени при включенном сторожевом таймере. Аргумент x ввести с PORTD, аргумент y ввести с PORTB, результат функции z вывести в PORTС. Время тайм-аута сторожевого таймера равно 2048 миллисекундам. |
14 |
Составить алгоритм и написать программу для реализации функции (x+y)^( -y)=z в режиме реального времени при включенном сторожевом таймере. Аргумент x ввести с PORTC, аргумент y ввести с PORTD, результат функции z вывести в PORTА. Время тайм-аута сторожевого таймера равно 32 миллисекундам. |
15 |
Составить алгоритм и написать программу для реализации функции 5x^3y=z в режиме реального времени при включенном сторожевом таймере. Аргумент x ввести с PORTС, аргумент y ввести с PORTA, результат функции z вывести в PORTB. Время тайм-аута сторожевого таймера равно 128 миллисекундам. |
16 |
Составить алгоритм и написать программу для реализации функции ( ^ )+y=z в режиме реального времени при включенном сторожевом таймере. Аргумент x ввести с PORTA, аргумент y ввести с PORTС, результат функции z вывести в PORTD. Время тайм-аута сторожевого таймера равно 1024 миллисекундам. |
17 |
Составить алгоритм и написать программу для реализации функции ^(x-2y)=z в режиме реального времени при включенном сторожевом таймере. Аргумент x ввести с PORTB, аргумент y ввести с PORTА, результат функции z вывести в PORTС. Время тайм-аута сторожевого таймера равно 64 миллисекундам. |
18 |
Составить
алгоритм и написать программу для
реализации функции
|
19 |
Составить алгоритм и написать программу для реализации функции +(9x^y)=z в режиме реального времени при включенном сторожевом таймере. Аргумент x ввести с PORTC, аргумент y ввести с PORTВ, результат функции z вывести в PORTА. Время тайм-аута сторожевого таймера равно 2048 миллисекундам. |
20 |
Составить алгоритм и написать программу для реализации функции Xv( ^ )=z в режиме реального времени при включенном сторожевом таймере. Аргумент x ввести с PORTС, аргумент y ввести с PORTD, результат функции z вывести в PORTA. Время тайм-аута сторожевого таймера равно 32 миллисекундам. |
Задание 3. Оформить отчет по работе. Продемонстрировать отчет преподавателю.
Контрольные вопросы:
1 Принцип работы сторожевого таймера.
2 Уровни безопасности сторожевого таймера.