Серж, пока не будет реальной задачи, не будет понимания асма, давай делать таракана на контроллере, и пофиг если он будет написан не тобой, а обществом. Через понятную задачу поймешь кибернетику (асм)
Не нужны дебагеры и протеусы, поверь...
roboforum.ruТехнический форум по робототехнике. |
|
|
rjmp reset ;
rjmp EXT_INT0 ;
rjmp EXT_INT1 ;
.def temp=r16 ;
.def tempH=r17
.def tempL=r18
.dseg ;
.eseg ;
.cseg ;
.equ in1 = PB2 ;na port B0 podklucen in1 L293
.equ in2 = PB3 ;na port B1 podklucen in2 L293
.equ TSO =PD2 ; na port B2 podklucen osnovnoy TSOP
.equ in3 = PB4 ;na port B3 podklucena in3 L293
.equ in4 = PB5 ;na port B4 podklucen in4 L293
.equ TSL =PB0 ;na port PB0 podklucen leviy TSOP
.equ TSP =PB1 ;na port PB1 podklucen praviy TSOP
.equ PAUER END =PD0 ; signal razryada batarei
reset:
ldi tempH,$04 ;neobhodimaia
out SPH,tempH ;ustanovka
ldi tempL,$5F ;dlia
out SPL,tempL ;vseh MEG
ldi temp,0b11000000 ;flag na INT1
out GICR, temp ;
ldi temp,0b00001100 ;po narastaniu na INT1
out MCUCR,temp ;
ldi temp,0b11000000 ; razreshenie vneSh.prer.
out GIFR, temp ;flag na INT1
; ldi temp,0b11000000 ;flag na INT1
; out GICR, temp ;
;nastroyka portov
ldi temp, 0b00000001 ; PD Vh.
out ddrD, temp ;
ldi temp, 0b00000100 ; podtyazka na PD2-3
out portD, temp ;
ldi temp,0b00111100 ; PB0.,PB1 vhod.,PB2-PB5 vih
out ddrB,temp ; zapis' v registr
ldi temp,0b00000011 ; podtyazka na PB0.,PB1
out portB,temp ; vivod na portB
sei ;
start:
sbis pinb,tsl ;
rjmp a ;
sbis pinb,tsp ;
rjmp b ;
sbi portb,in1 ;dvizenie vpered
cbi portb,in2 ;esli ne srabotali
sbi portb,in3 ;datchiki
cbi portb,in4 ;
rjmp start ;
a:
cbi portb,in1 ;dvizenie
cbi portb,in3 ;nazad
sbi portb,in2 ;
sbi portb,in4 ;
ldi temp,255 ;zagr chislo
rcall pause ; vizov pausi
cbi portb,in1 ;bort
sbi portb,in2 ;vpered.
sbi portb,in3 ;bort
cbi portb,in4 ;nazad.
rcall pause ;
rjmp start ;
b:cbi portb,in1 ;dvizenie
cbi portb,in3 ;nazad
sbi portb,in2 ;
sbi portb,in4 ;
ldi temp,255 ;zagr chislo
rcall pause ; vizov pausi
sbi portb,in1 ;bort nazad
cbi portb,in2 ;
cbi portb,in3 ;bort
sbi portb,in4 ;nazad
ldi temp,255
rcall pause ;vizov pausi
rjmp start ;
pause:
pause1:
ldi r23,40 ;zagr chislo
pause2:
ldi r24,40 ;zagr chislo
pause3:
dec r24 ;-1
brne pause3 ;esli ne 0 ese -1
dec r23 ;-1
brne pause2 ;esli ne 0 ese -1
dec temp ;-1
brne pause ;esli ne 0 ese -1
ret
stop:
sbi portd,pauer end ;vkl indikatora
cbi portb,in1 ;
cbi portb,in2 ; VSE VIKL.
cbi portb,in3 ;
cbi portb,in4 ;
ldi temp,1 ;
rcall pause ;
EXT_INT1:
rcall stop ;perehod na ostanovku
reti
EXT_INT0:
rjmp reset ;
reti
серж писал(а):а прот помог, поверь.
jmp $
всё верно - я в море купался и отключился от всего полностью, только море, солнце, фруктысерж писал(а):а вован, последний раз был 30 июля...
странно... 2 недели его нет на форуме...
.include c:\"tn12def.inc" ;
.list ;
.def temp =r16
.dseg
.eseg
.cseg
.equ bortL = pb5 ;äàò÷èê ëåâîãî áîðòà
.equ bortR = pb4 ;äàò÷èê ïðàâîãî áîðòà
.equ left_up = pb2 ;ëåâûé áîðò âïåðåä
.equ rith_up =pb1 ;ïðàâûé áîðò âïåðåä
.equ left_down =pb0 ;ëåâûé áîðò íàçàä
.equ rith_down =pb3 ;ïðàâûé áîðò íàçàä
reset:
;nastr pinov porta
ldi temp, 0b00001111 ;pini 0-3 vihod
out ddrb, temp ;zapis v reg
ldi temp, 0b00110110 ;podn na pin 1,2,dvig vpered i datchiki
out portb, temp ; vivod portab
start:
sbic pinb, bortL ;åñëè äàò÷èê íå ñðàáîòàë,
rjmp a ;ïðîïóñòèòü ýòó êîìàíäó.
sbic pinb, bortR ;åñëè äàò÷èê íå ñðàáîòàë,
rjmp b ;ïðîïóñòèòü ýòó êîìàíäó.
rjmp start ;âîçâðàò íà ñòàðò
vpravo:
cbi portb, rith_up ;âûêë ïðàâûé âïåðåä
sbi portb, rith_down ;âêë ïðàâûé íàçàä
sbis pinb, bortL ;åñëè äàò÷èê åùå ñðàáàòûâàåò,
rjmp a ;òî ïðîïóñòèòü ýòó êîìàíäó.
rjmp start ;âîçâðàò íà ñòàðò.
vlevo:
cbi portb, left_up ;âûêë ëåâûé âïåðåä
sbi portb, left_down ;âêë ëåâûé íàçàä
sbis pinb, bortR ;åñëè äàò÷èê åùå ñðàáàòûâàåò,
rjmp b ;òî ïðîïóñòèòü ýòó êîìàíäó.
rjmp start ;âîçâðàò íà ñòàðò.
; :Yahoo!:
rjmp a ;ïðîïóñòèòü ýòó êîìàíäó.
start:
sbic pinb, bortL ;åñëè äàò÷èê íå ñðàáîòàë,
rjmp vpravo ;ïðîïóñòèòü ýòó êîìàíäó.
...................
vpravo:
...................
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7