МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
Кафедра «Захист інформації»
ЗВІТ
про виконання лабораторної роботи №1
з курсу “Мікропроцесори в системах технічного захисту інформації ”
Знайомство з інтегрованим середовищем розробки AVR Studio та програмою симуляції Proteus. Написання та відлатка простих програм для AVR-мікроконтролерів
Мета роботи – ознайомитись з послідовністю створення та відладки програмно-апаратних засобів на основі мікроконтролерів сімейства AVR в програмах AVR Studio та Proteus 7.
Завдання
Написати та відладити програму охоронної сигналізації з такими параметрами
Тактова частота рівна 6 Мгц
Блок-схема роботи охоронної системи
Текст програми
.include "2313def.inc" ; Підключаємо заголовочний файл
; Робочий регістр
.def temp = r16
; Регістри затримки
.def Delay1 = r17
.def Delay2 = r18
.def Delay3 = r19
;//////////////////////////////////////////////////////////////
.equ SHLEIF_NC1 = PD3 ; Вивід для підключення Normal Closed шлейфу (НЗМ)
.equ SHLEIF_NC2 = PB0 ; Вивід для підключення Normal Closed шлейфу (НЗМ)
.equ LED = PB6 ; Вивід для підключення світлодіоду
.equ SWITCH = PD0 ; Вивід для підключення секретної кнопки
;//////////////////////////////////////////////////////////////
; Розрахунок часових затримок
.equ FCLK = 6000000 ; Тактова частота МК
.equ N_Alarm = (FCLK*3/10 - 15)/5 ; Затримка 3 секунди
.equ N_Blick = (FCLK/6 - 15)/5 ; Частота мигання 6 Гц
;///////////////////////////////////////////////////////////////
; Сегмент коду
.cseg
; Початкова адреса
.org 0
ldi temp, 0xDF ; Ініціалізація
out SPL, temp ; стеку
rcall Pin_Init ; Налаштування виводів МК
No_Work: ; Режим очікування
in temp, PIND ; Прочитати стан секретної кнопки
andi temp, (1<<SWITCH) ; Виділити розряд РВ3
brne No_Work ; Якщо не натиснута, то перейти на No_Work
; Почекати час необхідний для виходу з об'єкту
Loop:
ldi Delay1, low(N_Alarm)
ldi Delay2, high(N_Alarm)
ldi Delay3, byte3(N_Alarm)
rcall Delay ; Виклик п/п часової затримки
; Режим охорони
cbi PORTB, LED ; Включити світлодіод сигналізації
; Перейти в режим сканування охоронних шлейфів
Start:
in temp, PIND ; Прочитати стан шлейфу 1
andi temp, (1<< SHLEIF_NC1) ; Виділити розряд РВ3
breq Next_1 ; Якщо є спрацювання, перейти
rjmp Work
Next_1:
in temp, PINB ; Прочитати стан шлейфу 1
andi temp, (1<< SHLEIF_NC2) ; Виділити розряд РВ4
brne Work
; Якщо шлейфи не активні:
in temp, PIND ; Прочитати стан секретної
andi temp, (1<<SWITCH) ; Кнопка натиснута?
breq Next_2 ; Якщо так, перейти на Next_2
sbi PORTB, LED ; Виключити світлодіод сигналізації
rjmp No_Work ; Перейти в режим очікування
Next_2:
rjmp Start
; Почекати час необхідний для відключення сигналізації
Work:
ldi Delay1, low(N_Alarm)
ldi Delay2, high(N_Alarm)
ldi Delay3, byte3(N_Alarm)
rcall Delay
; Час вичерпано – перевірити стан секретної кнопки
in temp, PIND ; Прочитати стан секретної
andi temp, (1<<SWITCH) ; Кнопка натиснута (знято з
breq Alarm ; Якщо ні, перейти на Alarm
; Охорона вчасно відключена
sbi PORTB, LED ; Виключити світлодіод сигналізації
rjmp No_Work ; і перейти в режим очікування
; Сигналізація спрацювала – режим тривоги
Alarm:
in temp, PORTB ; Прочитати стан світлодіоду
ldi Delay1, (1<<LED)
eor temp, Delay1 ; Інвертувати стан світлодіоду
out PORTB, temp ; Вивести в PORT_LED
ldi Delay1, low(N_Blick) ; Затримка
ldi Delay2, high(N_Blick)
ldi Delay3, byte3(N_Blick)
rcall Delay
rjmp Alarm ; Перейти на початок
;//////////////////////////////////////////////////////////////
; Підпрограма часової затримки
Delay:
subi Delay1, 1
sbci Delay2, 0
sbci Delay3, 0
brcc Delay
nop
ret
;//////////////////////////////////////////////////////////////
; Підпрограма ініціалізації виводів МК
Pin_Init:
; Налаштувати виводи SHLEIF_NC без підтягуючих резисторів
cbi PORTD,SHLEIF_NC1
cbi PORTB,SHLEIF_NC2
; Налаштувати виводи SHLEIF_NC на ввід
cbi DDRD,SHLEIF_NC1
cbi DDRB,SHLEIF_NC2
; Налаштувати вивід LED на вивід з логічною 1 на виході
sbi PORTB,LED
sbi DDRB,LED
; Налаштувати вивід SWITCH на ввід з підтягуючим резистором
sbi PORTD,SWITCH
cbi DDRD,SWITCH
ret ; Повернення з підпрограми
Схема симуляції
Висновок: на цій лабораторній роботи ми ознайомились з послідовністю створення та відладки програмно-апаратних засобів на основі мікроконтролерів сімейства AVR в програмах AVR Studio та Proteus 7, і також написали та відладили програму охоронної сигналізації з данними параметрами