Изучение алгоритма функционирования и программы цифрового фильтра
СОДЕРЖАНИЕ: Изучение системы команд МК КР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 равно расчётному и запоминается в заданной ячейке.