Program för 8085-gränssnitt för stegmotor för att rotera den medurs och moturs med 8255:
```
;Initiera stackpekaren vid 0FFFH (32767)
LXI SP, 0FFFH
;Definiera konstanter för stegmotorstyrning:
MOV A,#10;Definiera fördröjningsvärde för stegmotorstyrning (godtycklig)
MOV B,A;Kopiera fördröjningsvärde till register B
MOV A,0;Definiera initial riktning (0 för medurs, 1 för moturs)
MOV C,A;Kopiera riktning till register C
;Konfigurera 8255 I/O-port:
MVI A,0FFH;Ställ in alla portlinjer som utgång (med PPI-kontrollord)
MOV M,A;Skriv till kontrollregister (P1M)
;Definiera I/O-portadress:
MOV A,#10H;Basadress för 8255 PPI (8255-5)
MOV M,A;Lagra basadress i minnesplats
;Huvudslinga för stegmotorstyrning:
LOOP:;Etikett för att representera början av huvudslingan
;Steg 1:Vrid motorn medurs (riktning =0)
MVI A,0;Ställ medurs
MOV C,A;Kopiera riktning till register C
;Generera sekvens av styrsignaler för motorrotation
MVI A,#0B;Kontrollord för att ställa in port B-linjerna P1.1, P1.2, P1.3 som utgångar
MOV M,A;Skriv till port B kontrollregister
MVI A,#9BH;Kontrollord för att rotera motorn medurs (P1.1=1, P1.2=0, P1.3=1)
MOV M,A;Skriv till port B dataregister
;Fördröjning för att sakta ner motorrotationen:
FÖRDRÖJNING:;Fördröjningsunderrutin för att styra motorns rotationshastighet
DCR B; Minska fördröjningsvärdet i register B
JZ ENDD;Om fördröjningsvärdet når noll är fördröjningen klar
MOV A,B;Kopiera fördröjningsvärdet från register B till register A
JMP DELAY;Hoppa tillbaka till DELAY loop tills fördröjningen är klar
ENDD:;Slut på fördröjningssubrutin
;Steg 2:Vrid motorn moturs (riktning =1)
MVI A,1;Ställ moturs
MOV C,A;Kopiera riktning till register C
;Generera sekvens av styrsignaler för motorrotation
MVI A,#0B;Kontrollord för att ställa in port B-linjerna P1.1, P1.2, P1.3 som utgångar
MOV M,A;Skriv till port B kontrollregister
MVI A,#6EH;Kontrollord för att rotera motorn moturs (P1.1=0, P1.2=1, P1.3=1)
MOV M,A;Skriv till port B dataregister
;Fördröjning för att sakta ner motorrotationen:
DELAY:;Delay subrutin
DCR B
JZ ENDD
MOV A,B
JMP FÖRDRÖJNING
ENDD:
; Upprepa huvudslingan för att kontinuerligt rotera motorn
JMP LOOP
```
Detta program använder 8255 PPI för att styra stegmotorns rotationsriktning och hastighet. Genom att ställa in och radera lämpliga bitar i 8255:s port B-dataregister genererar programmet de nödvändiga styrsignalerna för rotation medurs eller moturs. Fördröjningssubrutinen säkerställer att motorns rotationshastighet kontrolleras.