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

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

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

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

Рік:
2016
Тип роботи:
Лабораторна робота
Предмет:
Мікропроцесори в системах технічного захисту інформації

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» Кафедра «Захист інформації» / Звіт до лабораторної роботи № 2 на тему: «Вивчення внутрішніх модулів та режимів роботи AVR-мікроконтролерів» з курсу «Мікропроцесори в системах технічного захисту інформації» Львів – 2016 Мета роботи − ознайомитись з роботою периферійних модулів (аналогового компатора, EEPROM-пам’яті), системою переривань та внутрішніми режимами роботи AVR-мікроконтролерів. Розширити навики створення та відладки програмно-апаратних засобів на основі мікроконтролерів сімейства AVR в програмах AVR Studio та Proteus 7. 1. Завдання: Підготувати програму згідно індивідуального завдання у Табл. 1. Створити проект в AVR Studio, ввести свою програму, провести її асемблювання. В режимі покрокової відладки переконатися в правильності роботи програми, перевірити дотримання заданих в завдані часових параметрів. Відкрити файл LR_2.dsn в програмі Proteus, внести зміни у схемі відповідно до свого індивідуального завдання, підключити до МК отриманий в AVR Studio hex-файл. Запустити режим симуляції схеми та перевірити правильність функціонування охоронної системи у всіх режимах роботи: відсутність спрацювання, спрацювання аналогового давача, спрацювання цифрового давача. № Напруга спрацювання аналогового давача Ux, B Виводи підкл. охоронних шлейфів з цифровими давачами Тип цифрового давача Вивід для підкл. світлодіода  Адреса в EEPROM Addr_1  Адреса в EEPROM Addr_2  18 3.5 INI1 НЗМ PB6 67 109   2. Результат виконання роботи: Код програми: ; ******************************************* ; Автор: ПІБ * ; Дата: 01.09.2010 * ; Версія: 1.0 * ; Ім'я файлу: LR_2.asm * ; Тип МК: AT90S2313 * ; Тактова частота: 7.3728 MГц * ; ******************************************* ; ; Параметри системи: ; Рівень спрацювання аналогового давача: 3.5 В ; Тип цифрового давача: НЗМ ; Вивід для підключення цифрового давача: PD3/INT1 ; Вивід для підключення світлодіоду: РВ6 ; Адреса комірки ЕЕ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 ; Вектор зовнішнього переривання 0 з виводу PD2 rjmp INT1_EXT ; 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, PD3 ; Вивід РD2 - вхід cbi PORTD, PD3 ; Відключити внутрішній підтягуючий резистор для РD2 ldi temp, (1<<ACIE) | (1<<ACIS1) | (1<<ACIS0) ; Дозволити переривання від АК, ; переривання генерується при ; переході з 0 в 1 out ACSR, temp ; Сконфігурувати аналоговий компаратор ; Налаштувати режим пониженого енергоспоживання і умову генерації переривання INT0 ldi temp, (1<<ISC11)| (1<<ISC10) | (1<<SE) ; Режим енергоспоживання Idle: SM ;= 0, ; зовнішні переривання по спадаючому фронту out MCUCR, temp ; Сконфігурувати регістр MCUCR ; Дозволити зовнішнє переривання INT0 ldi temp, (1<<INT1) out GIMSK, temp ; Дозволити зовнішнє переривання INT1 ldi temp, (1<<INTF1) out GIFR, temp ; Загальний дозвіл переривань: І = 1 sei Loop: sleep ; Перехід в режим пониженого енергоспоживання rjmp Loop ; Після спрацювання давача знову перейти в режим ; пониженого енергоспоживання ;//////////////////////////////////////////////////////////////////////////// ;//////////////////////////////////////////////////////////////////////////// INT1_EXT: ; П/п обробки переривання INT0 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 ;//////////////////////////////////////////////////////////////////////////// Схема:
Антиботан аватар за замовчуванням

25.12.2016 01:55

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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