**********************************************************************************************
********************SUBRUTINA ZA KRMILJENJE KORACNEGA MOTORJA*************************
**********************************************************************************************
VRATA |
psha |
|
|
|
ldaa |
#$60 |
;Pogledamo, |
|
cmpa |
VSTEP |
;ce je stevec na zacetku. |
|
beq |
VSWCHK |
;Ce je, gledamo pozicijo stikala. |
|
ldaa |
VODP |
;Nalozimo ODP, da pogledamo, |
|
cmpa |
#$01 |
;ce odpira. |
|
beq |
VODPIRAJ |
;Ce odpira skoci na odpiranje, |
|
bra |
VZAPIRAJ |
;sicer pa na zapiranje. |
|
|
|
|
VSWCHK |
ldaa |
_DPRA |
;Nalozimo port DPRA, |
|
anda |
#$10 |
;maskiramo vse bite, razen kjer je stikalo, |
|
cmpa |
#$00 |
;da pogledamo, ce je stikalo pritisnjeno. |
|
bne |
VENDSTP |
;Ce ni, skocimo na konec,sicer |
|
ldaa |
VZAPRTA |
;pogledamo, |
|
cmpa |
#$01 |
;ce so vrata zaprta. |
|
bne |
VZAPIRAJ |
;Ce niso, skocimo na zapiranje,sicer |
|
ldaa |
ODPRI |
;nalozimo zastavico ODPRI |
|
cmpa |
#$01 |
;in pogledamo, ce je postavljena zahteva |
|
beq |
VODPIRAJ |
;za odpiranje. Ce je odpiramo,sicer pa |
|
bra |
VENDSTP |
;skocimo na konec. |
|
|
|
|
VZAPIRAJ |
ldaa |
#$00 |
;Postavimo zastavico, |
|
staa |
VODP |
;ki oznacuje odpiranje. |
|
ldaa |
VSTEP |
;Nalozimo stevilo korakov |
|
deca |
|
;in ga zmanjsamo za ena |
|
staa |
VSTEP |
;ter ga shranimo za naslednji prehod |
|
beq |
VENDZ |
;ce smo ze na nicli, skocimo ven,sicer pa |
|
ldaa |
VZADNJE |
;nalozimo stanje motorja |
|
lsla |
|
;pomaknemo za en korak |
|
bhs |
VSTPJMP |
;ce je po premiku C=1 |
|
oraa |
#$01 |
;potem to enico zapisemo na drugo stran |
|
bra |
VSTPJMP |
;in skocimo ven. |
|
|
|
|
VODPIRAJ |
ldaa |
#$01 |
;Postavimo zastavico, |
|
staa |
VODP |
;ki oznacuje odpiranje |
|
ldaa |
#$00 |
;in zastavico, |
|
staa |
VZAPRTA |
;ki pomeni odprta vrata. |
|
ldaa |
VSTEP |
;Nalozimo stevilo korakov |
|
deca |
|
;in ga zmanjsamo za ena |
|
staa |
VSTEP |
;ter ga shranimo za naslednji prehod. |
|
beq |
VENDO |
;Ce smo ze na nicli, skocimo ven,sicer pa |
|
ldaa |
VZADNJE |
;nalozimo stanje motorja ter |
|
lsra |
|
;pomaknemo za en korak. |
|
bhs |
VSTPJMP |
;Ce je po premiku C=1, |
|
oraa |
#$80 |
;potem to enico zapisemo na drugo stran |
|
bra |
VSTPJMP |
;skocimo na konec. |
|
|
|
|
VENDZ |
ldaa |
#$01 |
;Postavimo zastavico, |
|
staa |
VZAPRTA |
;ki pomeni zaprta vrata. |
VENDO |
ldaa |
#$60 |
;Stevec postavimo |
|
staa |
VSTEP |
;zopet na zacetno vrednost. |
|
ldaa |
#$00 |
;Resetiramo zastavico, |
|
staa |
ODPRI |
;ki zahteva odpiranje |
|
bra |
VENDSTP |
;in skocimo na konec. |
|
|
|
|
VSTPJMP |
staa |
VZADNJE |
;Zadnje stanje shranimo za naslednji prehod |
|
staa |
_DPRA |
;in na izhodni port. |
VENDSTP |
pula |
|
|
|
rts |
|
|