lab1
.docxФедеральное Государственное Бюджетное Образовательное Учреждение Высшего Профессионального Образования
"Омский Государственный Технический Университет"
Кафедра "Автоматизация и робототехника"
Отчет о выполнении лабораторной работы №1
по дисциплине : "Микропроцессорные системы управления"
Выполнил:
студент гр. А-518
Тезин А.О.
Проверил:
ст. преподаватель:
Клевакин В. В.
Омск 2012
Цель работы:
Изучение интегрированной среды разработки AVR Studio.
Используемые команды:
Ldi Rd,K- загрузка константы в РОН
Out A,Rr – пересылка из РОН в РВВ
Ser Rd – установка всех разрядов РОН
Rcall – относительный выхов программы
Sbr Rd,k- установка разрядов в РОН
Brne k- переход по «не равно»
Ход работы:
-
Создаем проект в AVR Studio.
Для создания нового проекта необходимо последовательно выбрать Project - New project. В окне Project Type выбираем ATMEL AVR Assembler, вводим имя проекта и его место расположения. Затем выбираем отладочную платформу (виртуальный отладчик) -AVR Simulator и модель микроконтроллера (AT90S8515).
-
Набираем текст программы на Ассемблере
.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
-
Исправляем ошибки в программе при отладке
Для компиляции проекта необходимо последовательно нажать 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 Сообщение об успешном завершении компиляции
-
Запускаем программу в пошаговом режиме
Для этого выбираем Debug - Start Debugging. Затем нажимая на F11 или F10 можно в пошаговом режиме проверить правильность выполнения программы.
Результат можно посмотреть в окне I/O View. Изменение содержимого регистров можно посмотреть во вкладке Processor - Registers, или View - register, или на панели инструментов выбрать Toggle Watch Windows и ввести имя переменной для просмотра.
-
Изменяем программу, таким образом чтобы светодиоды зажигались в последовательности бегущего огонька.
.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. Успешно был реализован алгоритм заданной программы.