Лабораторна робота № 3

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

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

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

Рік:
2010
Тип роботи:
Лабораторна робота
Предмет:
Мікропроцесори
Група:
ІБ - 43

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

МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ ДЕРЖАВНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»  Побудова інфрачервоних детекторів руху на AVR-мікроконтролерах Лабораторна робота № 3 З курсу «Мікропроцесорні пристрої» Львів 2010 Мета роботи – ознайомитись з побудовою інфрачервоних детекторів руху і їх програмно апаратною реалізацією на AVR-мікроконтролерах. ЗАВДАННЯ Домашня підготовка до роботи 1.Вивчити теоретичний матеріал. 2.Вивчити основні властивості МК необхідні для виконання лабораторної роботи. 3.Підготувати програму функціонування охоронної системи Виконати в лабораторії 1.Створити проект в AVR Studio, ввести свою програму, провести її асемблювання. 2.В режимі покрокової відладки переконатися в правильності роботи програми. 3.Відкрити файл-схему у програмі Proteus, підключити до МК hex-файл. 4.Запустити режим симуляції схеми та перевірити правильність функціонування охоронної системи у всіх режимах роботи.  ТЕКСТ ПРОГРАМИ .include "2313def.inc" .def temp = r16 .def temp2 = r20 .equ LED = 1 .equ DOUT = 0 .equ SCLK = 1 .equ CS = 2 .equ SHDN = 3 .def Delay_b1 = r17; .def Delay_b2 = r18; .def Delay_b3 = r19; .def Result_l=R21 .def Result_h=R22 .equ T_Scan = 1000 .equ T_Led =99900 .equ T_Start = 49 .equ N = 2000; .equ V_N = 0x0339 .equ V_P = 0x4511 .cseg ;--адреси переривань--- .org 0 rjmp init; .org 0x004 rjmp Timer; ;--початок виконання програми-- init: ldi temp, low(RAMEND);стек в кінець out SPL, temp ;налаштування портів на ввід і вивід sbi DDRD, LED sbi PORTD, LED clr temp ldi temp,(1<<SCLK)+(1<<CS)+(1<<SHDN)+(0<<DOUT);налаштування виходів та входу для АЦП out DDRB, temp; ldi temp,(0<<SCLK)+(1<<CS)+(0<<SHDN)+(0<<DOUT);налаштування... out PORTB,temp;стану виходів для АЦП та непіддягування резистора! cli;заблокувати переривання ldi temp, high(N) out OCR1AH, temp;завантажуємо число для порівняння... ldi temp, low(N) out OCR1AL, temp;у регістр порівняння таймера ldi temp, (1<<OCIE1A);дозвіл переривання при співпадінні... out TIMSK, temp;регістру із числом. ldi temp, (1<<CTC1)+(0<<CS12)+(0<<CS11)+(1<<CS10);скид тамера лічильника при спрацюванні... out TCCR1B, temp;і коефіцієнт ділення =1. ldi temp, (1<<SE);дозвіл на режим сну. out MCUCR, temp wait: sei;дозволити переривання ;sleep ;сон) nop rjmp wait; ;обробка переривання від таймера ;------------------------------- Timer: ldi temp, (0<<CS12)+(0<<CS11)+(0<<CS10);тамер зупинено. out TCCR1B, temp; rcall ACP; ldi temp, low(V_P); якщо результат... ldi temp2, high(V_P); більший за задане... sub temp, result_l; число то... sbc temp2, result_h; переходимо до сирени. brcs Alarm ldi temp, low(V_N); якщо результат... ldi temp2, high(V_N); менший за задане... sub temp, result_l; число то... sbc temp2, result_h; переходимо до сирени. brsh Alarm sbi PORTD, LED; інакше залишаємо діод без змін rjmp end; кінець обробки переривання. Alarm: cbi PORTD, LED; вмикаємо СД. ldi Delay_b1, low(T_Led) ldi Delay_b2, high(T_Led) ldi Delay_b3, byte3(T_Led) rcall Delay; затримка свічення СД. sbi PORTD, LED; вимикаємо СД. end: ldi temp, (1<<CTC1)+(0<<CS12)+(0<<CS11)+(1<<CS10);налаштування таймера знову на роботу... out TCCR1B, temp; по зрізу reti; ;--процедура анал цифр зчитування------ ACP: clr Result_l;очищуємо для запису результату перетворення clr Result_h;очищуємо для запису результату перетворення sbi PORTB, SHDN;вмикаємо АЦП ldi Delay_b1, low(T_Start) ldi Delay_b2, high(T_Start) ldi Delay_b3, byte3(T_Start) rcall Delay;затримка для повного вмикання АЦП cbi PORTB, CS;запуск перетворення по спадаючому фронту eoc: sbis PINB, DOUT;чекаємо коли закінчиться перетворення rjmp eoc rcall Bit_Read;читаємо 11 біт результату перетворення bld result_h,3;запис 11 біту у результат через прапорець t. rcall Bit_Read;читаємо 10 біт результату перетворення bld result_h,2;запис 10 біту у результат через прапорець t. rcall Bit_Read;читаємо 9 біт результату перетворення bld result_h,1;запис 9 біту у результат через прапорець t. rcall Bit_Read;читаємо 8 біт результату перетворення bld result_h,0;запис 8 біту у результат через прапорець t. rcall Bit_Read;читаємо 7 біт результату перетворення bld result_l,7;запис 7 біту у результат через прапорець t. rcall Bit_Read;читаємо 6 біт результату перетворення bld result_l,6;запис 6 біту у результат через прапорець t. rcall Bit_Read;читаємо 5 біт результату перетворення bld result_l,5;запис 5 біту у результат через прапорець t. rcall Bit_Read;читаємо 4 біт результату перетворення bld result_l,4;запис 4 біту у результат через прапорець t. rcall Bit_Read;читаємо 3 біт результату перетворення bld result_l,3;запис 3 біту у результат через прапорець t. rcall Bit_Read;читаємо 2 біт результату перетворення bld result_l,2;запис 2 біту у результат через прапорець t. rcall Bit_Read;читаємо 1 біт результату перетворення bld result_l,1;запис 1 біту у результат через прапорець t. rcall Bit_Read;читаємо 0 біт результату перетворення. bld result_l,0;запис 0 біту у результат через прапорець t. sbi PORTB, CS;встановлюємо вихід DOUT у високоімпедансний стан cbi PORTB, SHDN;вимикаємо АЦП ret; ;--процедура читання біту і записую його в прапорець t-- Bit_Read: sbi PORTB, SCLK;запуск тактового імпульсу nop nop nop cbi PORTB, SCLK;спад тактового імпульсу nop nop in temp, PinB;зчитуєм ПОРТБ в тому й числі біт результату DOUT bst temp, DOUT;встановлення прапорця t відносно біту DOUT ret ;--процедура затримки----- delay: subi Delay_b1, 1; sbci Delay_b2, 0; sbci Delay_b3, 0; brcc delay; ret СХЕМА  ВИСНОВОК На даній лаболаторній роботі я ознайомився з послідовністю створення та відладки програмно-апаратних засобів на основі мікроконтролерів сімейства AVR в програмах AVR Studio та Proteus 7.
Антиботан аватар за замовчуванням

13.02.2013 01:02-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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