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

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

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

Рік:
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:12-

Коментарі

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

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

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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