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

Datasheet 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