МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА"
ІНСТИТУТ КОМП’ЮТЕРНИХ ТЕХНОЛОГІЙ, АВТОМАТИКИ ТА МЕТРОЛОГІЇ
КАФЕДРА ”ЗАХИСТ ІНФОРМАЦІЇ”
Звіт
до лабораторної роботи № 1
з курсу: "Мікропроцесори в системах технічного захисту інформації"
на тему: “Знайомство з інтегрованим середовищем розробки AVR Studio та програмою симуляції Proteus. Написання та відладка простих програм для AVR-мікроконтролерів”
Варіант – 17
Львів – 2010р.
Мета роботи: Ознайомитись з послідовністю створення та відладки програмно-апаратних засобів на основі мікроконтролерів сімейства AVR у програмах AVR Studio та Proteus 7.
Повний текст завдання:
Домашня підготовка до роботи:
Вивчити теоретичний матеріал.
Вивчити основні властивості МК необхідні для виконання лабораторної роботи.
Підготувати програму функціонування охоронної системи згідно індивідуального завдання у табл. 1.
Виконання в лабораторії:
Створити проект в AVR Studio, ввести свою програму, провести її асемблювання.
В режимі покрокової відладки переконатися в правильності роботи програми, перевірити дотримання заданих в завдання часових параметрів.
Відкрити файл LR_1.dsn в програмі Proteus, внести зміни у схему відповідно до свого індивідуального завдання, підключити до МК отриманий в AVR Studio hex-файл.
Запустити режим симуляції схеми та перевірити правильність функціонування охоронної системи у всіх режимах роботи. У випадку виявлення відхилень в роботі внести потрібні виправлення.
Табл. 1.
№
Кількість охоронних шлейфів з НРЗ давачами
Кількість охоронних шлейфів з НЗМ давачами
Виводи для підкл. охоронних шлейфів з НРЗ давачами
Виводи для підкл. охоронних шлейфів з НЗМ давачами
Час постановки та зняття з охорони T_Alarm, с
Частота блимання світлодіода F_Blick, Гц
Вивід для підкл. світлодіода
17
1
2
PD2
PB2, PB6
2.1
14
PD1
Лістинг програми одержаної в AVR Studio та необхідні розрахунки:
.include "2313def.inc" ; ï³äêëþ÷àºìî çàãîëîâî÷íèé ôàéë
; Ðîáî÷èé ðåã³ñòð
.def temp = r16
; Ðåã³ñòðè çàòðèìêè
.def Delay1 = r17
.def Delay2 = r18
.def Delay3 = r19
;////////////////////////////////////////////////
.equ SHLEIF_NO = PD2 ; Âèâ³ä äëÿ ï³äêëþ÷åííÿ Normal Open øëåéôó (ÍÐÇ)
.equ SHLEIF_NC_1 = PB2 ; Âèâ³ä äëÿ ï³äêëþ÷åííÿ Normal Closed øëåéôó (ÍÇÌ)
.equ SHLEIF_NC_2 = PB6 ; Âèâ³ä äëÿ ï³äêëþ÷åííÿ Normal Closed øëåéôó (ÍÇÌ)
.equ LED = PD1 ; Âèâ³ä äëÿ ï³äêëþ÷åííÿ ñâ³òëîä³îäó
.equ SWITCH = PD0 ; Âèâ³ä äëÿ ï³äêëþ÷åííÿ ñåêðåòíî¿ êíîïêè
;////////////////////////////////////////////////
; Ðîçðàõóíîê ÷àñîâèõ çàòðèìîê
.equ FCLK = 7000000 ; Òàêòîâà ÷àñòîòà ÌÊ
.equ T_Alarm = (FCLK * 2.1 - 15)/5 ; Çàòðèìêà 2.1 Ñåêóíäè
.equ F_Blick = (FCLK / 14 - 15)/5 ; ×àñòîòà ìèãàííÿ 14 Ãö
;////////////////////////////////////////////////
; Ñåãìåíò êîäó
.cseg
; Ïî÷àòêîâà àäðåñà
.org 0
ldi temp, 0xDF ; ²í³ö³àë³çàö³ÿ
out SPL, temp ; ñòåêó
rcall Pin_Init ; Íàëàøòóâàííÿ âèâîä³â ÌÊ
No_Work: ; Ðåæèì î÷³êóâàííÿ
in temp, PIND ; Ïðî÷èòàòè ñòàí ñåêðåòíî¿ êíîïêè
andi temp, (1<<SWITCH) ; Âèä³ëèòè ðîçðÿä PD0
brne No_Work ; ßêùî íå íàòèñíóòà, òî ïåðåéòè íà No_Work
; Ïî÷åêàòè ÷àñ íåîáõ³äíèé äëÿ âèõîäó ç îá'ºêòó
Loop:
ldi Delay1, low(T_Alarm)
ldi Delay2, high(T_Alarm)
ldi Delay3, byte3(T_Alarm)
rcall Delay ; Âèêëèê ï³äïðîãðàìè ÷àñîâî¿ çàòðèìêè
; Ðåæèì îõîðîíè
cbi PORTD, LED ; Âêëþ÷èòè ñâ³òëîä³îä ñèãíàë³çàö³¿
; Ïåðåéòè â ðåæèì ñêàíóâàííÿ îõîðîííèõ øëåéô³â
Start:
in temp, PIND ; Ïðî÷èòàòè ñòàí øëåéôó 0
andi temp, (1<<SHLEIF_NO) ; Âèä³ëèòè ðîçðÿä PB0
brne Next_1 ; ßêùî íåìຠñïðàöþâàííÿ, òî ïåðåéòè íà Next_1
rjmp Work ; ßêùî º ñïðàöþâàííÿ, ïåðåéòè íà Work
Next_1:
in temp, PINB ; Ïðî÷èòàòè ñòàí øëåéôó 1
andi temp, (1<<SHLEIF_NC_1) ; Âèä³ëèòè ðîçðÿä PB2
brne Work ; ßêùî º ñïðàöþâàííÿ, ïåðåéòè íà Work
rjmp Next_2
Next_2:
in temp, PINB ; Ïðî÷èòàòè ñòàí øëåéôó 2
andi temp, (1<<SHLEIF_NC_2) ; Âèä³ëèòè ðîçðÿä PB6
brne Work ; ßêùî º ñïðàöþâàííÿ, ïåðåéòè íà Work
; ßêùî øëåéôè íå àêòèâí³:
in temp, PIND ; Ïðî÷èòàòè ñòàí ñåêðåòíî¿ êíîïêè
andi temp, (1<<SWITCH) ; Êíîïêà íàòèñíóòà?
breq Next_3 ; ßêùî òàê, ïåðåéòè íà Next_3
sbi PORTD, LED ; Âèêëþ÷èòè ñâ³òëîä³îä ñèãíàë³çàö³¿
rjmp No_Work ; Ïåðåéòè â ðåæèì î÷³êóâàííÿ
Next_3:
rjmp Start ; Ïîâòîðèòè öèêë îïèòóâàííÿ
; Ïî÷åêàòè ÷àñ íåîáõ³äíèé äëÿ â³äêëþ÷åííÿ ñèãíàë³çàö³¿
Work:
ldi Delay1, low(T_Alarm)
ldi Delay2, high(T_Alarm)
ldi Delay3, byte3(T_Alarm)
rcall Delay
; ×àñ âè÷åðïàíî - ïåðåâ³ðèòè ñòàí ñåêðåòíî¿ êíîïêè
in temp, PIND ; Ïðî÷èòàòè ñòàí ñåêðåòíî¿ êíîïêè
andi temp, (1<<SWITCH) ; Êíîïêà íàòèñíóòà (çíÿòî ç îõîðîíè)?
breq Alarm ; ßêùî í³, ïåðåéòè íà Alarm
; Îõîðîíà â÷àñíî â³äêëþ÷åíà
sbi PORTD, LED ; Âèêëþ÷èòè ñâ³òëîä³îä ñèãíàë³çàö³¿
rjmp No_Work ; ³ ïåðåéòè â ðåæèì î÷³êóâàííÿ
; Ñèãíàë³çàö³ÿ ñïðàöþâàëà - ðåæèì òðèâîãè
Alarm:
in temp, PORTD ; Ïðî÷èòàòè ñòàí ñâ³òëîä³îäó
ldi Delay1, (1<<LED)
eor temp, Delay1 ; ²íâåðòóâàòè ñòàí ñâ³òëîä³îäó
out PORTD, temp ; Âèâåñòè â PORT_LED
ldi Delay1, low(F_Blick) ; Çàòðèìêà
ldi Delay2, high(F_Blick)
ldi Delay3, byte3(F_Blick)
rcall Delay
rjmp Alarm ; Ïåðåéòè íà ïî÷àòîê
;/////////////////////////////////////////////////////
; ϳäïðîãðàìà ÷àñîâî¿ çàòðèìêè
Delay:
subi Delay1, 1
sbci Delay2, 0
sbci Delay3, 0
brcc Delay
nop
ret
;//////////////////////////////////////////////////
; ϳäïðîãðàìà ³í³ö³àë³çàö³¿ âèâîä³â ÌÊ
Pin_Init:
; Íàëàøòóâàòè âèâîäè SHLEIF_NO òà SHLEIF_NC áåç ï³äòÿãóþ÷èõ ðåçèñòîð³â
cbi PORTD, SHLEIF_NO
cbi PORTB, SHLEIF_NC_1
cbi PORTB, SHLEIF_NC_2
; Íàëàøòóâàòè âèâîäè SHLEIF_NO òà SHLEIF_NC íà ââ³ä
cbi DDRD, SHLEIF_NO
cbi DDRB, SHLEIF_NC_1
cbi DDRB, SHLEIF_NC_2
; Íàëàøòóâàòè âèâ³ä LED íà âèâ³ä ç ëîã³÷íîþ 1 íà âèõîä³
sbi PORTD, LED
sbi DDRD, LED
; Íàëàøòóâàòè âèâ³ä SWITCH íà ââ³ä ç ï³äòÿãóþ÷èì ðåçèñòîðîì
sbi PORTD, SWITCH
cbi DDRD, SWITCH
ret ; Ïîâåðíåííÿ ç ï³äïðîãðàìè
;////////////////////////////////////////////////////
Схема симуляції в Proteus:
Висновок:
Виконавши лабораторну роботу ми ознайомились з послідовністю створення та відладки програмно-апаратних засобів на основі мікроконтролерів сімейства AVR у програмах AVR Studio та Proteus 7.
AVR Studio 4 є інтегрованим середовищем розробки для написання та відлагодження програмного забезпечення мікрокотролерів сімейства AVR. AVR Studio 4 надає засоби управління проектами, редагування та асемблювання вихідних кодів, підтримки мов високого рівня C/C++. Також AVR Studio 4 дає змогу проводити симуляцію роботи програми, програмування кристалу мікроконтролера, здійснювати апаратну відладку.
Програма-симулятор Proteus частково дозволяє вирішити задачу контролю МК при взаємодії з зовнішніми пристроями за допомогою створення електричної схеми з МК та здійснення симуляції її роботи.
В даній лабораторній роботі ми вивчили основи побудови охоронних систем на базі МК, загальні принципи використання охоронних давачів, елементів управління та індикації та принципи керування мікроконтролером роботою системи.