Глава 10
Листинг 10.1. Продолжение
VNIZ: clr clr ldi
VLEVO:
VPRAVO:
add ret clr clr ldi add ret
clr ldi add ret
tip R19 tip, R19,
tip R2 0 tip, R20,
clr R21 tip, R21,
tip
tip
tip
tip
;определения комбинации
г клавиш через их общую сумму
;и дальнейшее выделение по ; коду
.•подпрограмма сброса регистров в начальное состояние
cbr |
R18, |
content> |
cbr |
R19, |
content> |
cbr |
R20, |
content> |
cbr |
R21, |
content> |
ret |
||
cbr |
R22, |
content> |
cbr |
R23, |
content> |
cbr |
R24, |
content> |
cbr |
R25, |
content> |
ret |
;подпрограмма времени паузы передачи битов
d016ms: wdr ;0.168 мс
ldi YL, low(420) .-т.к. 2 байта, то нижний байт
ldi YH, high(420) ;и верхний байт десятичного
; числа имеют такую запись
d05_l: sbiw YL, 1 brne d05_l ret
;подпрограмма времени паузы опроса клавиши dlOOms: ldi ZL, low(10000) ;10 мс
ldi ZH, high(10000) d500_l: nop
sbiw ZL, 1
nop
nop
nop
nop
nop
brne d500 1
Радиоуправление моделями автомобилей
251
Листинг 10,1. Окончание
ret
;перекодировка клавиши recod: пор
cpi R27, /сравнение регистра и константы
brbs 1, vv /переход, если результат - ноль
cpi R27,
brbs 1, vn
cpi R27,
brbs 1, vl
cpi R27,
brbs 1, vlv
cpi R27,508
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
rjmp isc vlv: ldi R27, cvleverh
rjmp isc vpv: ldi R27, cvpraverh isc: nop
rcall brodcast /к подпрограмме передачи данных
isb: nop ret
/подпрограммы декодирования нажатой клавиши
Листинг 10.2. Шестнадцатеричный код управления передатчиком
020000020000FC
10000O0002CO00000OOO0FED0DBF0027112768BAE5 1000100 00EE007BB1127AA2 76FD07 3DOA895C09810 10002000C298C3987 9D0C0995 3D0C29AC39874D05B
252
Глава 10
Листинг 10,2. Окончание
:10003000C09953D0C298C39A6FD0C09953D0C29A7 6 :1000400OC39A6ADOC09953D0000060FC07C0622FE9 :10005000732F842F952F6394E3CF000098 942 6177 5 :10006000C9F63717B9F64 817A9F6591799F6240FA4 :100070002F93822F5CD02F91250FB22F58D0000034 :10008000340F3F93B32F53D03F910000350FB32F60 :100090004ED000003FCFC1981127AA271AE0000058 :10O0A000A8E088944B2E0O0O0O00441C10F020F4BF :1000B00003C0C19A23D002C0C19828D000009894E8 :1000C0O0AA958 9F7C19898941A954 9F70O0O089560 :1000DO00AA27222 7A1E02AOF0895AA273327A3E001 :1000E0003A0F0895AA274 427A5E04A0F0895AA27A2 :1000F0005527A9E05A0F08952F7F3F7F4F7F5F7FDD :1001000008956F7F7F7F8F7F9F7F0895A895C4EAB2 :10011000D1E02197F1F70895EOE1F7E2000031978F :10012000000000000000000O00O0C1F7O89500007A :10013000B13099F0B33099F0B53069F0B630A9F02C :10014000B8307 9F0B9302 9F0BA3089F0BC3059F0C4 :1001500011C0B1EA0DC034EA0BC0B8EA0 9C0BAEAEE :1001600007COB5EA05COB3EA03COBBEA01C039EAF3 :08017 000000091DF000008957A :00000001FF
НА ГЛАВНУЮ | | ЧТО ТАКОЕ PIC ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ | | КАРТА САЙТА |