Attuatore per motore passo-passo bipolare con scheda 8051 e driver L298



Tab = 30h ;Tabella sequenze
org 8200h
call DTabTwoPOn
mov r0,#Tab
mov p1,@r0
main:
mov r1,#255
LAvanti:
call Avanti
call Rit
djnz r1,LAvanti
LIndietro:
call Indietro
call Rit
djnz r1,LIndietro
jmp main
;-------------------------------------------------------------------------------
Avanti: ;Muove di un passo avanti
AV3O:
cjne r0,#Tab+3,AV1O
mov r0,#Tab
jmp AV2O
AV1O:
inc r0
AV2O:
mov p1,@r0
ret
;-------------------------------------------------------------------------------
Indietro: ;Muove di un passo indietro
ID3O:
cjne r0,#Tab,ID1O
mov r0,#Tab+3
jmp ID2O
ID1O:
dec r0
ID2O:
mov p1,@r0
ret
;-------------------------------------------------------------------------------
Rit:
mov r5,#16
mov r4,#0
LRit:
djnz r4,$
djnz r5,LRit
ret
;-------------------------------------------------------------------------------
DTabTwoPOn:
mov Tab, #00000101B ;-D +C -B +A
mov Tab+1,#00000110B ;-D +C +B -A
mov Tab+2,#00001010B ;+D -C +B -A
mov Tab+3,#00001001B ;+D -C -B +A
ret
DTabOnePOn:
mov Tab, #00001101B ;+D +C -B +A
mov Tab+1,#00000111B ;-D +C +B +A
mov Tab+2,#00001110B ;+D +C +B -A
mov Tab+3,#00001011B ;+D -C +B +A
ret
end