- •Цифровой фильтр
- •Постановка задачи (введение)
- •Формализация задачи (определение функций аппаратной части и программы и способов их реализации)
- •Функциональная схема цифрового фильтра
- •Исходное состояние Фильтра после включения питания
- •2.3 Формализация настроек для инициализации фильтра
- •. Формализация определений для рабочего цикла фильтра
- •Разработка и описание общего алгоритма функционирования фильтра
- •Обоснование построения аппаратной части фильтра
- •Назначение выводов и настройки ad9708
- •Разработка и отладка программы на языке команд мк
- •Исходные определения и ручной расчет результатов работы программы: «Цифровой фильтр»
- •Для положительных входных отсчётов
- •Для отрицательного входного отсчёта
- •Составление электрической принципиальной схемы и описание функционирования фильтра
- •Расчет быстродействия фильтра
- •Тип частотной избирательности фильтра. Характеристики для заданных и реальных значений коэффициентов (нули и полюсы, ачх, фчх)
- •Заключение (оценка результатов проектирования)
- •10. Список использованных источников
Исходные определения и ручной расчет результатов работы программы: «Цифровой фильтр»
Разностное уравнение представим в виде:
yn = xn + 1.02xn-2 – 0.04 yn-2 = xn + xn-2 + k1xn-2 – k2 yn-2 ; k1 = 0.02 ; k2 = 0.04
1.Реализуемый коэффициент масштабирования kmp (число без знака) при 8-разрядном формате беззнаковых коэффициентов:
;
где
(10)
kmp=,0111
1100
(2)=7C(16)=
0.484375(10)
2.Реализуемые коэффициенты разностного уравнения k1 и k2 (число без знака) при 8-разрядном формате беззнаковых коэффициентов:
k1=0.02(10) k1=.0000 0101(2)=05(16)=0.01953125(10)
k2=0.04(10) k2=.0000 1010(2)=0A(16)=0.0390625(10)
3.Код АЦП для положительного входного отчёта максимальной амплитуды (немасштабированный отчёт):
Xn=0111 1111(2)=7F(16)
4.Масштабироывнный входной положительный отсчёт максимальной амплитуды:
xn=kmpxn=,0111 1100(2)∙0.111 1111(2)≈0.011 1101(2)=3D(16)=+0.4765625(10)
5.Зададим состояние памяти для положительных входных отсчётов и отрицательных выходных отсчётов максимальной амплитуды:
Для положительных входных отсчётов
Адрес ячейки памяти |
Содержимое ячейки памяти |
0800h (порт РА РФ55) |
xn=7F(16) немасштабированный входной отсчет |
30h |
Вычисляется программой в текущем цикле: Xn=3D(16)=0.0111101(2)=+0.4765625(10), масштабированный входной отсчёт |
31h |
Xn-1=3D(16)=0.0111101(2)=+0.4765625(10) |
32h |
Xn-2=3D(16)=0.0111101(2)=+0.4765625(10) |
40h |
Вычисляется программой в текущем цикле: yn=7D(16) |
41h |
yn-1=C3(16)=1.100 0011(2)=-0.4765625(10) |
42h |
yn-2=C3(16)=1.100 0011 (2)=-0.4765625(10) |
50h |
Вычисляется программой в текущем цикле: p1n=01(16) |
51h |
Вычисляется программой в текущем цикле: p2n=FE(16) |
6.Получим произведение p1n:
p1n=k1xn=05(16)∙3D(16)=.0000 0101(2)∙0.011 1101(2)≈0.000 0001(2)=01(16)=0.0078125(10)
7.Получим модуль произведения отрицательного отсчёта yn-2 на коэффициент k2
P2n=k2∙|yn-2|=0A(16)∙3D(16)=.0000 1010(2)∙0.011 1101(2)≈0.000 0010(2)=02(16)=0.015625(10)
8.Вычислим выходной отсчёт:
yn=xn+xn-2+p1n-(-|p2n|)= xn+xn-2+p1n+|p2n||=3D(16)+3D(16)+01(16)+02(16)=7D(16)=+0.9765625(10);
Для отрицательного входного отсчёта
Адрес ячейки памяти |
Содержимое ячейки памяти |
0800h (порт РА РФ55) |
xn=7F(16) немасштабированный входной отсчет |
30h |
Вычисляется программой в текущем цикле: Xn=С3(16)=1.1000011(2)=-0.4765625(10), масштабированный входной отсчёт |
31h |
Xn-1=С316)=1.1000011 (2)=-0.4765625(10) |
32h |
Xn-2=С3(16)=1.1000011 (2)=-0.4765625(10) |
40h |
Вычисляется программой в текущем цикле: yn=83(16) |
41h |
yn-1=3D(16)=0.0111101 (2)=+0.4765625(10) |
42h |
yn-2=3D(16)=0.0111101 (2)=+0.4765625(10) |
50h |
Вычисляется программой в текущем цикле: p1n=FF(16) |
51h |
Вычисляется программой в текущем цикле: p2n=02(16) |
6.Получим произведение p2n:
P2n=k2∙yn-2=0A(16)∙3D(16)=.0000 1010(2)∙0.011 1101(2)≈0.000 0010(2)=02(16)=0.015625 (10)
7.Получим модуль произведения отрицательного отсчёта Xn-2 на коэффициент k1
|p1n|=k1|xn|=05(16)∙3D(16)=.0000 0101(2)∙0.011 1101(2)≈0.000 0001(2)=01(16)=0.0078125(10)
8.Вычислим выходной отсчёт:
yn=xn+xn-2+p1n|-p2n|= C316)+C3(16)+FF(16)-02(16)=7D(16)=-0.9765625(10);
Расчётные значения и соответствующие им значения, вычисляемые программой, идентичны – программа работает правильно (без переполнения и логических ошибок).
;Программа "Цифровой фильтр"
;Автор Бочков В.В.
;Дата 25.04.2013
;Разностное уравнение Yn = Xn + Xn-2 + 0.02*Xn-2 - 0,04*Yn-2
;Определение символических имён операндов
B2: .EQU 92h ;линия P1.2 для вывода импульса
;запуска АЦП
PA: .EQU 0800h ;порт PA РФ55
PB: .EQU 0801h ;порт PB РФ55
RGRF1: .EQU 0802h ;регистр направления передачи
;порта РA РФ55
RGRF2: .EQU 0803h ;регистр направления передачи
;порта РB РФ55
SRF1: .EQU 00h ;управляющее слово для настройки
;порта PA РФ55
SRF2: .EQU FFh ;управляющее слово для настройки
;порта PB РФ55
TMOD: .EQU 89h ;регистр управления режимами
;таймеров-счётчиков
STMOD: .EQU 02h ;управляющее слово для настройки
;таймера-счётчика
TH0: .EQU 8Ch ;старший байт Т/С0
STH0: .EQU 83h ;управляющее слово для задания
;частоты переполнения T/C0
TR0: .EQU 8Ch ;управляющий бит пуска T/C0
IE: .EQU A8h ;регистр разрешения прерываний
SIE: .EQU 83h ;слово разрешения прерываний
;от T/C0 и входа INT0
B: .EQU F0h ;регистр В
K1: .EQU 05h ;1-ый коэффициент разностного уравнения
K2: .EQU 0Ah ;2-ой коэффициент разностного уравнения
KM: .EQU 7Ch ;коэффициент масштабирования
X: .EQU 30h ;ячейка хранения отсчёта Xn
X1: .EQU 31h ;ячейка хранения отсчёта Xn-1
X2: .EQU 32h ;ячейка хранения отсчёта Xn-2
Y: .EQU 40h ;ячейка хранения отсчёта Yn
Y1: .EQU 41h ;ячейка хранения отсчёта Yn-1
Y2: .EQU 42h ;ячейка хранения отсчёта Yn-2
PR1: .EQU 50h ;ячейка хранения произведения 0,04*Yn-2
PR2: .EQU 51h ;ячейка хранения произведения 0,02*Xn-2
.FILLCHAR 00h ;записать в пропусках
;между секциями нули
;Инициализация по сигналу RST
S0: .SECTION
.ORG 0000h
LJMP INIT ;переход к программе инициализации
S1: SECTION
.ORG 00A0h
INIT: MOV TMOD, #STMOD ;настройка режима Т/С0
MOV TH0, #STH0 ;задание частоты дискретизации
SETB TR0 ;пуск Т/С0
MOV A, #SRF1 ;настройка порта PA РФ55
MOV DPTR, #RGRF1 ;на ввод
MOVX @DPTR, A
MOV A, #SRF2 ;настройка порта PB РФ55
MOV DPTR, #RGRF2 ;на вывод
MOVX @DPTR, A
MOV IE, #SIE ;разрешение прерываний
;от Т/С0 и входа INT0
STOP: SJMP STOP ;останов программы
;Формирование импульса пуска АЦП по внутреннему прерыванию от Т/С0
S2: .SECTION
.ORG 000Bh
LJMP START ;переход к программе
;формирования импульса
;пуска АЦП
S3: .SECTION
.ORG 00D0h
START: CLR B2 ;сброс бита Р1.2
SETB B2 ;установка бита Р1.2
RETI ;возврат из подпрограм-
;мы обработки прерывания
;Вычисление выходного отсчёта по сигналу внешнего прерывания
; от входа INT0, рабочий цикл фильтра
S4: .SECTION
.ORG 0003h
LJMP XYOUT ;переход к программе
;рабочего цикла фильтра
S5: .SECTION
.ORG 0100h
XYOUT: MOV DPTR, #PA ;ввод отсчёта Xn из АЦП
MOVX A, @DPTR ;через порт РА РФ55
;программный модуль масштабирования:
;вычисление произведения Xn := KмXn
;входной отсчёт - в аккумуляторе, масштаби-
;рованный отсчёт записать в ячейку ПЗУ
RLC A ;анализ знака Xn
JC M1 ;переход к программе умножения отрицательного
;отсчёта Xn на Kм
RRC A ;восстановление положи-
;тельного отсчёта Xn
;в аккумуляторе
MOV B, #KM ;вычисление произведе-
MUL AB ;ния KмXn
MOV X, B ;запоминание масштабированного отсчёта Xn
;в памяти
SJMP M2 ;переход к продолжению
M1: RRC A ;восстановление отрица-
;тельного отсчёта Xn в аккумуляторе
CPL A ;получение положительно-
INC A ;го отсчёта Xn (смена знака)
MOV B, #KM ;вычисление произведе-
MUL AB ;ния KмXn и пересылка
MOV A, B ;в аккумулятор
CPL A ;получение отрицательно-
INC A ;го произведения KмXn (смена знака)
MOV X, A ;запоминание масштабированного отсчёта Xn
;в памяти
;программный модуль вычисления
;произведения PR1n := K1*Xn-2
;Xn-2 хранится в ячейке ПЗУ с адресом X2
;PR1n записать в ячейку ПЗУ с адресом PR1
M2: MOV A, X2 ;копирование Xn-2 в аккуму-
RLC A ;лятор и анализ знака
JC M3 ;переход к программе ум-
;ножения отрицательного
;отсчёта Xn-2 на K1
RRC A ;восстановление положительного отсчёта Xn-2
;в аккумуляторе
MOV B, #K1 ;вычисление произведе-
MUL AB ;ния K1Xn-2
MOV PR1, B ;запоминание K1Xn-2 в памяти
SJMP M4 ;переход к продолжению
M3: RRC A ;восстановление отрица-
;тельного отсчёта Xn-2
;в аккумуляторе
CPL A ;получение положительно-
INC A ;го отсчёта Xn-2 (смена знака)
MOV B, #K1 ;вычисление произведе-
MUL AB ;ния K1Xn-2 и пересылка
MOV A, B ;в аккумулятор
CPL A ;получение отрицательно-
INC A ;го произведения K1Xn-2 (смена знака)
MOV PR1, A ;запоминание K1Xn-2 в памяти
;программный модуль вычисления
;произведения PR2n := K2*Yn-2
;Yn-2 хранится в ячейке ПЗУ с адресом Y2
;PR2n записать в ячейку ПЗУ с адресом PR2
M4: MOV A, Y2 ;копирование Yn-2 в аккуму-
RLC A ;лятор и анализ знака
JC M5 ;переход к программе ум-
;ножения отрицательного
;отсчёта Yn-2 на K2
RRC A ;восстановление положительного отсчёта Yn-2
;в аккумуляторе
MOV B, #K2 ;вычисление произведе-
MUL AB ;ния K2Yn-2
MOV PR2, B ;запоминание K2Yn-2 в памяти
SJMP M6 ;переход к продолжению
M5: RRC A ;восстановление отрицательного отсчёта Yn-2
;в аккумуляторе
CPL A ;получение положительно-
INC A ;го отсчёта Yn-2 (смена знака)
MOV B, #K2 ;вычисление произведе-
MUL AB ;ния K2Yn-2 и пересылка
MOV A, B ;в аккумулятор
CPL A ;получение отрицательно-
INC A ;го произведения K2Yn-2
;(смена знака)
MOV PR2, A ;запоминание K2Yn-2 в памяти
;программный модуль вычисления выходного
;отсчёта Yn = Xn + Xn-2 + PR1n - PR2n, слагаемые
;хранятся в ячейках ОЗУ, результат записать
;в ячейку ПЗУ и вывести на ЦАП
M6: MOV A, X ;вычисление отсчёта Yn
ADD A, X2 ;и сохранение в памяти
CLR C
ADD A, PR1
CLR C
SUBB A, PR2
MOV Y, A
ADD A, #80h ;получение смещённого
;кода Yn для ЦАП
MOV DPTR, #PB ;вывод смещённого кода
MOVX @DPTR, A ;Yn на ЦАП через порт
;РВ РФ55
;программный модуль сдвига отсчётов
;в памяти, подготовка следующего рабочего
;цикла
MOV X2, X1 ;
MOV X1, X ;
MOV Y2, Y1 ;
MOV Y1, Y ;
RETI ;возврат из подпрограммы обслуживания
;прерывая по входу INT0
.END
Mon Apr 21 2013 09:24 Page 1
2500 A.D. 8051 Macro Assembler - Version 4.02a
------------------------------------------------
Input Filename : 013-bot.asm
Output Filename : 013-bot.obj
1 ;Программа "Цифровой фильтр"
2 ;Автор Бочков В.В.
3 ;Дата 21.04.2013
4 ;Разностное уравнение Yn = Xn + Xn-2 + 0.02*Xn-2 - 0,04*Yn-2
5
7 ;Определение символических имён операндов
8
9 0092 B2: .EQU 92h ;линия P1.2 для вывода импульса
10 ;запуска АЦП
11 0800 PA: .EQU 0800h ;порт PA РФ55
12 0801 PB: .EQU 0801h ;порт PB РФ55
13 0802 RGRF1: .EQU 0802h ;регистр направления передачи
14 ;порта РA РФ55
15 0803 RGRF2: .EQU 0803h ;регистр направления передачи
16 ;порта РB РФ55
17 0000 SRF1: .EQU 00h ;управляющее слово для настройки
18 ;порта PA РФ55
19 00FF SRF2: .EQU FFh ;управляющее слово для настройки
20 ;порта PB РФ55
21 0089 TMOD: .EQU 89h ;регистр управления режимами
22 ;таймеров-счётчиков
23 0002 STMOD: .EQU 02h ;управляющее слово для настройки
24 ;таймера-счётчика
25 008C TH0: .EQU 8Ch ;старший байт Т/С0
26 0083 STH0: .EQU 83h ;управляющее слово для задания
27 ;частоты переполнения T/C0
28 008C TR0: .EQU 8Ch ;управляющий бит пуска T/C0
29 00A8 IE: .EQU A8h ;регистр разрешения прерываний
30 0083 SIE: .EQU 83h ;слово разрешения прерываний
31 ;от T/C0 и входа INT0
32 00F0 B: .EQU F0h ;регистр В
33 0005 K1: .EQU 05h ;1-ый коэффициент разностного уравнения
34 000A K2: .EQU 0Ah ;2-ой коэффициент разностного уравнения
35 007C KM: .EQU 7Ch ;коэффициент масштабирования
36 0030 X: .EQU 30h ;ячейка хранения отсчёта Xn
37 0031 X1: .EQU 31h ;ячейка хранения отсчёта Xn-1
38 0032 X2: .EQU 32h ;ячейка хранения отсчёта Xn-2
39 0040 Y: .EQU 40h ;ячейка хранения отсчёта Yn
40 0041 Y1: .EQU 41h ;ячейка хранения отсчёта Yn-1
41 0042 Y2: .EQU 42h ;ячейка хранения отсчёта Yn-2
42 0050 PR1: .EQU 50h ;ячейка хранения произведения 0,04*Yn-2
43 0051 PR2: .EQU 51h ;ячейка хранения произведения 0,02*Xn-2
45 .FILLCHAR 00h ;записать в пропусках
46 ;между секциями нули
47
Mon Apr 21 2013 09:24 Page 2
48 ;Инициализация по сигналу RST
49 0000 S0: .SECTION
50 0000 .ORG 0000h
51 0000 02 00 A0 LJMP INIT ;переход к программе
52 ;инициализации
53 0000 S1: SECTION
54 00A0 .ORG 00A0h
55 00A0 75 89 02 INIT: MOV TMOD, #STMOD ;настройка режима Т/С0
56 00A3 75 8C 83 MOV TH0, #STH0 ;задание частоты дискре-
57 ;тизации
58 00A6 D2 8C SETB TR0 ;пуск Т/С0
59
60 00A8 74 00 MOV A, #SRF1 ;настройка порта PA РФ55
61 00AA 90 08 02 MOV DPTR, #RGRF1 ;на ввод
62 00AD F0 MOVX @DPTR, A
63 00AE 74 FF MOV A, #SRF2 ;настройка порта PB РФ55
64 00B0 90 08 03 MOV DPTR, #RGRF2 ;на вывод
65 00B3 F0 MOVX @DPTR, A
66 00B3 75 A8 83 MOV IE, #SIE ;разрешение прерываний
67 ;от Т/С0 и входа INT0
69 00B6 80 FE STOP: SJMP STOP ;останов программы
71 ;Формирование импульса ;пуска АЦП по внутреннему ;прерыванию от Т/С0
74 0000 S2: .SECTION
75 000B .ORG 000Bh
76 000B 02 00 D0 LJMP START ;переход к программе
77 ;формирования импульса
78 ;пуска АЦП
79 0000 S3: .SECTION
80 00D0 .ORG 00D0h
81 00D0 C2 92 START: CLR B2 ;сброс бита Р1.2
82 00D2 D2 92 SETB B2 ;установка бита Р1.2
83 00D4 32 RETI ;возврат из подпрограм-
84 ;мы обработки прерыва-
85 ;ния
87 ;Вычисление выходного отсчёта по сигналу внешнего прерыва-
88 ;ния от входа INT0, рабочий цикл фильтра
89 0000 S4: .SECTION
90 0003 .ORG 0003h
91 0003 02 01 00 LJMP XYOUT ;переход к программе
92 ;рабочего цикла фильтра
93 0000 S5: .SECTION
94 0100 .ORG 0100h
95 0100 90 08 00 XYOUT: MOV DPTR, #PA ;ввод отсчёта Xn из АЦП
96 0103 E0 MOVX A, @DPTR ;через порт РА РФ55
98 ;программный модуль масштабирования:
99 ;вычисление произведения Xn := KмXn
100 ;входной отсчёт - в аккумуляторе, масштаби-
101 ;рованный отсчёт записать в ячейку ПЗУ
103 0104 33 RLC A ;анализ знака Xn
104 0105 40 0A JC M1 ;переход к программе ум-
Mon Apr 21 2013 09:24 Page 3
105 ;ножения отрицательного
106 ;отсчёта Xn на Kм
108 0107 13 RRC A ;восстановление положи-
109 ;тельного отсчёта Xn
110 ;в аккумуляторе
111
112 0108 75 F0 7C MOV B, #KM ;вычисление произведе-
113 010B A4 MUL AB ;ния KмXn
114
115 010C 85 F0 30 MOV X, B ;запоминание масштаби-
116 ;рованного отсчёта Xn
117 ;в памяти
118
119 010F 80 0D SJMP M2 ;переход к продолжению
120 0111 13 M1: RRC A ;восстановление отрица-
121 ;тельного отсчёта Xn
122 ;в аккумуляторе
123
124 0112 F4 CPL A ;получение положительно-
125 0113 04 INC A ;го отсчёта Xn (смена знака)
127 0114 75 F0 7C MOV B, #KM ;вычисление произведе-
128 0117 A4 MUL AB ;ния KмXn и пересылка
129 0118 E5 F0 MOV A, B ;в аккумулятор
130
131 011A F4 CPL A ;получение отрицательно-
132 011B 04 INC A ;го произведения KмXn
133 ;(смена знака)
134
135 011C F5 30 MOV X, A ;запоминание масштаби-
136 ;рованного отсчёта Xn
137 ;в памяти
138
139 ;программный модуль вычисления
140 ;произведения PR1n := K1*Xn-2
141 ;Xn-2 хранится в ячейке ПЗУ с адресом X2
142 ;PR1n записать в ячейку ПЗУ с адресом PR1
143
144 011E E5 32 M2: MOV A, X2 ;копирование Xn-2 в аккуму-
145 0120 33 RLC A ;лятор и анализ знака
147 0121 40 0A JC M3 ;переход к программе ум-
148 ;ножения отрицательного
149 ;отсчёта Xn-2 на K1
151 0123 13 RRC A ;восстановление положи-
152 ;тельного отсчёта Xn-2
153 ;в аккумуляторе
155 0124 75 F0 05 MOV B, #K1 ;вычисление произведе-
156 0127 A4 MUL AB ;ния K1Xn-2
157 0128 85 F0 50 MOV PR1, B ;запоминание K1Xn-2
158 ;в памяти
159 012B 80 0D SJMP M4 ;переход к продолжению
161 012D 13 M3: RRC A ;восстановление отрица-
Mon Apr 21 2013 09:24 Page 4
162 ;тельного отсчёта Xn-2
163 ;в аккумуляторе
164 012E F4 CPL A ;получение положительно-
165 012F 04 INC A ;го отсчёта Xn-2 (смена знака)
167 0130 75 F0 05 MOV B, #K1 ;вычисление произведе-
168 0133 A4 MUL AB ;ния K1Xn-2 и пересылка
169 0134 E5 F0 MOV A, B ;в аккумулятор
171 0136 F4 CPL A ;получение отрицательно-
172 0137 04 INC A ;го произведения K1Xn-2
173 ;(смена знака)
174 0138 F5 50 MOV PR1, A ;запоминание K1Xn-2 в памяти
177 ;программный модуль вычисления
178 ;произведения PR2n := K2*Yn-2
179 ;Yn-2 хранится в ячейке ПЗУ с адресом Y2
180 ;PR2n записать в ячейку ПЗУ с адресом PR2
182 013A E5 42 M4: MOV A, Y2 ;копирование Yn-2 в аккуму-
183 013C 33 RLC A ;лятор и анализ знака
185 013D 40 0A JC M5 ;переход к программе ум-
186 ;ножения отрицательного
187 ;отсчёта Yn-2 на K2
189 013F 13 RRC A ;восстановление положи-
190 ;тельного отсчёта Yn-2
191 ;в аккумуляторе
193 0140 75 F0 0A MOV B, #K2 ;вычисление произведе-
194 0143 A4 MUL AB ;ния K2Yn-2
195 0144 85 F0 51 MOV PR2, B ;запоминание K2Yn-2
196 ;в памяти
197 0147 80 0D SJMP M6 ;переход к продолжению
199 0149 13 M5: RRC A ;восстановление отрица-
200 ;тельного отсчёта Yn-2
201 ;в аккумуляторе
202 014A F4 CPL A ;получение положительно-
203 014B 04 INC A ;го отсчёта Yn-2 (смена знака)
205 014C 75 F0 0A MOV B, #K2 ;вычисление произведе-
206 014F A4 MUL AB ;ния K2Yn-2 и пересылка
207 0150 E5 F0 MOV A, B ;в аккумулятор
209 0152 F4 CPL A ;получение отрицательно-
210 0153 04 INC A ;го произведения K2Yn-2
211 ;(смена знака)
212 0154 F5 51 MOV PR2, A ;запоминание K2Yn-2 в памяти
215 ;программный модуль вычисления выходного
216 ;отсчёта Yn = Xn + Xn-2 + PR1n - PR2n, слагаемые
217 ;хранятся в ячейках ОЗУ, результат записать
218 ;в ячейку ПЗУ и вывести на ЦАП
Mon Apr 21 2013 09:24 Page 5
219
220 0156 E5 30 M6: MOV A, X ;вычисление отсчёта Yn
221 0158 25 32 ADD A, X2 ;и сохранение в памяти
222 015A C3 CLR C
223 015B 25 50 ADD A, PR1
224 015D C3 CLR C
225 015E 95 51 SUBB A, PR2
226
227 0161 F5 40 MOV Y, A
229 0163 24 80 ADD A, #80h ;получение смещённого
230 ;кода Yn для ЦАП
232 0165 90 08 01 MOV DPTR, #PB ;вывод смещённого кода
233 0168 F0 MOVX @DPTR, A ;Yn на ЦАП через порт
234 ;РВ РФ55
236 ;программный модуль сдвига отсчётов
237 ;в памяти, подготовка следующего рабочего
238 ;цикла
240 0169 85 31 32 MOV X2, X1 ;
241 016C 85 30 31 MOV X1, X ;
242 016F 85 41 42 MOV Y2, Y1 ;
243 0172 85 40 41 MOV Y1, Y ;
244 0175 32 RETI ;возврат из подпрограммы
245 ;обслуживания прерывание
246 ;по входу INT0
247 0176 .END
Mon Apr 21 2013 09:24 Page 6
Defined Symbol Name Value References
32 B = 00F0
9 B2 = 0092 81 82
Pre BSECT 0000
Pre CODE 0000
Pre DATA 0000
29 IE = 00A8
55 INIT 00A0 51
33 K1 = 0005 155 167
34 K2 = 000A 193 205
35 KM = 007C 112 127
120 M1 0111 104
144 M2 011E 119
161 M3 012D 147
182 M4 013A 159
199 M5 0149 185
220 M6 0156 197
11 PA = 0800 95
12 PB = 0801 232
42 PR1 = 0050 157 174 223
43 PR2 = 0051 195 212 225
13 RGRF1 = 0802 61
15 RGRF2 = 0803 63
Pre RSECT 0000
49 S0 0000 50
53 S1 00A0 54
74 S2 000B 75
79 S3 00D0 80
89 S4 0003 90
93 S5 0100 94
30 SIE = 0083 66
17 SRF1 = 00FF 60
19 SRF2 = 0000 62
81 START 00D0 76
26 STH0 = 0083 56
23 STMOD = 0002 55
69 STOP 00B6 69
25 TH0 = 008C
21 TMOD = 0089
28 TR0 = 008C
36 X = 0030 115 135 220 241
37 X1 = 0031 240 241
38 X2 = 0032 144 221 240
95 XYOUT 0100 91
39 Y = 0040 227 243
40 Y1 = 0041 242 243
41 Y2 = 0042 182 242
Lines Assembled : 248 Assembly Errors : 0
