Изучение алгоритма функционирования и программы цифрового фильтра

Тип работы:
Контрольная
Предмет:
Коммуникации, связь, цифровые приборы и радиоэлектроника


Узнать стоимость

Детальная информация о работе

Выдержка из работы

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

РЯЗАНСКИЙ ГОСУДАРСТВЕННЫЙ РАДИОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

КАФЕДРА РАДИОТЕХНИЧЕСКИХ СИСТЕМ

Лабораторная работа № 1

Изучение алгоритма функционирования и программы

цифрового фильтра

Выполнил ст. гр. 310:

Белокуров Е.

Проверил:

Косс

Рязань, 2006

Цель работы

Изучение системы команд МК КР1830ВЕ31, их содержания, способов адресации на примере использования в программе цифрового фильтра. Изучение представления и преобразования данных в МП-системе. Изучение взаимодействия аппаратной части цифрового фильтра и программы. Изучение технологии отладки программы для МК с использованием программного отладчика. Установление истинности результатов выполнения программы цифрового фильтра.

Расчет для положительного входного отсчета максимальной амплитуды:

Разностное уравнение представим в виде:

yn=0,81 xn + xn-2 — 0,81yn-2= kxn + xn-2 — kyn-2; k=0,81

1) Реализуемый коэффициент масштабирования kMP (число без знака) при 8-разрядном формате беззнаковых коэффициентов:

kM=0,381 679 389(10); kMP =, 1 100 001(2) = 61(16) = 0,37 890 625 (10)

2) Реализуемые коэффициенты разностного уравнения (числа без знака) при 8-разрядном форматё беззнаковых коэффициентов:

k=0,81(10); kP =, 11 001 111(2) = CF(16) = 0,80 859 375(10)

3) Код для положительного входного отсчета максимальной амплитуды (немасштабированный отсчет):

xn = 0,1 111 111(2) = 7F(16)

программа адресация цифровой фильтр

4) Масштабированный входной положительный отсчёт максимальной амплитуды:

xn := kMP xn =, 1 100 001(2). 0,1 111 111(2) = 61(16). 7F(16) = 30(16) = 0,110 000 (2) = +0,375(10)

5) Зададим состояние памяти после запоминания масштабированных входных отсчётов максимальной амплитуды и отрицательных выходных отсчётов максимальной амплитуды

Адрес ячейки памяти

Содержимое ячейки памяти

X

xn = 30(16) = 0,110 000 (2) = +0,375(10)

X1

xn-1 = 30(16) = 0,110 000 (2) = +0,375(10)

X2

xn-2 = 30(16) = 0,110 000 (2) = +0,375(10)

Y

Вычисляется программой: yn = 7C(16)

Y1

yn-1 = D0(16) = 1, 1 010 000(2) = -0,375(10)

Y2

yn-2 = D0(16) = 1, 1 010 000(2) = -0,375(10)

P1

Вычисляется программой: p1n = 26(16)

P2

Вычисляется программой: p2n = DA(16)

6) Получим произведение p1n:

p1n = kP xn = CF(16) 30(16) =, 11 001 111(2). 0,11 000 (2) = 26(16) = 0,100 110(2) = + 0,296 875(10)

7) Получим модуль произведения отрицательного отсчёта yn-2 на коэффициент kP:

|p2n| = kP |yn-2| = CF(16) 30(16) =, 11 001 111(2). 0,11 000 (2) = 26(16) = 0,100 110(2) = 0,296 875(10)

8) Вычислим выходной отсчёт:

yn = p1n + xn-2 — (- |p2n|) = 26(16) + 30(16) + 26(16) = 7C(16) = 0,1 111 100 (2) = +0,96 875(10)

Выполнение работы

1. а) Исходное состояние МП-системы, соответствующее аппаратному сбросу по входу RST МК

При включении питания в схеме МП-системы вырабатывается импульс сброса RST для микроконтроллера. По сигналу RST=1 выполняются следующие действия:

1) программный счетчик и все управляющие регистры МК, кроме PCON, IE, IP — устанавливаются в нулевое состояние;

2) в управляющих регистрах PCON, IE, IP — резервные биты принимают случайные значения, все остальные биты сбрасываются в 0;

3) в указателе стека устанавливается адрес SP=70 (вершина стека);

4) запрещаются прерывания от всех источников, запрещается работа таймеров/счетчиков, запрещается работа последовательного порта;

5) выбирается банк 0 POH (текущий банк регистров);

6) порты Р0, Р1, Р2, Р3 настраиваются на ввод для приема данных;

7) в обоих регистрах SBUF последовательного порта устанавливаются случайные значения.

В БИС КР1821РУ55 и КР1821РФ55 исходное состояние после включения питания произвольное, так как импульс RST на их входы сброса не поступает.

1. б) Объём памяти (CSEG), занимаемый программой FZ. Составляет 147 байт.

2) Проверка выполнения всех настроек предусмотренных инициализацией программы:

3) Загрузка в память МП-системы начальных данных:

4). Формирование сигнала запроса прерывания от Т/С0 (Alt + t) и выполнение в пошаговом режиме программного модуля формирования импульса пуска АЦП.

4) Формирование сигнала запроса прерывания от АЦП по входу INT0 (Alt + i) и выполнение в пошаговом режиме рабочего цикла программы.

а) При выполнении программного модуля масштабирования вычисленное программой численное значение масштабированного отсчёта xn равно расчётному и запоминается в заданной ячейке памяти.

б) Вычисленные программой численные значения произведений p1n, p2n равны расчётным и запоминаются в заданных ячейках.

в) Вычисленное программой численное значение выходного отсчёта yn равно расчётному и запоминается в заданной ячейке.

5)Вывод смещенного кода и подготовка следующего рабочего цикла:

а) На ЦАП выведен смещённый входной код.

б) Выполнен сдвиг отсчётов в памяти для подготовки следующего рабочего цикла.

Расчет для отрицательного входного отсчета максимальной амплитуды:

Разностное уравнение представим в виде:

yn=0,81 xn + xn-2 — 0,81yn-2= kxn + xn-2 — kyn-2; k=0,81

1) Реализуемый коэффициент масштабирования kMP (число без знака) при 8-разрядном формате беззнаковых коэффициентов:

kM=0,381 679 389(10); kMP =, 1 100 001(2) = 61(16) = 0,37 890 625 (10)

2) Реализуемые коэффициенты разностного уравнения (числа без знака) при 8-разрядном форматё беззнаковых коэффициентов:

k=0,81(10); kP =, 11 001 111(2) = CF(16) = 0,80 859 375(10)

3) Код для отрицательного входного отсчета максимальной амплитуды (немасштабированный отсчет):

xn = 1,0(2) = 80(16)

4) Масштабированный входной положительный отсчёт максимальной амплитуды:

|xn| := kMP |xn| =, 1 100 001(2). 0,1 111 111(2) = 61(16). 80(16) = 30(16) = 0,110 000 (2) = +0,375(10)

xn := D0(16)

5) Зададим состояние памяти после запоминания масштабированных выходных отсчётов максимальной амплитуды и отрицательных входных отсчётов максимальной амплитуды

Адрес ячейки памяти

Содержимое ячейки памяти

X

xn = D0(16) = 1, 1 010 000(2) = -0,375(10)

X1

xn-1 = D0(16) = 1, 1 010 000(2) = -0,375(10)

X2

xn-2 = D0(16) = 1, 1 010 000(2) = -0,375(10)

Y

Вычисляется программой: yn = 7C(16)

Y1

yn-1 = 30(16) = 0,110 000 (2) = +0,375(10)

Y2

yn-2 = 30(16) = 0,110 000 (2) = +0,375(10)

P1

Вычисляется программой: p1n = DA(16)

P2

Вычисляется программой: p2n = 26(16)

6) Получим модуль произведения отрицательного отсчёта yn-2 на коэффициент kP:

|p1n| = kP |xn| = CF(16) 30(16) =, 11 001 111(2). 0,11 000 (2) = 26(16) = 0,100 110(2) = 0,296 875(10)

7) Получим произведение p1:

p1n = kP yn-2 = CF(16) 30(16) =, 11 001 111(2). 0,11 000 (2) = 26(16) = 0,100 110(2) = + 0,296 875(10)

8) Вычислим выходной отсчёт:

yn = -p2n + xn-2 — (- |p1n|) = DA(16) + D0(16) — 26(16) = 84(16) = 1,100 (2) = -0,96 875(10)

6)Загрузка в память МП-системы начальных данных:

Результаты работы программы:

а) При выполнении программного модуля масштабирования вычисленное программой численное значение масштабированного отсчёта xn равно расчётному и запоминается в заданной ячейке памяти.

б) Вычисленные программой численные значения произведений p1n, p2n равны расчётным и запоминаются в заданных ячейках.

в) Вычисленное программой численное значение выходного отсчёта yn равно расчётному и запоминается в заданной ячейке.

ПоказатьСвернуть
Заполнить форму текущей работой