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
Таймер на микроконтроллере MSP430F2013
Практически
в любой современной электронной технике можно найти микроконтроллеры. Столь
широкое применение этих микросхем обусловлено чрезвычайно удачным со ...
Расчет усилительного каскада на биполярном транзисторе
Транзистор - это полупроводниковый прибор с двумя или
несколькими р-n-переходами, позволяющий усиливать
электрические сигналы и имеющий три вывода или более ...
Рынок систем атмосферных оптических линий связи
Современные
средства связи и управления в основном работают в радиодиапазоне, но важную
роль начинают играть информационные каналы работающие в других диапа ...
Меню сайта
2024 © www.informaticspoint.ru