DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Знайомство з інтегрованим середовищем розробки AVR Studio та програмою симуляції Proteus. Написання та відлатка простих програм для AVR-мікроконтролерів

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКТА
Факультет:
Захисту інформації
Кафедра:
Захист інформації

Інформація про роботу

Рік:
2017
Тип роботи:
Лабораторна робота
Предмет:
Мікропроцесори в системах технічного захисту інформації
Варіант:
11

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІКТА Кафедра «Захист інформації»  ЗВІТ про виконання лабораторної роботи №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, і також написали та відладили програму охоронної сигналізації з данними параметрами
Антиботан аватар за замовчуванням

22.12.2017 00:21

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!