МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Кафедра ЗІ
Лабороторна робота №1
Знайомство з інтегрованим середовищем розробки
AVR Studio та програмою симуляції Proteus.
Написання та відладка простих програм
для AVR-мікроконтролерів
з курсу
"МІКРОПРОЦЕСОРНІ ПРИСТРОЇ"
Варіант № 27
Мета роботи: ознайомитись з послідовністю створення та відладки програмно-апаратних засобів на основі мікроконтролерів сімейства AVR в програмах AVR Studio та Proteus 7.
Завдання:
1. Домашня підготовка до роботи
Вивчити теоретичний матеріал.
Вивчити основні властивості МК необхідні для виконання лабораторної роботи.
Підготовити програму функціонування охоронної системи згідно індивідуального завдання.
2. Виконати в лабораторії
Створити проект в AVR Studio, ввести свою програму, провести її асемблювання.
В режимі покрокової відладки переконатися в правильності роботи програми, перевірити дотримання заданих в завданні часових параметрів.
Відкрити файл LR_1.dsn в програмі Proteus, внести зміни у схему відповідно до свого індивідуального завдання, підключити до МК отриманий в AVR Studio hex-файл.
Запустити режим симуляції схеми та перевірити правильність функціонування охоронної системи у всіх режимах роботи. У випадку виявлення відхилень в роботі внести потрібні виправлення.
№
Кількість охоронних
шлейфів з НРЗ давачами
Кількість охоронних
шлейфів з НЗМ давачами
Виводи для підкл.
охоронних
шлейфів з НРЗ давачами
Виводи для підкл.
охоронних
шлейфів з НЗМ давачами
Період
опитування
шлейфів T_Scan,
с
Час постановки та зняття з охорони T_Alarm,
с
Частота
імпульсів сирени та світлодіода F_Blick,
Гц
Вивід для підкл. світлодіода
Вивід для підкл. сирени
2
2
PB1, PB4
PD1, PD4
0.08
5.8
560
PB5
PD3
Лістинг програми:
.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=240000; T_scan time 0.08 s
.equ T_Alarm=3479907; T_Alarm time 5.8 s
.equ T_Blick=1067; T_Blick time 1/560
.cseg
.org 0
ldi r16, 0xdf
out spl, r16 ; ініціалізація стеку
rcall InitIO ; ініціалізація вводів/виводів
; Чекаємо доки ввімкнуть кнопку сигналізації
check_turn_on:
in temp, PIND
bst temp, 0
brts check_turn_on
; Перед постановкою на охорону необхідно почекати 5.8 сек
ldi Delay1, low(T_Alarm) ; виставляємо час очікуваня
ldi Delay2, high(T_Alarm)
ldi Delay3, byte3(T_Alarm)
rcall Delay
; Вмикаємо світлодіод
cbi PORTB, 5
ldi d_mask, 0b00010010
ldi b_mask, 0b00010010
; Опитуємо давачі
check_davach:
in temp, PINB
eor temp, b_mask
brne Alarm
in temp, PIND
and temp, d_mask
brne Alarm
in temp, PIND ; перевіряємо чи сигналізація ввімкнена
bst temp, 0
brts check_turn_on ; якщо перемикач вимкнено переходимо на початак
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, 0
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 PIND, 3 ; if cleared skip next
cbi PORTD, 3
sbis PIND, 3 ; if set skip next
sbi PORTD, 3
; затримка
ldi Delay1, low(T_Blick)
ldi Delay2, high(T_Blick)
ldi Delay3, byte3(T_Blick)
rcall Delay
rjmp Blick_Alarm
InitIO: ; Ініціалізація портів вводу/виводу
cbi DDRD, 1
sbi PORTD, 1
cbi DDRD, 4
sbi PORTD, 4
cbi DDRB, 1
sbi PORTB, 1
cbi DDRB, 4
sbi PORTB, 4
cbi DDRD, 0 ; перемикач
sbi PORTD, 0
sbi DDRB, 5 ; Світло діод
sbi PORTB, 5
sbi DDRD, 3 ; серена
cbi PORTD, 3
ret
Delay:
subi Delay1, 1
sbci Delay2, 0
sbci Delay3, 0
brcc Delay
nop
ret
Розрахунки часових затримок:
Номер залікової книжки – 0609083. Отже, частота мікроконтролера – 3 МГц.
T_Scan= = 240000
T_Alarm= = 3479907
T_Blick= = 1067
Схема симуляції в Proteus
Висновки: на даній лабораторній роботі я ознайомилася з основними принципами
функціонування мікроконтролерів зокрема моделі AT90S2313 компанії AVR. Також я ознайомилася з середовищем розробки AVR Studio та середовищем тестування мікропроцесорних пристроїв Proteus 7. Під час виконання роботи була побудована схема функціонування простої системи сигналізації на основі мікроконтролера моделі AT90S2313. Також було написано програму для мікроконтролера під цю систему сигналізації.