Радиоуправление моделями автомобилей
269
Листинг 10 3 Продолжение
vps:
cp real nop clz mov cp real nop clz mov cp
real nop clz mov cp
rcall
nop
brbs
nop
clz
dec
nop
brbc
rjmp
nop
ldi
nop
clc
rcall
nop
ret
srav, 1 raven
ana, R3 srav, ana raven
ana, r2 srav, ana 1 raven
ana, Rl srav, ana raven
0, ravn
tip
biti, $DF
.■организация цикла 10 раз .•переход, пока Z не устанозлен
;при равенстве 5 раз присвоить ;переменную
г сброс знака переноса гп/п замены регистра r0
;п/п анализа равенства двух регистроз и накопления данных
кап:
пор
brbc
пор
inc
пор
clz
cpi
brbs
sec
nop
clz
1, kah
tuto
tuto, 5 1, kah
;n/n обработки равенства
;устанозлен в предыдущей операции Z
;да, устанозлен
;увеличить счетчик на единицу
;сразнить 5 созпадений
;нет, пропуск команды
;да, устанозка флага переноса
270
Глаза 10
Листинг 10.3, Продолжение
ret
гп/п замены регистра R0
nop |
||
push |
RO |
|
mov |
RO, |
Rl |
mov |
Rl, |
R2 |
mov |
R2, |
R3 |
mov |
R3, |
R4 |
mov |
R4, |
R5 |
mov |
R5, |
R6 |
mov |
R6, |
R7 |
mov |
R7, |
R8 |
mov |
R8, |
R9 |
nop |
||
pop |
RO |
|
nop |
||
mov |
R9, |
RO |
nop |
||
ret |
ча остальные R1-R9
;кругозой цикл замены R0 ;сохранение R0
.•извлечение R0
;по окончанию замены
;п/п записи по конзейеру 10-ти поступизших значений zapis: пор
mov |
R9, |
R8 |
mov |
R8, |
R7 |
mov |
R7, |
R6 |
mov |
R6, |
R5 |
mov |
R5, |
R4 |
mov |
R4, |
R3 |
mov |
R3, |
R2 |
mov |
R2, |
Rl |
mov |
Rl, |
RO |
mov |
RO, |
"top |
nop ret
;n/n частичного управления: анализ совпадения команды
;и положения руля, управление вперед и назад, если задано
chast: пор
and R27, tmp
пор
ret
;п/п прозерки кода 2-го п/байта и перекодировки регистра rascod: пор
cpi R27, .-сравнение регистра и константы
Радиоуправление моделями азтомобилей
271
Листинг 10.3. Продолжение
brbs |
I, vv /переход, если результат - .-:ол |
|
cpi |
R27, |
|
brbs |
1, vn |
|
cpi |
R27, |
|
brbs |
1, vl |
|
cpi |
R27, |
|
brbs |
1, vlv |
|
cpi |
R27, |
|
brbs |
1, vln |
|
cpi |
R27, |
|
brbs |
1, vp |
|
cpi |
R27,content>A |
|
brbs |
1, vpv |
|
cpi |
R27,content>C |
|
brbs |
1, vpn |
|
rjmp |
isb ;код - ноль или другой |
|
;перекодировка |
||
vp: |
ldi |
R27, cvpravo ;присваивание регистру кода |
rjmp |
isc /переход на передачу кода |
|
vl : |
ldi |
R27, cvlevo |
rjmp |
isc |
|
vv: |
ldi |
R27, cverh |
rjmp |
isc |
|
vn: |
ldi |
R27, cvniz |
rjmp |
isc |
|
vln: |
ldi |
R27, cvlevniz |
rjmp |
isc |
|
vpn: |
ldi |
R27, cvpravniz |
rump |
isc |
|
vlv: |
ldi |
R27, cvleverh |
rjmp |
isc |
|
vpv: |
ldi |
R27, cvpraverh |
nop |
||
rjmp |
isc |
|
l sb: |
ldi |
biti, $AF |
isc: |
nop |
|
ret |
||
; n/n |
чтения |
данных из порта 3 и анализ позорста руля |
in b: |
: nop |
|
out |
PORTB, R2 7 |
|
in |
tmp, P0RT3 ;получение данных из порта В |
|
cp |
tmp, R27 |
|
nop |
||
ret |
272
НА ГЛАВНУЮ | | ЧТО ТАКОЕ PIC ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ | | КАРТА САЙТА |