Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lab1

.docx
Скачиваний:
32
Добавлен:
15.06.2014
Размер:
71.93 Кб
Скачать

Федеральное Государственное Бюджетное Образовательное Учреждение Высшего Профессионального Образования

"Омский Государственный Технический Университет"

Кафедра "Автоматизация и робототехника"

Отчет о выполнении лабораторной работы №1

по дисциплине : "Микропроцессорные системы управления"

Выполнил:

студент гр. А-518

Тезин А.О.

Проверил:

ст. преподаватель:

Клевакин В. В.

Омск 2012

Цель работы:

Изучение интегрированной среды разработки AVR Studio.

Используемые команды:

Ldi Rd,K- загрузка константы в РОН

Out A,Rr – пересылка из РОН в РВВ

Ser Rd – установка всех разрядов РОН

Rcall – относительный выхов программы

Sbr Rd,k- установка разрядов в РОН

Brne k- переход по «не равно»

Ход работы:

  1. Создаем проект в AVR Studio.

Для создания нового проекта необходимо последовательно выбрать Project - New project. В окне Project Type выбираем ATMEL AVR Assembler, вводим имя проекта и его место расположения. Затем выбираем отладочную платформу (виртуальный отладчик) -AVR Simulator и модель микроконтроллера (AT90S8515).

  1. Набираем текст программы на Ассемблере

.include "8515def.inc" ; подключение внешней библиотеки с

; описанием символических имен и

; определением адресов регистров МК

cseg

.org 0

.def temp = r16 ; назначение имен временным регистрам

.def temp1 = r17

rjmp init ; вектор прерывания по включению питания

.org 20

init:

ldi temp, low(RAMEND) ; инициализация указателя стека

out spl, temp ; в конце внутреннего ОЗУ

ldi temp, high(RAMEND)

out sph, temp

ser temp ; установка разрядов temp в единицу

out DDRA, 0xFF ; конфигурируем порт А на вывод данных

main:

ser temp

out PORTA, temp ; выключить светодиоды

rcall delay ; вызов программы формировании задержки 1 с

clr temp ; temp =0x00 команда устанавливает все

; разряды регистра temp в ноль

out PORTA, 0x00 ; Включить светодиоды

rcall delay1 ; вызов программы формирования задержки 1с.

rjmp main

delay1:

ldi temp1, 255

d0: dec temp1

brne d0

ret

  1. Исправляем ошибки в программе при отладке

Для компиляции проекта необходимо последовательно нажать Build - Build или F7.

Программа выдает сообщение об ошибках (рис.1, рис 2)

Рис.1 сообщение об ошибках в проекте

Рис. 2 сообщения об ошибках в проекте

При нажатии на сообщение об ошибке программа показывает место, содержащее ее.

Код программы после исправления ошибок:

.include "8515def.inc"

.cseg

.org 0

.def temp = r16

.def temp1 = r17

rjmp init

.org 20

init:

ldi temp, low(RAMEND)

out spl, temp

ldi temp, high(RAMEND)

out sph, temp

ser temp

out DDRA, temp

main:

ser temp

out PORTA, temp

rcall delay1

clr temp

out PORTA, temp

rcall delay1

rjmp main

delay1:

ldi temp1, 255

d0: dec temp1

brne d0

ret

Запускаем компиляцию проекта (рис. 3)

Рис. 3 Сообщение об успешном завершении компиляции

  1. Запускаем программу в пошаговом режиме

Для этого выбираем Debug - Start Debugging. Затем нажимая на F11 или F10 можно в пошаговом режиме проверить правильность выполнения программы.

Результат можно посмотреть в окне I/O View. Изменение содержимого регистров можно посмотреть во вкладке Processor - Registers, или View - register, или на панели инструментов выбрать Toggle Watch Windows и ввести имя переменной для просмотра.

  1. Изменяем программу, таким образом чтобы светодиоды зажигались в последовательности бегущего огонька.

.include "8515def.inc"

.cseg

.org 0

.def temp = r16

.def temp1 = r17

rjmp init

.org 20

delay1:

ldi temp1, 20

d0: dec temp1

brne d0

ret

init:

ldi temp, low(RAMEND)

out spl, temp

ldi temp, high(RAMEND)

out sph, temp

ser temp

out DDRA, temp

rcall delay1

main:

clr temp

out PORTA, temp

sbr temp, 1

out PORTA, temp

rcall delay1

clr temp

out portA, temp

sbr temp,2

out PORTA, temp

rcall delay1

clr temp

out PORTA, temp

sbr temp,4

out PORTA, temp

rcall delay1

clr temp

out PORTA, temp

sbr temp,8

out PORTA, temp

rcall delay1

clr temp

out PORTA, temp

sbr temp,16

out PORTA, temp

rcall delay1

clr temp

out PORTA, temp

sbr temp,32

out PORTA, temp

rcall delay1

clr temp

out PORTA, temp

sbr temp,64

out PORTA, temp

rcall delay1

clr temp

out PORTA, temp

sbr temp,128

out PORTA, temp

rcall delay1

clr temp

out PORTA, temp

rjmp main

Заключение: В данной работе ознакомились с интегрированной средой разработки AVR Studio. Успешно был реализован алгоритм заданной программы.

Соседние файлы в предмете Микропроцессорная техника