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

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

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

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

Рік:
2015
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Програмування
Група:
БІ 21

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІКТА Кафедра БІТ ЗВІТ до лабораторної роботи №1 з курсу: «Технології програмування» на тему: «Знайомство з інтегрованим середовищем розробки AVR Studio та програмою симуляції Proteus. Написання та відладка простих програм для AVR-мікроконтролерів» МЕТА РОБОТИ Ознайомитися з послідовністю створення та вікладки програмно-апаратних засобів на основі мікроконтролерів сімейства AVR у програмах AVR Studio та Proteus 7 ЗАВДАННЯ Створити проект в AVR Studio , ввести свою програму , провести її асемблювання В режимі покрокової відкладки переконатися в правильності роботи програми, перевірити дотримання заданих в завданні часових параметрів Відкрити файл LR_1.dsn в програмі Proteus , внести зміни в схему відповідно до свого індивідуального завдання , підключити до МК отриманий в AVR Studio hex-файл Запустити режим симуляції схеми та перевірити правильність функцонування охоронної системи у всіх режимах роботи. У випадку виявлення відхилень в роботі внести потрібні виправлення. № Кількість охоронних шлейфів з НРЗ давачами Кількість охоронних шлейфів з НЗМ давачами Виводи для підкл. охоронних шлейфів з НРЗ давачами Виводи для підкл. охоронних шлейфів з НЗМ давачами Час постановки та зняття з охорони T_Alarm, с Частота блимання світлодіода F_Blick, Гц Вивід для підкл. світлодіода  4 2 2 PB3, PB5 PD0, PD4 2.5 12 PD3   КОД ПРОГРАМИ ; ******************************************* ; Автор: Мовчан Б. М. * ; Дата: 01.11.2015 * ; Версія: 1.0 * ; Ім'я файлу: LR_1.asm * ; Тип МК: AT90S2313 * ; Тактова частота: 4 MГц * ; ******************************************* ;//////////////////////////////////////////////////////////////////////////////////// include "2313def.inc" ; Підключаємо заголовочний файл ; Робочий регістр .def temp = r16 ; Регістри затримки .def Delay1 = r17 .def Delay2 = r18 .def Delay3 = r19 ;//////////////////////////////////////////////////////////////////////////////////// .equ SHLEIF_SHL0 = PB3 ; Вивід для підключення Normal Open шлейфу (НРЗ - SHL0) .equ SHLEIF_SHL1 = PB5 ; Вивід для підключення Normal Open шлейфу (НРЗ - SHL1) .equ SHLEIF_SHL2 = PD0 ; Вивід для підключення Normal Closed шлейфу (НЗМ - SHL2) .equ SHLEIF_SHL3 = PD4 ; Вивід для підключення Normal Closed шлейфу (НЗМ - SHL3) .equ LED = PD3 ; Вивід для підключення світлодіоду .equ SWITCH = PD6 ; Вивід для підключення секретної кнопки ;//////////////////////////////////////////////////////////////////////////////////// ; Розрахунок часових затримок .equ FCLK = 3000000 ; Тактова частота МК .equ N_Alarm = ((FCLK*25/10) - 15)/5 ; Затримка 2.5 секунди .equ N_Blick = 12 ; Частота мигання 12 Гц ;//////////////////////////////////////////////////////////////////////////////////// ; Сегмент коду .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 PORTD, LED ; Включити світлодіод сигналізації ; Перейти в режим сканування охоронних шлейфів Start: in temp, PINB ; Прочитати стан шлейфу 0 andi temp, (1<<SHLEIF_SHL0) ; Виділити розряд РВ0 brne Next_1 ; Якщо немає спрацювання, перейти на Next_1 rjmp Work ; Якщо є спрацювання, перейти на Work Next_1: in temp, PINB ; Прочитати стан шлейфу 0 andi temp, (1<<SHLEIF_SHL1) ; Виділити розряд РВ0 brne Next_2 ; Якщо немає спрацювання, перейти на Next_1 rjmp Work ; Якщо є спрацювання, перейти на Work Next_2: in temp, PIND ; Прочитати стан шлейфу 0 andi temp, (1<<SHLEIF_SHL2) ; Виділити розряд РВ0 breq Next_3 ; Якщо немає спрацювання, перейти на Next_1 rjmp Work ; Якщо є спрацювання, перейти на Work Next_3: in temp, PIND ; Прочитати стан шлейфу 1 andi temp, (1<< SHLEIF_SHL3) ; Виділити розряд РВ1 brne Work ; Якщо є спрацювання, перейти на Work ; Якщо шлейфи не активні: in temp, PIND ; Прочитати стан секретної кнопки andi temp, (1<<SWITCH) ; Кнопка натиснута? breq Next_4 ; Якщо так, перейти на Next_2 sbi PORTD, LED ; Виключити світлодіод сигналізації rjmp No_Work ; Перейти в режим очікування Next_4: 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 PORTD, LED ; Виключити світлодіод сигналізації rjmp No_Work ; і перейти в режим очікування ; Сигналізація спрацювала - режим тривоги Alarm: in temp, PORTD ; Прочитати стан світлодіоду ldi Delay1, (1<<LED) eor temp, Delay1 ; Інвертувати стан світлодіоду out PORTD, 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_NO та SHLEIF_NC без підтягуючих резисторів cbi PORTB, SHLEIF_SHL0 cbi PORTB, SHLEIF_SHL1 cbi PORTD, SHLEIF_SHL2 cbi PORTD, SHLEIF_SHL3 ; Налаштувати виводи SHLEIF_NO та SHLEIF_NC на ввід cbi DDRB, SHLEIF_SHL0 cbi DDRB, SHLEIF_SHL1 cbi DDRD, SHLEIF_SHL2 cbi DDRD, SHLEIF_SHL3 ; Налаштувати вивід LED на вивід з логічною 1 на виході sbi PORTD, LED sbi DDRD, LED ; Налаштувати вивід SWITCH на ввід з підтягуючим резистором sbi PORTD, SWITCH cbi DDRD, SWITCH ret ; Повернення з підпрограми ;//////////////////////////////////////////////////////////////////////////////////// СХЕМА СИМУЛЯЦІЇ PROTEUS  ВИСНОВОК В даній лабораторній роботі я ознайомився з середовищем Proteus та AVR Studio . Синтезував свою першу схему згідно зі своїм варіантом. Вніс відповідні корективи до програми згідно свого варіанту. Також ознайомилися з принципом роботи охоронної системи.
Антиботан аватар за замовчуванням

09.12.2015 10:48

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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