Informatics Point

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

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

; Программа реализации БИХ фильтра в транспонированной форме

. version 50

. global BUFFER2

. mmregs

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

OUTPORT. set51h. set50h

. data

; данные для фильтра. word0. word0. word 32768*5403/10000; масштабный множитель первого звена 0.5403. word 32768*9500/10000; масштабный множитель первого звена 0.95

. sect"KOFVAR"

; коэффициенты первого звена

B01. word32768*3245/10000. word32768*1/10000. word- (32768*3245/10000). word32768*2776/10000. word- (32768*6399/10000)

; второе звено

B02. word32768*3245/10000. word32768*4918/10000. word32768*3245/10000. word- (32768*4167/10000). word- (32768*8322/10000)

; переменные фильтра

; первое звено. word 0; входной отсчет. word 0; промежуточное значение. word 0; промежуточное значение. word 0; промежуточное значение. word 0; выходной отсчет звена

; второе звено. word 0; входной отсчет. word 0; промежуточное значение. word 0; промежуточное значение. word 0; промежуточное значение. word 0; выходной отсчет звена

. sect "Vectors"

; Таблица векторов прерыванийSTART; INT1 внешние прерывания; INT2; INT3; TINT прерывание по таймеру

. sect"Initmain"

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

; установка режимов работы; запрет прерываний на время установки режимов работы; режим переполнения; режим сдвига значений при передаче (PREG) - >АЛУ; режим расширения знака#0; установка разрешения необходимых прерываний

SPLK#1200,PRD; вводим таймер#1200,TIM; таймер

SPLK#08h, IMR; с интервалом 2000 тактов:; основная программа - бесконечная петля ожидания

; прихода запроса на прерывание

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

. sect"Vvod":

; ввод отсчета#INAD

ININAD, INPORT

; умножение входного отсчета на ММ

LT INAD#IN1

SPHIN1

. sect "Filter"

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

ZAP; (ACC) = (PREG) = 0S31; (S31) - > регистр TB21; (S31) * (B21) - > PREGS21; предыдущее (PREG) + (ACC) - > ACC, (S21) - > T

MPY

B

11; (

S

21) * (

B

11) - >

PREG

APAC; предыдущее (PREG) + (ACC) - > ACC; (ACC) <-> буфер BCC

LACCIN1,16; (IN1) - > ACC

LT S31; (S31) - >T; (S31) * (A21) - > PREG; предыдущее (PREG) + (ACC) - > ACC, (S21) - > T

MPYA11; (S21) * (A11) - > PREG; предыдущее (PREG) + (ACC) - > ACC

SACHS11; сохранение S11S11; (S11) - > T

MPYB01; (S11) * (B01) - > PREG

EXAR; (ACC) <-> буфер BCC

APAC; предыдущее (PREG) + (ACC) - > ACC

SACH OUT1; сохранение выходного отчетаS21; сдвиг (S21) - > S31S11; сдвиг (S11) - > S21

; 2-ое звено

LT OUT1; (OUT1) - > регистр T

LDP #MM2MM2#IN2IN2S32B22S22B12,16S32S12OUT2S22S1

. sect "Vivod"

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

LACCOUT2#OUTAD

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

. end

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

Проектирование сети местной телефонной станции
Переход от электромеханических к электронным системам коммутации и цифровым сетям характеризуется образованием единой системы передачи и коммутации информац ...

Разработка системы управления электроприводом нажимного устройства реверсивного четырехвалкового стана 5000 горячей прокатки
Целью проекта является разработка системы управления электроприводом нажимного устройства реверсивного четырехвалкового стана «5000» горячей прокатки. По ...

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

Меню сайта