Пример1: настроить счетчик СТ0 на режим 1, в мл. байт загрузить число 13Н, счет двоичный.
УС: 0001 0010 = 12Н
MVI A, 12H
OUT 07H
MVI A, 13H
OUT 04H
Пример 2: те же условия, но число двухбайтное 1513Н.
УС: 0011 0010 = 32Н
MVI A, 32H
OUT 07H
MVI A, 13H
OUT 04H
MVI A, 15H
OUT 04H
Пример 3: произвести начальную установку таймера при следующих условиях:
СТ0, режим 5, число 1513Н
СТ1, режим 1, число 06Н
СТ2, режим 2, число 0ВН
Все счетчики работают как двоичные
УС0: 0011 1010 = 3АН
УС1: 0101 0010 = 52Н
УС3: 1001 0000 = 90Н
MVI A, 3АH
OUT 07H
MVI A, 52H
OUT 07H
MVI A, 90H
OUT 07H
MVI A, 13H
OUT 04H
MVI A, 15H
OUT 04H
MVI A, 06H
OUT 05H
MVI A, 0ВH
OUT 06H
Иногда при работе требуется определить содержимое счетчика в произвольный момент времени, т. е. программно определить состояние счетчика:
1. Приостановить работу счетчика − остановить работу счетчика можно 2-мя способами: а) заблокировав подачу счетных импульсов на вход CLK
б) подать запрещающий сигнал на вход GATE = 0.
2. Без останова работы счетчика (чтение на “лету”)
Чтение содержимого счетчика происходит по команде IN CT(0, 1, 2), где СТ(0, 1, 2) − адрес счетчика, который считается. Чтение производится также, как запись.
Пример: прочитать содержимое счетчика с блокированием счетных импульсов, в управляющем слове D4, D5 = 1, Сч0.
MVI A, 00H ; на D0 = 0
OUT PORT_OTKL ; импульсы прекратились
IN CT0
MOV C, A ; сохранение мл. байта
IN CT0
MOV B, A ; сохранение ст. байта
MVI A, 01H
OUT PORT_OTKL ; запустить СТ0
В регистр надо записать специальное управляющее слово, в котором D4, D5 = 0, остальные разряды остаются первоначальными.
После загрузки УС на выходе OUT = 0. Счет разрешается когда OUT = 1. Изменение счетчика происходит по срезу импульса CLK, когда в счетчике 0 на входе OUT = 1.
Режим 1 − счетчик генерирует одиночный импульс
tк = n ∙ TCLK
Запись происходит перепадом 0→1 на входе GATE. Когда счетчик обнуляется на выходе OUT = 1.
Режим 2
ТВЫХ = n ∙ TCLK
fВЫХ = fCLK /n
Режим 3
tк = tп = Т/2
При четном числе, загруженном в счетчик, на его выходе прямоугольные сигналы, у которых равны по времени высокий и низкий уровни. Если же число нечетное, то высокий уровень будет больше на величину периода счетных импульсов.
Режим 4
tзд = n ∙ TCLK
tи = TCLK
Режим 5 − запуск счетчика выполняется с помощью сигнала (перехода) GATE