Виды машинных циклов. Слово состояния процессора. Слово состояния МП КР580ВМ80А. Ввод-вывод в режиме прерывания. Алгоритм обслуживания прерываний, страница 38

Режим 4 - программно-управляемый строб. После установки режима 4 на выходе канала появляется уровень "1". Когда число полностью загружено в счетчик канала и на управляющий вход подан уровень "1", начинается счет, и при достижении конечного числа на выходе появляется импульс уровня "0" длительностью в один период тактовой частоты.

Режим 5 - схемотехнически управляемый строб. Работа канала в этом случае аналогична работе в режиме 4 с той лишь разницей, что счетчик канала после загрузки начинает счет только по переднему фронту на управляющем входе. Кроме того, если во время счета на управляющем входе снова появится передний фронт сигнала, то счет будет начат сначала.

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

При первом способе для обеспечения стабилизации показаний счета работа счетчика должна быть приостановлена подачей на управляющий вход уровня "0" (в режимах 0, 2, 3, 4) или с помощью внешней логической схемы, приостанавливающей подачу импульсов на тактовый вход канала.

Второй способ позволяет процессору считывать содержимое счетчика, не прерывая процесса счета. Для этого в ПТ по адресу A0=1, A1=1 осуществляется запись управляющего слово, определяющего в соответствии с табл. 3 режим чтения на лету (D4=0, D5=0). Разряды D6 и D7 определяют номер канала, состояние разрядов D0...D3 произвольно. По этой команде в буферном регистре защелкивается текущая величина счета, далее следует обычная операция чтения содержимого счетчика. Отметим, что данная команда не изменяет содержимого регистра режима. При этом способе чтения нельзя предварительно по каждому каналу производить запись управляющих слов и лишь затем производить чтение счетчиков каналов.

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

1.3.  Пример программирования

Часто программируемый таймер используется для создания тактовой частоты для контроллера последовательного порта передачи данных. Такой тандем оказывается очень гибким устройством с точки зрения его настройки на скорость передачи и режимы работы.

Рассмотрим настройку такого устройства на частоту передачи данных 4800 бит/с. Дополнительные условия: на вход CLK0 таймера подается тактовая частота 2 МГц, последовательный контроллер работает с внутренним предделителем на 16. Выбрав в этом случае константу счета счетчика 0, равной 26, мы получим скорость последовательного порта 2000000/26/16=4808 бит/с, что соответствует погрешности установки частоты -0,17%. Это не превышает предельно допустимой погрешности в 3%.

В табл. 4 приведена процедура программирования счетчика 0 программируемого таймера на константу счета 26.

Таблица 4. Пример программирования таймера КР580ВИ53

A1,A0

Операция

Регистр

Данные

Комментарий

11

Зп

Регистр команд

00111100 (36H)

Счетчик 0, чтение/запись слова, режим 3

00

Зп

Счетчик 0

00011010 (1AH)

Младший байт константы счета (26 десятичное)

00

Зп

Счетчик 0

00000000 (00H)

Старший байт константы счета

Заметим, что можно было бы здесь обойтись программированием на запись только младшего байта (старший все равно равен нулю), но в общем случае следует предусматривать изменение константы счета по ходу работы системы в больших пределах и заранее программировать счетчик на ввод/вывод слова.

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