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

Лабораторная работа №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. Оформить отчет по работе. Продемонстрировать отчет преподавателю.