8.3.1. Общие сведения

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

- генератора импульсов прямоугольной формы фиксированной или меняющейся частоты;

- преобразователя код-время;

- цифрового одновибратора;

- формирователя сигналов динамической индикации;

- формирователя сигналов для работы микропроцессорной системы в режиме прерывания.

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

Рис. 8.7. Блок программируемого интервального таймера

Рассмотрим программу ступенчатого изменения частоты таймера (табл. 8.6).

Таблица 8.6 Программа ступенчатого изменения частоты таймера

Метки

Мнемокод

Комментарий

1

2

3

MVI A, 16

Ввод числа 16 (режим работы ПИТ) в аккумулятор

OUT E3

Вывод содержимого аккумулятора по адресу ЕЗ (запись управляющего слова в РУС ПИТ) — программирование счетчика 0

МVI А, 05

Ввод числа 05 (начального значения счетчика 0) в аккумулятор

MI

ОUТ ЕО

Вывод содержимого аккумулятора по адресу ЕО, задание начального значения счетчику 0

CALL WAIT

Вызов подпрограммы временной задержки (переход к команде по адресу WAIT)

RLС

Сдвиг содержимого аккумулятора, подготовка нового начального значения аккумулятора, ввод результата в аккумулятор

JMP M1

Переход к команде по адресу M1

WAIT

PUSH PSW

Начало подпрограммы временной задержки: занесение содержимого аккумулятора в стек

MVI A, PF

Ввод числа FF в аккумулятор, загрузка первого числа в подпрограмму временной задержки

Продолжение табл. 8.6

1

2

3

M2

MVI В, FF

Ввод числа FF в регистр В, загрузка второго числа в подпрограмму временной задержки

M3

MVI D, 04

Ввод числа 04 в регистр D, загрузка третьего числа в подпрограмму временной задержки

М4

DCR D

Уменьшение содержимого регистра D на единицу

JNZ М4

Переход к команде по адресу М4

DCR В

Уменьшение содержимого регистра В на единицу

JKZ MЗ

Переход к команде по адресу M3

DCR A

Уменьшение содержимого регистра А на единицу

JNZ M2

Переход к команде по адресу М2

POP PSW

Вызов информации из стека, восстановление содержимого аккумулятора

RET

Возврат в основную программу

Программа работает следующим образом. Число, определяющее режим работы ПИТ (в данном случае счетчик 0 переводится в режим 3 — деления частоты, информация о начальном значении заносится только в младший байт, счетчик работает в двоичном коде), через аккумулятор заносится в РУС ПИТ. Затем по адресу счетчика 0 также через аккумулятор заносится начальное значение (в данной программе равное 05). Далее происходит переход на подпрограмму временной задержки, необходимой для разделения во времени режимов работы счетчика с разными частотами. В заключительной части программы изменяется начальное значение счетчика (содержимое регистра С складывается с содержимым аккумулятора). Этот процесс повторяется циклически.

Для работы таймера по этой программе необходимо произвести следующие соединения: подать на вход счетчика 0 счетные импульсы, на вход управления счетчика 0 подать сигнал логической единицы.

Диаграммы работы таймера для этой программы находятся в файле job2_1.__.

Рассмотрим программу ступенчатого изменения длительности импульса таймера (табл. 8.7).

Таблица 8.7 Программа ступенчатого изменения длительности импульса

Метки

Мнемокод

Комментарий

MVI А, 16

Ввод числа 16 в аккумулятор

OUT E3

Вывод содержимого аккумулятора по адресу ЕЗ (запись управляющего слова в РУС ПИТ) — программирование счетчика 0

MVI А, 14

Ввод числа 14 (начального значения счетчика 0) в аккумулятор

ОUТ E0

Вывод содержимого аккумулятора по адресу E0, задание начального значения счетчику 0

MVI A, 52

Ввод числа 52 в аккумулятор

ОUT E3

Вывод содержимого аккумулятора по адресу E3 (запись управляющего слова в РУС ПИТ) — программирование счетчика 1

MVI A, 01

Ввод числа 01 (начального значения счетчика 1) в аккумулятор

MI

OUT El

Вывод содержимого аккумулятора по адресу EI, задание начального значения счетчику 1

CALL, WAIT

Вызов подпрограммы временной задержки

RLC

Циклический сдвиг содержимого аккумулятора

JMP MI

Переход к команде по адресу Ml, загрузка увеличенного в два раза начального значения счетчика 1

В этой программе используются два счетчика ПИТ: счетчик 0 работает в режиме деления частоты и запускает счетчик 1, который работает в режиме одновибратора. В первой части программы производится загрузка управляющего слова в РУС ПИТ — задание режима работы счетчика 0. Затем вводится начальное значение (коэффициент пересчета) счетчика 0. После этого программируется счетчик 1 и в него заносится минимальная длительность импульса одновибратора, которая через время, определяемое подпрограммой временной задержки, путем циклического сдвига увеличивается в два раза. По достижении максимальной длительности импульс снова укорачивается до минимальной длительности и процесс повторяется.

Для запуска программы необходимо: подать на вход счетчиков 0, 1 счетные импульсы, на вход управления счетчика 0 подать сигнал логической единицы, на вход управления счетчика 1 подать импульсы с выхода счетчика 0.

Диаграммы работы таймера для этой программы находятся в файле job2_2.