Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
```
;Inicializujte ukazovateľ zásobníka na 0FFFH (32767)
LXI SP, 0FFFH
;Definujte konštanty pre riadenie krokového motora:
MOV A,#10;Definujte hodnotu oneskorenia pre ovládanie krokového motora (ľubovoľné)
MOV B,A;Skopírujte hodnotu oneskorenia do registra B
MOV A,0;Definujte počiatočný smer (0 v smere hodinových ručičiek, 1 v protismere hodinových ručičiek)
MOV C,A;Skopírujte smer do registra C
;Nakonfigurujte 8255 I/O port:
MVI A,0FFH;Nastaviť všetky portové linky ako výstup (pomocou riadiaceho slova PPI)
MOV M,A;Zápis do riadiaceho registra (P1M)
Definujte adresu I/O portu:
MOV A,#10H;Základná adresa pre 8255 PPI (8255-5)
MOV M,A;Uloženie základnej adresy do pamäte
Hlavná slučka pre ovládanie krokového motora:
LOOP:;Štítok predstavujúci začiatok hlavnej slučky
;Krok 1:Otočte motor v smere hodinových ručičiek (smer =0)
MVI A,0;Nastavte smer hodinových ručičiek
MOV C,A;Smer skopírujte do registra C
;Vygenerujte sekvenciu riadiacich signálov pre otáčanie motora
MVI A,#0B;Riadiace slovo na nastavenie liniek portu B P1.1, P1.2, P1.3 ako výstupov
MOV M,A;Zápis do riadiaceho registra Port B
MVI A,#9BH;Riadiace slovo na otáčanie motora v smere hodinových ručičiek (P1.1=1, P1.2=0, P1.3=1)
MOV M,A;Zápis do dátového registra Port B
;Oneskorenie spomalenia otáčania motora:
DELAY:;Podprogram oneskorenia na ovládanie rýchlosti otáčania motora
DCR B;Znížte hodnotu oneskorenia v registri B
JZ ENDD;Ak hodnota oneskorenia dosiahne nulu, oneskorenie je dokončené
MOV A,B;Skopírujte hodnotu oneskorenia z registra B do registra A
JMP DELAY;Skok späť do slučky DELAY, kým sa oneskorenie nedokončí
ENDD:;Koniec podprogramu oneskorenia
;Krok 2:Otočte motor proti smeru hodinových ručičiek (smer =1)
MVI A,1;Nastavte proti smeru hodinových ručičiek
MOV C,A;Skopírujte smer do registra C
;Vygenerujte sekvenciu riadiacich signálov pre otáčanie motora
MVI A,#0B;Riadiace slovo na nastavenie liniek portu B P1.1, P1.2, P1.3 ako výstupov
MOV M,A;Zápis do riadiaceho registra Port B
MVI A,#6EH;Riadiace slovo na otáčanie motora proti smeru hodinových ručičiek (P1.1=0, P1.2=1, P1.3=1)
MOV M,A;Zápis do dátového registra Port B
;Oneskorenie na spomalenie otáčania motora:
DELAY:;Podprogram oneskorenia
DCR B
JZ KONIEC
MOV A,B
ONESKORENIE JMP
KONIEC:
;Opakujte hlavnú slučku, aby sa motor neustále otáčal
JMP LOOP
```
Tento program používa 8255 PPI na ovládanie smeru otáčania a rýchlosti krokového motora. Nastavením a vymazaním príslušných bitov v dátovom registri Port B 8255 program generuje potrebné riadiace signály pre otáčanie v smere alebo proti smeru hodinových ručičiek. Podprogram oneskorenia zaisťuje, že rýchlosť otáčania motora je riadená.