З В І Т

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

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

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

Рік:
2012
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Мікропроцесори

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІКТА кафедра ЗІ  З В І Т до лабораторної роботи №1 з навчальної дисципліни: «Мікропроцесори в системах ТЗІ» на тему: “Знайомство з інтегрованим середовищем розробки AVR Studio та програмою симуляції Proteus. Написання та відладка простих програм для AVR- мікроконтролерів” Варіант №1 Львів – 2012 Мета роботи: ознайомитись з послідовністю створення та відладки програмно-апаратних засобів на основі мікроконтролерів сімейства AVR у програмах AVR Studio та Proteus 7. Текст завдання 1. Створити проект в AVR Studio, ввести свою програму, провести її асемблювання. 2. В режимі покрокової відладки переконатися в правильності роботи програми, перевірити дотримання заданих в завданні часових параметрів. 3. Відкрити файл LR_1.dsn в програмі Proteus, внести зміни у схему відповідно до свого індивідуального завдання, підключити до МК отриманий в AVR Studio hex-файл. 4. Запустити режим симуляції схеми та перевірити правильність функціонування охоронної системи у всіх режимах роботи. У випадку виявлення відхилень в роботі внести потрібні виправлення. Лістинг програми .include "2313def.inc" ; підключаємо заголовочний файл; ;Робочий регістр .def temp = r16 ; регістри затримки .def Delay1 = r17 .def Delay2 = r18 .def Delay3 = r19 ;//////////////////////////////////////////////////////////////////////////////////// .equ SHLEIF_NO1 = PB3 ; Вивід для підключення Normal Open шлейфу (НРЗ) .equ SHLEIF_NO2 = PB5 ; Вивід для підключення Normal Open шлейфу(НРЗ) .equ SHLEIF_NC1 = PD2 ; Вивід для підключення Normal Closed шлейфу(НЗМ) .equ SHLEIF_NC2 = PD4 ; Вивід для підключення Normal Closed шлейфу (НЗМ) .equ LED = PB1 ; Вивід для підключення світлодіоду .equ SWITCH = PD0 ; Вивід для підключення секретної кнопки ;//////////////////////////////////////////////////////////////////////////////////// ; Розрахунок часових затримок .equ FCLK = 4000000 ; Тактова частота МК .equ N_Alarm = (FCLK*(3.2) - 15)/5 ; Затримка 3.2 секунди .equ N_Blick = (FCLK/15 - 15)/5 ; Частота мигання 15 Гц ;//////////////////////////////////////////////////////////////////////////////////// ; Сегмент коду .cseg ; Початкова адреса .org 0 ldi temp, 0xDF ; Ініціалізація out SPL, temp ; стеку rcall Pin_Init ; Налаштування виводів МК No_Work: ; Режим очікування in temp, PIND ; Прочитати стан секретної кнопки andi temp, (1<<SWITCH) ; Виділити розряд РВЗ 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, PINB ; прочитати стан шлейфу 0 andi temp, (1<<SHLEIF_NO1) ; Виділити розряд РВ3 brne Next_1 ; Якщо немає спрацювання, перейти на Next_1 rjmp Work ; Якщо є спрацювання, перейти на Work Next_1: in temp, PINB ; прочитати стан шлейфу 1 andi temp, (1<<SHLEIF_NO2) ; Виділити розряд РВ5 brne Next_2 ; Якщо немає спрацювання, перейти на Next_2 rjmp Work ; Якщо є спрацювання, перейти на Work Next_2: in temp, PIND ; прочитати стан шлейфу 3 andi temp, (1<< SHLEIF_NC1) ; Виділити розряд PD2 brne Work ; Якщо є спрацювання, перейти на Work in temp, PIND ; прочитати стан шлейфу 4 andi temp, (1<< SHLEIF_NC2) ; Виділити розряд PD4 brne Work ; Якщо є спрацювання, перейти на Work ; Якщо шлейфи не активні: in temp, PIND ; Прочитати стан секретної кнопки andi temp, (1<<SWITCH) ; Кнопка натиснута? breq Next_3 ; якщо так то перейти на Next_3 sbi PORTB, LED ; Включити світлодіод сигналізації rjmp No_Work ; Перейти в режим очікування Next_3: 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_NO та SHLEIF_NC без підтягуючих резисторів cbi PORTB, SHLEIF_NO1 cbi PORTB, SHLEIF_NO2 cbi PORTD, SHLEIF_NC1 cbi PORTD, SHLEIF_NC2 ; Налаштувати виводи SHLEIF_NO та SHLEIF_NC на ввід cbi DDRB, SHLEIF_NO1 cbi DDRB, SHLEIF_NO2 cbi DDRD, SHLEIF_NC1 cbi DDRD, SHLEIF_NC2 ; Налаштувати вивід LED на вивід з логічною 1 на виході sbi PORTB, LED sbi DDRB, LED ; Налаштувати вивід SWITCH на ввід з підтягуючим резистором sbi PORTD, SWITCH cbi DDRD, SWITCH ret ;Поверненння з підпрограми Схема симуляції в Proteus  Висновок На даній лабораторній роботі, ми ознайомилися з послідовністю створення та відладки програмно-апаратних засобів на основі мікроконтролерів сімейства AVR у програмах AVR Studio та Proteus 7.
Антиботан аватар за замовчуванням

16.01.2013 12:01-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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