Смекни!
smekni.com

Разработка цифрового фильтра (стр. 2 из 3)

При этом:

- программный счетчик (ВМ85) принимает нулевое значение;

- сбрасывается флаг разрешения прерываний (ВМ85);

- все линии портов PAи PB (РФ55) настраиваются на ввод;

- порты PA, PB, PC (РУ55) настраиваются на ввод данных в режиме простого обмена данными;

- таймер (РУ55) останавливается;

- содержимое ячеек ОЗУ и буферных регистров портов (РУ55) сохраняется.

3.Разработка общего алгоритма функционирования фильтра

Общий алгоритм функционирования фильтра строится на основе выводов и определений, сделанных при анализе задачи, и включает в себя все функции устройства, реализуемые аппаратно и реализуемые программно. Он содержит также все сигналы и сообщения, необходимые для взаимосвязи аппаратно-реализуемых и программно-реализуемых операций.

При подаче питания, схема сброса формирует импульсы сброса, который обнуляет счетчик команд МП и инициирует формирование импульса сброса RESETдля установки МП - системы в исходное состояние. Запускается программа инициализации МП – системы, которая должна начинаться с нулевого адреса. При инициализации:

- в указатель стека SPзаписывается начальный адрес, с которого начинается стек;

- порт PA (РФ55) настраивается на ввод данных ; в регистр направления передачи записывается управляющее слово;

- таймер настраивается на период переполнения, равным

в режиме 3;

- порт PA (РУ55) настраивается на ввод ;

- пуск таймера;

- настройка режима прерывания.

Программа инициализации завершается остановом МП. Из состояния останова МП выводится сигналом INTRA, поступающим на вход RST 5.5 МП. Последующие операции выполняются под управлением рабочей программы фильтра. Выполнение рабочей программы - это реакция на прерывание, поэтому после обслуживания прерываний по команде возврата из подпрограммы МП возвращается в состояние останова.

4. Обоснование аппаратной части устройства

Основой аппаратной части устройства является набор К1821, в состав которого входят три микросхемы:

- К1821ВМ85 – микропроцессор;

- КР1821РФ55 – ПЗУ с двумя портами ввода/вывода, работающими в режиме простого обмена;

- КР1821РУ55 – ОЗУ, таймер и два направленных порта ввода/вывода. Выходной сигнал должен иметь аналоговый вид, для преобразования цифрового кода в аналоговый сигнал, используется ЦАП типа К572ПА1.

Микросхема ЦАП К572ПА1 преобразует 10 – разрядный входной параллельный двоичный код в ток на аналоговом выходе, пропорциональный значениям кода и опорного напряжения.

Для преобразования кода в ток используют внешний источник опорного напряжения и матрица резисторов R – 2R.

К выводу ЦАП подключается операционный усилитель (К140УД8).

5. Разработка и отладка программы на языке команд микропроцессора

Рабочая программа разрабатывается на основе алгоритма функционирования устройства. Порт PВ РУ 55 настраивается на вывод при помощи управляющего слова имеющего вид:

, которое необходимо записать в регистр направления передачи порта.

Для настройки таймера на период переполнения

в третьем режиме работы необходимо в младший байт таймера записать 21h, а в старший байт таймера записать C2h.

Порт PAРУ 55 настраивается на ввод данных в режиме обмена, а также запускается таймер. Для этого управляющее слово записывается в регистр управляющего слова.

Формат управляющего слова:

D7 D6 D5 D4 D3 D2 D1 D0

PA и PB– задают направление передачи данных через порты PAи PB соответственно.

“0” - ввод, “1” – вывод ; следовательно записываем “0” в D1 и D1.Биты PC2 и PC1 - варианты использования порта С, т.к. порт С нами не используется, то записываем в D4 и D3 - “0”. Биты IEAи IEB разрешают (IE=1) или запрещают выработку сигналов прерывания INTRпортов А и В, данный тип прерывания нам нет нужен, поэтому записываем в D5 и D4 - “0”. TM2, TM1 - биты которые содержат команды управления таймером, для запуска таймера в эти биты записываем единицы.

Управляющее слово будет иметь вид:

11000000(2)=С0h

При настройке режимов прерываний необходимо разрешить прерывание МП типа RST5.5. Используется команда SIMустанавливающая маску прерываний.

Формат маски:

A7 A6 A5 A4 A3 A2 A1 A0

M 7.5, M 6.5, M 5.5 - маски запрещающие соответствующие прерывания.

R 7.5 - бит сбрасывающий триггер, где фиксируется запрос внешнего прерывания по входу RST5.5.

MSEN - разрешение установки маски прерываний.

SDEN -разрешение вывода данных находящихся в разряде A7.

SOD - данные предназначенные для вывода через линию SOD.

Маска прерываний будет иметь вид:

00011110(2)=1Dh

Распределение памяти ПЗУ:

0000h…001Dh– программа инициализации;

002Ch…0096h– программа реакции на прерывание типа RST 5.5;

Распределение памяти ОЗУ:

5000h, 5001h,5002h– хранение отсчетов

,
,
;

5003h, 5004h,5005h – хранение отсчётов

,
,
;

5006h, 5007h,5008h– хранение произведений

,
,
;

50FFh - начальный адрес стека.

Текст программы:

* Курсовой проект *

* на тему : Цифровой полосовой фильтр *

* выполнил: ст.гр.215 *

* Агарков Дмитрий Николаевич *

* Дата :18.04.05 г. *

* Задание на курсовой проект: *

* линейное разностное уравнение : Y(n)=X(n)-0,091X(n-1)-0.13Х(n-2)- *

*-0,98Y(n-2) *

* частота дискретизации : Fд=5.5кГц *

* входной код - дополнительный *

* выходной сигнал - аналоговый, диапазон измерения (-1..+1) *

* ЦАП-К572ПА1 *

* микропроцессор-КР1821ВМ85 *

PARF.EQU0800h;порт РА(РФ55)

RGARF.EQU0802h;регистр направления передачи

; порта РА(РФ55)

PARU.EQU7001h; порт РА(РУ55)

RGRU.EQU7000h;регистр управляющего слова (РУ55)

TL.EQU7004h;младший байт таймера

TH.EQU7005h;старший байт таймера

STL.EQU21h;младшее слово для загрузки в таймер

STH.EQUC2h;старшее слово для загрузки в таймер

SRF.EQUFFh;управляющее слово для настройки порта

;РА(РФ55)

SRU.EQUC0h;управляющее слово для настройки

;портов и пуска таймера (РУ55)

SPR.EQU1Dh;управляющее слово для настройки

;прерываний

AX.EQU5000h;адрес отсчета

AX1.EQU5001h;адрес отсчета

AX2.EQU5002h;адрес отсчета

AY.EQU5003h;адрес отсчета

AY1.EQU5004h;адрес отсчета

AY2.EQU5005h;адрес отсчета

AP1.EQU5006h;адрес произведения

AP2.EQU5007h;адрес произведения

AP3.EQU5008h;адрес произведения

;Инициализация по сигналу «Сброс»

.ORG0000 ;начальный адрес программного

;модуля инициализации

DI;запрет прерываний

LXISP,50FFh;организация стека

MVIA,SRF;настройка порта РА(Рф55) на вывод

STARGARF;

MVIA,STL;настройка таймера на частоту

STATL;переполнения Т=Тд в режиме 3

MVI A,STH ;

STA TH ;

MVIA,SRU;настройка порта РА(РУ55) на ввод

STARGRU;и пуск таймера

MVIA,SPR;настройка режима прерываний

SIM;

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

M1: HLT;останов, ожидание прерывания

JMPM1 ;переход на команду останова

;процессора по окончании подпрог-

;раммы обслуживания прерывания

.ORG2Сh;начальный адрес программной

;реакции на прерывание типа RST 5.5

LDAPARU;ввод текущего кода АЦП в аккумулятор

;программный модуль масштабирования

;вычисления произведения

;xn:=0.0111010*xn=(2-2+2-3+2-4+2-6)*xn