Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы МДК 02.01 МКС / Методичка МДК 02.01 МКС.doc
Скачиваний:
4
Добавлен:
18.11.2023
Размер:
658.43 Кб
Скачать

Лабораторная работа №3

Использование сторожевого таймера

Цель работы: Исследование сторожевого таймера микроконтроллеров AVR

Лабораторное задание

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

Краткие теоретические сведения

Основная функция сторожевого таймера – защита устройства от сбоев. Благодаря сторожевому таймеру можно прервать выполнение зациклившейся программы или выйти из других непредвиденных ситуаций, препятствующих ее нормальному выполнению.

Для управления сторожевым таймером предназначен регистр WDTCR. Формат регистра приводится в техническом описании на соответствующий микропроцессор.

Для включения сторожевого таймера в общем случае необходимо выполнить следующие действия:

  1. Одной командой записать в 1разряды WDE и WDTOE;

  2. В течение следующих четырех машинных циклов записать 0 в разряд WDE.

Период наступления тайм-аута сторожевого таймера задается с помощью разрядов WDP. Соответствие значений разрядов WDP периоду наступления тайм-аута сторожевого таймера приведено в технической документации на соответствующих микропроцессор.

Лабораторное задание

Использую программную среду Proteus запрограммировать работу двух таймеров с различным периодом срабатывания (в соответствии с вариантом).

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

  1. Для выполнения работы необходимо в среде автоматизированного проектирования Proteus собрать схему устройства в соответствии с рисунком 1.

Рисунок 2 – Схема устройства

  1. В программном окне «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

  1. Используя кнопочные тумблеры (смотри рисунок 2), убедится в работоспособности программы.

  2. Установить для кнопочного переключателя период наступления тайм-аута сторожевого таймера в соответствии с вариантом.

Содержание отчета:

  1. Название и цель работы.

  2. Принципиальная схема устройства.

  3. Результаты моделирования.

Таблица вариантов.

Номер варианта

Период тайм-аута

Номер варианта

Период тайм-аута

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 с

Соседние файлы в папке Лабы МДК 02.01 МКС