Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Системное программирование.doc
Скачиваний:
178
Добавлен:
19.03.2015
Размер:
1.96 Mб
Скачать

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

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

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

Адрес

Назначение

40h

Счетчик 0 (чтение/запись).

41h

Счетчик 1 (чтение/запись).

42h

Счетчик 2 (чтение/запись).

43h

Управляющий регистр.

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

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

Биты

7

6

5

4

3

2

1

0

Значение

SC1

SC0

RW1

RW0

М2

M1

M0

BCD

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

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

SС1

SС0

Значение

0

0

Счетчик 0.

0

1

Счетчик 1.

1

0

Счетчик 2.

1

1

Состояние канала.

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

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

RW1

RW0

Значение

0

0

Фиксировать текущее значение счетчика.

0

1

Чтение/запись только LSB.

1

0

Чтение/запись только MSB.

1

1

Чтение/запись LSB сначала, затем MSB.

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

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

Режим

М2

М1

М0

Значение

0

0

0

0

Прерывание от таймера.

1

0

0

1

Программируемый ждущий мультивибратор.

2

x

1

0

Программируемый генератор импульсов.

3

x

1

1

Генератор меандра.

4

1

0

0

Программно-запускаемый одновибратор.

5

1

0

1

Аппаратно-запускаемый одновибратор.

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

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

S0

Значение

0

Двоичная.

1

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

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

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

Биты

7

6

5

4

3

2

1

0

Значение

1

1

CNT

STA

C2

C1

C0

x

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

Счетчик

C2

C1

C0

0

0

0

1

1

0

1

0

2

1

0

0

Все

1

1

1

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

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

Биты

7

6

5

4

3

2

1

0

Значение

OUT

NC

RW1

RW0

M2

M1

M0

BCD

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