Аппаратный состав фильтра в целом уже определен, незатронутым остается преобразователь ток-напряжение. Также следует произвести согласование адресов ОЗУ, ПЗУ, портов ввода-вывода с адресами МП.
Вспомогательные схемы целесообразно выполнять с наименьшими аппаратными затратами, т.е. следует стремиться к сокращению количества микросхем.
Необходимо также обеспечить соответствие адресных пространств ВМ85, РФ55 и РУ55. Так как для адресации ПЗУ необходимо 11 адресных линий, а для адресации ОЗУ – 8, то у МП остается еще 5 свободных адресных линий, которые можно использовать для выбора микросхем в процессе работы фильтра. Кроме того, необходимо учесть адресацию внутренних объектов РФ55 и РУ55.
Адресация портов и регистров направления передачи данных РФ55 осуществляется в соответствии с таблицей:
AD1 | AD0 | Адресуемый объект |
0 | 0 | Порт А |
0 | 1 | Порт В |
1 | 0 | Регистр направления передачи данных порта А |
1 | 1 | Регистр направления передачи данных порта В |
Адресация внутренних узлов РУ55:
А2 | А1 | А0 | Адресуемый объект |
0 | 0 | 0 | Регистру РУС и РСС |
0 | 0 | 1 | Порт А |
0 | 1 | 0 | Порт В |
0 | 1 | 1 | Порт С |
1 | 0 | 0 | Таймер (младший байт) |
1 | 0 | 1 | Таймер (старший байт) |
В микросхемах РФ55 и РУ55 предусмотрены изолированные адресные пространства памяти и ввода-вывода. Для включения РФ55 в работу существует еще два входа – CS1 и CS2 (РУ55 – CS).
4. Разработка и отладка программы на языке команд микропроцессора
Рабочая программа разрабатывается на основе алгоритма функционирования устройства. Порт PВ РУ 55 настраивается на вывод при помощи управляющего слова имеющего вид:
, которое необходимо записать в регистр направления передачи порта.Для настройки таймера на период переполнения
в третьем режиме работы необходимо в младший байт таймера записать , а в старший байт таймера записать .Порт PA РУ 55 настраивается на ввод данных в режиме обмена. Для этого управляющее слово записывается в регистр управляющего слова.
PA и PB – задают направление передачи данных через порты PA и PB соответственно.
“0” - ввод , “1” – вывод. PC2 и PC1 - варианты использования порта С , для режима работы порта РА условного с квитированием в РС2 записываем “1” , В РС1 записываем “0”, в этом случае линии порта С:
PC0 – INTR A PC2 – STB A
PC1 – BFA PC3..PC5 – вывод
IEA и IEB разрешают (IE=1) или запрещают выработку сигналов прерывания INTR портов А и В. TM2 , TM1 - биты которые содержат команды управления таймером , для запуска таймера в эти биты записываются единицы.
Управляющее слово будет иметь вид:
При настройке режимов прерываний необходимо разрешить прерывание МП типа TRAP. Используется команда SIM устанавливающая маску прерываний.
M 7.5, M 6.5, M 5.5 - маски запрещающие соответствующие прерывания.
R 7.5 - бит сбрасывающий триггер, где фиксируется запрос внешнего прерывания по входу TRAP.
MSEN - разрешение установки маски прерываний.
SDEN -разрешение вывода данных находящихся в разряде A7.
SOD - данные предназначенные для вывода через линию SOD.
Маска прерываний будет иметь вид:
Распределение памяти ПЗУ:
0000h…001Dh – программа инициализации;
003Ch…00A4 – программа реакции на прерывание типа RST 7.5;
Распределение памяти ОЗУ:
5000h, 5001h – хранение отсчетов
;5002h, 5003h – хранение произведений
;5004h, 5005h – хранение отсчетов
;50FFh - начальный адрес стека.
Текст программы:
****************************************************************
* Курсовой проект *
* на тему : Цифровой полосовой фильтр *
* выполнил: ст.гр.117 *
* Величко Андрей Викторович *
* Дата :09.04.04 г. *
****************************************************************
* Задание на курсовой проект: *
* линейное разностное уравнение : Y(n)=X(n)+0,04X(n-1)-0.96Х(n-2)- *
*-0,81Y(n-2) *
* частота дискретизации : Fд=6.5кГц *
* входной код - дополнительный *
* выходной сигнал - аналоговый, диапазон измерения (-1..+1) *
* ЦАП-К572ПА1 *
* микропроцессор-КР1821ВМ85 *
****************************************************************
; Определение символических имен
PBRU .EQU 7002h ; порт РВ(РУ 55)
PARU.EQU 7001h ;порт PA (РУ 55)
RGRU.EQU 7000h ;регистр управляющего слова (РУ 55)
TL .EQU 7004h ;младший байт таймера
TH .EQU 7005h ;старший байт таймера
STL .EQU 77h ;младшее слово для загрузки
;в таймер
STH.EQU C2h ;старшее слово для загрузки
;в таймер
SRU .EQU С3h ;управляющее слово для настройки
;портов и пуска таймера (РУ 55)
SRP .EQU 1Bh ;управляющее слово для настройки
;прерываний
AX .EQU 5000h ;адрес отсчета Xn
AX1 .EQU 5001h ;адрес отсчета X(n-1)
AX2 .EQU 5002h ;адрес отсчета Yn
AY .EQU 5003h ;адрес отсчета Y(n-1)
AY1 .EQU 5004h ;адрес произведения P1n
AY2 .EQU 5005h ;адрес произведения P2n
AP1.EQU 5006h ;адрес отсчета Y(n-1)
AP2 .EQU 5007h ;адрес произведения P1n
AP3 .EQU 5008h ;адрес произведения P2n
;Инициализация по сигналу "Сброс"
.ORG 0 ;начальный адрес программного
;модуля инициализаций
LXI SP,50FFh ;организация стека
MVI A,STL ;настройка таймера на частоту
STA TL ;переполнения T=Tд в режиме 3
MVI A,STH ;
STA TH ;
MVI A,SRU ;настройка порта PA (РУ 55)
STA RGRU ;на ввод, РВ (РУ 55) на вывод и пуск таймера
M1:HLT ;останов.ожидания прерывания
JMP M1 ;переход на команду останова
;процессор по окончании под-
;-программы обслуживания
;прерывания
.ORG 24H;начальный адрес программной
;реакции на прерывание типа
;TRAP
LDA PARU ;ввод текущего кода
;в аккумулятор
;Программный модуль масштабирования
;вычисление произведения
;Xn:=0,0101101*Xn=
;
;входной отсчет храниться в аккумуляторе ,
;масштабированный отсчет записать в ячейку
;ОЗУ с адресом AX
MOV H,A ;Xn ® H
ARHL ;арифметические сдвиги
ARHL ;входного отсчета
;и накопление суммы
MOV A,H ;частичных произведений в
ARHL аккумуляторе : (2^-2*Xn+2^-3*Xn+2^-4*Xn+ +2^-6*Xn+2^-8*Xn) ® A
ARHL;
ADD H
ARHL;
ADD H ;
ARHL ;
ARHL ;
ADD H ;
STA AX ;запоминание отсчета
;Xn в памяти
;Программный модуль вычисления произведения:
;P1n:=0,04*X(n-1)@0,0000101*X(n-1)=
;=(2^0+2^-6+2^-7+2^-8)*X(n-1)
LDA AX1 ;X(n-1) ® A
MOV H,A ;X(n-1) ® H
;арифметические сдвиги
;отсчета X(n-1) и
;накопление суммы
ARHL ;частичных произведений:
ARHL ;(2^0+2^-6+2^-7+
ARHL ;+2^-8)*X(n-1) ® A
ARHL ;
ARHL ;
MOV A,H ;
ARHL;
ARHL ;
ADD H;
STA AP1 ;запоминание P1n в памяти
;Программный модуль вычисления произведения:
;P2n:=0,96*X(n-2)@0,1111010*Y(n-1)=
;=(2^-3+2^-4+2^-5+2^-8)*Y(n-1)
LDA AX2 ;Y(n-1) ® A
MOV H,A ;Y(n-1) ® H
ARHL
MOV A,H ;арифметические сдвиги
ARHL
ADD H;отсчета Y(n-1) и
ARHL ;накопление суммы
ADD H ;частичных произведений:
ARHL ;(2^-3+2^-4+2^-5+
ADD H ;+2^-8)*Y(n-1) ® A
ARHL
ARHL ;
ADD H;
STA AP2 ;запоминание P2n в памяти
;Программный модуль вычисления произведения:
;P3n:=0,81*Y(n-2)@0,1100111*Y(n-1)=
LDA AY2 ;Y(n-1) ® A
MOV H,A ;Y(n-1) ® H
ARHL
MOV A,H ;арифметические сдвиги
ARHL
ADD H ;отсчета Y(n-1) и
ARHL
ARHL
ARHL ;накопление суммы
ADD H ;частичных произведений:
ARHL;(2^-3+2^-4+2^-5+
ADD H;+2^-8)*Y(n-1) ® A
ARHL ;
ADD H ;
STA AP3 ;запоминание P2n в памяти
;Программный модуль вычисления выходного
;отсчета Yn=Xn+P1n-P2n-P3N
LDA AX ;Xn ® A
LXI H,AP1 ;загрузка адреса P1n
ADD M ;Xn-P1n ® A
INX H ;получение адреса P2n
SUB M ;Xn-P1n-P2n ® A
INX H ;получение адреса P2n
SUB M
STA AY ;запоминание Yn в памяти
ADI 80h ;получение смещенного
;входного кода ЦАП
STA PВRU ;вывод кода на ЦАП через
;порт PВ (РУ 55)
;Программный модуль сдвига отсчетов
;в памяти
LHLD AX1 ;
SHLD AX2
LHLD AX ;
SHLD AX1 ;
LHLD AY1 ;
SHLD AY2
LHLD AY ;
SHLD AY1 ;
RET ;возврат из подпрограммы обслуживания прерывания
Отладку программы произведем на основе программного обеспечения в состав которого входит:
- ассемблер, преобразующий написанную программу в машинный код ;
- отладчик – эмулятор, который эмитирует работу процессора ;
Произведем отладку фрагмента программы ( программный модуль вычисления Yn)
LDA AX ; Xn ® A
LXI H, AP1 ; AP1 ® H
SUB M; (A) - ([HL]) ®A
INX H ; (HL) + 1 ® HL
SUB M ; (A) - ([HL]) ®A
STA AY ; (A) ® AY
5. Составление и описание электрической принципиальной схемы устройства
Принципиальная схема цифрового фильтра содержит след. микросхемы:
DD1 – МП К1821ВМ85
DD2 – ПЗУ КР1821РФ55
DD3 – ОЗУ КР1821РУ55
DD4 – ЦАП К572ПА
DD5 - ОУ К574УД1
Выходной узел работает в режиме биполярного выходного напряжения. Для наиболее полного использования динамических свойств ЦАП на выходе включён быстродействующий ОУ К574УД1, обладающий
, выходным напряжением 10В и скоростью его нарастания 50-100 В/мкс. В цепи стабилизации включен стабилитрон КС 191Ф который задаёт опорное напряжение . В результате на выходе схемы формируется напряжение от -Uref до Uref. ЦАП К572ПА допускает изменение опорного напряжения от –22,5В до +22.5В.В данном курсовом проекте использована типовая схема подключения ОУ к ЦАП, где коэффициент передачи регулируется резистором R6. Т. е. для обеспечения заданного напряжения на выходе (-1 …+1)В необходимо подстроить R6 и подать на ЦАП опорное напряжение 1 В.