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

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

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

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

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

Рік:
2013
Тип роботи:
Лабораторна робота
Предмет:
Мікропроцесори
Група:
ІБ - 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:30

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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