Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LAB5_W95.DOC
Скачиваний:
19
Добавлен:
16.04.2013
Размер:
102.4 Кб
Скачать

5.2.4. Контроль за правильностью работы программы с помощью cop-таймера.

Назначение СОР-таймера - генерировать сигнал сброса микроконтроллера через определенный промежуток времени (он задается в регисре $1E). В случае правильной работы, программа должна периодически сбрасывать СОР-таймер, тогда отсчет времени начинается сначала. Если же в работе программы возник сбой, то через некоторое время COP-таймер сработает, и после сброса управление снова будет передано программе пользователя. Для сброса СОР-таймера необходимо записать в регистр COPRR сначала $55, затем $AA.

В качестве примера рассмотрим программу, которая мигает светодиодами и каждые 0,5с посылает в регистр COPRR два числа: то, что записано в порте А (то есть выставлено на переключателях), и дополнительное к нему. Таким образом, если на переключателях выставить число $55, то программа будет автоматически сбрасывать СОР-таймер. В любом другом случае произойдет сброс микроконтроллера.

Основная программа :

300 LDA #$FF Программируем

STA $5 порт B на вывод.

CLR $4 Программируем

ïîðò A íà ââîä.

CLR $1 Гасим светодиоды.

LDA #$7 Устанавливаем время

STA $1E сброса 1с.

30C CLRA Организуем

30D CLRX задержку

30E DECX примерно

30F BNE $30E íà

311 DECA 0,5ñ.

312 BNE $30D

314 LDA $1 Инвертируем

316 EOR #$C0 состояние

318 STA $1 светодиодов.

31À JSR $400 Вызываем подпрограмму сброса СОР-таймера.

31D BRA $30C Возврат на задержку.

Подпрограмма сброса СОР-таймера :

400 LDA $0 Читаем портÀ.

402 STA $1D Посылаем данные в регистр COPRR.

404 COMA Вычисляем дополнение.

405 STA $1D Снова посылаем данные

в регистр COPRR.

407 RTS Возврат из подпрограммы.

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

800 LDA $1E

802 LDX $1E

804 NOP

По адресам $30C..$31D находится программа мигания светодиодами. С адреса $400 расположена подпрограмма сброса СОР-таймера.

Поставьте точку останова по адресу $804, запишите число $800 по адресу $1FFE (адрес вектора прерывания RESET) и запустите программу. Если на переключателях установлено не $55, то примерно через секунду программа закончит свою работу. При этом пятый бит регистра $1E установится в 1, что говорит о инициировании сброса аппаратурой СОР-таймера. Установите на переключателях $55 и снова запустите программу. Должны замигать светодиоды. Если изменить положение переключателей на короткое время (менее 1с), то программа продолжит свою работу. Но стоит задержать переключатель в другом положении на более длительный промежуток времени (более 1с), как произойдет вызов подпрограммы по адресу $800. Значит, СОР-таймером было инициировано прерываниеRESET. Содержимое регистраÀ, скопированное из $1E командой $800 LDA $1E, подтверждает это.

5.3. Контрольные вопросы.

1. Для каких целей используется блок таймера в составе микроконтроллера МС68НС705С8 ?

2. Каковы основные характеристики блока таймера ?

3. Каким образом осуществляется доступ к таймеру ?

4. Для чего используется счетчик таймера ?

5. Каким образом осуществляется тактирование счетчика ?

6. В каком случае устанавливается флаг TOF ?

7. Для чего необходим альтернативный счетчик таймера ?

8. В каком случае младший байт регистра счетчика запоминается в буфере ?

9. Опишите назначение и принцип работы блока входной фиксации.

10. Каким образом задается способ обработки сигнала на входе TCAP ?

11. В каком случае блокируется работа блока входной фиксации ?

12. Каким образом можно использовать функцию входной фиксации для определения периода и ширины импульса входного сигнала ?

13. Опишите назначение и принцип работы блока выходного сравнения.

14. Каким образом задается лог. уровень сигнала, появляющегося на выходе TCMP при совпадении значения счетчика с содержимым регистра OCR ?

15. В каком случае блокируется работа блока выходного сравнения ?

16. Каким образом можно использовать функцию выходного сравнения для генерирования импульса определенной длительности?

17. Какие флаги входят в состав управляющего регистра таймера ? На что они влияют ?

18. Какие флаги входят в состав регистра статуса таймера ? Что показывает каждый из них ? Каким образом можно изменять их состояние ?

19. Каково основное назначение таймера COP ?

20. Для чего используется диспетчер синхронизации ?

21. Каким образом осуществляется управление таймером COP и диспетчером синхронизации?

22. Опишите последовательность действий для сброса таймера COP ?

23. Какие флаги входят в состав управляющего регистра таймера COP ? На что они влияют и как их можно изменять ?

24. Чем определяется период переполнения таймера COP ?

Соседние файлы в предмете Отладка микроконтроллеров ЭВМ