- •Лабораторная работа №1
- •Лабораторная работа №2
- •В программном окне «Source Code» программы Proteus набрать следующую программу:
- •Лабораторная работа №3
- •В программном окне «Source Code» программы Proteus набрать следующую программу:
- •Лабораторная работа №4
- •В программном окне «Source Code» программы Proteus набрать следующую программу:
- •Лабораторная работа №5
- •В программном окне «Source Code» программы Proteus набрать следующую программу:
- •Лабораторная работа №6
- •В программном окне «Source Code» программы Proteus набрать следующую программу:
- •Лабораторная работа №7
- •В программном окне «Source Code» программы Proteus набрать следующую программу:
- •Лабораторная работа №8
- •Лабораторная работа №9
- •Лабораторная работа №9
Лабораторная работа №3
Использование сторожевого таймера
Цель работы: Исследование сторожевого таймера микроконтроллеров AVR
Лабораторное задание
Разработать программу для микроконтроллера TinyAVR, обеспечивающую сброс микроконтроллера по сторожевому таймеру.
Краткие теоретические сведения
Основная функция сторожевого таймера – защита устройства от сбоев. Благодаря сторожевому таймеру можно прервать выполнение зациклившейся программы или выйти из других непредвиденных ситуаций, препятствующих ее нормальному выполнению.
Для управления сторожевым таймером предназначен регистр WDTCR. Формат регистра приводится в техническом описании на соответствующий микропроцессор.
Для включения сторожевого таймера в общем случае необходимо выполнить следующие действия:
Одной командой записать в 1разряды WDE и WDTOE;
В течение следующих четырех машинных циклов записать 0 в разряд WDE.
Период наступления тайм-аута сторожевого таймера задается с помощью разрядов WDP. Соответствие значений разрядов WDP периоду наступления тайм-аута сторожевого таймера приведено в технической документации на соответствующих микропроцессор.
Лабораторное задание
Использую программную среду Proteus запрограммировать работу двух таймеров с различным периодом срабатывания (в соответствии с вариантом).
Порядок выполнения работы
Для выполнения работы необходимо в среде автоматизированного проектирования Proteus собрать схему устройства в соответствии с рисунком 1.
Рисунок 2 – Схема устройства
В программном окне «Source Code» программы Proteus набрать следующую программу:
.device ATtiny2313
.def temp=r16
.equ PERIOD_1 = 0
.equ PERIOD_2 = 1
.cseg
.org 0
rjmp Init
Init:
ldi temp,low(RAMEND)
out SPL,temp
clr temp
out DDRD,temp
ldi temp,0x03
out PORTD,temp
ser temp ;команда устанавливает все биты temp в «1»
out DDRB,temp ;переводит все биты потра B на вывод
clr temp ; обнуляет переменную temp
out PortB,temp ; команда отключает подтягивающие резисторы
SW:
ldi temp,0b11001100 ;команда записывает в temp значание 0b11001100
out PortB,temp ;в порт B записывается значение 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 | 0<<WDP0);включение таймера
out WDTCR,temp
ret
WAIT_SW1:
sbic PIND,PERIOD_2
rjmp WAIT_SW0
ldi temp,0b00110011
out PortB,temp
ldi temp, (1<<WDTON | 0<<WDIE | 1<<WDE | 1<<WDP3 | 0<<WDP2 | 0<<WDP1 | 1<<WDP0);включение таймера
out WDTCR,temp
ret
rjmp WAIT_SW0
Используя кнопочные тумблеры (смотри рисунок 2), убедится в работоспособности программы.
Установить для кнопочного переключателя период наступления тайм-аута сторожевого таймера в соответствии с вариантом.
Содержание отчета:
Название и цель работы.
Принципиальная схема устройства.
Результаты моделирования.
Таблица вариантов.
Номер варианта |
Период тайм-аута |
Номер варианта |
Период тайм-аута |
1 |
16 мс |
16 |
0,5 с |
2 |
32 мс |
17 |
1,0 с |
3 |
64 мс |
18 |
2,0 с |
4 |
0,125 с |
19 |
4,0 с |
5 |
0,25 с |
20 |
8,0 с |
6 |
0,5 с |
21 |
16 мс |
7 |
1,0 с |
22 |
32 мс |
8 |
2,0 с |
23 |
64 мс |
9 |
4,0 с |
24 |
0,125 с |
10 |
8,0 с |
25 |
0,25 с |
11 |
16 мс |
26 |
0,5 с |
12 |
32 мс |
27 |
1,0 с |
13 |
64 мс |
28 |
2,0 с |
14 |
0,125 с |
29 |
4,0 с |
12 |
0,25 с |
30 |
8,0 с |