МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Кафедра ЗІ
Лабороторна робота №2
Вивчення внутрішніх модулів та режимів роботи
AVR-мікроконтролерів
з курсу
"МІКРОПРОЦЕСОРНІ ПРИСТРОЇ"
Варіант № 14
Мета роботи: ознайомитись з роботою внутрішніх модулів (таймерів, компаратора, EEPROM), системою переривань та внутрішніми режимами роботи AVR-мікроконтролерів. Розширити навики створення та відладки програмно-апаратних засобів на основі мікроконтролерів сімейства AVR в програмах AVR Studio та
Proteus 7.
Завдання
Домашня підготовка до роботи
1. Вивчити теоретичний матеріал.
2. Вивчити основні властивості МК необхідні для виконання лабораторної роботи.
3. Підготовити програму функціонування охоронної системи згідно індивідуального завдання в табл. 1.
Виконати в лабораторії
1. Створити проект в AVR Studio, ввести свою програму, провести її асемблювання.
2. В режимі покрокової відладки переконатися в правильності роботи програми.
3. Відкрити файл LR_2.dsn в програмі Proteus, внести зміни у схему відповідно до свого індивідуального завдання, підключити до МК отриманий в AVR Studio hex-файл.
4. Запустити режим симуляції схеми та перевірити правильність функціонування охоронної системи у всіх режимах роботи.
Табл.1
№
Напруга спрацювання аналогового давача Ux, В
Виводи для підкл.
охоронних
шлейфів цифровими давачами
Тип
цифрового
давача
Вивід для підкл. світлодіода
Адреса в
EEPROM
Addr_1
Адреса в
EEPROM
Addr_2
14.
4.4
INT0
НЗМ
PB5
101
13
Тактова частота МК 7.3728 МГц.
Перемикач вважати ідеальним.
Лістинг програми:
.include <2313def.inc>
.def temp=r16
.def ee_addr=r17
.equ EE_Addr1=101 ; analog
.equ EE_Addr2=13 ; digital
.equ AIN0=PB0
.equ AIN1=PB1
.cseg
.org 0
rjmp RESET ; RESET interupt
rjmp INT0_EXT ; INT0 interupt
reti ; INT1 interupt
reti ; Timer1 capture
reti ; Timer1 compare
reti ; Timer1 overlow
reti ; Timer0 overlow
reti ; UART RX
reti ; UART UDRE
reti ; UART TX
rjmp ANA_COMP ; analog comparator interupt
; /////////////////////////////////////////////////
RESET:
; Ініціалізація стеку
ldi temp, low(RAMEND)
out spl, temp
; Вимкнути світлодіод
sbi DDRB, PB5
sbi PORTB, PB5
; Налаштувати входи аналогового компаратора
cbi DDRB, AIN0
cbi DDRB, AIN1
cbi PORTB, AIN0
cbi PORTB, AIN1
; Налаштування аналогового компаратора
ldi temp, 0b00001011
out ACSR, temp
; Налаштування вхoду зовнішнього переривання
; та енергозберігаючого режиму
ldi temp, 0b00100010
out MCUCR, temp
; Дозволити переривання INT0
ldi temp, 0b01000000
out GIMSK, temp
sei
next:
sleep ; перехід в режим низького енегроспоживання
rjmp next
;//////////////////////////////////////////////////
INT0_EXT:
ldi ee_addr, EE_Addr2
rcall Alarm
reti
;//////////////////////////////////////////////////
ANA_COMP:
ldi ee_addr, EE_Addr1
rcall Alarm
reti
;//////////////////////////////////////////////////
Alarm:
; читаємо дані про кількість спрацювань з флеш памяті
out EEAR, ee_addr ; завантажуємо адресу по якій читаємо
sbi EECR, EERE ; прочитати байт
in temp, EEDR ; занести в temp прочитаний байт
inc temp; збільшити лічильник спрацювань
; зберігаємо кількість спрацювань на флеш память
out EEDR, temp ; будем записувати кількість спрацювань
write_wait:
sbic EECR, EEWE
rjmp write_wait
sbi EECR, EEMWE ; встановити режим запису в память
sbi EECR, EEWE ; записати байт
; вмикаємо світлодіод
cbi PORTB, PB5
ret
=4.4, R2=2*=2*4,4=8,8 R1=10-R2=1,2
Схема симуляції в Proteus
Висновки: ознайомився з роботою внутрішніх модулів (таймерів, компаратора, EEPROM), системою переривань та внутрішніми режимами роботи AVR-мікроконтролерів, розширв навики створення та відладки програмно-апаратних засобів на основі мікроконтролерів сімейства AVR в програмах AVR Studio та
Proteus 7.