Курсовая работа: Реализация цифрового фильтра нижних частот
Рис. 2. Общий алгоритм функционирования фильтра.
4. Обоснование построения аппаратной части устройства
Основой аппаратной части устройства является набор БИС КР1830ВЕ31, КР1821РФ55, КР1821РУ55.
1. КР1830ВЕ31- микроконтроллер, выполненный по комплементарной МОП технологии (КМОП);
2. КР1821РФ55- ПЗУ с двумя портами ввода/вывода, работающими в режиме простого обмена;
3. КР1821РУ55- микросхема, в состав которой входят: ОЗУ, таймер, два 8-разрядных (РА и РВ) порта ввода/вывода и один 6-разрядный порт (РС).
Выходной сигнал должен иметь аналоговый вид, для преобразования цифрового кода в аналоговый сигнал, используя ЦАП типа AD9708.Микросхема AD9708 представляет собой 8-разрядный ЦАП, построенный по схеме на транзисторных источниках тока, весовые токи формируются с помощью матрицы R-2R. В качестве опорного источника напряжения может выбираться либо внутренний – с напряжением +1,2 В, либо – внешний.Для обеспечения требуемого размаха напряжения ±5 В, к токовым выходам ЦАП подключаем операционный усилитель.
5. Разработка и отладка программы на языке команд микропроцессора
Рабочая программа фильтра разрабатывается на основе алгоритма функционирования устройства.Для настройки таймера/счетчика Т/С0, в качестве таймера, на работу в непрерывном режиме 2 (без блокировки сигналом и с перезагрузкой после каждого цикла счета) необходимо управляющие биты GATE0=0, C/=0 и код режима 10 записать в состав управляющего слова (константа #02) для регистра TMOD при инициализации – команда MOV 89, #02.
Управляющее слово для регистра TMOD (прямой адрес 89) | |||||||
TMOD.7 | TMOD.6 | TMOD.5 | TMOD.4 | TMOD.3 | TMOD.2 | TMOD.1 | TMOD.0 |
GATE 1 | C/ 1 | M 1.1 | M 0.1 | GATE 0 | C/ 0 | M 1.0 | M 0.0 |
X(0) | X(0) | X(0) | X(0) | 0 | 0 | 1 | 0 |
Для обеспечения требуемой частоты дискретизации , при инициализации, константа #8Е должна быть записана в регистр TH0 – команда MOV 8C, #8Е.Пуск Т/С0 производится путем установке в управляющем регистре TCON битаTR0=1. Команда SETB 8C.
Для настройки порта РВ БИС РУ55 на ввод данных надо в состав регистра управляющего слова записать константу #00.
Управляющее слово для РУС БИС HE 55 (адрес 7000) | |||||||
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
TM2 | TM1 | IE B | IE A | PC2 | PC1 | PB | PA |
x(0) | x(0) | x(0) | x(0) | x(0) | x(0) | 0 | x(0) |
При инициализации – команды MOVA, #00, MOVDPTR, #7000, MOVX @DPTR, A.
А для настройки порта РВ РФ 55 на вывод данных надо в регистр направления передачи порта РВ записать 1. При инициализации – команды MOVA, #01,MOVDPTR, #0803, MOVX @DPTR, A.
Формирование импульса запуска внешнего источника данных выполняется по прерывания от флага TF0, устанавливающегося при переполнении Т/С0. Подпрограмма обработки прерывания от флага TF0 имеет стартовый адрес 000В и содержит команды: CLR 90, SETB 90(сброс и установка бита по линии Р1.0).
Настройка прерываний необходима, так как в результате сброса МК все прерывания запрещены (управляющий регистр IEобнуляется). В первую очередь необходимо разрешить прерывания вообще (бит EA=1), также разрешить прерывания от Т/С0 (бит ET0=1) и по входу (бит EXO=1).
Управляющее слово для регистра IE (прямой адрес А8) | |||||||
IE 7 | IE 6 | IE 5 | IE 4 | IE 3 | IE 2 | IE 1 | IE 0 |
EA | — | — | ES | ET1 | EX1 | ET0 | EX0 |
1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
При инициализации – команда MOVA8, #83.
Переопределять приоритеты прерываний не требуется, так как в результате задержки преобразования внешним устройством аналогового сигнала в цифровой код, запросы на прерывания от Т/С0 и по входу по времени не совпадают(в результате сброса МК управляющий регистр IP – обнуляется).
Распределение памяти ОЗУ (КР1830ВЕ31).
70h-7Fh- стек;
30h, 31h, 32h – хранение отсчетов , , ;
40h, 41h – хранение выходных отсчетов , ;
50h, 51h – хранение отсчетов , .
Распределение памяти ПЗУ (КР1821РФ55).
0000h – команда перехода к программе инициализации по сигналу RST
0003h – команда перехода к программе вычисления и выводавыходного отсчета по сигналу на входе ;
000Bh – команда перехода к программе формирования импульса внешнего источника данных по сигналу переполнения от Т/С0;
00A0h … 00СFh – программа инициализации;
00D0h … 00FFh – программа формирования импульса запуска внешнего источникаданных;