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

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

Проектирования мультисервисной сети
В данном курсовом проекте рассматривается проблема проектирования мультисервисной сети предприятия “Магазин”. Термин мультисервисная сеть означает, что в да ...

Проектирование коммутационной системы узловой АТС
Цель Разработка и настройка местной телефонной сети для узловой АТС. 1 Сформировать данные заказчика для проектирования сети связи. 2 Пр ...

Проектирование источника вторичного электропитания
Научно технический прогресс в значительной мере связан с развитием радиотехники и электроники. В таких далёких от радиотехники областях, как медицина, транс ...

Меню сайта