Program til 8085-grænseflade af stepmotor til at rotere den med uret og mod uret ved hjælp af 8255:
```
;Initialiser stak-markøren ved 0FFFH (32767)
LXI SP, 0FFFH
;Definer konstanter for stepmotorstyring:
MOV A,#10;Definer forsinkelsesværdi for stepmotorstyring (vilkårlig)
MOV B,A;Kopier forsinkelsesværdi til register B
MOV A,0;Definer startretning (0 for med uret, 1 for mod uret)
MOV C,A;Kopier retning til register C
;Konfigurer 8255 I/O-port:
MVI A,0FFH;Indstil alle portlinjer som output (ved hjælp af PPI-kontrolord)
MOV M,A;Skriv til kontrolregister (P1M)
;Definer I/O-portadresse:
MOV A,#10H;Basisadresse for 8255 PPI (8255-5)
MOV M,A;Gem baseadresse i hukommelsesplacering
;Hovedløkke til stepmotorstyring:
LOOP:;Mærke til at repræsentere starten af hovedløkken
;Trin 1:Drej motoren med uret (retning =0)
MVI A,0;Indstil med uret
MOV C,A;Kopier retning til register C
;Generer sekvens af styresignaler til motorrotation
MVI A,#0B;Kontrolord til at sætte port B-linjer P1.1, P1.2, P1.3 som udgange
MOV M,A;Skriv til port B kontrolregister
MVI A,#9BH;Kontrolord til at rotere motoren med uret (P1.1=1, P1.2=0, P1.3=1)
MOV M,A;Skriv til port B dataregister
;Forsinkelse for at bremse motorrotationen:
FORSINKELSE:;Underrutine for forsinkelse for at kontrollere motorrotationshastigheden
DCR B;Sænk forsinkelsesværdien i register B
JZ ENDD;Hvis forsinkelsesværdien når nul, er forsinkelsen fuldført
MOV A,B;Kopier forsinkelsesværdien fra register B til register A
JMP DELAY; Hop tilbage til DELAY loop, indtil forsinkelsen er fuldført
ENDD:;Slut på forsinkelse subrutine
Trin 2:Drej motoren mod uret (retning =1)
MVI A,1;Indstil mod uret
MOV C,A;Kopier retning til register C
;Generer sekvens af styresignaler til motorrotation
MVI A,#0B;Kontrolord til at sætte port B-linjer P1.1, P1.2, P1.3 som udgange
MOV M,A;Skriv til port B kontrolregister
MVI A,#6EH;Kontrolord til at dreje motoren mod uret (P1.1=0, P1.2=1, P1.3=1)
MOV M,A;Skriv til port B dataregister
;Forsinkelse for at bremse motorrotationen:
FORSINKELSE:;Forsinket subrutine
DCR B
JZ ENDD
MOV A,B
JMP FORSINKELSE
ENDD:
;Gentag hovedsløjfen for kontinuerligt at rotere motoren
JMP LOOP
```
Dette program bruger 8255 PPI til at styre stepmotorens rotationsretning og hastighed. Ved at indstille og slette de relevante bits i 8255'erens Port B-dataregister, genererer programmet de nødvendige styresignaler til rotation med uret eller mod uret. Forsinkelsesunderrutinen sikrer, at motorens omdrejningshastighed kontrolleres.