Informatics Point

Информатика и проектирование

Исходный текст программы на языке ассемблера с комментариями

; Реализация КИХ фильтра (N-1) порядка (19 коэффициентов)

. version 50

. global BUFFER2

. mmregs

; Задание значений символов, используемых в программе

N. set 19; к-во коэффициентов фильтра

OUTPORT. set 51h; параллельный порт, используемый для вывода отсчетов фильтра

INPORT. set 50h; параллельный порт, используемый для ввода отсчетов сигнала

. data

; данные для фильтра

INAD. word 0. word 0. word 32768*850/1000; масштабный множитель на входе 0.85

. sect "Vectors"

; Таблица векторов прерываний

B START BEGIN; INT1 внешние прерывания

B BEGIN; INT2BEGIN; INT3 BEGIN; TINT прерывание по таймеру

. sect "Initmain"

; Инициализация процессора и основная программа

START:

; установка режимов работы

SETC INTM; запрет прерываний на время установки режимов работы

CLRC OVM; режим переполнения

SPM 1; режим сдвига значений при передаче (PREG) - АЛУ

SETC SXM; режим расширения знака

LDP #0; установка разрешения необходимых прерываний

SPLK #1000h,PRD; ввод таймера#1000,TIM#08h, IMR

CLRC INTM; разрешение прерываний

LOOP:; основная программа - бесконечная петля ожидания прихода запроса на; прерывания

B LOOP

; подпрограмма прерывания, которая состоит из трех основных частей

. sect "Vvod"

; прием очередного отсчета

BEGIN:#0 # (N-2),BRCR; установка повторений блока команд

LDP #INAD INAD, INPORT; прием отсчета через входной порт

; умножение отсчета на ММ

LT INADMM#BUFFER2 BUFFER2; запись отсчета в буфер

. sect "Filter"

; программа реализации фильтра

LAR AR2,# (BUFFER2+N-1); загрузка начального (для вычислений) адреса; отсчетов в регистр AR2

LAR AR1,# (BUFFER1+N-1); загрузка начального адреса коэффициентов в AR1

MAR *,AR1; установка текущего ARn

ZAP; (PREG) = (ACC) = 0

RPTB B_END-1; задание блока команд для повторения

LT *-,AR2; к-т B - регистр Т, начиная с B (n-1)

MPYA *-; В*Х - PREG; предыдущее (PREG) добавляется к (ACC)

DMOV *,AR1; сдвиг отсчета Х в буфер, необходимый для вычисления следующего; выходного значения фильтра Y

B_END:

; перемножение и добавление в ACC последнего произведения В*Х без сдвига Х

LT *,AR2*#OUTAD OUTAD; сохранение полученного выходного отсчета

. sect "Vivod"

; вывод выходного отсчета фильтра

OUT OUTAD,OUTPORT INTM; разрешение прерывания для приема следующего отсчета

RET

; резервирование памяти для хранения входных отсчетов

. sect "BUFFER2"2. space N*16

; секция данных с к-тами фильтра, начиная с b0

. sect "BUFFER1"

. word32768*51/10000

. word- (32768*478/10000)

. word- (32768*410/10000)

. word- (32768*596/10000)

. word32768*854/10000

. word32768*1223/100000

. word- (32768*846/10000)

. word- (32768*1903/100000)

. word32768*350/10000

. word32768*2196/100000

. word32768*350/10000

. word- (32768*1903/100000)

. word- (32768*846/10000)

. word32768*1223/100000

. word32768*854/10000

. word- (32768*596/10000)

. word- (32768*410/10000)

. word- (32768*478/10000)

. word32768*51/10000

. end

Лучшие статьи по информатике

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

Электроакустика и радиовещание
Произвести необходимую планировку (реконструкцию) помещения с целью использования его в качестве аудитории. Рассчитать требуемую акустическую обработку внут ...

Расчет основных характеристик усилительного каскада биполярного транзистора
транзистор усилитель каскад Целью данной курсовой работы по предмету “Схемотехника телекоммуникационных устройств” является применение знаний полученных ...

Меню сайта