Структура регистров таймера

Таймеру соответствуют три регистра счетчика и один управляющий регистр (табл. 79).

 

Табл. 79. Регистры таймера.

Адрес Назначение
40h Счетчик 0 (чтение/запись).
41h Счетчик 1 (чтение/запись).
42h Счетчик 2 (чтение/запись).
43h Управляющий регистр.

 

 

Формат управляющего регистра показан в табл. 80.

 

Табл. 80. Формат управляющего регистра.

Биты
Значение SC1 SC0 RW1 RW0 М2 M1 M0 BCD

Старшие два разряда SC1 и SC0 позволяют выбрать счетчик, либо получить информацию по состоянию канала (режим SC1=1 и SC0=1 определен только для микросхемы 8254 и последующих версий; для 8253 этот режим является запрещенным) (табл. 81).

 

 

Табл. 81. Номер счетчика.

SС1 SС0 Значение
Счетчик 0.
Счетчик 1.
Счетчик 2.
Состояние канала.

 

 

Разряды RW1RW0 определяют способ загрузки делителя через однобайтовый порт (табл. 82). Управляющее слово RW1=0 и RW0=0 используется для фиксации текущего содержимого регистров счетчика в буферном регистре. Поля M и BCD при этом игнорируются.

 

 

Табл. 82. Тип операции чтения-записи.

RW1 RW0 Значение
Фиксировать текущее значение счетчика.
Чтение/запись только LSB.
Чтение/запись только MSB.
Чтение/запись LSB сначала, затем MSB.

 

 

Режим работы счетчика задается разрядами M2M1M0 (табл. 83).

 

 

Табл. 83. Выбор режима работы.

Режим М2 М1 М0 Значение
Прерывание от таймера.
Программируемый ждущий мультивибратор.
x Программируемый генератор импульсов.
x Генератор меандра.
Программно-запускаемый одновибратор.
Аппаратно-запускаемый одновибратор.

 

 

Разряд BCD служит для задания системы счисления (двоичной или двоично-десятичной) (табл. 84). Диапазон значений в двоичной системе 0…65535, в двоично-десятичной – 0…9999.

 

 

Табл. 84. Выбор системы счисления.

S0 Значение
Двоичная.
Двоично-десятичная.

 

 

В режиме SC1=1 и SC0=1 управляющий регистр изменяет свою структуру (табл. 85). Такой режим носит название «Read back command» и позволяет выполнить операцию чтения состояния каналов либо получить содержимое регистра счетчика для указанного канала. Можно выполнить эти операции для отдельных каналов, так и для всех одновременно, если установить соответствующие биты в 1 (табл. 86).

 

 

Табл. 85. Формат управляющего регистра.

Биты
Значение CNT STA C2 C1 C0 x

 

 

Табл. 86. Коды выбора счетчика.

Счетчик C2 C1 C0
Все

 

 

При CNT=0 и STA=1 доступно текущее значение счетчика. Для этого необходимо просто прочитать его содержимое. При CNT=1 и STA=0 доступен режим работы счетчика. В этом случае структура регистра счетчика изменится (табл. 87).

 

 

Табл. 87. Формат регистра счетчика.

Биты
Значение OUT NC RW1 RW0 M2 M1 M0 BCD

 

 

Формат состояния канала напоминает формат регистра управляющего слова, за исключением двух старших разрядов. Назначения разрядов M2M1M0 и BCD останется прежними. Разряд OUT определяет текущий уровень на выходе счетчика в момент выполнения команды. Разряд NC используется, в основном, в режимах 1 и 5 для определения, произошла ли загрузка делителя из регистра RD в регистр счетчика RCNT.