МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ЗВІТ
до лабораторної роботи №2
з курсу «Мікропроцесорні пристрої»
на тему:
Вивчення внутрішніх модулів та режимів роботи AVR - мікроконтролерів
Мета робота – ознайомитись з роботою внутрішніх модулів (таймерів, компаратора, EEPROM), системою переривань та внутрішніми режимами роботи AVR – мікроконтролерів. Розширити навики створення та відладки програмно – апаратних засобів на основі мікроконтролерів сімейства AVR в програмах AVR в програмах AVR Studio та Proteus 7.
Завдання:
Написати та відладити рограму охоронної сигналізації з такими параметрами
№ варіанту
Виводи для підкл. Охоронних шлейфів цифровими давачами
Тип цифрового давча
Вивід для підкл. світлодіода
Адреса в
EEPROM Add_1
Адреса в
EEPROM Add_2
2
INT1
НЗМ
PB2
64
8
Лістинг програми одержаної в AVR Studio.
.include "2313def.inc"
.equ Analog_Adr = 64
.equ Digital_Adr = 8
.equ LedPin = PB2
.def temp = R16
.equ SH0_Px = PD3
.def Adr_Reg = R17
.def Data_Reg = R18
.cseg
.org 0
rjmp Main
.org 2 ;0
rjmp INT1_Ext ;1
.org 0x0A
rjmp Analog_Comp ;11
;***************************************************************************
Main:
ldi temp, 0xDF ; ініціалізація стеку
out SPL, temp
;***************************************************************************
;Налаштування світлодіода
sbi PORTB, LedPin
sbi DDRB, LedPin
;Налаштування аналогового компаратора
cbi DDRD, SH0_Px
cbi PORTD, SH0_Px
cbi DDRB, 0
cbi DDRB, 1
cbi PORTB, 0
cbi PORTB, 1
ldi temp, (1<<ACIS1) + (1<<ACIS0) + (1<<ACIE) ;переривання при перході з1 в 0
out ACSR, temp
;***************************************************************************
;налаштування режиму енергозберігання та виводу INT1
ldi temp, (1<<SE)+(1<<ISC11)+(1<<ISC10)
out MCUCR, temp
ldi temp, (1<<INT1) ;дозвіл зовнішнього переривання INT1
out GIMSK, temp
ldi temp, (1<<INTF1)
out GIFR, temp
;***************************************************************************
sei
Loop:
sleep
rjmp Loop
INT1_Ext:
sbi PORTB, LedPin
ldi Adr_Reg, Digital_Adr
;прочитати дані з EEPROM
rcall EEPROM_Read
inc Data_Reg
rcall EEPROM_Write
; запис в EEPROM
rcall EEPROM_Write
cbi PORTB, LEDPin ;включити світлодіод
reti
Analog_Comp:
sbi PORTB, LedPin
ldi Adr_Reg, Analog_Adr
;прочитати дані з EEPROM
rcall EEPROM_Read
inc Data_Reg
rcall EEPROM_Write
cbi PORTB, LedPin
reti
;****************************************************************************
EEPROM_Read:
sbic EECR, EEWE ;чекати доки EEWE!=0
rjmp EEPROM_Read
out EEAR, Adr_Reg ;Завантажити адресу з РЗП
sbi EECR, EERE ;Встановити прапорець дозволу читання
in Data_Reg, EEDR ;Прорчитати дані
ret
;****************************************************************************
EEPROM_Write:
sbic EECR,EEWE ;Чекати доки не скинутий прапорець EEWE
rjmp EEPROM_Write
out EEAR, Adr_Reg ;Завантажити адресу з РЗП
out EEDR, Data_Reg ;Завантажити дані з РЗП
cli ;Заборона переривань
sbi EECR, EEMWE ;встановлення мастер-біту запису
sbi EECR, EEWE ;встановлення біту дозволу запису
sei ;дозвіл переривань
ret
Схема симуляції Proteus 7.
Висновок: на даній лабораторній роботі я ознайомитись з роботою внутрішніх модулів (таймерів, компаратора, EEPROM), системою переривань та внутрішніми режимами роботи AVR – мікроконтролерів, розширила навики створення та відладки програмно – апаратних засобів на основі мікроконтролерів сімейства AVR в програмах AVR в програмах AVR Studio та Proteus 7.