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

СОДЕРЖАНИЕ: Изучение системы команд МК КР1830ВЕ31, их содержания, способов адресации на примере использования в программе цифрового фильтра. Взаимодействие аппаратной части фильтра и программы. Технология отладки программы с использованием программного отладчика.

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

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

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

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

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

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

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

Белокуров Е.

Проверил:

Косс

Рязань, 2006

Цель работы

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

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

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

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

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

kM =0,381679389(10) ; kMP = ,01100001(2) = 61(16) = 0,37890625 (10)

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

k=0,81(10) ; kP = ,11001111(2) = CF(16) = 0,80859375(10)

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

xn = 0,1111111(2) = 7F(16)

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


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

xn := kMP xn = ,01100001(2) . 0,1111111(2) = 61(16) . 7F(16) = 30(16) = 0,0110000 (2) = +0,375(10)

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

Адрес ячейки памяти Содержимое ячейки памяти
X xn = 30(16) = 0,0110000(2) = +0,375(10)
X1 xn-1 = 30(16) = 0,0110000(2) = +0,375(10)
X2 xn-2 = 30(16) = 0,0110000(2) = +0,375(10)
Y Вычисляется программой:yn = 7C(16)
Y1 yn-1 = D0(16) = 1, 1010000(2) = -0,375(10)
Y2 yn-2 = D0(16) = 1, 1010000(2) = -0,375(10)
P1 Вычисляется программой:p 1 n =26(16)
P2 Вычисляется программой: p 2 n = DA(16)

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

p 1 n = kP xn = CF(16) 30(16) = ,11001111(2) . 0,011000 (2) = 26(16) = 0,0100110(2) = + 0,296875(10)

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

| p 2 n | = kP | yn -2 | = CF(16) 30(16) = ,11001111(2) . 0,011000 (2) = 26(16) = 0,0100110(2) = 0,296875(10)


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

yn = p 1 n + xn -2 - (- | p 2 n |) = 26(16) + 30(16) + 26(16) = 7C(16) = 0,1111100 (2) = +0,96875(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)Формирование сигнала запроса прерывания от АЦП по входу INT 0 (Alt + i ) и выполнение в пошаговом режиме рабочего цикла программы.

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

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

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

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

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

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

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

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

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

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

kM =0,381679389(10) ; kMP = ,01100001(2) = 61(16) = 0,37890625 (10)

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

k=0,81(10) ; kP = ,11001111(2) = CF(16) = 0,80859375(10)

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

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

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

| xn | := kMP |xn | = ,01100001(2) . 0,1111111(2) = 61(16) . 80(16) = 30(16) = 0,0110000 (2) = +0,375(10)

xn := D0(16)

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

Адрес ячейки памяти Содержимое ячейки памяти
X xn = D0(16) = 1, 1010000(2) = -0,375(10)
X1 xn-1 = D0(16) = 1, 1010000(2) = -0,375(10)
X2 xn-2 = D0(16) = 1, 1010000(2) = -0,375(10)
Y Вычисляется программой:yn = 7C(16)
Y1 yn-1 = 30(16) = 0,0110000(2) = +0,375(10)
Y2 yn-2 = 30(16) = 0,0110000(2) = +0,375(10)
P1 Вычисляется программой:p 1 n =DA(16)
P2 Вычисляется программой: p 2 n = 26(16)

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

| p 1 n | = kP | xn | = CF(16) 30(16) = ,11001111(2) . 0,011000 (2) = 26(16) = 0,0100110(2) = 0,296875(10)

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

p 1 n = kP yn -2 = CF(16) 30(16) = ,11001111(2) . 0,011000 (2) = 26(16) = 0,0100110(2) = + 0,296875(10)

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

yn = -p2n + xn-2 - (- |p1n |) = DA(16) + D0(16) - 26(16) = 84(16) = 1,0000100 (2) = -0,96875(10)

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


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

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

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

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

Скачать архив с текстом документа