Вивчення внутрішніх модулів та режимів роботи AVR-мікроконтролерів

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

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

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

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

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІКТА кафедра ЗІ  З В І Т до лабораторної роботи №2 з навчальної дисципліни: «Мікропроцесори в системах ТЗІ» на тему: “Вивчення внутрішніх модулів та режимів роботи AVR-мікроконтролерів” Варіант №1 Львів – 2012 Мета роботи: ознайомитись з роботою периферійних модулів (аналогового компаратора, EEPROM-пам’яті), системою переривань та внутрішніми режимами роботи AVR-мікроконтролерів. Розширити навики створення та відладки програмно-апаратних засобів на основі мікроконтролерів сімейства AVR в програмах AVR Studio та Proteus 7. Текст завдання 1. Створити проект в AVR Studio, ввести свою програму, провести її асемблювання. 2. В режимі покрокової відладки переконатися в правильності роботи програми. 3. Відкрити файл LR_2.dsn в програмі Proteus, внести зміни у схему відповідно до свого індивідуального завдання, підключити до МК отриманий в AVR Studio hex-файл. 4. Запустити режим симуляції схеми та перевірити правильність функціонування охоронної системи у всіх режимах роботи: відсутність спарцювання, спрацювання аналогового давача, спрацювання цифрового давача. Лістинг програми ; Параметри системи: ; Рівень спрацювання аналогового давача: 3.5 В ; Тип цифрового давача: НРЗ ; Вивід для підключення цифрового давача: PD3/INT1 ; Вивід для підключення світлодіоду: РВ5 ; Адреса комірки ЕЕPROM для зберігання кількості спрацювань цифрового давача: 0x43 ; Адреса комірки ЕЕPROM для зберігання кількості спрацювань аналогового давача: 0x6D ; Режим пониженого енергоспоживання: Idle ; Напруга живлення: 5 В ;//////////////////////////////////////////////////////////////////////////// .include "2313def.inc" ;//////////////////////////////////////////////////////////////////////////// .def temp = r16 ; Робочий регістр .def EE_Addr_Reg = r17 ; Регістр зберігання адреси EEPROM .def EE_Data_Reg = r18 ; Регістр зберігання даних EEPROM ;//////////////////////////////////////////////////////////////////////////// .equ Analog_Addr = 0x43 ; Адреса EEPROM для аналогового давача .equ Digital_Addr = 0x6D ; Адреса EEPROM для цифрового давача .equ LED_DDR = DDRB .equ LED_PORT = PORTB .equ LED_PIN = PB6 ;//////////////////////////////////////////////////////////////////////////// .cseg ; Початок сегменту Flash-пам'яті .org 0 ; Адреса початку програми rjmp RESET ; Вектор скиду reti ;rjmp INT0_EXT ; Вектор зовнішнього переривання 0 з виводу PD2 rjmp INT1_EXT reti ; rjmp TIM_CAPT1 reti ; rjmp TIM_COMP1 reti ; rjmp TIM_OVF1 reti ; rjmp TIM_OVF0 reti ; rjmp UART_RXC reti ; rjmp UART_DRE reti ; rjmp UART_TXC rjmp ANA_COMP ; Вектор переривання від аналогового компаратора ;//////////////////////////////////////////////////////////////////////////// .org 0x0B ; Початок основної програми RESET: ; Ініціалізація стеку ldi temp, low(0xDF) out SPL, temp ; Налаштування виводів аналогового компаратора cbi DDRB, PB0 ; Вивід РВ0 - вхід cbi DDRB, PB1 ; Вивід РВ1 - вхід cbi PORTB, PB0 ; Відключити внутрішній підтягуючий резистор для РВ0 cbi PORTB, PB1 ; Відключити внутрішній підтягуючий резистор для РВ1 ; Налаштування виводів світлодіода sbi LED_PORT, LED_PIN ; Світлодіод виключений sbi LED_DDR, LED_PIN ; Вивід LED_PIN - вихід ; Налаштування виводу для підключення цифрового давача cbi DDRD, PD2 ; Вивід РD2 - вхід cbi PORTD, PD2 ; Відключити внутрішній підтягуючий резистор для РD2 ldi temp, (1<<ACIE) | (1<<ACIS1) | (1<<ACIS0) ; Дозволити переривання від АК, ; переривання генерується при ; переході з 0 в 1 out ACSR, temp ; Сконфігурувати аналоговий компаратор ; Налаштувати режим пониженого енергоспоживання і умову генерації переривання INT1 ldi temp, (1<<ISC01) | (1<<SE) | (1<<ISC11); Режим енергоспоживання Idle: SM = 0, ; ; зовнішні переривання по спадаючому фронту out MCUCR, temp ; Сконфігурувати регістр MCUCR ; Дозволити зовнішнє переривання INT1 ldi temp, (1<<INT1) out GIMSK, temp ; Загальний дозвіл переривань: І = 1 sei Loop: sleep ; Перехід в режим пониженого енергоспоживання rjmp Loop ; Після спрацювання давача знову перейти в режим ; пониженого енергоспоживання ;//////////////////////////////////////////////////////////////////////////// ;//////////////////////////////////////////////////////////////////////////// INT1_EXT: ; П/п обробки переривання INT1 cbi LED_PORT, LED_PIN ; Включити світлодіод ldi EE_Addr_Reg, Digital_Addr ; Завантажити в регістр адреси EEPROM адресу ; цифрового давача rcall EEPROM_Read ; Прочитати з EEPROM кількість спацювань ; цифрового давача inc EE_Data_Reg ; Збільшити кількість спрацювань на 1 rcall EEPROM_Write ; Зберегти кількість спацювань цифрового ; давача в EEPROM reti ; Вийти з переривання ;//////////////////////////////////////////////////////////////////////////// ;//////////////////////////////////////////////////////////////////////////// ANA_COMP: ; П/п обробки переривання від аналогового компаратора cbi LED_PORT, LED_PIN ; Включити світлодіод ldi EE_Addr_Reg, Analog_Addr ; Завантажити в регістр адреси EEPROM адресу ; аналогового давача rcall EEPROM_Read ; Прочитати з EEPROM кількість спацювань ; аналогового давача inc EE_Data_Reg ; Збільшити кількість спрацювань на 1 rcall EEPROM_Write ; Зберегти кількість спрацювань аналогового ; давача в EEPROM reti ; Вийти з переривання ;//////////////////////////////////////////////////////////////////////////// ;//////////////////////////////////////////////////////////////////////////// EEPROM_Write: ; П/п запису байту в EEPROM sbic EECR, EEWE ; Чекати, доки прапорець EEWE не буде скинутий rjmp EEPROM_Write out EEAR, EE_Addr_Reg ; Завантажити адресу для запису out EEDR, EE_Data_Reg ; Завантажити дані для запису sbi EECR, EEMWE ; Встановити мастер-біт дозволу запису sbi EECR, EEWE ; Встановити біт дозволу запису ret ; Вихід з п/п запису байту в ЕEPROM ;//////////////////////////////////////////////////////////////////////////// ;//////////////////////////////////////////////////////////////////////////// EEPROM_Read: ; П/п читання байту з EEPROM sbic EECR, EEWE ; Чекати, доки прапорець EEWE не буде скинутий rjmp EEPROM_Read out EEAR, EE_Addr_Reg ; Завантажити адресу для читання sbi EECR, EERE ; Встановити прапорець дозволу читання in EE_Data_Reg, EEDR ; Прочитати дані ret ; Вихід з п/п читання байту з ЕEPROM ;//////////////////////////////////////////////////////////////////////////// Схема симуляції в Proteus  Висновок На даній лабораторній роботі, ми ознайомилися з роботою периферійних модулів (аналогового компаратора, EEPROM-пам’яті), системою переривань та внутрішніми режимами роботи AVR-мікроконтролерів. Розширити навики створення та відладки програмно-апаратних засобів на основі мікроконтролерів сімейства AVR в програмах AVR Studio та Proteus 7.
Антиботан аватар за замовчуванням

16.01.2013 12:01-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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