Лабораторный практикум по курсу "Микропроцессорные устройства". Часть 1, страница 24

            В блоках  5,  6 производится программная проверка пассивного состояния сигнала Strob, т.е. определение момента перехода этого сигнала из высокого уровня в низкий. Это делается для того, чтобы длительность сигнала Strob Ts была  строго  выдержана.  Прог­рам­мная  проверка  го­товности  какого-либо устройства (канала 1) называется полингом.  Аль­тернативным полингу является ввод/вывод по  прерываниям.  Для  реализации по­лин­га сигнал Strob с помощью внешней перемычки необходимо подать на любой из раз­ря­дов входного порта Input (см. табл. П9.1), например, Input0.

            В блоке 7 производится ввод содержимого счетчика канала  2. Это  делается пос­ле­­­дова­тель­ным считыванием двух байт из регистра с адресом 1102Н сначала младшего бай­та, а затем стар­шего байта содержимого счетчика канала 2, которое обозначим через Х.

            В блоке 8 производится преобразование Х в Nx. Это можно сделать по формулам

                        Nx = 9999H - X                                                                                (П9.6)

или

                        Nx = FFFFH - X                                                                               (П9.7)

    Формула П9.6 используется,  если канал 2 запрограммирован (в блоке 2) на двоично-де­ся­тич­ный формат, а формула П9.7 - если канал 2 запрограммирован на двоичный фор­мат. В последнем случае Nx получается в двоичном формате и его необходимо перевести в  двоично-десятичный фор­мат с помощью специальной подпрограммы.  Формулы П9.6, П9.7 получены с учетом того, что счетчик канала 2 при подсчете импульсов частотного сигнала работает на вычитание. Это оз­на­чает,  что значение Х является остатком,  а ис­ко­мое значение Nx - вычитаемым.  Умень­ша­емое  (9999Н или FFFFH) загружается в счет­чик канала 2 перед запуском сигнала Strob (см. блок 3).

            В блоке 9 производится вывод значения отсчета на индикатор с гашением нез­на­ча­щих ведущих нулей Nx. Положение десятичной точки определяется по следующему пра­вилу. Как по­ка­зывает формула П9.1, при Ts = 10 мсек и 1 кГц <= Fx < 10 кГц в счетчике  ока­жется  10 <=  Nx < 100.  Это означает,  что запятая должна выводится между двумя млад­шими байтами Nx.  Это по­ло­жение остается в силе и  для всех других значений час­то­ты Fx.

            В блоке 10 вводится задержка для уменьшения  частоты  вывода значений отсчетов на ин­ди­катор,  что уменьшает мелькание индикатора.

            П9.4. Улучшение алгоритма поддержки измерителя частоты

            Алгоритм функционирования программы поддержки измерителя частоты (см.  рис. П9.5.) имеет очевидный недостаток и допускает улучшение.  Недостаток заключается в том,  что в течение сравнительно  длительного  промежутка времени Ts (длительности строба) процессор выполняет рутинную  операцию -  программную  проверку пассив­но­го  состояния сигнала Strob.  Этот недостаток может быть устранен выполнением блоков 8, 9 сразу после выполнения блока 4. В этом случае на проверку пассивного состояния сиг­на­ла Strob уйдет меньше времени на дли­тель­ность выполнения блоков 8 и 9.

ПРИЛОЖЕНИЕ 10

            Ввод частотных сигналов в МПС по  прерываниям

            П10.1. Аппаратная часть измерителя частоты

            В п. П9.4 показано, что полинг (программный опрос готовности какого-либо уст­ройства) при­водит к непроизводительному расходованию  процессорного  времени.  Уст­ра­нить  этот не­дос­таток можно применением ввода/вывода по прерываниям.

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

            В УОУ "Электроника-580" в  качестве  контроллера  прерываний используется ИМС К580ВН59. Функциональная схема его подключения к магистрали УОУ приведена на рис.  П10.1. Подробное описание ИМС К580ВН59  приведено в [1...4],  ниже при­во­дит­ся описание особенностей применения этого контроллера в УОУ.