МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Кафедра ЗІ
Лабороторна робота №1
Знайомство з інтегрованим середовищем розробки
AVR Studio та програмою симуляції Proteus.
Написання та відладка простих програм
для AVR-мікроконтролерів
з курсу
"МІКРОПРОЦЕСОРНІ ПРИСТРОЇ"
Варіант № 14
Мета роботи: ознайомитись з послідовністю створення та відладки програмно-апаратних засобів на основі мікроконтролерів сімейства AVR в програмах AVR Studio та Proteus 7.
Завдання:
1. Домашня підготовка до роботи
Вивчити теоретичний матеріал.
Вивчити основні властивості МК необхідні для виконання лабораторної роботи.
Підготовити програму функціонування охоронної системи згідно індивідуального завдання.
2. Виконати в лабораторії
Створити проект в AVR Studio, ввести свою програму, провести її асемблювання.
В режимі покрокової відладки переконатися в правильності роботи програми, перевірити дотримання заданих в завданні часових параметрів.
Відкрити файл LR_1.dsn в програмі Proteus, внести зміни у схему відповідно до свого індивідуального завдання, підключити до МК отриманий в AVR Studio hex-файл.
Запустити режим симуляції схеми та перевірити правильність функціонування охоронної системи у всіх режимах роботи. У випадку виявлення відхилень в роботі внести потрібні виправлення.
№
Кількість охоронних
шлейфів з НРЗ давачами
Кількість охоронних
шлейфів з НЗМ давачами
Виводи для підкл.
охоронних
шлейфів з НРЗ давачами
Виводи для підкл.
охоронних
шлейфів з НЗМ давачами
Період
опитування
шлейфів T_Scan,
с
Час постановки та зняття з охорони T_Alarm,
с
Частота
імпульсів сирени та світлодіода F_Blick,
Гц
Вивід для підкл. світлодіода
Вивід для підкл. сирени
14.
0
4
-//-
PD0, PD1, PD2, PD3
0.085
4.3
330
PB5
PB7
Лістинг програми:
.include <2313def.inc>
.def temp = r16
.def d_mask = r17
.def b_mask = r18
.def Delay1=r20
.def Delay2=r21
.def Delay3=r22
.equ T_Scan=509997 ; T_scan time 0.085 s
.equ T_Alarm=5159997 ; T_Alarm time 4.3 s
.equ T_Blick=3601 ; T_Blick time 1/330
.cseg
.org 0
ldi r16, 0xdf
out spl, r16 ; ініціалізація стеку
rcall InitIO ; ініціалізація вводів/виводів
;чеккаємо поки ввімкнуть кнопку сигналізації
in temp, PIND
bst temp, 4
brts check_turn_on
; перед постановкою на сигналізацію необхідно зачекати 4.3 секунди
ldi Delay1, low(T_Alarm) ; встановлюємо очікування
ldi Delay2, high(T_Alarm)
ldi Delay3, byte3(T_Alarm)
rcall Delay
; вимикаємо світлодіод
cbi PORTB, 5
ldi d_mask, 0b00001111
; опитуємо давачі
check_davach:
in temp, PIND
and temp, d_mask
brne Alarm
in temp, PIND ; перевіряємо, чи сигналізація ввімкнена
bst temp, 4
brts check_turn_on ; якщо перемикач вимкнено переходимо на початок
; затримка T_Scan
ldi Delay1, low(T_Scan)
ldi Delay2, high(T_Scan)
ldi Delay3, byte3(T_Scan)
rcall Delay
rjmp check_davach
; один з здавачів спрацював
Alarm:
; очікуємо вимкнення сигналізації
ldi Delay1, low(T_Alarm)
ldi Delay2, high(T_Alarm)
ldi Delay3, byte3(T_Alarm)
rcall Delay
; перевіряємо , чи її вимкнено
in temp, PIND
bst temp, 4
brtc Blick_Alarm ; якщо не вимкнено ввімкнути серену
; вимикаємо світлодіод
sbi PORTB, 5
rjmp check_turn_on
Blick_Alarm:
; змінюємо стан світлодіода
sbic PINB, 5 ; if cleared skip next
cbi PORTB, 5
sbis PINB, 5 ; if set skip next
sbi PORTB, 5
; змінюємо стан серени
sbic PINB, 7 ; if cleared skip next
cbi PORTB, 7
sbis PINB, 7 ; if set skip next
sbi PORTB, 7
; затримка
ldi Delay1, low(T_Blick)
ldi Delay2, high(T_Blick)
ldi Delay3, byte3(T_Blick)
rcall Delay
rjmp Blick_Alarm
InitIO: ; ініціалізація портів вводу/виводу
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 DDRD, 4 ; перемикач
sbi PORTD, 4
sbi DDRB, 5 ; світлодіод
sbi PORTB, 5
sbi DDRB, 7 ; серена
cbi PORTB, 7
ret
Delay:
subi Delay1, 1
sbci Delay2, 0
sbci Delay3, 0
brcc Delay
nop
ret
Розрахунки часових затримок:
Номер залікової книжки – 0609016. Отже, частота мікроконтролера – 6 МГц.
T_Scan:
T_Alarm:
F_Blick:
Схема симуляції в Proteus
Висновки: на даній лабораторній роботі я ознайомився з основними принципами
функціонування мікроконтролерів зокрема моделі AT90S2313 компанії AVR. Також я ознайомився з середовищем розробки AVR Studio та середовищем тестування мікропроцесорних пристроїв Proteus 7. Під час виконання роботи була побудована схема функціонування простої системи сигналізації на основі мікроконтролера моделі AT90S2313. Також було написано програму для мікроконтролера під цю систему сигналізації.