Студентам > Курсовые > Разработка микропроцессорного устройства цифрового фильтра
Разработка микропроцессорного устройства цифрового фильтраСтраница: 5/6
Программу, реализующую математическую модель
фильтра начнем с адреса 000Eh и разместим в таблицу 5,
2.
Таблица 5.2
Адрес
|
Метка
|
Мнемонический код
|
Комментарии
|
Циклы
|
|
|
ORG 0x00E
|
Директива
|
|
000Eh
|
|
MOVLW 0xFF
|
Пересылка 0xFF в аккумулятор
|
1
|
000Fh
|
|
BSF STATUS, RP0
|
Выбор банка 1
|
1
|
0010h
|
|
MOVWF TRISA
|
Порт А – Вход
|
1
|
0011h
|
|
CLRF TRISB
|
Порт В – Выход
|
1
|
0012h
|
|
MOVLW 0x18
|
Организация счетчика СOUNT
|
1
|
0013h
|
|
BCF STATUS, RP0
|
Выбор банка 0
|
1
|
0014h
|
|
MOVWF COUNT
|
Организация
счетчика
|
1
|
0015h
|
|
MOVLW 0x0C
|
Адрес начальной ячейки в ОЗУ
|
1
|
0016h
|
|
MOVWF FSR
|
Пересылка адреса начальной ячейки в
FSR
|
1
|
0017h
|
M1:
|
CLRF INDF
|
Обнуление текущей ячейки памяти
|
1
|
0018h
|
|
INCF FSR, 1
|
Адрес + 1
|
1
|
0019h
|
|
DECF COUNT
|
Счетчик – 1
|
1
|
001Ah
|
|
BTFSS STATUS, Z
|
Условный переход по 1 значению флага нулевого
результата
|
1(2)
|
001Bh
|
|
GOTO M1
|
|
2
|
001Ch
|
M2:
|
BSF STATUS,RP0
|
Выбор банка 1
|
1
|
001Dh
|
|
CLRF ADCON1
|
RA0-RA3 Входы АЦП
|
1
|
001Eh
|
|
MOVLW 0xC1
|
|
1
|
001Fh
|
|
BCF STATUS,RP0
|
Выбор банка 0
|
1
|
0020h
|
|
MOVWF ADCON0
|
АЦП включен, работает канал0 (RA0),
частота 32Tosc.
|
1
|
0021h
|
|
BSF INTCON ADIE
|
Разрешить прерывание АЦП
|
1
|
0022h
|
|
BSF INTCON GIE
|
Разрешить глобальное прерывание
|
1
|
0023h
|
|
BSF ADCON0, GO
|
Запустить АЦП
|
1
|
0024h
|
|
BCF STATUS, C
|
Очистка триггера переноса
|
1
|
0025h
|
|
RRF UM1, 0
|
Циклический сдвиг
вправо через триггер переноса
|
1
|
0026h
|
|
BCF STATUS, C
|
Очистка триггера переноса
|
1
|
0027h
|
|
RRF W, 0
|
Циклический сдвиг
вправо через триггер переноса
|
1
|
0028h
|
|
MOVWF A11UM1
|
W® A11UM1
|
1
|
0029h
|
|
BCF STATUS, C
|
Очистка триггера переноса
|
1
|
002Ah
|
|
RRF YN1, 0
|
Циклический сдвиг
вправо через триггер переноса
|
1
|
002Bh
|
|
BCF STATUS, C
|
Очистка триггера переноса
|
1
|
002Ch
|
|
RRF W, 0
|
Циклический сдвиг
вправо через триггер переноса
|
1
|
002Dh
|
|
BCF STATUS, C
|
Очистка триггера переноса
|
1
|
002Eh
|
|
RRF W, 0
|
Циклический сдвиг
вправо через триггер переноса
|
1
|
Продолжение
таблицы 5.2
|
002Fh
|
|
BCF STATUS, C
|
|
1
|
0030h
|
|
RRF W, 0
|
Циклический сдвиг
вправо через триггер переноса
|
1
|
0031h
|
|
MOVWF B11YN1
|
W® B11YN1
|
1
|
0032h
|
|
BCF STATUS, C
|
Очистка триггера переноса
|
1
|
0033h
|
|
RRF YN1, 0
|
Циклический сдвиг
вправо через триггер переноса
|
|
0034h
|
|
ADDWF W, 0
|
W=W+W
|
1
|
0035h
|
|
ADDWF W, 0
|
W=W+W
|
1
|
0036h
|
|
ADDWF B11YN1
|
W=W+
B11YN1
|
1
|
0037h
|
|
SUBWF A11UM1, 0
|
W= A11UM1- W
|
1
|
0038h
|
|
MOVWF YNN
|
W® YNN
|
1
|
0039h
|
|
BCF STATUS, C
|
Очистка триггера переноса
|
1
|
003Ah
|
|
RRF UM1, 0
|
Циклический сдвиг
вправо через триггер переноса
|
1
|
003Bh
|
|
MOVWF A21UM1
|
W®
A21UM1
|
1
|
003Ch
|
|
BCF STATUS, C
|
Очистка триггера переноса
|
1
|
003Dh
|
|
RRF YK1, 0
|
|