Цифровые устройства и микропроцессорные системы. Задачи и упражнения: Учебное пособие (Представление чисел и арифметические операции в цифровых устройствах. Микропроцессорные устройства и системы на базе МП КР580ВМ80), страница 96

NOP                            ;           Пустые команды для                                                4

NOP                            ;           выравнивания длитель-                                4

NOP                            ;           ности циклов                                                 4

NOP                            ;                                                                                   4

NOP                            ;                                                                                   4

NOP                            ;                                                                                   4

LP2:                IN        01                    ;Ввод очередного отсчета xn                                    10

ADD    В                     ;Вычисление накапливающейся суммы отсчетов 4

DCR    С                     ;Организация счета и за-                                         5

JNZ     LP1                 ;цикливание                                                              10

OUT    02                    ;Вывод у                                             10

MVI    B,00                ;Обнуление регистра В                                            7

MVI    C,N                  ;Загрузка константы N                                             7

JMP     LP2                 ;Повторение                                                              10

Пустые команды MOV A,A и NOP введены для выравнивания длительностей цикла LP1, в котором рассчитывается частичная сумма, и цикла LP2, в котором рассчитывается окончательная сумма и выводится результат. Для этих длительностей при fт = 2 МГц и N=4 имеем

Время получения одного выходного отсчета, которое складывается из трех циклов LP1 и одного цикла LP2,

Минимальные интервалы дискретизации входного и выходного сигналов 31,5 и 126 мкс, соответственно максимальные частоты 32 и 8 кГц.

Р8.24. Отличие однородного фильтра от однородного фильтра-дециматора из задачи 8.23 состоит в том, что если в последнем необходимо накапливать сумму отсчетов (вплоть до получения суммы N отсчетов), но нет необходимости сохранять сами отсчеты после получения суммы, то в фильтре без децимации необходимо и накапливать сумму, и сохранять N1 отсчетов. Программу естественно построить таким образом, чтобы в каждом цикле суммирования все хранимые в памяти отсчеты сдвигались и последняя ячейка освобождалась для нового отсчета. В нижеприведенной программе такая процедура организуется с помощью указателя стека SP и команды МП XTHL, которая позволяет обменивать содержимое регистровой пары HL и двух соседних ячеек памяти, адреса которых содержатся в указателе стека. (В данной программе регистр Н не применяется и поэтому ячейки памяти используются «через одну».)

Программа однородного цифрового фильтра:

FILTER:          MVI    B,N                  ;Загрузка в регистр В константы N,                       7

;определяющей порядок фильтра

LXI      SP,ST              ;Загрузка в указатель стека адреса вершины         10

;стека

IN        01                    ;Ввод в аккумулятор через порт 01 очередного    10

;отсчета хn

MOV   L,A                  ; Пересылка хnв регистр L                                       5

LP:                  XTHL                          ;Обмен содержимым регистра и ячейки памяти, 18

;адрес которой содержится  в указателе стека

ADD    L                      ;Вычисление в аккумуляторе накапливающейся  4

;суммы отсчетов

INX     SP                    ;(SP)¬(SP) + 2                      5

INX     SP                    ;                                                                                   5

DCR    В                     ;Организация цикла сум-                                         5

JNZ     LP                   ;мирования                                                                10

OUT    02                    ;Вывод через порт 02 выходного сигнала yn          10