Эксперт
Сергей
Сергей
Задать вопрос
Мы готовы помочь Вам.

Цель работы: Исследование прерываний микропроцессорных систем.

Лабораторное задание: Разработать программу для микроконтроллера .
TinyAVR, обеспечивающую обработку прерываний.

Порядок выполнения работы:

1. Собрал схему устройства в программе «Proteus» в соответствии с заданием.

 

2. В вкладке «Source Code» набрал следующий код программы:
.device ATtiny2313
.def temp=r16
.equ PERIOD_1=0
.cseg
.org 0
rjmp Init
.org 0x0005
rjmp TIM1_OVF

Init:
ldi temp,low(RAMEND)
out SPL,temp

clr temp
out DDRD,temp
ldi temp,255
out PORTD,temp
ser temp
out DDRB,temp
clr temp
out PortB,temp

SW:
ldi temp,0b11001100
out PortB,temp

ldi temp,(0<<WDIE|1<<WDTON|1<<WDE)
out WDTCR,temp
ldi temp,(0<<WDIE|1<<WDTON|0<<WDE)
out WDTCR,temp

WAIT_SW0:
sbic PIND,PERIOD_1
rjmp WAIT_SW1
ser temp
out PortB,temp
ldi temp,(1<<WDTON|0<<WDIE|1<<WDE|1<<WDP3|0<<WDP2|0<<WDP1|1<<WDP0)
out WDTCR,temp
ret

WAIT_SW1:
sbic PIND,3
rjmp WAIT_SW0
ldi temp,(0<<ISC11|0<<ISC10)
out MCUCR,temp
ldi temp,0b00010001
out PortB,temp
TIM1_OVF:
ldi temp, 0b00000101
out TCCR1B,temp
ldi temp,0b00000100
out TIMSK,temp
out TIFR,temp
ldi temp,0xaa
out TCNT1H,temp
out TCNT1L,temp
sei
ret

3. Путем нажатия кнопочных переключателей, убедился в работоспособности программы.
4. Изменил схему устройства в соответствии с рисунком 2.

5. Зупустил эмуляцию программы и убедился, что срабатывает только прерывание с наименьшим адресом.

Вывод: в ходе лабораторной работы исследовал прерывания микропроцессорных систем, собрал схему и написал код программы, получили навыки работы в программе «Proteus». В результате разработал программу для микроконтроллера TinyAVR, обеспечивающую обработку прерываний.

Была ли полезна данная статья?
Да
60.86%
Нет
39.14%
Проголосовало: 1096

или напишите нам прямо сейчас:

⚠️ Пожалуйста, пишите в MAX или заполните форму выше.
В России Telegram и WhatsApp блокируют - сообщения могут не дойти.
Написать в MAXНаписать в TelegramНаписать в WhatsApp