```
;Εκκινήστε το δείκτη στοίβας στο 0FFFH (32767)
LXI SP, 0FFFH
Ορίστε σταθερές για τον έλεγχο βηματικού κινητήρα:
MOV A,#10;Ορισμός τιμής καθυστέρησης για έλεγχο βηματικού κινητήρα (αυθαίρετο)
MOV B,A;Αντιγράψτε την τιμή καθυστέρησης στον καταχωρητή Β
MOV A,0;Ορίστε την αρχική κατεύθυνση (0 για δεξιόστροφα, 1 για αριστερόστροφα)
MOV C,A;Αντιγράψτε την κατεύθυνση για την εγγραφή C
;Διαμόρφωση θύρας I/O 8255:
MVI A,0FFH;Ρυθμίστε όλες τις γραμμές θυρών ως έξοδο (χρησιμοποιώντας τη λέξη ελέγχου PPI)
MOV M,A;Εγγραφή στον καταχωρητή ελέγχου (P1M)
;Ορίστε τη διεύθυνση θύρας I/O:
MOV A,#10H;Βασική διεύθυνση για 8255 PPI (8255-5)
MOV M,A;Αποθηκεύστε τη διεύθυνση βάσης στη θέση μνήμης
Κύριος βρόχος για έλεγχο βηματικού κινητήρα:
LOOP:;Ετικέτα που αντιπροσωπεύει την αρχή του κύριου βρόχου
;Βήμα 1:Περιστρέψτε τον κινητήρα δεξιόστροφα (κατεύθυνση =0)
MVI A,0;Ρυθμίστε τη φορά των δεικτών του ρολογιού
MOV C,A;Αντιγράψτε την κατεύθυνση για την εγγραφή C
;Δημιουργήστε ακολουθία σημάτων ελέγχου για την περιστροφή του κινητήρα
MVI A,#0B;Λέξη ελέγχου για να ορίσετε τις γραμμές Port B P1.1, P1.2, P1.3 ως εξόδους
MOV M,A;Εγγραφή στον καταχωρητή ελέγχου Θύρας Β
MVI A,#9BH;Λέξη ελέγχου για περιστροφή του κινητήρα δεξιόστροφα (P1.1=1, P1.2=0, P1.3=1)
MOV M,A;Εγγραφή στον καταχωρητή δεδομένων θύρας Β
Καθυστέρηση για την επιβράδυνση της περιστροφής του κινητήρα:
ΚΑΘΥΣΤΕΡΗΣΗ:Υπορουτίνα καθυστέρησης για τον έλεγχο της ταχύτητας περιστροφής του κινητήρα
DCR B;Μείωση τιμής καθυστέρησης στον καταχωρητή Β
JZ ENDD;Εάν η τιμή καθυστέρησης φτάσει στο μηδέν, η καθυστέρηση έχει ολοκληρωθεί
MOV A,B;Αντιγράψτε την τιμή καθυστέρησης από τον καταχωρητή Β στον καταχωρητή Α
JMP DELAY;Μετάβαση πίσω στον βρόχο DELAY μέχρι να ολοκληρωθεί η καθυστέρηση
ΤΕΛΟΣ:;Υπορουτίνα λήξης καθυστέρησης
;Βήμα 2:Περιστρέψτε τον κινητήρα αριστερόστροφα (κατεύθυνση =1)
MVI A,1;Ρυθμίστε την αριστερόστροφη φορά
MOV C,A;Αντιγράψτε την κατεύθυνση για την εγγραφή C
;Δημιουργήστε ακολουθία σημάτων ελέγχου για την περιστροφή του κινητήρα
MVI A,#0B;Λέξη ελέγχου για να ορίσετε τις γραμμές Port B P1.1, P1.2, P1.3 ως εξόδους
MOV M,A;Εγγραφή στον καταχωρητή ελέγχου Θύρας Β
MVI A,#6EH;Λέξη ελέγχου για την αριστερόστροφη περιστροφή του κινητήρα (P1.1=0, P1.2=1, P1.3=1)
MOV M,A;Εγγραφή στον καταχωρητή δεδομένων θύρας Β
Καθυστέρηση για την επιβράδυνση της περιστροφής του κινητήρα:
ΚΑΘΥΣΤΕΡΗΣΗ:;Υπορουτίνα καθυστέρησης
DCR B
JZ ΤΕΛΟΣ
MOV A,B
ΚΑΘΥΣΤΕΡΗΣΗ JMP
ΤΕΛΟΣ:
Επαναλάβετε τον κύριο βρόχο για να περιστρέφετε συνεχώς τον κινητήρα
JMP LOOP
```
Αυτό το πρόγραμμα χρησιμοποιεί το 8255 PPI για τον έλεγχο της κατεύθυνσης περιστροφής και της ταχύτητας του βηματικού κινητήρα. Ρυθμίζοντας και διαγράφοντας τα κατάλληλα bit στον καταχωρητή δεδομένων Port B του 8255, το πρόγραμμα δημιουργεί τα απαραίτητα σήματα ελέγχου για δεξιόστροφη ή αριστερόστροφη περιστροφή. Η υπορουτίνα καθυστέρησης διασφαλίζει τον έλεγχο της ταχύτητας περιστροφής του κινητήρα.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα