Курс лекций. - Микропроцессоры


Устройство таймеров микроконтроллеров MCS-51 - часть 4


Рассмотрим пример использования таймера T0 для формирования временного интервала 15мс.

;Настроить режим работы таймера------------------------------------------------------------------------------------------- mov TMOD,#00000001b ;перевести таймер T0 в первый режим работы, а T1 - в нулевой ;|||||||| ;||||||++-------Перевести таймер T0 в шестнадцатиразрядный режим работы ;|||||+-----------Синхронизироваться от внутреннего генератора ;||||+------------Запретить управление таймером от ножки INT0 ;||++-------------Перевести таймер T1 в тринадцатиразрядный режим ;|+----------------Синхронизироваться от внутреннего генератора ;+-----------------Запретить управление таймером от ножки INT1 ;Настроить таймер на генерацию 15-ти миллисекундного интервала времени------------------------------------ mov TH0, #HIGH(-15000) ;Загрузить старший байт таймера mov TL0, #LOW(-15000) ;Загрузить младший байт таймера OjidanTimer: jnb TF0, OjidanTimer ;Подождать пока не переполнится таймер

В рассмотренном примере переполнение таймера произойдёт через 15000 циклов процессора, то есть через 15 мс. Программа будет постоянно проверять состояние флага переполнения таймера и как только он установится в единицу перейдёт к выполнению следующей команды.

Нулевой и первый режимы работы таймеров T0 и T1 предназначены для формирования одиночного интервала времени. Если возникает необходимость формировать последовательность интервалов времени для периодических процессов, то загрузка регистров TH0 и TL0 для задания нужного интервала времени производится программно, что для коротких интервалов времени может привести к значительным затратам процессорного времени.

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

Режим 2

В режиме 2 регистр таймера TLx работает как 8-битный счетчик с автоматической перезагрузкой начального значения из регистра ТНх в регистр TLx. Переполнение регистра TLx не только устанавливает флаг TFx, но и загружает регистр TLx содержимым регистра ТНх, который предварительно инициализируется программно.


Начало  Назад  Вперед



Книжный магазин