- •Постановка задачи (введение)
- •Формализация задачи (определение функций аппаратной части и программы и способов их реализации)
- •Функциональная схема цифрового фильтра
- •Исходное состояние Фильтра после включения питания.
- •2.3Формализация настроек для инициализации фильтра.
- •Формализация определений для рабочего цикла фильтра.
- •Согласование кодов мк и цап
- •Разработка и описание общего алгоритма функционирования фильтра
- •Аппаратно - реализуемые операции Программно - реализуемые операции
- •5.Разработка и отладка программы на языке команд мк
- •Исходные определения и ручной расчёт результатов работы программы: "Цифровой фильтр (верхних частот)"
- •6.Составление электрической принципиальной схемы и описание функционирования фильтра
- •7. Расчет быстродействия фильтра
- •8. Анализ характеристик фильтра для заданных и реальных значений коэффициентов (нули и полюса, ачх, фчх, оценка устойчивости)
- •9.Заключение
- •10. Список использованных источников
Исходное состояние Фильтра после включения питания.
При включении питания в схеме МП-системы вырабатывается импульс сброса RST для МК. По сигналу RST = 1 выполняются следующие действия:
1) программный счетчик и все управляющие регистры МК, кроме PCON, IE, IP - устанавливаются в нулевое состояние;
2) в управляющих регистрах PCON, IE, IP - резервные биты принимают случайные значения, все остальные биты сбрасываются в 0;
3) в указателе стека устанавливается адрес SP = 70 (вершина стека);
4) запрещаются прерывания от всех источников, запрещается работа таймеров/счётчиков, запрещается работа последовательного порта;
5) выбирается банк 0 РОН (текущий банк регистров),
6) порты Р0, Р1, Р2, РЗ настраиваются на ввод для приёма данных;
7) в обоих регистрах SBUF последовательного порта устанавливаются случайные значения.
В БИС РФ55 исходное состояние после включении питания произвольное, так как импульс RST на их входы сброса не поступает.
Из этого следует, что переходу фильтра в рабочий режим должна предшествовать его настройка (инициализация) на обеспечение принятого принципа функционирования, выбранных режимов работы узлов, заданных рабочих характеристик.
2.3Формализация настроек для инициализации фильтра.
Частота синхронизации МК.
Примем частоту задающего кварцевого генератора Fosc = 12 МГц. Длительность машинного цикла при этом равна Тмц = 1 мкс.
Настройка таймера-счётчика Т/С0
Режим работы. По сформулированному выше определению Т/С0 должен работать в непрерывном режиме таймера (без блокирования сигналом INT1) для формирования импульсов с частотой дискретизации FД. Выбираем поэтому режим 2 с перезагрузкой после каждого цикла счёта. Управляющие биты GATE0 = 0, С/Т 0 = 0 и код режима 10 записываются в состав управляющего слова (константа #02) для регистра TMOD при инициализации фильтра - команда MOV 89, #02.
Управляющее слово для регистра TMOD (прямой адрес 89) |
|||||||
TMOD.7 |
TMOD.6 |
ТМОD.5 |
ТМOD.4 |
TMOD.3 |
TMOD.2 |
TMOD.1 |
TMOD.0 |
х(0) |
х(0) |
х(0) |
х(0) |
0 |
0 |
1 |
0 |
GATE1 |
С/Т 1 |
М1.1 |
М0.1 |
GATE0 |
С/Т 0 |
М1.0 |
М0.0 |
Задание частоты дискретизации FД = 1150 Гц. Длительность интервала дискретизации равна Тд = 869 мкс. Количество машинных циклов Тмц, укладывающихся на интервале дискретизации: N = Тд / Тмц = 217, т.е. Т/С0 должен иметь в режиме с перезагрузкой коэффициент счёта kсч = N = 217.
Максимальный коэффициент пересчёта 8-разрядного счётчика (без перезагрузки) равен kМАКС = 28 = 256. Чтобы в режиме суммирования 8-разрядный Т/С0 имел требуемый коэффициент пересчёта kсч = N, при перезагрузке в него должно записываться число Nиcx = kМАКС - N, для рассматриваемого примера Nиcx = 39(10) = 27(16).
Константа #27, обеспечивающая требуемую частоту дискретизации, при инициализации фильтра должна быть записана для хранения в регистр TH0 (прямой адрес 8С) - команда MOV 8C, #27.
Пуск Т/С0 осуществляется путём установки в регистре TCON управляющего бита TR0 =1 при инициализации фильтра - команда SETB 8C.
Вывод импульса переполнения Т/С0 для запуска периферийного устройства выполняется по прерыванию от флага TF0, устанавливающегося при переполнении Т/С0. Подпрограмма обработки прерывания от флага TF0 имеет стартовый адрес 000В и содержит команды: CLR 92, SETB 92 - сброс и установка линии Р1.6 (порт Р1), так как исходное состояние линии - 1 (во все защёлки портов при сбросе МК записаны 1, - порты настроены на ввод).
Настройка прерываний
В результате сброса МК при включении питания всем источникам прерываний назначается одинаковый, нулевой приоритет. Поскольку обработка прерываний от таймера Т/С0 и по входу INT1 не могут совпадать по времени, переопределять приоритеты прерываний не требуется.
После сброса МК все прерывания запрещены. Поэтому при инициализации требуется разрешить прерывания вообще (установить бит ЕА = 1), и, в частности, разрешить прерывания от Т/С0 (ЕТ0 = 1) и по входу INT1
(ЕХ1 = 1). Команда записи управляющего слова (константы #86) в регистр IE: MOVA8,#86.
Управляющее слово для регистра IE (прямой адрес А8) |
|||||||
IE.7 |
IE.6 |
IE.5 |
IE.4 |
IE.3 |
IE.2 |
IE.1 |
IE.0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
ЕА |
- |
- |
ES |
ЕТ1 |
ЕХ1 |
ЕТ0 |
ЕХ0 |
Настройка портов БИС КР1821РФ55
Порт РВ РФ55 настраивается на ввод. При инициализации фильтра команды: MOVA, #01; MOV DPTR, #0803;
а порт РА РФ55 – на вывод. При инициализации фильтра команды:
MOVA, #FF; MOV DPTR, #0802; MOVX@DPTR, A ;
Организация стека
При сбросе МК в указатель стека загружается адрес SP = 70, - во внутренней памяти данных назначается стек (16 ячеек ОЗУ) с начальным адресом 70. Глубина стека достаточна для решаемой задачи, поэтому переопределение стека не требуется.
