Исследование программируемого таймера, страница 4

Второй способ чтения имеет особенность, которая заключается в том, что нельзя предварительно отдельно по каждому каналу произвести запись УС для "защелкивания" счета, а затем производить чтение. Содержимое счетчика в данном случае извлекается в следующем порядке:

1.  операция записи «защелкивает» текущее значение счета в буферных регистрах;

2.  первая операция чтения извлекает содержимое младшего байта;

3.  вторая операция чтения извлекает содержимое старшего байта.

Режим записи

Как уже упоминалось, режим работы и величина счета выбранного канала ПТ программируются путем записи в регистр режима УС, а в счетчик необходимого числа байтов (одного или двух). Ввод информации в таймер осуществляется при наличии напряжения логического нуля на входе .

Порядок программирования ПТ весьма гибок. Запись УС в таймер возможна, когда A0=1, A1=1, и может производиться в каналы в любой последовательности, так как регистр режима в каждом канале имеет свой адрес, определяемый комбинацией значений D7, D6 в УС. Очередность загрузки счетчиков значениями чисел так же, как и при записи УС в регистры режима, может быть произвольной. Однако если выбранный счетчик канала подлежит загрузке, то он обязательно должен быть загружен полностью именно тем количеством байтов, которое было запрограммировано в УС (сначала младший, затем старший байт информации). Во время работы счетчика допускается повторный ввод нового значения числа без изменения режима его работы.

Режимы работы ПТ

После записи УС в регистр режима выбранного канала он переводится в один из шести основных режимов работы:

1)  режим 0 (прерывание терминального счета или программируемая задержка);

2)  режим 1 (ждущий мультивибратор);

3)  режим 2 (генератор частоты импульсный или делитель частоты);

4)  режим 3 (генератор меандра);

5)  режим 4 (одиночный программно-формируемый строб);

6)  режим 5 (одиночный аппаратно-формируемый строб).

Они отличаются порядком формирования выходного напряжения на выходе OUT по окончании отсчета числа, загруженного в счетчик, по отношению к управляющему сигналу GATE. Рассмотрим каждый из режимов подробнее.

Режим 0 − прерывание терминального счета

В этом режиме на выходе выбранного канала таймера формируется сигнал высокого уровня после отсчета числа n, загруженного в счетчик, т.е. с программируемой задержкой.

После записи УС в регистр режима канала на выходе ОUT устанавливается напряжение низкого уровня; загрузка счетчика не изменяет это состояние. Затем начинается декремент счетчика (последовательное вычитание из него единицы), производимый спадающим фронтом сигнала CLK. В момент, когда счетчик обнулится, на выходе OUT устанавливается напряжение высокого уровня, используемое для прерывания работы МП и сохраняющееся до загрузки счетчика новым значением. Перезагрузка счетчика во время счета приводит к следующему:

1.  загрузка младшего байта останавливает текущий счет;

2.  загрузка старшего байта запускает новый цикл счета.

Счет возможен только при наличии сигнала высокого уровня на входе GATE. Низкий уровень этого сигнала или ниспадающий фронт запрещают счет. Если в процессе счета устанавливается низкий уровень на входе GATE, содержимое счетчика сохраняется и после восстановления высокого уровня счет продолжается от запомненного значения. Минимально допустимое значение счетчика равно 2.

Пример работы ПТ в режиме прерывания терминального счета показан на рис. 5.

Рис. 5. Работа таймера в режиме 0

В режиме 0 правильность загрузки счетчика можно проконтролировать, выполнив обычную операцию чтения. Но если во время загрузки счетчика счетной величиной отсутствует сигнал CLK, то прочитать загруженное число нельзя, так как оно будет находиться в регистре хранения и для его передачи в счетный триггер требуется наличие хотя бы одного такта сигнала CLK.

Режим 1 − ждущий мультивибратор

В режиме 1 на выходе OUT формируется отрицательный импульс длительностью n×T, где n − число, загруженное в счетчик, T − период следования тактовых импульсов CLK на входе счетчика. Низкий уровень на выходе OUT устанавливается после первого спадающего фронта сигнала CLK, следующего за подачей на вход GATE сигнала высокого уровня. Минимальное допустимое число n=1.