МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ
ДЕРЖАВНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
/
Знайомство з інтегрованим середовищем розробки AVR Studio та програмою симуляції Proteus
Лабораторна робота № 1
З курсу «Мікропроцесорні пристрої»
Львів 2010
Мета роботи – ознайомитись з послідовністю створення та відладки програмно-апаратних засобів на основі мікроконтролерів сімейства AVR в програмах AVR Studio та Proteus 7.
ЗАВДАННЯ
Домашня підготовка до роботи
1.Вивчити теоретичний матеріалю
2.Вивчити основні властивості МК необхідні для виконання лабораторної роботи.
3.Підготувати програму функціонування охоронної системи
Виконати в лабораторії
1.Створити проект в AVR Studio, ввести свою програму, провести її асемблювання.
2.В режимі покрокової відладки переконатися в правильності роботи програми.
3.Відкрити файл-схему у програмі Proteus, підключити до МК hex-файл.
4.Запустити режим симуляції схеми та перевірити правильність функціонування охоронної системи у всіх режимах роботи.
//
ТЕКСТ ПРОГРАМИ
.include <2313def.inc>
.def temp = r16
.def temp2 = r20
.def Delay_b1 = r17;
.def Delay_b2 = r18;
.def Delay_b3 = r19;
.equ T_Scan = 2400 ;не більше 16000000
.equ T_Alarm =0x563412 ;не більше 16000000
.equ T_Led = 49
.cseg
.org 0;
init:
ldi temp, low(RAMEND)
out SPL, temp
cbi DDRD, 0
sbi PORTD, 0
cbi DDRD, 1
sbi PORTD, 1
cbi DDRD,2
sbi PORTD, 2
cbi DDRD,3
sbi PORTD, 3
cbi DDRB, 0
sbi PORTB, 0
sbi DDRB, 5
sbi PORTB, 5
sbi DDRB,7
begin:
sbic PINB, 0 ;перевірка кнопки запуску
rjmp sb;
;затримка T_Alarm
;-------------------------------
ldi temp, BYTE3(T_Alarm);третій байт числа
push temp ;в стек
ldi temp, HIGH(T_Alarm);другий байт числа
push temp ;в стек
ldi temp, LOW(T_Alarm);перший байт числа
push temp ;в стек
nop ;коригуємо пустою командою
rcall delay
; ;------------------
cbi PORTB, 5 ;засвічуємо СД
a:
sbic PIND, 0 ;перевірка НЗ датчиків
rjmp b;
sbic PIND, 1 ;перевірка НЗ датчиків
rjmp b;
sbic PIND, 2 ;перевірка НЗ датчиків
rjmp b;
sbic PIND, 3 ;перевірка НЗ датчиків
rjmp b;
sbic PINB, 0 ;перевірка кнопки запуску
rjmp off;
;затримка T_Scan
;-------------------------------
ldi temp, BYTE3(T_Scan);третій байт числа
push temp ;в стек
ldi temp, HIGH(T_Scan);другий байт числа
push temp ;в стек
ldi temp, LOW(T_Scan);перший байт числа
push temp ;в стек
nop ;коригуємо пустою командою
nop ;коригуємо пустою командою
nop ;коригуємо пустою командою
nop ;коригуємо пустою командою
rcall delay;
; ;------------------
rjmp a;
b:
;затримка T_Alarm
;-------------------------------
ldi temp, BYTE3(T_Alarm);третій байт числа
push temp ;в стек
ldi temp, HIGH(T_Alarm);другий байт числа
push temp ;в стек
ldi temp, LOW(T_Alarm);перший байт числа
push temp ;в стек
nop ;коригуємо пустою командою
rcall delay;
sbic PINB, 0 ;перевірка кнопки запуску
rjmp off;
signal:
sbis PINB, 5 ;якщо викл СД
sbi PORTB, 5;то вкл
sbic PINB, 5 ;якщо вкл СД
cbi PORTB, 5;то викл
sbis PINB, 7 ;якщо викл СД
sbi PORTB, 7;то вкл
sbic PINB, 7 ;якщо вкл СД
cbi PORTB, 7;то викл
;затримка
ldi temp, BYTE3(T_Led);третій байт числа
push temp ;в стек
ldi temp, HIGH(T_Led);другий байт числа
push temp ;в стек
ldi temp, LOW(T_Led);перший байт числа
push temp ;в стек
nop ;коригуємо пустою командою
nop ;коригуємо пустою командою
nop ;коригуємо пустою командою
nop ;коригуємо пустою командою
rcall delay;
rjmp signal;
;-------------------------
off:
sbi PORTB, 5 ;виключаємо СД
rjmp begin;
;-------------------------
sb:
rjmp begin;
;--процедура затримки-----
delay:
pop temp
pop temp2
pop Delay_b1;
pop Delay_b2;
pop Delay_b3;
del_loop:
subi Delay_b1, 1;
sbci Delay_b2, 0;
sbci Delay_b3, 0;
brcc del_loop;
push temp2
push temp
ret
СХЕМА
/
ВИСНОВОК
На даній лаболаторній роботі я ознайомився з послідовністю створення та відладки програмно-апаратних засобів на основі мікроконтролерів сімейства AVR в програмах AVR Studio та Proteus 7.