
- •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 Организация простейших мпс на базе мк
Лабораторная работа №6 Организация ввода данных в мк в последовательном коде в режиме реального времени
Цель работы: изучение системы прерываний и приемника модуля USART МК AVR ATmega8515.
Задание 1
Для задачи из практической работы №9 провести отладку программы и детальную трассировку задания в AVR Studio 4, описать каждый шаг выполняемой программы. Проверить все возможные условия задачи. Составить отчёт по трассировке. Ответить на контрольные вопросы.
Контрольные вопросы
1. Организация таблицы прерываний и программирование приемника USART МК ATmega8515.
2. Методика работы в AVR Studio 4.
Практическая работа №10 Организация процесса обмена данными в мк через spi - интерфейс
Цель работы: изучение структуры, функционирования и программирования последовательного периферийного интерфейса SPI на базе МК AVR ATmega 8515.
Методические рекомендации по выполнению практической работы
Задание 1.
1)Подробно изучить систему прерываний и функционирование последовательного периферийного интерфейса SPI МК AVR ATmega8515.[1]
2)Необходимо составить алгоритм, написать программу на ассемблере МК AVR ATmega8515, провести проверку, выставить флаги для выполнения следующей задачи:
Пример выполнения задачи:
Передать результат функции z=x+y через интерфейс SPI со скоростью f CLK /4. Аргумент x ввести с PORTА, аргумент y ввести с PORTD. Использовать тактовый сигнал SCK положительной полярности, обработку данных производить по его переднему фронту. Микроконтроллер работает в режиме Master. Сделать проверку при X=02, Y=03.
а) алгоритм основной программы:
Алгоритм подпрограммы обработки прерывания по завершению передачи SPI.
Рис. 16. Алгоритм рассматриваемой задачи
в) Программа на языке ассемблер:
.include"8515def.inc" ; Подключение файла описания МК
.def temp = R16 ; Задание переменной temp в R16
.org 0x000 ; Обращение к вектору сброса
Rjmp M0 ; Безусловный переход на метку М0
.org 0x008 ; Обращение к вектору прерывания по
; завершении передачи SPI.
Rjmp M1 ; Безусловный переход на метку М1 ;(подпрограмма
; обработки прерывания).
M0: SEI ; Разрешение глобальных прерываний.
Ldi temp,$5f ; Загрузка постоянной $5f (младший байт адреса вершины
; стека) в temp.
Out SPL,temp ; Организация стека в верхних ячейках памяти данных ОЗУ.
Ldi temp,$02 ; Загрузка постоянной $02 (старший байт адреса вершины
; стека) в temp.
Out SPH,temp ; Организация стека в верхних ячейках памяти данных ОЗУ.
LDI temp,$00 ; Инициализация портов на ввод.
Out DDRa, temp ; C PORTA вводится х.
Out DDRd,temp ; C PORTD вводится y.
M2: In R20, pina ; ввод х
In R21, pinD ; ввод y
Add R20,R21 ; z=x+y
Ldi R24,$00 ; УС (SPSR) -> R24. Управляющее слово регистра состояния ;интерфейса SPI – все флаги, кроме удвоения скорости,
;которое согласно заданию не требуется, выставляются ;автоматически, поэтому УС=$00.
Out 0x0e, R24 ; УС (SPSR) ->SPSP
Ldi R23,$d0 ; УС (SPCR) -> R23
Out 0x0d, R23 ; УС (SPCR) ->SPCR. Управляющее слово регистра
;управления интерфейса SPI –обеспечивает работу с SPI, в том ;числе и по прерыванию, МК работает в режиме Master, ;полярность сигнала положительная, обработка ;идёт по переднему фронту сигнала, скорость ;передачи равна f CLK /4.
jmp M2
M1: Out 0x0f,R20 ; Загрузка в регистр данных SPDR функции z из регистра R20
Reti ; возврат в основную программу
с) Проведем проверку Z =X+Y при Х=02,Y=03 и выставим флаги.
1) ADD R16, R17
В порт SPI поместим результат Z = 05
Выставим флаги по результату действия:
H=0, N=0, C=0, Z=0, V=0, S=0.
Задание 2.
Получить у преподавателя задачу для реализации в соответствии с Вашим вариантом. Составить алгоритм, написать программу на ассемблере МК AVR ATmega8515, провести проверку, выставить флаги для реализации задачи в соответствии с рассмотренными выше методическими указаниями.
Таблица 7. Варианты заданий на практическую работу № 10
№ варианта |
Задание на лабораторную работу. |
1 |
Составить алгоритм и написать программу для реализации следующей задачи: Передать результат функции z=2x+3y через интерфейс SPI со скоростью f CLK /4. Аргумент x ввести с PORTС, аргумент y ввести с PORTB. Использовать тактовый сигнал SCK положительной полярности, обработку данных производить по его переднему фронту. Микроконтроллер работает в режиме Master. Сделать проверку при X=04, Y=03. |
2 |
Составить алгоритм и написать программу для реализации следующей задачи: Передать результат функции z=3x+3y через интерфейс SPI со скоростью f CLK /4. Аргумент x ввести с PORTC, аргумент y ввести с PORTD. Использовать тактовый сигнал SCK положительной полярности, обработку данных производить по его переднему фронту. Микроконтроллер работает в режиме Master. Сделать проверку при X=02, Y=02. |
3 |
Составить алгоритм и написать программу для реализации следующей задачи: Передать результат функции z=x^3y через интерфейс SPI со скоростью f CLK /4. Аргумент x ввести с PORTC, аргумент y ввести с PORTB. Использовать тактовый сигнал SCK положительной полярности, обработку данных производить по его переднему фронту. Микроконтроллер работает в режиме Master. Сделать проверку при X=05, Y=03. |
4 |
Составить алгоритм и написать программу для реализации следующей задачи: Передать результат функции z=x+5y через интерфейс SPI со скоростью f CLK /4. Аргумент x ввести с PORTD, аргумент y ввести с PORTA. Использовать тактовый сигнал SCK положительной полярности, обработку данных производить по его переднему фронту. Микроконтроллер работает в режиме Master. Сделать проверку при X=06, Y=03. |
5
|
Составить алгоритм и написать программу для реализации следующей задачи: Передать результат функции z=5x^3y через интерфейс SPI со скоростью f CLK /4. Аргумент x ввести с PORTD, аргумент y ввести с PORTB. Использовать тактовый сигнал SCK положительной полярности, обработку данных производить по его переднему фронту. Микроконтроллер работает в режиме Master. Сделать проверку при X=05, Y=08. |
6
|
Составить алгоритм и написать программу для реализации следующей задачи: Передать результат функции z=7XvY через интерфейс SPI со скоростью f CLK /4. Аргумент x ввести с PORTC, аргумент y ввести с PORTA. Использовать тактовый сигнал SCK положительной полярности, обработку данных производить по его переднему фронту. Микроконтроллер работает в режиме Master. Сделать проверку при X=06, Y=04. |
7
|
Составить алгоритм и написать программу для реализации следующей задачи: Передать результат функции z=8x^4y через интерфейс SPI со скоростью f CLK /4. Аргумент x ввести с PORTА, аргумент y ввести с PORTD. Использовать тактовый сигнал SCK положительной полярности, обработку данных производить по его переднему фронту. Микроконтроллер работает в режиме Master. Сделать проверку при X=09, Y=04. |
8 |
Составить алгоритм и написать программу для реализации следующей задачи: Передать результат функции z=9x+8y через интерфейс SPI со скоростью f CLK /4. Аргумент x ввести с PORTC, аргумент y ввести с PORTA. Использовать тактовый сигнал SCK положительной полярности, обработку данных производить по его переднему фронту. Микроконтроллер работает в режиме Master. Сделать проверку при X=02, Y=09. |
9 |
Составить алгоритм и написать программу для реализации следующей задачи: Передать результат функции z=8x-4y через интерфейс SPI со скоростью f CLK /4. Аргумент x ввести с PORTА, аргумент y ввести с PORTD. Использовать тактовый сигнал SCK положительной полярности, обработку данных производить по его переднему фронту. Микроконтроллер работает в режиме Master. Сделать проверку при X=04, Y=02. |
10 |
Составить алгоритм и написать программу для реализации следующей задачи: Передать результат функции z=4x-3y через интерфейс SPI со скоростью f CLK /4. Аргумент x ввести с PORTC, аргумент y ввести с PORTD. Использовать тактовый сигнал SCK положительной полярности, обработку данных производить по его переднему фронту. Микроконтроллер работает в режиме Master. Сделать проверку при X=06, Y=05. |
11 |
Составить алгоритм и написать программу для реализации следующей задачи: Передать результат функции z=6xv8y через интерфейс SPI со скоростью f CLK /4. Аргумент x ввести с PORTC, аргумент y ввести с PORTB. Использовать тактовый сигнал SCK положительной полярности, обработку данных производить по его переднему фронту. Микроконтроллер работает в режиме Master. Сделать проверку при X=07, Y=03. |
12 |
Составить алгоритм и написать программу для реализации следующей задачи: Передать результат функции z=5x^3y через интерфейс SPI со скоростью f CLK /4. Аргумент x ввести с PORTD, аргумент y ввести с PORTB. Использовать тактовый сигнал SCK положительной полярности, обработку данных производить по его переднему фронту. Микроконтроллер работает в режиме Master. Сделать проверку при X=04, Y=07. |
13 |
Составить алгоритм и написать программу для реализации следующей задачи: Передать результат функции z=6xv3y через интерфейс SPI со скоростью f CLK /4. Аргумент x ввести с PORTC, аргумент y ввести с PORTA. Использовать тактовый сигнал SCK положительной полярности, обработку данных производить по его переднему фронту. Микроконтроллер работает в режиме Master. Сделать проверку при X=07, Y=05. |
14 |
Составить алгоритм и написать программу для реализации следующей задачи: Передать результат функции z=5xv2y через интерфейс SPI со скоростью f CLK /4. Аргумент x ввести с PORTC, аргумент y ввести с PORTB. Использовать тактовый сигнал SCK положительной полярности, обработку данных производить по его переднему фронту. Микроконтроллер работает в режиме Master. Сделать проверку при X=06, Y=04. |
15 |
Составить алгоритм и написать программу для реализации следующей задачи: Передать результат функции z=5x-3y через интерфейс SPI со скоростью f CLK /4. Аргумент x ввести с PORTD, аргумент y ввести с PORTB. Использовать тактовый сигнал SCK положительной полярности, обработку данных производить по его переднему фронту. Микроконтроллер работает в режиме Master. Сделать проверку при X=04, Y=05. |
16 |
Составить алгоритм и написать программу для реализации следующей задачи: Передать результат функции z=9x+2y через интерфейс SPI со скоростью f CLK /4. Аргумент x ввести с PORTC, аргумент y ввести с PORTA. Использовать тактовый сигнал SCK положительной полярности, обработку данных производить по его переднему фронту. Микроконтроллер работает в режиме Master. Сделать проверку при X=02, Y=04. |
17 |
Составить алгоритм и написать программу для реализации следующей задачи: Передать результат функции z=8x^7y через интерфейс SPI со скоростью f CLK /4. Аргумент x ввести с PORTD, аргумент y ввести с PORTA. Использовать тактовый сигнал SCK положительной полярности, обработку данных производить по его переднему фронту. Микроконтроллер работает в режиме Master. Сделать проверку при X=02, Y=03. |
18 |
Составить алгоритм и написать программу для реализации следующей задачи: Передать результат функции z=5x^3y через интерфейс SPI со скоростью f CLK /4. Аргумент x ввести с PORTB, аргумент y ввести с PORTA. Использовать тактовый сигнал SCK положительной полярности, обработку данных производить по его переднему фронту. Микроконтроллер работает в режиме Master. Сделать проверку при X=04, Y=03. |
19 |
Составить алгоритм и написать программу для реализации следующей задачи: Передать результат функции z=5x+2y через интерфейс SPI со скоростью f CLK /4. Аргумент x ввести с PORTA, аргумент y ввести с PORTC. Использовать тактовый сигнал SCK положительной полярности, обработку данных производить по его переднему фронту. Микроконтроллер работает в режиме Master. Сделать проверку при X=04, Y=06. |
20 |
Составить алгоритм и написать программу для реализации следующей задачи: Передать результат функции z=3x^3y через интерфейс SPI со скоростью f CLK /4. Аргумент x ввести с PORTD, аргумент y ввести с PORTA. Использовать тактовый сигнал SCK положительной полярности, обработку данных производить по его переднему фронту. Микроконтроллер работает в режиме Master. Сделать проверку при X=02, Y=05. |
Задание 3. Оформить отчет по работе. Продемонстрировать отчет преподавателю.