Controllo di posizione con motore passo-passo bipolare

 

Driver di potenza

regmotpp.gif (6623 byte)

 

 

Trasduttore di posizione

fotores.gif (2120 byte)

 

ORG 8200H
LD BC,0F03H   ;Inizializza Porta B PIO in Modo 0 (Uscita)
OUT (C),B
XOR A
LD HL,TAB     ;Inizializza il puntatore alla tabella sequenza
LD A,(HL)     ;pilotaggio bobine
OUT (1),A
LD B,128      ;b contiena la posizione

LMAIN CALL LEGCONF ;Chiama sub.lettura confront
JR Z,LMAIN

JR C,SX
DX CP 10     ;controllo soglia
JR C,LMAIN
LD A,255     ;controllo limita
CP B
JR Z,LMAIN
CALL AVANTI
CALL RIT
JR LMAIN
SX CP 0FFH-9
JR NC,LMAIN
LD A,0
CP B
JR Z,LMAIN
CALL INDIETRO
CALL RIT
JR LMAIN

LOOP CALL AVANTI
CALL RIT
LD A,200
CP B
JR NZ,LOOP
LOP JR LOP

LEGCONF LD C,0F8H ;Legge e confronta il valore analogico
OUT (C),A
CALL MRIT
IN D,(C)
INC C
OUT (C),A
CALL MRIT
IN A,(C)
SUB D
RET

MRIT PUSH BC
LD B,10
LRI DJNZ LRI
POP BC
RET


AVANTI LD DE,TAB+3
PUSH HL
AND A
SBC HL,DE
POP HL
JR NZ,AV1
LD HL,TAB
JR AV2
AV1 INC HL
AV2 LD A,(HL)
OUT (1),A
INC B
RET

INDIETRO LD DE,TAB
PUSH HL
AND A
SBC HL,DE
POP HL
JR NZ,ID1
LD HL,TAB+3
JR ID2
ID1 DEC HL
ID2 LD A,(HL)
OUT (1),A
DEC B
RET



RIT PUSH BC
LD BC,1000
LOOPR DEC BC
LD A,B
OR C
JR NZ,LOOPR
POP BC
RET


DECRIT LD HL,400
SBC HL,DE
RET NC
DEC DE
RET

TAB DEFB 1010B
DEFB 1001B
DEFB 0101B ;
DEFB 0110B

END
FAP = 0010B
FAN = 0001B
FA0 = 0011B ;

FBP = 1000B
FBN = 0100B
FB0 = 1100B ;
END