Προγραμματισμός θυρών MK στη γλώσσα C 51. Μικροελεγκτές MCS–51: μοντέλο προγράμματος, δομή, εντολές. Λειτουργία ανάγνωσης θύρας

Βασική έκδοση MCS–51 Σύντομη ενημέρωση. Οι σύγχρονοι μικροελεγκτές 8-bit (MCs) διαθέτουν τέτοιους πόρους ελέγχου σε πραγματικό χρόνο, για τους οποίους χρησιμοποιήθηκαν προηγουμένως ακριβές διατάξεις πολλαπλών τσιπ με τη μορφή ξεχωριστών πλακών μικροϋπολογιστών, και συγκεκριμένα:

● έχουν επαρκή χωρητικότητα μνήμης, τη φυσική και λογική διαίρεση της σε μνήμη προγράμματος και μνήμη δεδομένων(αρχιτεκτονική του Χάρβαρντ) και ένα σύστημα εντολών που επικεντρώνεται στην εκτέλεση αλγορίθμων ελέγχου.

● περιλαμβάνει όλες τις συσκευές (επεξεργαστής, ROM, RAM, θύρες εισόδου/εξόδου, σύστημα διακοπής, μέσα επεξεργασίας πληροφοριών bit, κ.λπ.) που είναι απαραίτητες για την εφαρμογή ενός συστήματος ελέγχου μικροεπεξεργαστή ελάχιστης διαμόρφωσης. Στη δεκαετία του '70 του περασμένου αιώνα η εταιρεία IntelΑναπτύχθηκε και κυκλοφόρησε στη βιομηχανική παραγωγή μια οικογένεια μικροελεγκτών 8 bit MCS-48, ενωμένη με μια σειρά κοινών χαρακτηριστικών (χωρητικότητα bit, σύστημα εντολών, σύνολο κύριων λειτουργικών μπλοκ, κ.λπ.). Η βασική έκδοση αυτής της οικογένειας περιλαμβάνει:

● Επεξεργαστής 8-bit.

● εσωτερική μνήμη προγράμματος (1/2/4K byte).

● εσωτερική μνήμη δεδομένων (64/128/256 byte).

● έως 27 εσωτερικές και 16 εξωτερικές γραμμές I/O.

● ένα χρονόμετρο 8-bit.

● Σύστημα διακοπής ενός επιπέδου με δύο πηγές αιτημάτων. Το 1980, η ίδια εταιρεία ανέπτυξε μια νέα οικογένεια μικροελεγκτών οκτώ bit, τον MCS-51, ο οποίος είναι συμβατός με την αρχιτεκτονική της οικογένειας MCS-48, αλλά έχει μεγαλύτερες δυνατότητες.

Η αρχιτεκτονική της οικογένειας MCS-51 αποδείχθηκε τόσο επιτυχημένη που εξακολουθεί να είναι ένα από τα πρότυπα για MK 8-bit. Ως εκ τούτου, το αντικείμενο μελέτης επιλέχθηκε να είναι μικροελεγκτές αυτής της οικογένειας, οι οποίοι χρησιμοποιούνται ευρέως σε σχετικά απλά συστήματα ελέγχου.

Έχουν αναπτυχθεί διάφορα εργαλεία προετοιμασίας προγραμμάτων για την οικογένεια MCS-51 (μεταγλωττιστές, εξομοιωτές υλικού-λογισμικού κ.λπ.) και υπάρχει μεγάλος αριθμός βιβλιοθηκών τυπικών ρουτινών. Η οικογένεια περιλαμβάνει διάφορες τροποποιήσεις μικροκυκλωμάτων (εκδόσεις chip) μικροελεγκτών. Τα άρθρα αυτής της ενότητας συζητούν λεπτομερώς τη βασική έκδοση των μικροελεγκτών της οικογένειας MCS-51 (το μικροκύκλωμα 8051 αντιστοιχεί στο οικιακό αναλογικό KP1816BE51), η απλούστερη από δομική και λειτουργική άποψη και από άποψη κατανόησης.

Οι επόμενες σειρές μικροκυκλωμάτων, ενώ διατηρούν τη συμβατότητα με τη βασική έκδοση, διαφέρουν από αυτήν στη βελτιωμένη τεχνολογία κατασκευής, ηλεκτρικές παραμέτρους, πρόσθετο υλικό και λειτουργικότητα. Τα ακόλουθα άρθρα είναι αφιερωμένα στα δομικά και λειτουργικά χαρακτηριστικά των μεταγενέστερων τροποποιήσεων της οικογένειας μικροκυκλωμάτων MCS-51.
Γενικευμένο μπλοκ διάγραμμα του MCS-51. Η σύνθεση του MC, ένα γενικευμένο μπλοκ διάγραμμα του οποίου φαίνεται στο Σχ. 7.1.1 περιλαμβάνει:

● 8-bit ΕΠΕΞΕΡΓΑΣΤΗΣ CPU που αποτελείται από ALU, συσκευές ελέγχου UUκαι γεννήτρια διευθύνσεων φά;

● mask ROM χωρητικότητας 4K byte για αποθήκευση προγραμμάτων.

● RAM χωρητικότητας 128 byte για αποθήκευση δεδομένων.

● τέσσερις προγραμματιζόμενες θύρες P0–P3 για είσοδο– εξόδου πληροφοριών;

● μπλοκ σειριακή διεπαφή BPI για ανταλλαγή πληροφοριών με εξωτερικές συσκευές μέσω γραμμής δύο καλωδίων.

● μπλοκ χρονόμετρων/μετρητών BT/C για διατήρηση της λειτουργίας σε πραγματικό χρόνο.

● Μπλοκ διακοπής BP για οργάνωση διακοπών εκτελέσιμων προγραμμάτων. Αυτά τα κεφάλαια σχηματίζονται Κάτοικοςμέρος του μικροελεγκτή που βρίσκεται απευθείας στο τσιπ. Το MK περιλαμβάνει μεγάλο αριθμό καταχωρητών, οι οποίοι εκχωρούνται σε ξεχωριστά λειτουργικά μπλοκ και δεν εμφανίζονται στο διάγραμμα.

Το διάγραμμα επίσης δεν δείχνει κυκλώματα ελέγχου. Η αμφίδρομη ανταλλαγή πληροφοριών μεταξύ μπλοκ πραγματοποιείται μέσω εσωτερικού 8-bit δίαυλο δεδομένωνШД-8.

Με εσωτερικό 16-bit λεωφορείο διεύθυνσηςША-16 Η διεύθυνση που δημιουργείται στην CPU εξάγεται στη ROM (12 bit διεύθυνσης) και στη RAM (8 bit χαμηλής τάξης).

Όταν χρησιμοποιείτε εξωτερική μνήμη, τα 8 λιγότερο σημαντικά bit της διεύθυνσης εξάγονται στη θύρα P0 και τα 3 ή 8 πιο σημαντικά bit στη θύρα P2.

Για τη λογική επέκταση της διεπαφής, χρησιμοποιείται ο συνδυασμός των λειτουργιών των γραμμών θυρών. Ως παράδειγμα στο Σχ. 7.1.1 η διακεκομμένη γραμμή δείχνει τις γραμμές της θύρας P3 που εκτελούν εναλλακτική λύσηλειτουργίες μετάδοσης σημάτων ελέγχου, ο σκοπός των οποίων θα συζητηθεί παρακάτω. Για τη δημιουργία μιας εσωτερικής γεννήτριας ρολογιού, ένας συντονιστής χαλαζία και δύο πυκνωτές συνδέονται στους ακροδέκτες του μικροκυκλώματος MK (Εικ. 7.1.1). Αντί για εσωτερική γεννήτρια ρολογιού, μπορεί να χρησιμοποιηθεί μια εξωτερική πηγή ταλάντωσης για συγχρονισμό. Υποθετικός γραφικός προσδιορισμόςΤα μικροκυκλώματα MK φαίνονται στο Σχ. 7.1.2, ονομασία και σκοπός των ακίδων - στον πίνακα. 7.1.1. Ας εξετάσουμε τα λειτουργικά μπλοκ του MK και την αρχή της λειτουργίας τους. Αριθμητική λογική συσκευή. Η αριθμητική λογική συσκευή έχει σχεδιαστεί για να εκτελεί αριθμητικές (συμπεριλαμβανομένου του πολλαπλασιασμού και της διαίρεσης) και λογικές πράξεις σε τελεστές οκτώ bit, καθώς και λειτουργίες λογικής μετατόπισης, μηδενισμού, ρύθμισης κ.λπ. Το μπλοκ διάγραμμα της ALU φαίνεται στο Σχήμα. 7.1.3.

Το ALU περιλαμβάνει

● παράλληλη οκτώ bit αθροιστής SM συνδυαστικού τύπου με διαδοχική μεταφορά, που εκτελεί αριθμητικές (πρόσθεση και αφαίρεση) και λογικές πράξεις (προσθήκη, πολλαπλασιασμός, ανισότητα και ταυτότητα).

μπαταρία Α,παροχή των συναρτήσεων του κύριου αριθμητικού καταχωρητή·

κανω ΕΓΓΡΑΦΗΒ, χρησιμοποιείται για την υλοποίηση πράξεων πολλαπλασιασμού και διαίρεσης ή ως πρόσθετος υπερ-λειτουργικός καταχωρητής, οι λειτουργίες του οποίου καθορίζονται από τον χρήστη.

μητρώα(το λογισμικό δεν είναι διαθέσιμο) προσωρινή αποθήκευσηРВХ1, РВХ2, που προορίζονται για λήψη και αποθήκευση τελεστών κατά τη διάρκεια της λειτουργίας.

● ROM σταθερές ROM, η οποία αποθηκεύει τον κωδικό διόρθωσης για τη δυαδική δεκαδική αναπαράσταση δεδομένων, τον κωδικό μάσκας για λειτουργίες bit και τον κωδικό για τις σταθερές.

εγγραφή λέξης κατάστασης προγράμματος PSW, το οποίο καταγράφει την κατάσταση της ALU μετά από μια ολοκληρωμένη λειτουργία. Στον πίνακα 7.1.2 παρέχει πληροφορίες σχετικά με την εκχώρηση bit μεμονωμένων bit του καταχωρητή PSW. Συσκευή ελέγχου. Μονάδα ελέγχου (CU) του κεντρικού επεξεργαστή προορίζονταιγια συντονισμό συνεργασίαόλοι οι κόμβοι MK που χρησιμοποιούν παραγόμενους παλμούς ρολογιού και σήματα ελέγχου. Αποτελείται από (Εικ. 7.1.4):

μονάδα συγχρονισμού και ελέγχουΤο σύστημα ελέγχου, το οποίο παράγει παλμούς ρολογιού που ορίζουν τους κύκλους της μηχανής και τις επιμέρους καταστάσεις τους (S) και τις φάσεις (P) και, ανάλογα με τον τρόπο λειτουργίας του μικροελεγκτή, παράγει το απαραίτητο σύνολο σημάτων ελέγχου. Χρειάζονται ένας, δύο ή τέσσερις κύκλοι μηχανής για να εκτελεστεί μια εντολή.

Κάθε κύκλος μηχανής έχει έξι πολιτείες S1–S6, A περιλαμβάνει κάθε κατάσταση δύο φάσεις P1, P2, η διάρκεια των οποίων είναι η περίοδος ταλάντωσης της γεννήτριας ρολογιού T 0SC.

Η διάρκεια του κύκλου μηχανής είναι 12T 0SC. Όλοι οι κύκλοι της μηχανής είναι ίδιοι, ξεκινώντας από τη φάση S1P1 και τελειώνοντας με τη φάση S6P2.

Εκτός από τους παλμούς ρολογιού, η συσκευή συγχρονισμού παράγει δύο (μερικές φορές ένα) σήματα πύλης για το χαμηλό byte της διεύθυνσης ALE σε κάθε κύκλο μηχανής με τη μορφή θετικού παλμού στις φάσεις S1P2–S2P1 και S4P2–S5P1. Διαγράμματα χρονισμού στο Σχ. 7.1.5 απεικονίζουν την οργάνωση των κύκλων μηχανών.

● καταχωρητής εντολών RK, αποκωδικοποιητής εντολών DC και PLM, που επιτρέπουν σε κάθε κύκλο μηχανής να δημιουργήσει ένα σύνολο μικρολειτουργιών σύμφωνα με το μικροπρόγραμμα της εκτελούμενης εντολής.

● Λογική εισόδου/εξόδου LVV για λήψη και έκδοση σημάτων που διασφαλίζουν την ανταλλαγή πληροφοριών από το MK με εξωτερικές συσκευές μέσω των θυρών P0–P3.

● Καταχωρητής PCON, ο οποίος έχει ένα ενεργό bit SMOD στη θέση PCON.7 για διπλασιασμό του ρυθμού δεδομένων σειριακής θύρας. Τα υπόλοιπα bit δεσμεύονται για μελλοντική χρήση.
Γεννήτρια διευθύνσεων. Γεννήτρια διευθύνσεων (FA) ή μετρητής εντολών υπολογιστή, προορίζονταιγια να σχηματίσετε την τρέχουσα διεύθυνση 16-bit της μνήμης προγράμματος και τη διεύθυνση 8/16-bit της εξωτερικής μνήμης δεδομένων. Αποτελείται από (Εικ. 7.1.6):

● 16-bit ρυθμιστής B, το οποίο επικοινωνεί μεταξύ του διαύλου δεδομένων SD 8-bit και του εσωτερικού διαύλου 16-bit (IB) του διαμορφωτή διεύθυνσης.

● Κύκλωμα αύξησης SI για αύξηση της τιμής της τρέχουσας διεύθυνσης μνήμη προγράμματοςανά μονάδα;

● εγγραφή για την αποθήκευση της τρέχουσας διεύθυνσης των εντολών PTA που προέρχονται από το SI.

● καταχωρητής δείκτη δεδομένων DPTR , που αποτελείται από δύο καταχωρητές 8-bit DPH και DPL. Χρησιμεύει για την αποθήκευση μιας διεύθυνσης 16-bit εξωτερικής μνήμης δεδομένων και μπορεί να χρησιμοποιηθεί ως δύο ανεξάρτητα RON προσβάσιμα από λογισμικό.

● καταχωρητής της γεννήτριας διευθύνσεων XRF για την αποθήκευση της εκτελεστικής διεύθυνσης 16-bit της μνήμης προγράμματος ή της διεύθυνσης 8/16-bit της εξωτερικής μνήμης δεδομένων. Αυτός ο καταχωρητής χρησιμοποιείται επίσης για τη μετάδοση δεδομένων μέσω της θύρας P0 προς εξωτερικές συσκευέςκατά την εκτέλεση των εντολών MOVX @Rm, A και MOVX @DPRT, A.

Μνήμη δεδομένων. Μνήμη δεδομένων προορίζονταιγια λήψη, αποθήκευση και έκδοση πληροφοριών που χρησιμοποιούνται κατά την εκτέλεση του προγράμματος. Η εσωτερική (μόνιμη) μνήμη δεδομένων (Εικ. 7.1.7) αποτελείται από RAM χωρητικότητας 128 byte, δείκτη στοίβας S.P. μητρώο διεύθυνσης RAM RA και αποκρυπτογράφος Dsh. Ο δείκτης στοίβας SP είναι ένας καταχωρητής 8-bit που έχει σχεδιαστεί για να λαμβάνει και να αποθηκεύει τη διεύθυνση του κελιού στοίβας στο οποίο έγινε η τελευταία πρόσβαση. Μετά την επαναφορά, ο δείκτης στοίβας ρυθμίζεται στη διεύθυνση 07H, η οποία αντιστοιχεί στην αρχή της στοίβας με διεύθυνση 08H. Ο καταχωρητής διευθύνσεων PA μαζί με τον αποκωδικοποιητή Dsh επιτρέπει την πρόσβαση στο απαιτούμενο κελί μνήμης που περιέχει ένα byte ή ένα bit πληροφοριών.

Το MK παρέχει τη δυνατότητα αύξησης της χωρητικότητας της μνήμης δεδομένων έως και 64 KB μέσω σύνδεσης εξωτερικές συσκευές αποθήκευσης.Ως παράδειγμα στο Σχ. Το 7.1.8 δείχνει την οργάνωση σελίδων της εξωτερικής μνήμης δεδομένων VPD χωρητικότητας 2K byte χρησιμοποιώντας εντολές τύπου MOVX @ Rm(m = 0, 1). Σε αυτήν την περίπτωση, η θύρα P0 λειτουργεί ως πολυπλεγμένος δίαυλος διευθύνσεων/δεδομένων, τρεις γραμμές της θύρας P2 χρησιμοποιούνται για τη διεύθυνση μιας σελίδας εξωτερικής μνήμης RAM και οι υπόλοιπες πέντε γραμμές μπορούν να χρησιμοποιηθούν ως γραμμές εισόδου/εξόδου.
Στο Σχ. Το 7.1.9 δείχνει διαγράμματα χρονισμού των κύκλων ανάγνωσης και εγγραφής όταν το MK λειτουργεί με εξωτερική μνήμη RAM. Τα διαγράμματα δείχνουν:

● RSN - υψηλό byte του μετρητή εντολών του υπολογιστή.

● DPL, DPH - χαμηλά και υψηλά byte του καταχωρητή δείκτη δεδομένων DPTR, ο οποίος χρησιμοποιείται ως καταχωρητής για έμμεση διευθυνσιοδότηση στις εντολές MOVX @DPTR,A και MOVX A,@DPTR.

● P2 SFR - Ασφάλειες θύρας P2.

● Rm (m = 0, 1) - καταχωρητές που χρησιμοποιούνται στις οδηγίες MOVX @Rm, A και MOVX A, @Rm ως έμμεσοι καταχωρητές διευθύνσεων.

● Z - κατάσταση υψηλής αντίστασης.

● D - η περίοδος κατά την οποία τα δεδομένα από τη θύρα P0 εισάγονται στον μικροελεγκτή. Μνήμη προγράμματος. Η μνήμη προγράμματος έχει σχεδιαστεί για την αποθήκευση προγραμμάτων, έχει δικό της χώρο διευθύνσεων (χωριστά από τη μνήμη δεδομένων) και είναι μόνο για ανάγνωση. Περιλαμβάνει αποκωδικοποιητή Dsh και ROM (Εικ. 7.1.10). Ένας μετρητής υπολογιστή 16-bit χρησιμοποιείται για την αντιμετώπιση της μνήμης του προγράμματος, επομένως η μέγιστη χωρητικότητά του είναι 64K byte. Η εσωτερική μνήμη προγράμματος αποτελείται από μια ROM 4K byte και έναν αποκωδικοποιητή 12 bit. Η εξωτερική μνήμη συνδέεται σύμφωνα με το διάγραμμα στο Σχ. 7.1.11. Εάν παρέχεται 0 V στον ακροδέκτη ¯EA του MK (όπως φαίνεται στην Εικ. 7.1.11), εσωτερική μνήμητα προγράμματα είναι απενεργοποιημένα. Όλες οι προσβάσεις στη μνήμη ξεκινούν από τη διεύθυνση 0000h. Όταν η ακίδα ¯EA είναι συνδεδεμένη σε μια πηγή τροφοδοσίας, η πρόσβαση στην εσωτερική μνήμη προγράμματος στις διευθύνσεις 0000h–FFFFh και στην εξωτερική μνήμη προγράμματος στις διευθύνσεις 0FFFh–FFFFh πραγματοποιείται αυτόματα.

Για την ανάγνωση της εξωτερικής μνήμης των προγραμμάτων MK, δημιουργείται το σήμα ¯PSEN. Όταν εργάζεστε με εσωτερική μνήμη, το σήμα ανάγνωσης δεν χρησιμοποιείται. Κατά την πρόσβαση σε εξωτερική μνήμη προγράμματος, σχηματίζεται πάντα μια διεύθυνση 16-bit. Το χαμηλό byte της διεύθυνσης μεταδίδεται μέσω της θύρας P0 στο πρώτο μισό του κύκλου μηχανής και καθορίζεται με την αποκοπή του στροβοσκοπίου ALE στον καταχωρητή. Στο δεύτερο μισό του κύκλου, η θύρα P0 χρησιμοποιείται για την εισαγωγή ενός byte δεδομένα από την εξωτερική μνήμη στο MK.

Το πιο σημαντικό byte της διεύθυνσης μεταδίδεται μέσω της θύρας P2 καθ' όλη τη διάρκεια του χρόνου πρόσβασης στη μνήμη.

Τα διαγράμματα χρονισμού των κύκλων ανάγνωσης και εγγραφής όταν το MK λειτουργεί με εξωτερική μνήμη RAM φαίνονται στην Εικ. 7.1.12.
Τα διαγράμματα δείχνουν:

● PCL OUT - έξοδος του χαμηλού byte του μετρητή προγράμματος υπολογιστή.

● RSN OUT - έξοδος του high byte του μετρητή εντολών του υπολογιστή.

● DPH - υψηλό byte του καταχωρητή δείκτη δεδομένων DPTR, ο οποίος χρησιμοποιείται ως καταχωρητής για έμμεση διευθυνσιοδότηση στις οδηγίες MOVX @DPTR,A και MOVX A,@DPTR.

● P2 SFR - Ασφάλειες θύρας P2.

● INS IN - είσοδος εντολής (εντολή) byte από τη μνήμη προγράμματος.

● ADDR OUT - έκδοση του χαμηλού byte της διεύθυνσης εξωτερικής μνήμης δεδομένων από τους καταχωρητές Rm (m = 0, 1) ή από τον καταχωρητή DPL (χαμηλός καταχωρητής DPTR). Θύρες I/O. Ανάθεση λιμένα.Θύρες P0, P1, P2, P3 προορίζονταιγια την ανταλλαγή πληροφοριών μεταξύ του MK και των εξωτερικών συσκευών, καθώς και για την εκτέλεση των ακόλουθων λειτουργιών:

● το χαμηλό byte της διεύθυνσης A7…A0 εξάγεται μέσω της θύρας P0. ένα byte δεδομένων εξάγεται από το MK και εισάγεται στο MK όταν εργάζεστε με εξωτερική μνήμη προγράμματος και εξωτερική μνήμη δεδομένων (χωρίς χρόνο).

● μέσω της θύρας P2, το υψηλό byte της διεύθυνσης A15...A8 εξάγεται όταν εργάζεστε με εξωτερική μνήμη προγράμματος και εξωτερική μνήμη δεδομένων (μόνο όταν χρησιμοποιείτε τις εντολές MOVX A,@DPTR και MOVX @DPTR,A).

● Οι γραμμές της θύρας P3 μπορούν να χρησιμοποιηθούν για την εκτέλεση εναλλακτικών λειτουργιών εάν εισαχθεί το 1 στο μάνταλο αυτής της γραμμής, διαφορετικά το 0 είναι σταθερό στην έξοδο γραμμής. Οι εναλλακτικές λειτουργίες των ακροδεκτών της θύρας P3 δίνονται στον πίνακα. 7.1.3.

Χαρακτηριστικά κυκλώματος θυρών

Στο Σχ. Το 7.1.13 δείχνει διαγράμματα για ένα κανάλι για κάθε μία από τις θύρες MK, συμπεριλαμβανομένων:

● μάνδαλο για τη στερέωση του ληφθέντος bit δεδομένων.

● ενισχυτής εξόδου αλληλουχία(οδηγός);

● κόμβος σύνδεση μεστάδιο εξόδου (εκτός από το P2).

● ένα κύκλωμα για τη μετάδοση ενός bit δεδομένων από την πλευρά εξόδου της θύρας, που αποτελείται από buffer B2 και B3 (για τη θύρα P4). Το μάνδαλο είναι ένα D-flip-flop, χρονισμένο από το εσωτερικό σήμα "Write to latch". Το bit δεδομένων από την άμεση έξοδο του D flip-flop μπορεί να διαβαστεί μέσω προγραμματισμού μέσω του buffer B1 χρησιμοποιώντας το σήμα «Read Latch» στη γραμμή του εσωτερικού διαύλου δεδομένων (ID) του MK.

Στάδιο εξόδουΗ θύρα P0 είναι ένας μετατροπέας, τα χαρακτηριστικά του οποίου εκδηλώνονται στο γεγονός ότι το τρανζίστορ φορτίου VT2 ανοίγει μόνο κατά την πρόσβαση σε εξωτερική μνήμη (κατά τη μετάδοση διευθύνσεων και δεδομένων μέσω της θύρας). Σε όλες τις άλλες λειτουργίες, το τρανζίστορ φορτίου είναι κλειστό. Επομένως, για να χρησιμοποιήσετε το P0 (Εικ. 7.1.13, α) ως θύρα εξόδου γενικής χρήσης, είναι απαραίτητο να συνδέσετε εξωτερικές αντιστάσεις φορτίου στους ακροδέκτες του. Όταν γράφετε το 1 στο μάνταλο θύρας, το τρανζίστορ μετατροπέα VT1 είναι κλειδωμένο και ο εξωτερικός ακροδέκτης της θύρας P0.X μεταβαίνει σε κατάσταση υψηλής αντίστασης. Σε αυτήν τη λειτουργία, η έξοδος της θύρας P0.X μπορεί να χρησιμεύσει ως είσοδος. Εάν η θύρα P0 χρησιμοποιείται ως θύρα I/O γενικής χρήσης, κάθε μία από τις ακίδες P0.X της μπορεί να λειτουργήσει ανεξάρτητα ως είσοδος ή έξοδος. Στάδια εξόδουθύρες P1, P2, P3 (Εικ. 7.1.13, β, γ, δ)κατασκευασμένο σύμφωνα με κυκλώματα μετατροπέα με εσωτερική αντίσταση φορτίου, η οποία χρησιμοποιείται ως τρανζίστορ VT2.

Για να μειωθεί ο χρόνος μεταγωγής κατά τη μετάβαση των ακροδεκτών θύρας από την κατάσταση 0 στην κατάσταση 1, εισήχθη ένα πρόσθετο τρανζίστορ VT3 παράλληλα με το τρανζίστορ φορτίου VT2. Το τρανζίστορ VT3, χρησιμοποιώντας στοιχεία στο κύκλωμα πύλης, ξεκλειδώνεται για χρόνο ίσο με δύο περιόδους ταλάντωσης του κύριου ταλαντωτή χαλαζία (κατά τις φάσεις S1P1, S2P2 του κύκλου μηχανής). Στάδια εξόδουΟι θύρες P0, P2 (Εικ. 7.1.13, A, c) χρησιμοποιώντας τον πολυπλέκτη MX μπορούν να συνδεθούν είτε σε μάνδαλα είτε στους εσωτερικούς διαύλους «Address/data» και «Address». Το στάδιο εξόδου της θύρας P1 (Εικ. 7.1.13, 6) είναι μόνιμα συνδεδεμένο με το μάνδαλο.

Εάν ο ακροδέκτης της θύρας P3 είναι έξοδος και το μάνδαλό του περιέχει 1, τότε το στάδιο εξόδου του ελέγχεται από το υλικό εσωτερικό σήμα"Εναλλακτική συνάρτηση εξόδου" που παρέχει την εκτέλεση της αντίστοιχης εναλλακτικής συνάρτησης, δηλ. Ένα από τα σήματα ¯WR, ¯RD ή RxD δημιουργείται στην εξωτερική ακίδα. Εάν η έξοδος θύρας χρησιμοποιείται ως είσοδος, τότε το εναλλακτικό σήμα που φθάνει σε αυτήν (TxD, ¯INT0, ¯INT1, T0, T1) μεταδίδεται στην εσωτερική γραμμή «Εναλλακτική λειτουργία εισόδου».

Λειτουργία εγγραφής θύρας.

Όταν εκτελείται μια εντολή εγγραφής θύρας, η νέα τιμή γράφεται στο μάνταλο στη φάση S6P2 και εξάγεται απευθείας στον ακροδέκτη εξόδου της θύρας στη φάση S1P1 του επόμενου κύκλου μηχανής.

Λειτουργία ανάγνωσης θύρας

Οι εντολές ανάγνωσης θύρας διαβάζουν πληροφορίες απευθείας από τις εξωτερικές ακίδες μιας θύρας ή από τις εξόδους κλειδώματος. Στην πρώτη περίπτωση, το bit δεδομένων από τον ακροδέκτη της θύρας διαβάζεται προγραμματικά μέσω του buffer B2 χρησιμοποιώντας το σήμα «Read Pins» στη γραμμή του εσωτερικού διαύλου δεδομένων (SD) του MK. Σημειώστε ότι τα σήματα "Write to latch", "Read latch", "Read pins" δημιουργούνται στο υλικό όταν εκτελούνται οι αντίστοιχες εντολές.

Στη δεύτερη περίπτωση, εφαρμόζεται η λεγόμενη λειτουργία «Ανάγνωση-Τροποποίηση-Εγγραφή», στην οποία η εντολή διαβάζει το σήμα κατάστασης μανδάλωσης, το τροποποιεί εάν είναι απαραίτητο και στη συνέχεια το ξαναγράφει στο μάνταλο. Η λειτουργία «Ανάγνωση-Τροποποίηση-Εγγραφή» υλοποιείται κατά την εκτέλεση των ακόλουθων εντολών: ANL, ORL, XRL, JBC. CPL; INC; DEC; DJNC; MOV PX,Y; CLR PX.Y; SETB PX,Y.

Η ανάγνωση πληροφοριών από τις εξόδους των κλειδαριών σάς επιτρέπει να εξαλείψετε σφάλματα κατά την ερμηνεία του λογικού επιπέδου στον ακροδέκτη της θύρας. Διαβάστε τη συνέχεια του άρθρου.

Η αρχιτεκτονική της οικογένειας MCS-51 καθορίζεται σε μεγάλο βαθμό από τον σκοπό της - την κατασκευή συμπαγήςΚαι φτηνός ψηφιακές συσκευές. Όλες οι λειτουργίες του μικροϋπολογιστή υλοποιούνται χρησιμοποιώντας ένα μόνο μικροκύκλωμα. Η οικογένεια MCS-51 περιλαμβάνει μια ολόκληρη σειρά μικροκυκλωμάτων από τους πιο απλούς μικροελεγκτές έως αρκετά σύνθετους. Οι μικροελεγκτές της οικογένειας MCS-51 σάς επιτρέπουν να εκτελείτε εργασίες ελέγχου για διάφορες συσκευές και να υλοποιείτε μεμονωμένα εξαρτήματα αναλογικό κύκλωμα. Όλα τα μικροκυκλώματα αυτής της οικογένειας λειτουργούν με το ίδιο σύστημα εντολών, τα περισσότερα από αυτά πραγματοποιούνται σε πανομοιότυπες περιπτώσεις με ταιριαστό pinout(αρίθμηση ποδιών για το σώμα). Αυτό σας επιτρέπει να χρησιμοποιείτε μικροκυκλώματα διαφορετικών κατασκευαστών (όπως Intel, Dallas, Atmel, Philips κ.λπ.) για την αναπτυγμένη συσκευή. χωρίς επανάληψη σχηματικό διάγραμμασυσκευές και προγράμματα.

Εικόνα 1. Μπλοκ διάγραμμα του ελεγκτή K1830BE751

Το μπλοκ διάγραμμα του ελεγκτή παρουσιάζεται στο Σχήμα 1. και αποτελείται από τις ακόλουθες κύριες λειτουργικές μονάδες: μονάδα ελέγχου, αριθμητική-λογική μονάδα, μονάδα χρονοδιακόπτη/μετρητή, σειριακή διεπαφή και μονάδα διακοπής, μετρητής προγράμματος, μνήμη δεδομένων και μνήμη προγράμματος. Η αμφίδρομη επικοινωνία πραγματοποιείται με τη χρήση ενός εσωτερικού διαύλου δεδομένων 8-bit. Ας ρίξουμε μια πιο προσεκτική ματιά στον σκοπό κάθε μπλοκ. Σχεδόν όλα τα μέλη της οικογένειας MCS-51 είναι κατασκευασμένα σύμφωνα με αυτό το σχέδιο. Διάφορα μικροκυκλώματα αυτής της οικογένειας διαφέρουν μόνο σε καταχωρητές ειδικού σκοπού (συμπεριλαμβανομένου του αριθμού των θυρών). Σύστημα εντολών όλους τους ελεγκτέςΗ οικογένεια MCS-51 περιέχει 111 βασικές εντολέςμε μορφή 1, 2 ή 3 byte και δεν αλλάζει όταν μετακινείται από το ένα τσιπ στο άλλο. Αυτό εξασφαλίζει εξαιρετική φορητότητα προγράμματος από το ένα τσιπ στο άλλο.

Μονάδα ελέγχου και συγχρονισμού

Η μονάδα χρονισμού και ελέγχου έχει σχεδιαστεί για να παράγει σήματα συγχρονισμού και ελέγχου που διασφαλίζουν τον συντονισμό της κοινής λειτουργίας των μονάδων υπολογιστών mainframe σε όλους τους επιτρεπόμενους τρόπους λειτουργίας της. Η μονάδα ελέγχου περιλαμβάνει:

  • συσκευή για τη διαμόρφωση χρονικών διαστημάτων,
  • λογική εισόδου-εξόδου,
  • καταχωρητής εντολών
  • μητρώο διαχείρισης ενέργειας,
  • αποκωδικοποιητής εντολών, λογική ελέγχου υπολογιστή.

Συσκευή διαμόρφωσης χρονικών διαστημάτωνσχεδιασμένο για τη δημιουργία και την έκδοση εσωτερικών σημάτων ρολογιού φάσεων, ρολογιών και κύκλων. Ο αριθμός των κύκλων μηχανής καθορίζει τη διάρκεια των εντολών. Σχεδόν όλες οι εντολές του υπολογιστή εκτελούνται σε έναν ή δύο κύκλους μηχανής, εκτός από τις εντολές πολλαπλασιασμού και διαίρεσης, η διάρκεια εκτέλεσης των οποίων είναι τέσσερις κύκλοι μηχανής. Ας υποδηλώσουμε τη συχνότητα του κύριου ταλαντωτή με F g. Τότε η διάρκεια του κύκλου της μηχανής είναι ίση με 12/F g ή είναι 12 περίοδοι του σήματος του κύριου ταλαντωτή. Η λογική I/O έχει σχεδιαστεί για τη λήψη και την έξοδο σημάτων που διασφαλίζουν την ανταλλαγή πληροφοριών με εξωτερικές συσκευές μέσω των θυρών εισόδου/εξόδου P0-P3.

Μητρώο εντολώνέχει σχεδιαστεί για να καταγράφει και να αποθηκεύει τον κωδικό λειτουργίας των 8 bit της εντολής που εκτελείται. Ο κώδικας λειτουργίας, με τη βοήθεια εντολών και λογικής ελέγχου υπολογιστή, μετατρέπεται σε μικροπρόγραμμα για την εκτέλεση της εντολής.

Μητρώο ελέγχου ζήτησης (PCON) σας επιτρέπει να σταματήσετε τον μικροελεγκτή για να μειώσετε την κατανάλωση ενέργειας και να μειώσετε το επίπεδο παρεμβολής από τον μικροελεγκτή. Ακόμη μεγαλύτερη μείωση της κατανάλωσης ενέργειας και των παρεμβολών μπορεί να επιτευχθεί με τη διακοπή του κύριου ταλαντωτή μικροελεγκτή. Αυτό μπορεί να επιτευχθεί με εναλλαγή των bit του καταχωρητή ελέγχου κατανάλωσης PCON. Για την επιλογή κατασκευής n-MOS (σειρά 1816 ή ξένα τσιπ που δεν έχουν "c" στη μέση του ονόματός τους), ο καταχωρητής ελέγχου κατανάλωσης PCON περιέχει μόνο ένα bit που ελέγχει τον ρυθμό baud της σειριακής θύρας SMOD και δεν υπάρχουν bit ελέγχου κατανάλωσης ενέργειας.

Μαζί με το άρθρο "Αρχιτεκτονική των μικροελεγκτών MCS-51" διαβάστε:


http://site/MCS51/tablms.php


http://site/MCS51/SysInstr.php


http://site/MCS51/port.php

Επί του παρόντος, διάφορες εταιρείες παράγουν πολλές τροποποιήσεις και ανάλογα αυτής της οικογένειας, τόσο από την Intel όσο και από άλλους κατασκευαστές, η ταχύτητα του ρολογιού και η χωρητικότητα μνήμης έχουν δεκαπλασιαστεί και συνεχίζουν να αυξάνονται. Το σύνολο των ενσωματωμένων μονάδων στο LSI επεκτείνεται επίσης· ένας μεγάλος αριθμός σύγχρονων μοντέλων έχουν ενσωματωμένο ADC υψηλής ταχύτητας με έως και 12, και τώρα μπορεί να υπάρχουν περισσότερα bit. Αλλά η οικογένεια MCS51 βασίζεται σε Intel LSI 8051, 80С51, 8751, 87С51, 8031, 80С31, τα πρώτα δείγματα των οποίων κυκλοφόρησαν το 1980.

Οι μικροελεγκτές της οικογένειας MCS51 κατασκευάζονται χρησιμοποιώντας τεχνολογία n-MOS υψηλής ποιότητας (σειρά 8ХХХ, αναλογική - σειρά 1816 στη Ρωσία και τη Λευκορωσία) και τεχνολογία k-MOS (σειρά 8ХСХХ, αναλογική - σειρά 1830). Ο δεύτερος χαρακτήρας που ακολουθεί το 8 σημαίνει: 0 – δεν υπάρχει EPROM στο τσιπ, 7 – EPROM 4K με διαγραφή υπεριώδους. Τρίτος χαρακτήρας: 3 – on-chip ROM, 5 – αν δεν υπάρχει ROM, τότε υπάρχει μια mask ROM στο τσιπ.

Και έτσι το 80С51 είναι ένα LSI που βασίζεται στην τεχνολογία k-MOS με μια μάσκα ROM στο τσιπ, το 8031 ​​είναι ένα n-MOS LSI χωρίς μνήμη προγράμματος (ROM, RPOM) σε ένα τσιπ, το 8751 είναι ένα n-MOS LSI με μόνιμος (βρίσκεται στο τσιπ) RPOM με διαγραφή υπεριώδους. Θα εξετάσουμε περαιτέρω το 8751 LSI, κάνοντας, εάν είναι απαραίτητο, επιφυλάξεις σχετικά με τις διαφορές μεταξύ άλλων κυκλωμάτων, αναφέροντας εκείνες τις παραμέτρους που δημοσιεύθηκαν για τα πρώτα σειριακά LSI. Εάν είναι απαραίτητο, μπορείτε να βρείτε πρόσθετες πληροφορίες για όλες τις σύγχρονες τροποποιήσεις στους καταλόγους της εταιρείας και στην τεχνική τεκμηρίωση.

Α. Γενικά χαρακτηριστικά και αντιστοιχίσεις καρφιτσών

Η οικογένεια MCS51 βασίζεται σε πέντε τροποποιήσεις του MK (με πανομοιότυπα βασικά χαρακτηριστικά), η κύρια διαφορά μεταξύ των οποίων είναι η υλοποίηση της μνήμης του προγράμματος και η κατανάλωση ενέργειας (βλ. Πίνακα 3.1). Ο μικροελεγκτής είναι οκτώ bit, δηλ. έχει εντολές επεξεργασίας λέξεων οκτώ bit, έχει αρχιτεκτονική Χάρβαρντ, η συχνότητα ρολογιού των βασικών δειγμάτων της οικογένειας είναι 12 MHz.

Πίνακας 3.1.

Μικροκυκλώματα

Εσωτερική μνήμη προγράμματος, bytes

Τύπος μνήμης προγράμματος

Εσωτερική μνήμη δεδομένων, byte

Συχνότητα ρολογιού, MHz

Κατανάλωση ρεύματος, mA

Τα MK 8051 και 80C51 περιέχουν μια προγραμματιζόμενη με μάσκα μνήμη προγράμματος ROM χωρητικότητας 4096 byte κατά την κατασκευή του τσιπ και έχουν σχεδιαστεί για χρήση στη μαζική παραγωγή. Το MK 8751 περιέχει ένα RPOM 4096 byte με διαγραφή υπεριώδους και είναι βολικό στο στάδιο ανάπτυξης του συστήματος κατά τον εντοπισμό σφαλμάτων προγραμμάτων, καθώς και κατά την παραγωγή σε μικρές παρτίδες ή κατά τη δημιουργία συστημάτων που απαιτούν επανεγγραφή κατά τη λειτουργία.

περιοδική προσαρμογή.

Τα MK 8031 ​​και 80C31 δεν περιέχουν ενσωματωμένη μνήμη προγράμματος. Όπως και οι τροποποιήσεις που περιγράφηκαν προηγουμένως, μπορούν να χρησιμοποιήσουν έως και 64 KB εξωτερικής μνήμης προγράμματος και χρησιμοποιούνται αποτελεσματικά σε συστήματα που απαιτούν σημαντικά μεγαλύτερο όγκο (από 4 KB στο τσιπ) μνήμης προγράμματος ROM.

Κάθε MK της οικογένειας περιέχει μια μόνιμη μνήμη δεδομένων χωρητικότητας 128 byte με δυνατότητα επέκτασης της συνολικής ποσότητας δεδομένων RAM έως και 64 KB μέσω της χρήσης εξωτερικών IC RAM.

    κεντρικός επεξεργαστής οκτώ bit.

    Μνήμη προγράμματος 4 KB (μόνο 8751 και 87C51).

    Μνήμη δεδομένων 128 byte.

    τέσσερις προγραμματιζόμενες θύρες εισόδου/εξόδου οκτώ bit.

    δύο 16-bit multi-mode χρονόμετρο/μετρητές?

    σύστημα αυτόματης διανυσματικής διακοπής με πέντε διανύσματα και δύο επίπεδα προτεραιότητας ελεγχόμενα από λογισμικό.

    σειριακή διεπαφή, συμπεριλαμβανομένου ενός καθολικού πομποδέκτη διπλής όψης ικανό να λειτουργεί σε τέσσερις λειτουργίες.

    γεννήτρια ρολογιού.

Το σύστημα εντολών MK περιέχει 111 βασικές εντολές με μορφή 1, 2 ή 3 byte. Ο μικροελεγκτής διαθέτει:

    32 καταχωρητές γενικού σκοπού RON, οργανωμένοι ως τέσσερις τράπεζες των οκτώ καταχωρητών ο καθένας με ονόματα R0... R7, η επιλογή της μιας τράπεζας ή της άλλης καθορίζεται από το πρόγραμμα ορίζοντας τα αντίστοιχα bit στον καταχωρητή κατάστασης προγράμματος PSW.

    128 σημαίες ελεγχόμενες από λογισμικό (επεξεργαστής bit, βλέπε παρακάτω).

    ένα σύνολο καταχωρητών ειδικών συναρτήσεων που ελέγχουν τα στοιχεία MK. Υπάρχουν οι παρακάτω τρόποι λειτουργίας του μικροελεγκτή:

1). Γενική επαναφορά. 2).Κανονική λειτουργία. 3). Λειτουργία χαμηλής κατανάλωσης ενέργειας και κατάσταση αδράνειας. 4). Λειτουργία προγραμματισμού για μόνιμο RPOM, εάν υπάρχει.

Εδώ θα επικεντρωθούμε στους δύο πρώτους τρόπους λειτουργίας· μια λεπτομερής περιγραφή της σύνθεσης και της λειτουργίας του MK σε όλους τους τρόπους λειτουργίας δίνεται στο Παράρτημα P1.

Το RON και η περιοχή του επεξεργαστή bit βρίσκονται στο χώρο διευθύνσεων της μόνιμης RAM με διευθύνσεις από 0 έως 80h.

Στην επάνω ζώνη των οικιακών διευθύνσεων RAM υπάρχουν καταχωρητές ειδικών λειτουργιών (SFR, Special Function Registers). Ο σκοπός τους δίνεται στον πίνακα. 3.2.

Πίνακας 3.2.

Ονομασία

Ονομα

Μπαταρία

Εγγραφή Β

Εγγραφή κατάστασης προγράμματος

Δείκτης στοίβας

Δείκτης δεδομένων. 2 byte:

Χαμηλό byte

Υψηλό byte

Μητρώο προτεραιότητας διακοπής

Εγγραφή ενεργοποίησης διακοπής

Εγγραφή λειτουργίας χρονοδιακόπτη/μετρητή

Μητρώο χρονοδιακόπτη/μετρητή ελέγχου

Χρονοδιακόπτης/μετρητής 0. Υψηλό byte

Χρονοδιακόπτης/μετρητής 0. Χαμηλό byte

Χρονοδιακόπτης/μετρητής 1. Υψηλό byte

Χρονοδιακόπτης/μετρητής 1. Χαμηλό byte

Έλεγχος σειριακής θύρας

Serial Buffer

Διαχείριση κατανάλωσης

* - μητρώα, επιτρέποντας δυαδικά απευθύνοντας

Ας δούμε συνοπτικά τις λειτουργίες των καταχωρητών SFR που φαίνονται στον Πίνακα 3.2.

Μπαταρία ACC - μητρώο συσσωρευτή. Εντολές σχεδιασμένες να λειτουργούν

εσείς με την μπαταρία, χρησιμοποιήστε το μνημονικό "A", για παράδειγμα, MOV ΕΝΑ, P2 . Η μνημονική ACC χρησιμοποιείται, για παράδειγμα, κατά τη διευθυνσιοδότηση bitwise σε έναν συσσωρευτή. Έτσι, το συμβολικό όνομα του πέμπτου bit του συσσωρευτή κατά τη χρήση του assembler A5M51 θα είναι το εξής: ACC. 5. .

Κανω ΕΓΓΡΑΦΗ ΣΕ . Χρησιμοποιείται κατά τις πράξεις πολλαπλασιασμού και διαίρεσης. Για άλλες οδηγίες, ο καταχωρητής Β μπορεί να αντιμετωπιστεί ως πρόσθετος καταχωρητής σε πραγματικό χρόνο.

Κανω ΕΓΓΡΑΦΗ κατάσταση προγράμματα P.S.W. περιέχει πληροφορίες σχετικά με την κατάσταση του προγράμματος και εγκαθίσταται εν μέρει αυτόματα με βάση το αποτέλεσμα της λειτουργίας που εκτελείται και εν μέρει από τον χρήστη. Η ονομασία και ο σκοπός των bit καταχωρητή δίνονται στους Πίνακες 3.3 και 3.4, αντίστοιχα.

Πίνακας 3.3.

Ονομασία

Πίνακας 3.4.

Ονομασία

Εκχώρηση bit

Πρόσβαση bit

Φέρτε σημαία. Αλλαγές κατά την εκτέλεση μιας σειράς αριθμητικών και λογικών εντολών.

Υλικό ή λογισμικό

Πρόσθετη σημαία μεταφοράς. Ρύθμιση/απαλοιφή σε υλικό κατά τη διάρκεια των οδηγιών πρόσθεσης ή αφαίρεσης για να υποδείξει μια μεταφορά ή δανεισμό στο bit 3 όταν δημιουργείται το λιγότερο σημαντικό τσίμπημα του αποτελέσματος (D0-D3).

Υλικό ή λογισμικό

Σημαία 0. Σημαία καθορισμένη από το χρήστη.

Προγραμματικά

Προγραμματικά

Μητρώο εργασίας Ευρετήριο Τράπεζας

Προγραμματικά

Τράπεζα 0 με διευθύνσεις (00Н - 07Н) Τράπεζα 1 με διευθύνσεις (08Н - 0FН) Τράπεζα 2 με διευθύνσεις (10Н - 17Н) Τράπεζα 3 με διευθύνσεις (18Н - 1FН)

Σημαία υπερχείλισης. Ρύθμιση ή απαλοιφή από το υλικό κατά την εκτέλεση των αριθμητικών εντολών για να υποδείξει μια κατάσταση υπερχείλισης

Υλικό ή λογισμικό

Εφεδρικός. Περιέχει μια εγγράψιμη και αναγνώσιμη σκανδάλη που μπορεί να χρησιμοποιηθεί

Λίγο ισοτιμίας. Επαναφέρετε ή ρυθμίστε το υλικό σε κάθε κύκλο εντολών για να υποδείξει έναν ζυγό ή μονό αριθμό bits μπαταρίας στην κατάσταση "1".

Υλικό ή λογισμικό

Δείκτης σωρός SP - Ένας καταχωρητής 8-bit του οποίου τα περιεχόμενα αυξάνονται πριν εγγραφούν δεδομένα στη στοίβα όταν εκτελούνται οι εντολές PUSH και CALL. Κατά την αρχική επαναφορά, ο δείκτης στοίβας ρυθμίζεται στο 07H και η περιοχή στοίβας στη μνήμη RAM δεδομένων ξεκινά από τη διεύθυνση 08H. Εάν είναι απαραίτητο, παρακάμπτοντας τον δείκτη στοίβας, η περιοχή στοίβας μπορεί να βρίσκεται οπουδήποτε στην εσωτερική μνήμη RAM των δεδομένων του μικροελεγκτή.

Δείκτης δεδομένα DPTR αποτελείται από ένα υψηλό byte (DPH) και ένα χαμηλό byte

(DPL). Περιέχει μια διεύθυνση 16-bit κατά την πρόσβαση σε εξωτερική μνήμη. Μπορεί να χρησιμοποιηθεί

να είναι είτε ένας καταχωρητής 16 bit είτε δύο ανεξάρτητοι καταχωρητές οκτώ bit.

Θύρα 0 - PortZ. Ξεχωριστά bit των καταχωρητών των ειδικών συναρτήσεων P0, P1, P2, RZ είναι τα bit «μανδάλωσης» των θυρών P0, P1, P2, RZ.

Ρυθμιστής σταθερός Λιμάνι SBUF αντιπροσωπεύει δύο ξεχωριστούς καταχωρητές: το buffer πομπού και το buffer του δέκτη. Όταν τα δεδομένα εγγράφονται στο SBUF, εισέρχονται στο buffer του πομπού και η εγγραφή ενός byte στο SBUF ξεκινά αυτόματα τη μετάδοση μέσω της σειριακής θύρας. Όταν τα δεδομένα διαβάζονται από το SBUF, λαμβάνονται από την προσωρινή μνήμη του δέκτη.

Μητρώα μετρών την ώραν. Καταχωρίστε τα ζεύγη (TH0, TL0) και (TH1, TL1) από το 16

καταχωρεί καταμέτρηση bit για το χρονόμετρο/μετρητή 0 και το χρονόμετρο/μετρητή 1, αντίστοιχα.

Μητρώα διαχείριση. Οι καταχωρητές ειδικών συναρτήσεων IP, IE, TMOD, TCON, SCON και PCON περιέχουν bit ελέγχου και bit κατάστασης του συστήματος διακοπής, χρόνο-

μέτρα/μετρητές και σειριακή θύρα. Θα συζητηθούν αναλυτικά παρακάτω.

RxD TxD INT0 INT1 T0 T1 WR

P1.2 P1.3 P1.4 P1.5 P1.6 P1.7

RST BQ2 BQ 1 Ε.Α.

P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7

P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7

P0,0 P0,1 P0,2 P0,3 P0,4 P0,5 P0,6 P0,7

Κατά τη λειτουργία, το MC παρέχει:

    ο ελάχιστος χρόνος εκτέλεσης για εντολές πρόσθεσης είναι 1 μs.

    πολλαπλασιασμός και διαίρεση υλικού με ελάχιστο χρόνο εκτέλεσης 4 μs.

Το MK παρέχει τη δυνατότητα ρύθμισης της συχνότητας του εσωτερικού ταλαντωτή χρησιμοποιώντας χαλαζία, μια αλυσίδα LC ή έναν εξωτερικό ταλαντωτή.

Το εκτεταμένο σύστημα εντολών παρέχει διευθυνσιοδότηση byte και bit, δυαδική και δυαδική δεκαδική αριθμητική, ένδειξη υπερχείλισης και προσδιορισμό ζυγού/περιττού και τη δυνατότητα υλοποίησης ενός λογικού επεξεργαστή.

Το πιο σημαντικό και διακριτικό χαρακτηριστικό της αρχιτεκτονικής της οικογένειας MCS51 είναι ότι η ALU μπορεί να χειριστεί δεδομένα ενός bit επιπλέον της εκτέλεσης λειτουργιών σε τύπους δεδομένων 8 bit. Μεμονωμένα bit προσβάσιμα από λογισμικό μπορούν να οριστούν, να διαγραφούν ή να αντικατασταθούν από το συμπλήρωμά τους, μπορούν να προωθηθούν, να ελεγχθούν και

Εικ.3.2. Εξωτερικές ακίδες

μικροελεγκτή

χρησιμοποιείται σε λογικούς υπολογισμούς. Εκτιμώντας ότι υποστήριξη για απλούς τύπους δεδομένων (εάν υπάρχουν)

Αν και η τρέχουσα τάση για μεγαλύτερα μήκη λέξεων μπορεί να φαίνεται σαν ένα βήμα προς τα πίσω με την πρώτη ματιά, αυτή η ποιότητα καθιστά την οικογένεια μικροελεγκτών MCS51 ιδιαίτερα κατάλληλη για εφαρμογές που βασίζονται σε ελεγκτές. Οι αλγόριθμοι λειτουργίας του τελευταίου προϋποθέτουν την παρουσία μεταβλητών Boolean εισόδου και εξόδου, οι οποίες είναι δύσκολο να εφαρμοστούν χρησιμοποιώντας τυπικούς μικροεπεξεργαστές. Όλες αυτές οι ιδιότητες ονομάζονται συνολικά Boolean επεξεργαστής της οικογένειας MCS51. Αυτή η ισχυρή ALU καθιστά την οικογένεια μικροελεγκτών MCS51 κατάλληλη τόσο για εφαρμογές ελέγχου σε πραγματικό χρόνο όσο και για αλγόριθμους με μεγάλη ένταση δεδομένων.

Το διάγραμμα κυκλώματος του μικροελεγκτή φαίνεται στο Σχ. 3.2. Στη βασική έκδοση, συσκευάζεται σε πακέτο DIP 40 ακίδων. Ας δούμε τον σκοπό των καρφίδων.

Ας ξεκινήσουμε με τους ακροδέκτες ισχύος «0 ΣΕ" Και "5 ΣΕ" , μέσω του οποίου λαμβάνει βασική διατροφή. Η τρέχουσα κατανάλωση δίνεται στον πίνακα. 3.1.

συμπέρασμα "RST" - επαναφορά μικροελεγκτή. Όταν εφαρμόζεται ένα ενεργό υψηλό επίπεδο σε αυτόν τον πείρο, το τρόπος γενικός επαναφορά και η MK εκτελεί τις ακόλουθες ενέργειες:

Ρυθμίζει τον μετρητή προγράμματος υπολογιστή και όλους τους καταχωρητές ειδικών λειτουργιών, εκτός από τα μάνδαλα της θύρας P0-P3, τον δείκτη στοίβας SP και τον καταχωρητή SBUF, στο μηδέν.

    ο δείκτης στοίβας παίρνει την τιμή ίση με 07H.

    απενεργοποιεί όλες τις πηγές διακοπής, το χρονόμετρο-μετρητή και τη σειρά

    επιλέγει BANK 0 RAM, προετοιμάζει τις θύρες P0-RZ για λήψη δεδομένων και προσδιορισμό

μοιράζεται τις ακίδες ALE και PME ως εισόδους για εξωτερικό χρονισμό.

      σε μητρώα ειδικές λειτουργίεςΤα δεσμευμένα bit PCON, IP και IE λαμβάνουν τυχαίες τιμές και όλα τα άλλα bit μηδενίζονται.

      ο καταχωρητής SBUF έχει οριστεί σε τυχαίες τιμές.

      ορίζει τα μάνδαλα των θυρών P0-PZ σε "1".

Οι καταστάσεις των καταχωρητών μικροελεγκτή μετά την επαναφορά φαίνονται στον Πίνακα 3.5.

Πίνακας 3.5.

Πληροφορίες

Αβέβαιος

0ХХХ0000V για k-MOS 0XXXXXXB για n-MOS

Ο ακροδέκτης RST έχει επίσης μια εναλλακτική λειτουργία. Η εφεδρική ισχύς παρέχεται μέσω αυτού για να διατηρείται αμετάβλητο το περιεχόμενο της μνήμης RAM του μικροελεγκτή όταν αφαιρείται η κύρια.

συμπεράσματα BQ1, BQ2 προορίζονται για τη σύνδεση ενός συντονιστή χαλαζία που καθορίζει τη συχνότητα ρολογιού του MK.

συμπέρασμα ΕΑ` (μι εξωτερικά ΕΝΑ φόρεμα εξωτερικός διεύθυνση) - έχει σχεδιαστεί για να ενεργοποιεί τη λειτουργία ανάγνωσης κωδικών ελέγχου από την εξωτερική μνήμη προγράμματος όταν εφαρμόζεται ενεργό χαμηλό επίπεδο σε αυτόν τον ακροδέκτη. Η έξοδος έχει εναλλακτικό σκοπό (λειτουργία). Τροφοδοτείται με τάση προγραμματισμού από το RPOM σε λειτουργία προγραμματισμού.

συμπέρασμα PME (Π ρόγραμμα Μ emory μι ικανός άδεια μνήμη προγράμματα) - έχει σχεδιαστεί για να ελέγχει τον κύκλο ανάγνωσης από τη μνήμη προγράμματος και ενεργοποιείται αυτόματα από το MK σε κάθε κύκλο μηχανής.

συμπέρασμα ALE (ΕΝΑ φόρεμα μεγάλο μήκος μι ικανός άδεια κατώτερος διευθύνσεις) στροβοσκοπικά την έξοδο του τμήματος χαμηλής τάξης της διεύθυνσης μέσω της θύρας P0. Η έξοδος χρησιμοποιείται επίσης κατά τον προγραμματισμό του RPOM, ενώ παρέχεται σε αυτό ένας στροβοσκοπικός παλμός για τη διαδικασία προγραμματισμού.

Το MK περιέχει τέσσερις ομάδες θυρών: P0, P1, P2 και P3. Αυτές είναι οι υπόλοιπες 40 ακίδες του μικροελεγκτή. Αυτές οι θύρες μπορούν να χρησιμεύσουν για εισαγωγή και έξοδο bit-by-bit πληροφοριών, αλλά επιπλέον, καθεμία από αυτές έχει τη δική της εξειδίκευση. Ένα γενικευμένο λειτουργικό διάγραμμα της θύρας φαίνεται στο Σχ. 3.3. Η θύρα περιέχει διακόπτες εξόδου FET συνδεδεμένους στον ακροδέκτη, διακόπτη λειτουργίας, μάνταλο D flip-flop και λογική ελέγχου. Μια μονάδα ή μηδέν μπορεί να γραφτεί στο μάνδαλο του εσωτερικού διαύλου του MK. Αυτές οι πληροφορίες αποστέλλονται μέσω του διακόπτη λειτουργίας στους διακόπτες εξόδου και στην έξοδο του MK. Στη μία κατάσταση, και τα δύο τρανζίστορ N και N1 είναι κλειστά, αλλά το N2 είναι ανοιχτό. Στην κατάσταση μηδέν ανοίγει το N-

Xia και το N2 κλείνει. Τη στιγμή που μια θύρα εκτελεί μια εναλλακτική λειτουργία για την οποία είναι εξειδικευμένη, η κατάσταση κλειδώματος εξόδου διαγράφεται. Ο μικροελεγκτής μπορεί να διαβάσει χωριστά την κατάσταση του μάνταλου θύρας και την κατάσταση της εξόδου του, που ορίζεται από ένα εξωτερικό σήμα. Για το σκοπό αυτό, το MK assembler περιέχει ειδικές εντολές που ενεργοποιούν τις αντίστοιχες γραμμές. Για να διαβάσετε την κατάσταση της ακίδας στο αντίστοιχο μάνταλο θύρας, το

να είναι προηχογραφημένο

Από εσωτερικά

Μάνταλο ελέγχου

Διακόπτης λειτουργίας

Vcc

Σαββατοκύριακο

μονάδα. Όταν είναι ενεργοποιημένη η γραμμή "read latch", εμφανίζεται η έξοδος του κελιού "AND" στο οποίο είναι συνδεδεμένη αυτή η γραμμή.

τα ελαστικά της MK D Q

Γράψτε στο μάνδαλο C Q

Διαβάστε το μάνταλο

Καρφίτσα θύρας

Η κατάσταση μανδάλωσης μεταδίδεται στον εσωτερικό δίαυλο του MC όταν ενεργοποιηθεί

"Εξόδου ανάγνωσης" - η κατάσταση της εξωτερικής ακίδας της θύρας.

Λιμάνι P0 – καθολική αμφίδρομη θύρα

I/O Πέρα από αυτό το λιμάνι

η λειτουργία της οργάνωσης εξωτερικών λεωφορείων διευθύνσεων και

Ρύζι. 3.3. Λειτουργικό διάγραμμα της θύρας του μικροελεγκτή

δεδομένα για επέκταση της μνήμης προγράμματος και της μνήμης δεδομένων

μικροελεγκτή. Όταν γίνεται πρόσβαση στην εξωτερική μνήμη προγράμματος ή εκτελείται μια εντολή για πρόσβαση στην εξωτερική μνήμη δεδομένων, το τμήμα χαμηλής τάξης της διεύθυνσης (A0...A7) ορίζεται στις ακίδες της θύρας, το οποίο βρίσκεται ψηλά στην ακίδα ALE. Στη συνέχεια, κατά την εγγραφή δεδομένων στη μνήμη, οι καταγεγραμμένες πληροφορίες από τον εσωτερικό δίαυλο του MK αποστέλλονται στους ακροδέκτες της θύρας P0. Στις λειτουργίες ανάγνωσης, αντίθετα, πληροφορίες από τις ακίδες της θύρας αποστέλλονται στον εσωτερικό δίαυλο. Ένα χαρακτηριστικό της θύρας P0 είναι η απουσία τρανζίστορ "pull-up" N2, το οποίο παρέχει ισχύ στην έξοδο. Κατά την εγγραφή στο μάνδαλο της θύρας της μονάδας, απλώς μεταφέρεται σε κατάσταση υψηλής σύνθετης αντίστασης, η οποία είναι απαραίτητη για την κανονική λειτουργία του διαύλου δεδομένων. Εάν είναι απαραίτητο να τροφοδοτήσετε οποιαδήποτε εξωτερική συσκευή μέσω της εξόδου, θα πρέπει να παρέχονται εξωτερικές αντιστάσεις από τα κυκλώματα ισχύος στην έξοδο της θύρας.

Λιμάνι P1 – καθολική αμφίδρομη θύρα I/O χωρίς εναλλακτικές λειτουργίες.

Λιμάνι P2 – μια καθολική αμφίδρομη θύρα I/O, η οποία, ως εναλλακτική λειτουργία, εκδίδει το υψηλό τμήμα της διεύθυνσης (A8...A15) κατά την πρόσβαση στην εξωτερική μνήμη.

Λιμάνι P3 – μια καθολική αμφίδρομη θύρα I/O, κάθε bit της οποίας προβλέπει την υλοποίηση διαφόρων εναλλακτικών λειτουργιών. Σε αυτήν την περίπτωση, οι εναλλακτικές λειτουργίες υλοποιούνται μόνο εάν είναι γραμμένες στα μάνδαλα των ακροδεκτών της θύρας, διαφορετικά, η εκτέλεση εναλλακτικών συναρτήσεων μπλοκάρεται. Ας τα απαριθμήσουμε ξεχωριστά για κάθε bit:

P3.0 RxD (R ead e Χεσωτερικός ρεέτρωγε, διάβασε εξωτερικά δεδομένα) – είσοδος του ενσωματωμένου σειριακού πομποδέκτη.

P3.1 TxD (Τναι ε Χεσωτερικός ρεέτρωγε, μεταδίδει εξωτερικά δεδομένα) – έξοδος του ενσωματωμένου σειριακού πομποδέκτη.

P3.2 INT0` (INT erupt, interrupt) – είσοδος εξωτερικής διακοπής 0.

P3.3 INT1` – Είσοδος εξωτερικής διακοπής 1.

P3.4 С/T0 – μηδενική ενσωματωμένη είσοδος χρονοδιακόπτη/μετρητή.

P3.5 C/T1 – είσοδος του πρώτου ενσωματωμένου χρονοδιακόπτη/μετρητή.

P3.6 WR` (W rite, write) – έξοδος για τον έλεγχο του κύκλου εγγραφής στη μνήμη δεδομένων.

P3.7 RD` (R ead, read) – έλεγχος εξόδου του κύκλου ανάγνωσης από τη μνήμη δεδομένων.

Οι ακίδες της θύρας P1, P2 και P3 μπορούν να εξάγουν ρεύμα περίπου 0,2 mA ανά μονάδα και να δέχονται ρεύμα 3 mA στο μηδέν· οι ακίδες της θύρας P0 είναι πιο ισχυρές και μπορούν να παρέχουν ρεύμα περίπου 0,8 mA σε μία μονάδα και λαμβάνει ρεύμα 5 mA στο μηδέν. Σύντομες πληροφορίες σχετικά με τον σκοπό των ακίδων του μικροελεγκτή δίνονται στον Πίνακα 3.6.

Πίνακας 3.6.

Ονομασία

Σκοπός εξόδου

8-bit αμφίδρομη θύρα P1. Εισαγωγή διεύθυνσης A0-A7 κατά τον έλεγχο της εσωτερικής ROM (RPM)

εισαγάγετε την έξοδο

Γενικό σήμα επαναφοράς. Έξοδος εφεδρικής ισχύος RAM από εξωτερική πηγή (για το 1816)

8-bit αμφίδρομη θύρα P3 με πρόσθετες δυνατότητες

εισαγάγετε την έξοδο

Σειριακά δεδομένα δέκτη - RxD

Σειριακά δεδομένα πομπού - TxD

Είσοδος εξωτερικής διακοπής 0-INT0`

Είσοδος εξωτερικής διακοπής 1-INT1`

Είσοδος χρονοδιακόπτη/μετρητή 0: - T0

Είσοδος χρονοδιακόπτη/μετρητή 1: - T1

Έξοδος σήματος στροβοσκοπίου κατά την εγγραφή σε εξωτερική μνήμη δεδομένων: - WR`

Έξοδος σήματος στροβοσκοπίου κατά την ανάγνωση από εξωτερική μνήμη δεδομένων – RD`

Καλώδια για τη σύνδεση αντηχείου χαλαζία.

έξοδος εισόδου

Γενικό συμπέρασμα

8-bit αμφίδρομη θύρα P2. Διεύθυνση εξόδου A8-A15 σε λειτουργία εξωτερικής μνήμης. Στη λειτουργία εσωτερικού ελέγχου ROM, οι ακίδες P2.0 - P2.6 χρησιμοποιούνται ως είσοδος των διευθύνσεων A8-A14. Pin P2.7 - Άδεια ανάγνωσης ROM.

εισαγάγετε την έξοδο

Ανάλυση μνήμης προγράμματος

Σήμα εξόδου ενεργοποίησης σταθεροποίησης διεύθυνσης. Κατά τον προγραμματισμό του σήματος RPOM: PROG

εισαγάγετε την έξοδο

Αποκλεισμός εργασίας με εσωτερική μνήμη. Κατά τον προγραμματισμό του RPOM, δίνεται το σήμα UPR

εισαγάγετε την έξοδο

8-bit αμφίδρομη θύρα P0. Δίαυλος διεύθυνσης/δεδομένων για εργασία με εξωτερική μνήμη. Έξοδος δεδομένων D7-D0 σε λειτουργία δοκιμής εσωτερικής ROM (RPM).

εισαγάγετε την έξοδο

Παραγωγή ισχύος από πηγή τάσης +5V

ΣΧΕΔΙΟ ΔΙΑΛΕΞΗΣ

1. Εισαγωγή

2. Αριθμητικές και λογικές οδηγίες

3. Εντολές μεταφοράς δεδομένων

4. Λειτουργίες Boolean

5. Οδηγίες μετάβασης

1. Εισαγωγή

Σύστημα εντολών MCS-51υποστηρίζει ένα ενιαίο σύνολο εντολών, το οποίο έχει σχεδιαστεί για να εκτελεί αλγόριθμους ελέγχου ενεργοποιητή 8-bit. Είναι δυνατή η χρήση γρήγορων μεθόδων για τη διευθυνσιοδότηση της εσωτερικής μνήμης RAM και την εκτέλεση λειτουργιών bit σε μικρές δομές δεδομένων. Υπάρχει ένα εκτεταμένο σύστημα για την αντιμετώπιση μεταβλητών ενός bit ως ανεξάρτητου τύπου δεδομένων, το οποίο επιτρέπει τη χρήση μεμονωμένων bit σε λογικές εντολές και εντολές ελέγχου της άλγεβρας Boole.

Τρόποι διευθυνσιοδότησης : σύνολο εντολών MCS-51υποστηρίζει τους παρακάτω τρόπους διευθυνσιοδότησης. Απευθείας διεύθυνση: Ο τελεστής καθορίζεται από τη διεύθυνση 8-bit στην εντολή. Η άμεση διευθυνσιοδότηση χρησιμοποιείται μόνο για το χαμηλό μισό της εσωτερικής μνήμης δεδομένων και των καταχωρητών SFR. Έμμεση διεύθυνση: Η εντολή απευθύνεται σε έναν καταχωρητή που περιέχει τη διεύθυνση του τελεστή. Αυτός ο τύποςΗ διευθυνσιοδότηση χρησιμοποιείται για εξωτερική και εσωτερική μνήμη RAM. Οι καταχωρητές μπορούν να χρησιμοποιηθούν για τον καθορισμό διευθύνσεων 8-bit R0Και R1επιλεγμένη τράπεζα εγγραφής ή δείκτης στοίβας SP. Για διευθυνσιοδότηση 16-bit, χρησιμοποιείται μόνο ο καταχωρητής δείκτη δεδομένων DPTR.

Οδηγίες εγγραφής : μητρώα R0–R7Η τρέχουσα τράπεζα μητρώου μπορεί να απευθυνθεί μέσω συγκεκριμένων οδηγιών που περιέχουν ένα πεδίο 3 bit που υποδεικνύει τον αριθμό μητρώου στην ίδια την οδηγία. Σε αυτήν την περίπτωση, το αντίστοιχο πεδίο διεύθυνσης λείπει από την εντολή. Λειτουργίες με χρήση ειδικών μητρώων: ορισμένες οδηγίες χρησιμοποιούν μεμονωμένους καταχωρητές (για παράδειγμα, λειτουργίες συσσωρευτή, DPTR, και τα λοιπά.). Σε αυτήν την περίπτωση, η διεύθυνση του τελεστή δεν καθορίζεται καθόλου στην εντολή. Προκαθορίζεται από τον κωδικό λειτουργίας.

Άμεσες σταθερές : η σταθερά μπορεί να εντοπιστεί απευθείας στην εντολή μετά το opcode.

Διευθυνσιοδότηση ευρετηρίου : Η διευθυνσιοδότηση ευρετηρίου μπορεί να χρησιμοποιηθεί μόνο για πρόσβαση στη μνήμη προγράμματος και μόνο σε λειτουργία ανάγνωσης. Σε αυτή τη λειτουργία, προβάλλονται πίνακες στη μνήμη προγραμμάτων. καταχωρητής 16-bit ( DPTRή μετρητής προγράμματος) υποδεικνύει τη διεύθυνση βάσης του επιθυμητού πίνακα και ο συσσωρευτής υποδεικνύει το σημείο εισόδου σε αυτόν.

Σετ εντολώνέχει 42 μνημονικές εντολές για να καθορίσει τις 33 λειτουργίες αυτού του συστήματος. Η σύνταξη των περισσότερων εντολών της γλώσσας συναρμολόγησης αποτελείται από μια μνημονική συνάρτηση που ακολουθείται από τελεστές που υποδεικνύουν μεθόδους διευθυνσιοδότησης και τύπους δεδομένων. Διάφοροι τύποιΤα δεδομένα ή οι τρόποι διευθυνσιοδότησης καθορίζονται από τους συνόλου τελεστές, όχι από αλλαγές στη μνημονική.

Το σύστημα εντολών μπορεί να χωριστεί σε πέντε ομάδες: αριθμητικές οδηγίες; Λογικές εντολές? εντολές μεταφοράς δεδομένων. εντολές επεξεργαστή bit. εντολές μεταφοράς διακλάδωσης και ελέγχου. Οι σημειώσεις και τα σύμβολα που χρησιμοποιούνται στο σύστημα εντολών δίνονται παρακάτω.

Τραπέζι. Σημειώσεις και σύμβολα που χρησιμοποιούνται στο σύστημα εντολών

Ονομασία, σύμβολο

Σκοπός

Μπαταρία

Μητρώα της τρέχουσας επιλεγμένης τράπεζας μητρώου

Ο αριθμός του φορτωμένου καταχωρητή που καθορίζεται στην εντολή

απευθείας

Άμεσα διευθυνσιοδοτούμενη εσωτερική διεύθυνση κυψέλης δεδομένων 8-bit, η οποία μπορεί να είναι μια εσωτερική κυψέλη δεδομένων RAM (0–127) ή ένας καταχωρητής ειδικής λειτουργίας SFR (128–255)

Έμμεσα διευθυνσιοδοτούμενη κυψέλη RAM εσωτερικών δεδομένων 8-bit

8-bit απευθείαςδεδομένα που περιλαμβάνονται στον κωδικό λειτουργίας (OPC)

δεδομέναΗ

Τα πιο σημαντικά bit (15–8) των άμεσων δεδομένων 16-bit

δεδομέναL

Τα λιγότερο σημαντικά bit (7–0) των άμεσων δεδομένων 16-bit

Διεύθυνση προορισμού 11 bit

addrL

Λιγότερα σημαντικά κομμάτια διεύθυνσης προορισμού

8-bit υπογεγραμμένο offset byte

Άμεσα διευθυνσιοδοτήσιμο bit του οποίου η διεύθυνση περιέχει το COP που βρίσκεται στην εσωτερική μνήμη RAM δεδομένων ή τον καταχωρητή ειδικής λειτουργίας SFR

a15, a14...a0

Bits διεύθυνσης προορισμού

Περιεχόμενα του στοιχείου Χ

Περιεχόμενα στη διεύθυνση που είναι αποθηκευμένη στο στοιχείο X

Bit M του στοιχείου X


+

*
ΚΑΙ
Ή
XOR

Λειτουργίες:
πρόσθεση
αφαίρεση
πολλαπλασιασμός
τμήματα
λογικός πολλαπλασιασμός (ΚΑΙ λειτουργία)
λογική προσθήκη (λειτουργία Ή)
προσθήκη modulo 2 (αποκλειστικό OR)
αντιστροφή του στοιχείου Χ

Τα μνημονικά συναρτήσεων συνδέονται μοναδικά με συγκεκριμένους συνδυασμούς μεθόδων διευθυνσιοδότησης και τύπων δεδομένων. Συνολικά, υπάρχουν 111 τέτοιοι συνδυασμοί δυνατοί στο σύστημα εντολών.

2. Αριθμητικές και λογικές οδηγίες

Πώς σελ παράδειγμα αριθμητική οδηγία, η λειτουργία προσθήκης μπορεί να εκτελεστεί με μία από τις ακόλουθες εντολές.

ΠΡΟΣΘΗΚΗΕΝΑ,7 φά 16 – προσθέστε τον αριθμό 7 στα περιεχόμενα του μητρώου Α F 16 και αποθηκεύστε το αποτέλεσμα στον καταχωρητή Α.

ΠΡΟΣΘΗΚΗΕΝΑ,@ R0 – προσθέστε στα περιεχόμενα του μητρώου Α τον αριθμό του οποίου η διεύθυνση (@ – εμπορικός στο ) αποθηκεύεται σε μητρώο R 0 (έμμεση διευθυνσιοδότηση) και αποθηκεύστε το αποτέλεσμα στον καταχωρητή Α.

ΠΡΟΣΘΗΚΗ A,R7– προσθέστε τα περιεχόμενα του μητρώου Α στα περιεχόμενα του μητρώου R 7 και αποθηκεύστε το αποτέλεσμα στον καταχωρητή Α.

ΠΡΟΣΘΗΚΗ Α,#127– προσθέστε στα περιεχόμενα του καταχωρητή Α έναν αριθμό του οποίου η διεύθυνση κελιού αποθήκευσης είναι 127 ( # – αριθμητικό σύμβολο) και αποθηκεύστε το αποτέλεσμα στο μητρώο Τ- re A.

Όλες οι αριθμητικές εντολές εκτελούνται σε έναν κύκλο μηχανής με εξαίρεση την εντολή INC DPTR(μετατόπιση δείκτη δεδομένων DPTRστο επόμενο byte), που απαιτούν δύο κύκλους μηχανής, καθώς και λειτουργίες πολλαπλασιασμού και διαίρεσης που εκτελούνται σε 4 κύκλους μηχανής. Οποιοδήποτε byte στην εσωτερική μνήμη δεδομένων μπορεί να αυξηθεί και να μειωθεί χωρίς τη χρήση μπαταρίας.

Οδηγίες MUL ABεκτελεί πολλαπλασιασμό (πολλαπλασιασμό) των δεδομένων του συσσωρευτή με τα δεδομένα του καταχωρητή Β, τοποθετώντας το γινόμενο στους καταχωρητές Α (χαμηλό μισό) και Β (υψηλό μισό).

Οδηγίες DIV ABδιαιρεί (διαιρεί) τα περιεχόμενα του συσσωρευτή με την τιμή του καταχωρητή Β, αφήνοντας το υπόλοιπο στο Β και το πηλίκο στον συσσωρευτή.

Οδηγίες ΔΑ Απροορίζεται για δυαδικές δεκαδικές αριθμητικές πράξεις (αριθμητικές πράξεις σε αριθμούς που αντιπροσωπεύονται σε δυαδικό δεκαδικό κώδικα). Δεν μετατρέπει τον δυαδικό αριθμό σε BCD, αλλά παρέχει μόνο το σωστό αποτέλεσμα όταν προσθέτετε δύο δυαδικούς δεκαδικούς αριθμούς.

Παράδειγμα λογική εντολή: Μια λογική λειτουργία ΚΑΙ μπορεί να εκτελεστεί με μία από τις ακόλουθες εντολές:

ANLΕΝΑ,7 φά 16 – λογικός πολλαπλασιασμός των περιεχομένων του μητρώου Α με τον αριθμό 7 F 16 και το αποτέλεσμα αποθηκεύεται στον καταχωρητή Α.

ANLΕΝΑ,@ R1 – λογικός πολλαπλασιασμός των περιεχομένων του μητρώου Α με τον αριθμό του οποίου η διεύθυνση είναι αποθηκευμένη στο μητρώο R 1 (έμμεση διευθυνσιοδότηση) και αποθηκεύστε το αποτέλεσμα στον καταχωρητή Α.

ANL A,R6– λογικός πολλαπλασιασμός των περιεχομένων του μητρώου Α με τα περιεχόμενα του μητρώου R 6, και αποθηκεύστε το αποτέλεσμα στον καταχωρητή Α.

ANL A,#53 – λογικός πολλαπλασιασμός των περιεχομένων του καταχωρητή Α με έναν αριθμό του οποίου η διεύθυνση κελιού αποθήκευσης είναι 53 16 και το αποτέλεσμα αποθηκεύεται στον καταχωρητή Α.

Όλες οι λογικές λειτουργίες στα περιεχόμενα του συσσωρευτή εκτελούνται σε έναν κύκλο μηχανής, οι υπόλοιποι - σε δύο. Οι λογικές λειτουργίες μπορούν να εκτελεστούν σε οποιοδήποτε από τα χαμηλότερα 128 byte της εσωτερικής μνήμης δεδομένων ή σε οποιονδήποτε καταχωρητή SFR (καταχωρήσεις ειδικής λειτουργίας) σε λειτουργία άμεσης διευθυνσιοδότησης χωρίς χρήση μπαταρίας.

Οι λειτουργίες περιστροφικής μετατόπισης RL A, RLC A κ.λπ. μετακινούν τα περιεχόμενα του συσσωρευτή ένα bit δεξιά ή αριστερά. Στην περίπτωση μιας αριστερής κυκλικής μετατόπισης, το λιγότερο σημαντικό bit μετακινείται στην πιο σημαντική θέση. Στην περίπτωση μιας δεξιάς κυκλικής μετατόπισης, συμβαίνει το αντίθετο.

Λειτουργία ΑΝΤΑΛΛΑΓΗ Αανταλλάσσει τα χαμηλά και τα υψηλά τετραδάκια στην μπαταρία.

3. Εντολές μεταφοράς δεδομένων

Ομάδα MOV dest,srcσας επιτρέπει να μεταφέρετε δεδομένα μεταξύ εσωτερικών κυψελών RAM ή περιοχών ειδικής εγγραφής λειτουργιών SFRχωρίς χρήση μπαταρίας. Σε αυτήν την περίπτωση, η εργασία με το πάνω μισό της εσωτερικής μνήμης RAM μπορεί να πραγματοποιηθεί μόνο σε λειτουργία έμμεσης διεύθυνσης και πρόσβαση σε καταχωρητές SFR– μόνο σε λειτουργία άμεσης διευθυνσιοδότησης.

Σε όλα τα μικροκυκλώματα MCS-51Η στοίβα τοποθετείται απευθείας στη μνήμη δεδομένων και μεγαλώνει προς τα πάνω. Οδηγίες ΣΠΡΩΞΤΕπρώτα αυξάνει την τιμή στον καταχωρητή δείκτη στοίβας SP, και στη συνέχεια γράφει ένα byte δεδομένων στη στοίβα. Της ομάδας ΣΠΡΩΞΤΕΚαι ΚΡΟΤΟΣχρησιμοποιούνται μόνο σε λειτουργία άμεσης διευθυνσιοδότησης (εγγραφή ή επαναφορά ενός byte), αλλά η στοίβα είναι πάντα προσβάσιμη όταν γίνεται έμμεση διευθυνσιοδότηση μέσω καταχωρητή SP. Έτσι, η στοίβα μπορεί επίσης να χρησιμοποιήσει τα κορυφαία 128 byte μνήμης δεδομένων. Οι ίδιες σκέψεις αποκλείουν τη δυνατότητα χρήσης εντολών στοίβας για τη διεύθυνση καταχωρητών SFR.

Οι οδηγίες μεταφοράς δεδομένων περιλαμβάνουν λειτουργία μεταφοράς 16-bit MOV DPTR,#data16, το οποίο χρησιμοποιείται για την προετοιμασία του καταχωρητή δείκτη δεδομένων DPTRκατά την προβολή πινάκων στη μνήμη προγραμμάτων ή για πρόσβαση σε εξωτερική μνήμη δεδομένων.

Λειτουργία XCH A, byteχρησιμοποιείται για την ανταλλαγή δεδομένων μεταξύ του συσσωρευτή και του διευθυνόμενου byte. Ομάδα XCHD A,@Riπαρόμοιο με το προηγούμενο, αλλά εκτελείται μόνο για τα κατώτερα τετράδια που εμπλέκονται στην ανταλλαγή τελεστών.

Για πρόσβαση σε εξωτερική μνήμη δεδομένων, χρησιμοποιείται μόνο έμμεση διευθυνσιοδότηση. Στην περίπτωση διευθύνσεων ενός byte, χρησιμοποιούνται καταχωρητές R0ή R1τρέχουσα τράπεζα μητρώου και για 16-bit – καταχωρητή δείκτη δεδομένων DPTR. Με οποιαδήποτε μέθοδο πρόσβασης σε εξωτερική μνήμη δεδομένων, η μπαταρία παίζει το ρόλο της πηγής ή του δέκτη πληροφοριών.

Για πρόσβαση σε πίνακες που βρίσκονται στη μνήμη του προγράμματος, χρησιμοποιήστε τις ακόλουθες εντολές:

MOVC A,@A+ DPTR ;

MOVC A,@A+ Η/Υ .

Τα περιεχόμενα του καταχωρητή δείκτη δεδομένων χρησιμοποιούνται ως η βασική διεύθυνση του πίνακα DPTRή Η/Υ(μετρητής προγράμματος), και η μετατόπιση λαμβάνεται από ΕΝΑ. Αυτές οι οδηγίες χρησιμοποιούνται αποκλειστικά για την ανάγνωση δεδομένων από τη μνήμη προγράμματος, αλλά όχι για την εγγραφή σε αυτήν.

4. Λειτουργίες Boolean

Μικροκυκλώματα MCS-51περιέχει έναν «Boolean» επεξεργαστή. Η εσωτερική μνήμη RAM έχει 128 απευθείας διευθυνσιοδοτούμενα bit. Χώρος εγγραφής ειδικής λειτουργίας SFRμπορεί επίσης να υποστηρίξει πεδία έως και 128 bit. Οι εντολές bit εκτελούν διακλαδώσεις υπό όρους, μεταφορές, επαναφορές, αντιστροφές και λειτουργίες AND και OR.Όλα τα καθορισμένα bit είναι διαθέσιμα σε λειτουργία άμεσης διεύθυνσης.

Μεταφέρετε λίγο CFστην ειδική λειτουργία καταχωρήστε τη λέξη κατάστασης προγράμματος P.S.W." χρησιμοποιείται ως συσσωρευτής ενός bit για επεξεργαστή Boolean.

5. Οδηγίες μετάβασης

Οι διευθύνσεις των λειτουργιών μεταπήδησης υποδεικνύονται στη γλώσσα συναρμολόγησης με μια ετικέτα ή με μια πραγματική τιμή στο χώρο της μνήμης του προγράμματος. Οι διευθύνσεις διακλάδωσης υπό όρους συναρμολογούνται σε μια σχετική μετατόπιση - ένα byte σημάδι που προστίθεται στον μετρητή προγράμματος Η/Υεάν πληρούται η μεταβατική προϋπόθεση. Τα όρια τέτοιων μεταβάσεων βρίσκονται μεταξύ μείον 128 και 127 σε σχέση με το πρώτο byte που ακολουθεί την οδηγία. Στην ειδική συνάρτηση καταχωρήστε τη λέξη κατάστασης προγράμματος P.S.W."Δεν υπάρχει μηδενική σημαία, άρα οι οδηγίες JZΚαι JNZελέγξτε τη συνθήκη «ίση με μηδέν» καθώς ελέγχετε τα δεδομένα στον συσσωρευτή.

Υπάρχουν τρεις τύποι εντολών άνευ όρων: SJMP, LJMPΚαι AJMP– διευθύνσεις προορισμού που διαφέρουν ως προς τη μορφή. Οδηγίες SJMPκωδικοποιεί τη διεύθυνση ως σχετική μετατόπιση και παίρνει δύο byte. Η απόσταση άλματος περιορίζεται στην περιοχή από μείον 128 έως 127 byte σε σχέση με την παρακάτω οδηγία SJMP.

Στις οδηγίες LJMPΗ διεύθυνση προορισμού χρησιμοποιείται ως σταθερά 16-bit. Το μήκος της εντολής είναι τρία byte. Η διεύθυνση προορισμού μπορεί να βρίσκεται οπουδήποτε στη μνήμη του προγράμματος.

Ομάδα AJMPχρησιμοποιεί μια σταθερά διεύθυνσης 11 bit. Η εντολή αποτελείται από δύο byte. Όταν εκτελείται αυτή η εντολή, τα κάτω 11 bit του μετρητή διευθύνσεων αντικαθίστανται από τη διεύθυνση 11 bit από την εντολή. Τα πέντε πιο σημαντικά bits του μετρητή προγράμματος Η/Υπαραμένει αμετάβλητο. Έτσι, η μετάβαση μπορεί να γίνει μέσα σε ένα μπλοκ 2K byte στο οποίο βρίσκεται η εντολή που ακολουθεί την εντολή AJMP.

Υπάρχουν δύο τύποι κλήσεων εντολών σε μια υπορουτίνα: LCALLΚαι ΕΝΑ ΤΗΛΕΦΩΝΗΜΑ. Οδηγίες LCALLχρησιμοποιεί τη διεύθυνση 16-bit της καλούμενης υπορουτίνας. Σε αυτήν την περίπτωση, η υπορουτίνα μπορεί να βρίσκεται οπουδήποτε στη μνήμη του προγράμματος. Οδηγίες ΕΝΑ ΤΗΛΕΦΩΝΗΜΑχρησιμοποιεί μια διεύθυνση υπορουτίνας 11 bit. Σε αυτήν την περίπτωση, η καλούμενη ρουτίνα πρέπει να βρίσκεται σε ένα μόνο μπλοκ 2K byte με την παρακάτω οδηγία ΕΝΑ ΤΗΛΕΦΩΝΗΜΑ. Και οι δύο εκδόσεις της εντολής ωθούν τη διεύθυνση της επόμενης εντολής στη στοίβα και τη φορτώνουν στον μετρητή προγράμματος Η/Υ αντίστοιχη νέα τιμή.

Η υπορουτίνα τελειώνει με την οδηγία ΜΟΥΣΚΕΥΩ, το οποίο σας επιτρέπει να επιστρέψετε στην εντολή ακολουθώντας την εντολή ΚΛΗΣΗ. Αυτή η οδηγία βγάζει τη διεύθυνση επιστροφής από τη στοίβα και τη φορτώνει στον μετρητή προγράμματος. Η/Υ . Οδηγίες ΡΕΤΙχρησιμοποιείται για την επιστροφή από τις ρουτίνες διακοπής. Η μόνη διαφορά ΡΕΤΙαπό ΜΟΥΣΚΕΥΩείναι αυτό ΡΕΤΙενημερώνει το σύστημα ότι η επεξεργασία διακοπής έχει ολοκληρωθεί. Αν κατά τη στιγμή της εκτέλεσης ΡΕΤΙδεν υπάρχουν άλλες διακοπές, τότε είναι πανομοιότυπο ΜΟΥΣΚΕΥΩ.

Οδηγίες DJNZσχεδιασμένο για τον έλεγχο των κύκλων. Για να εκτελέσετε έναν βρόχο Ν μόλις χρειαστεί να φορτώσετε ένα byte με μια τιμή στον μετρητή Ν και κλείστε το σώμα του βρόχου με την εντολή DJNZ, υποδηλώνοντας την αρχή του κύκλου.

Ομάδα CJNEσυγκρίνει τους δύο τελεστές του ως ανυπόγραφους ακέραιους αριθμούς και μεταβαίνει στη διεύθυνση που καθορίζεται εκεί, εάν οι τελεστές που συγκρίνονται δεν είναι ίσοι. Εάν ο πρώτος τελεστής είναι μικρότερος από τον δεύτερο, τότε το bit μεταφοράς CF έχει οριστεί σε "1".

Όλες οι οδηγίες σε συναρμολογημένη μορφή καταλαμβάνουν 1, 2 ή 3 byte.

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΟΙΚΟΓΕΝΕΙΑΣ ΜΙΚΡΟΕΛΕΓΚΤΩΝMCS-51

Σημειώσεις διαλέξεων για μαθήματα

«Μικροεπεξεργαστές σε συστήματα ελέγχου», «Τεχνολογία μικροεπεξεργαστών»

"Εργαλεία και συστήματα μικροεπεξεργαστή"

για φοιτητές όλων των μορφών σπουδών ειδικοτήτων

072000 – Τυποποίηση και πιστοποίηση

210200 – Αυτοματοποίηση τεχνολογικών διαδικασιών

230104 – Συστήματα σχεδιασμού με τη βοήθεια υπολογιστή

Tambov 2005

ΕΙΣΑΓΩΓΗ.. 3

1. ΔΟΜΗ ΤΟΥ ΜΙΚΡΟΕΛΕΓΧΤΗ INTEL 8051. 3

1.1. Οργάνωση μνήμης. 5

1.2. Αριθμητική-λογική συσκευή. 6

1.3. Μόνιμη μνήμη για προγράμματα και δεδομένα. 7

1.4. Μητρώα συσσωρευτών και γενικής χρήσης. 8

1.5. Ο καταχωρητής λέξης κατάστασης του προγράμματος και οι σημαίες του. 9

1.6. Καταχωρητές δεικτών. 10

1.7. Ειδικοί καταχωρητές συναρτήσεων. έντεκα

1.8. Συσκευή ελέγχου και συγχρονισμού. έντεκα

1.9. Παράλληλες θύρες εισόδου/εξόδου πληροφοριών. 12

1.10. Χρονοδιακόπτες/μετρητές. 13

1.11. Σειριακή θύρα. 18

1.11.1. Εγγραφή SBUF.. 18

1.11.2. Τρόποι λειτουργίας σειριακής θύρας. 18

1.11.3. Εγγραφή SCON.. 19

1.11.4. Ταχύτητα λήψης/μετάδοσης. 21

1.12. Σύστημα διακοπής. 22

2. ΣΥΣΤΗΜΑ ΕΝΤΟΛΗΣ ΤΟΥ ΜΙΚΡΟΕΛΕΓΧΤΗ INTEL 8051. 26

2.1. Γενικές πληροφορίες. 26

2.1.1. Τύποι εντολών. 27

2.1.2. Τύποι τελεστών. 28

2.1.3. Μέθοδοι διευθυνσιοδότησης δεδομένων. τριάντα

2.1.4. Σημαίες αποτελεσμάτων. 31

2.1.5. Συμβολική προσφώνηση. 32

2.2. Εντολές μεταφοράς δεδομένων. 33

2.2.1. Δομή των συνδέσμων πληροφοριών. 33

2.2.2. Πρόσβαση στην μπαταρία. 33

2.2.3. Πρόσβαση σε εξωτερική μνήμη δεδομένων. 34

2.2.4. Πρόσβαση στη μνήμη προγράμματος... 34


2.2.5. Πρόσβαση στη στοίβα. 35

2.3. Αριθμητικές πράξεις. 35

2.4. Λογικές πράξεις. 39

2.5. Έλεγχος εντολών μεταφοράς. 43

2.5.1. Μακρά μετάβαση. 43

2.5.2. Απόλυτη μετάβαση. 43

2.5.3. Σχετική μετάβαση. 44

2.5.4. Έμμεση μεταφορά. 44

2.5.5. Άλματα υπό όρους.. 44

2.5.6. Υπορουτίνες.. 47

2.6. Λειτουργίες με bits. 48

Ερωτήσεις τεστ... 49

ΛΟΓΟΤΕΧΝΙΑ.. 50

Παράρτημα INTEL 8051 COMAND SYSTEM. 51

ΕΙΣΑΓΩΓΗ

Από τη δεκαετία του '80 του 20ου αιώνα, μια ανεξάρτητη κατηγορία έχει εμφανιστεί στην τεχνολογία μικροεπεξεργαστών ολοκληρωμένα κυκλώματα– μικροελεγκτές ενός τσιπ που έχουν σχεδιαστεί για ενσωμάτωση σε συσκευές για διάφορους σκοπούς. Διακρίνονται από την κατηγορία των μικροεπεξεργαστών ενός τσιπ από την παρουσία εσωτερικής μνήμης και ανεπτυγμένων μέσων αλληλεπίδρασης με εξωτερικές συσκευές.

Οι μικροελεγκτές ενός τσιπ 8-bit της οικογένειας MCS-51 χρησιμοποιούνται ευρέως. Αυτή η οικογένεια δημιουργήθηκε με βάση τον μικροελεγκτή Intel 8051, ο οποίος έχει κερδίσει μεγάλη δημοτικότητα μεταξύ των προγραμματιστών συστημάτων ελέγχου μικροεπεξεργαστή λόγω της καλά σχεδιασμένης αρχιτεκτονικής του. Η αρχιτεκτονική του μικροελεγκτή είναι ένα σύνολο εσωτερικών και εξωτερικών πόρων υλικού και συστημάτων εντολών προσβάσιμων από λογισμικό.

Στη συνέχεια, η Intel κυκλοφόρησε περίπου 50 μοντέλα με βάση τον πυρήνα λειτουργίας του μικροελεγκτή Intel 8051. Ταυτόχρονα, πολλές άλλες εταιρείες, όπως η Atmel, η Philips, άρχισαν να παράγουν τους δικούς τους μικροελεγκτές που αναπτύχθηκαν στο πρότυπο MCS-51. Υπάρχει επίσης εγχώριο ανάλογοΜικροελεγκτής Intel 8051 - τσιπ K1816BE51.

2. ΔΟΜΗ ΤΟΥ ΜΙΚΡΟΕΛΕΓΚΤΗ INTEL 8051

Ο μικροελεγκτής Intel 8051 βασίζεται στην τεχνολογία n-MOS υψηλού επιπέδου. Τα κύρια χαρακτηριστικά του είναι τα εξής:

· Κεντρικός επεξεργαστής οκτώ bit βελτιστοποιημένος για την υλοποίηση λειτουργιών ελέγχου.

· ενσωματωμένη γεννήτρια ρολογιού (μέγιστη συχνότητα 12 MHz).

· Χώρος διευθύνσεων στη μνήμη προγράμματος - 64 KB.

· Χώρος διεύθυνσης μνήμης δεδομένων - 64 KB.

· εσωτερική μνήμη προγράμματος - 4 KB.

· εσωτερική μνήμη δεδομένων - 128 byte.

· πρόσθετες δυνατότητες για την εκτέλεση πράξεων άλγεβρας Boole (πράξεις bitwise).

· 2 πολυλειτουργικά χρονόμετρα/μετρητές δεκαέξι bit.

· ασύγχρονος πομποδέκτης full-duplex (σειριακή θύρα).

· Διανυσματικό σύστημα διακοπής με δύο επίπεδα προτεραιότητας και πέντε πηγές συμβάντων.

Εικόνα 1 - Μπλοκ διάγραμμα του μικροελεγκτή Intel 8051

Η βάση του μπλοκ διαγράμματος (Εικ. 1) σχηματίζεται από έναν εσωτερικό αμφίδρομο δίαυλο 8-bit, ο οποίος διασυνδέει τους κύριους κόμβους και τις συσκευές του μικροελεγκτή: μόνιμη μνήμη προγράμματος (RPM), μόνιμη μνήμη δεδομένων (RDM), αριθμητική-λογική μονάδα (ALU), καταχωρήστε ειδικές λειτουργίες μονάδας, μονάδα ελέγχου (CU), παράλληλες θύρες I/O (P0-P3), καθώς και προγραμματιζόμενους χρονοδιακόπτες και σειριακή θύρα.

2.1. Οργάνωση μνήμης

Αυτός ο μικροελεγκτής διαθέτει ενσωματωμένη (μόνιμη) και εξωτερική μνήμη προγραμμάτων και δεδομένων. Η μόνιμη μνήμη προγράμματος (RPM) έχει χωρητικότητα 4 KB και η μόνιμη μνήμη δεδομένων (RDM) έχει χωρητικότητα 128 Byte.


Ανάλογα με την τροποποίηση του μικροελεγκτή, το RPM υλοποιείται με τη μορφή μιας ROM μάσκας, μιας προγραμματιζόμενης ή επαναπρογραμματιζόμενης ROM.

Εάν είναι απαραίτητο, ο χρήστης μπορεί να επεκτείνει τη μνήμη του προγράμματος εγκαθιστώντας μια εξωτερική ROM. Η πρόσβαση σε εσωτερική ή εξωτερική ROM καθορίζεται από την τιμή του σήματος στην ακίδα EA (Εξωτερική πρόσβαση):

EA=VCC (τάση τροφοδοσίας) - πρόσβαση στην εσωτερική ROM.

EA=VSS (δυναμικό γείωσης) - πρόσβαση σε εξωτερική ROM.

Το εξωτερικό πρόγραμμα και η μνήμη δεδομένων μπορούν να είναι 64 KB το καθένα και να διευθυνσιοδοτούνται χρησιμοποιώντας τις θύρες P0 και P2. Το σχήμα 2 δείχνει την κάρτα μνήμης Intel 8051.

Εικόνα 2 - Οργάνωση μνήμης Intel 8051

Στροβοσκοπική ανάγνωση εξωτερικής ROM - (Ενεργοποίηση αποθήκευσης προγραμμάτων) δημιουργείται κατά την πρόσβαση σε εξωτερική μνήμη προγράμματος και είναι ανενεργή κατά την πρόσβαση στη ROM που βρίσκεται στο τσιπ.

Η περιοχή των κατώτερων διευθύνσεων μνήμης προγράμματος (Εικ. 3) χρησιμοποιείται από το σύστημα διακοπής. Η αρχιτεκτονική τσιπ INTEL 8051 παρέχει υποστήριξη για πέντε πηγές διακοπής. Οι διευθύνσεις στις οποίες μεταφέρεται ο έλεγχος διακοπής ονομάζονται διανύσματα διακοπής.

Εικόνα 3 - Χάρτης της κάτω περιοχής μνήμης προγράμματος

2.2. Αριθμιτική μονάδα λογικής

Η αριθμητική λογική μονάδα 8-bit (ALU) μπορεί να εκτελέσει τις αριθμητικές πράξεις της πρόσθεσης, της αφαίρεσης, του πολλαπλασιασμού και της διαίρεσης. λογικές πράξεις AND, OR, αποκλειστικό OR, καθώς και λειτουργίες κυκλικής μετατόπισης, επαναφοράς, αναστροφής κ.λπ. Μη προσβάσιμοι από λογισμικό καταχωρητές T1 και T2, που προορίζονται για προσωρινή αποθήκευση τελεστών, ένα δεκαδικό κύκλωμα διόρθωσης (DCU) και ένα κύκλωμα δημιουργίας χαρακτηριστικών συνδέονται με το αποτέλεσμα λειτουργίας εισόδων (PSW).

Η λειτουργία απλής προσθήκης χρησιμοποιείται στο ALU για να αυξήσει τα περιεχόμενα των καταχωρητών, να προωθήσει τον καταχωρητή δείκτη δεδομένων (RAR) και να υπολογίσει αυτόματα τη διεύθυνση μνήμης του επόμενου προγράμματος. Η απλούστερη λειτουργία αφαίρεσης χρησιμοποιείται στο ALU για τη μείωση καταχωρητών και τη σύγκριση μεταβλητών.

Οι απλούστερες λειτουργίες σχηματίζουν αυτόματα «διαδοχές» για την εκτέλεση λειτουργιών όπως, για παράδειγμα, η αύξηση ζευγών καταχωρητών 16-bit. Η ALU εφαρμόζει έναν μηχανισμό για την κλιμακωτή εκτέλεση απλών λειτουργιών για την υλοποίηση πολύπλοκων εντολών. Έτσι, για παράδειγμα, κατά την εκτέλεση μιας από τις εντολές μεταφοράς ελέγχου υπό όρους, με βάση το αποτέλεσμα σύγκρισης στο ALU, ο μετρητής προγράμματος (PC) αυξάνεται τρεις φορές, το RDM διαβάζεται δύο φορές, πραγματοποιείται αριθμητική σύγκριση δύο μεταβλητών, σχηματίζεται μια διεύθυνση μετάβασης 16 bit και λαμβάνεται απόφαση για το αν θα γίνει ή όχι η μετάβαση σύμφωνα με το πρόγραμμα. Όλες οι παραπάνω λειτουργίες εκτελούνται σε μόλις 2 μs.

Ένα σημαντικό χαρακτηριστικό του ALU είναι η ικανότητά του να λειτουργεί όχι μόνο bytes, αλλά και bit. Μεμονωμένα bit προσβάσιμα από λογισμικό μπορούν να οριστούν, να διαγραφούν, να αντιστραφούν, να μεταδοθούν, να δοκιμαστούν και να χρησιμοποιηθούν σε λογικές λειτουργίες. Αυτή η ικανότητα είναι αρκετά σημαντική, καθώς για τον έλεγχο αντικειμένων, χρησιμοποιούνται συχνά αλγόριθμοι που περιέχουν πράξεις σε μεταβλητές Boolean εισόδου και εξόδου, η υλοποίηση των οποίων συνδέεται με ορισμένες δυσκολίες χρησιμοποιώντας συμβατικούς μικροεπεξεργαστές.

Έτσι, η ALU μπορεί να λειτουργήσει με τέσσερις τύπους αντικειμένων πληροφοριών: Boolean (1 bit), ψηφιακό (4 bit), byte (8 bit) και διεύθυνση (16 bit). Η ALU εκτελεί 51 διαφορετικές λειτουργίες για την προώθηση ή τη μετατροπή αυτών των δεδομένων. Εφόσον υπάρχουν 11 τρόποι διευθυνσιοδότησης (7 για δεδομένα και 4 για διευθύνσεις), συνδυάζοντας τη λειτουργία και τη λειτουργία διευθυνσιοδότησης, ο βασικός αριθμός των 111 εντολών επεκτείνεται σε 255 από τις 256 δυνατές με έναν κωδικό λειτουργίας ενός byte.

2.3. Κάτοικο πρόγραμμα και μνήμη δεδομένων

Η οικιακή (στο τσιπ) μνήμη προγράμματος (RPM) και η μνήμη δεδομένων (RDM) χωρίζονται φυσικά και λογικά, έχουν διαφορετικούς μηχανισμούς διευθυνσιοδότησης, λειτουργούν υπό τον έλεγχο διαφορετικών σημάτων και εκτελούν διαφορετικές λειτουργίες.

Η μνήμη προγράμματος RPM έχει χωρητικότητα 4 KB και έχει σχεδιαστεί για να αποθηκεύει εντολές, σταθερές, λέξεις ελέγχου αρχικοποίησης, πίνακες μετατροπής για μεταβλητές εισόδου και εξόδου κ.λπ. Η μνήμη διαθέτει δίαυλο διευθύνσεων 16-bit, μέσω του οποίου παρέχεται πρόσβαση από το Μετρητής προγράμματος Η/Υ ή από τον καταχωρητή δείκτη δεδομένων (DPTR). Το DPTR λειτουργεί ως βασικός καταχωρητής για έμμεσα άλματα προγράμματος ή χρησιμοποιείται σε λειτουργίες πίνακα.

Η μνήμη δεδομένων RDM έχει σχεδιαστεί για να αποθηκεύει μεταβλητές κατά την εκτέλεση ενός προγράμματος εφαρμογής, είναι διευθυνσιοδοτούμενη κατά ένα byte και έχει χωρητικότητα
128 byte. Επιπλέον, ο χώρος διευθύνσεών του είναι δίπλα στις διευθύνσεις των καταχωρητών ειδικών συναρτήσεων, οι οποίοι παρατίθενται στον Πίνακα. 1.

Η μνήμη του προγράμματος, όπως και η μνήμη δεδομένων, μπορεί να επεκταθεί σε
64 KB με τη σύνδεση εξωτερικών τσιπ.

Τραπέζι 1

Μπλοκ καταχωρητή ειδικής λειτουργίας

Ονομα

Μπαταρία

Καταχωρητής επέκτασης συσσωρευτή

Λέξη κατάστασης προγράμματος

Καταχώρηση δείκτη στοίβας

Μητρώο δείκτη δεδομένων

Μητρώο προτεραιότητας διακοπής

Διακοπή μητρώου μάσκας

Εγγραφή λειτουργίας χρονοδιακόπτη/μετρητή

Χρονοδιακόπτης Έλεγχος/Καταχώριση κατάστασης

Χρονόμετρο 0 (υψηλό byte)

Χρονοδιακόπτης 0 (χαμηλό byte)

Χρονόμετρο 1 (υψηλό byte)

Χρονοδιακόπτης 1 (χαμηλό byte)

Μητρώο ελέγχου πομποδέκτη

Buffer πομποδέκτη

Μητρώο ελέγχου ισχύος

Σημείωση.Οι καταχωρητές των οποίων τα ονόματα σημειώνονται με (*) επιτρέπουν τη διευθυνσιοδότηση μεμονωμένων bit.

2.4. Συσσωρευτής και γενικά μητρώα

Ο συσσωρευτής (Α) είναι η πηγή του τελεστή και η θέση του αποτελέσματος κατά την εκτέλεση αριθμητικών, λογικών πράξεων και ενός αριθμού πράξεων μεταφοράς δεδομένων. Επιπλέον, οι λειτουργίες μετατόπισης, ο έλεγχος για μηδέν, η δημιουργία σημαίας ισοτιμίας κ.λπ. μπορούν να εκτελεστούν μόνο χρησιμοποιώντας τον συσσωρευτή.

Ο χρήστης έχει στη διάθεσή του τέσσερις τράπεζες 8 μητρώων γενικής χρήσης R0–R7 (Εικ. 9). Ωστόσο, είναι δυνατή η χρήση των μητρώων μόνο μιας από τις τέσσερις τράπεζες, η οποία επιλέγεται χρησιμοποιώντας το bit καταχωρητή PSW.

2.5. Καταχώρηση λέξης κατάστασης προγράμματος και οι σημαίες του

Όταν εκτελούνται πολλές εντολές στην ALU, δημιουργείται ένας αριθμός χαρακτηριστικών λειτουργίας (σημαίες), οι οποίες καταγράφονται στον καταχωρητή λέξης κατάστασης προγράμματος (PSW). Στον πίνακα 2 παρέχει μια λίστα με σημαίες PSW, δίνει τα συμβολικά τους ονόματα και περιγράφει τις συνθήκες για το σχηματισμό τους.

πίνακας 2

Κατάσταση προγράμματος PSW Μορφή Word

Όνομα και σκοπός

Φέρτε σημαία. Ρύθμιση και επαναφορά από υλικό ή λογισμικό κατά την εκτέλεση αριθμητικών και λογικών πράξεων

Βοηθητική σημαία μεταφοράς. Ρύθμιση και απαλοιφή μόνο από το υλικό όταν εκτελούνται εντολές προσθήκης και αφαίρεσης και σηματοδοτεί μεταφορά ή δανεισμό στο bit 3

Σημαία 0. Μπορεί να οριστεί, να διαγραφεί ή να ελεγχθεί από το πρόγραμμα ως σημαία που καθορίζεται από το χρήστη.

Επιλογή τράπεζας εγγραφής. Ρύθμιση και επαναφορά μέσω λογισμικού για την επιλογή μιας λειτουργικής τράπεζας μητρώων (Πίνακας 3)

Σημαία υπερχείλισης. Ρύθμιση και επαναφορά από υλικό κατά την εκτέλεση αριθμητικών πράξεων

Δεν χρησιμοποιείται

Σημαία ισοτιμίας. Ρύθμιση και επαναφορά από υλικό σε κάθε κύκλο και διορθώνει τον περιττό/ζυγό αριθμό ενός bit στον συσσωρευτή, δηλαδή εκτελεί ισοτιμία

Πίνακας 3

Επιλογή τράπεζας μητρώου που λειτουργεί

Όρια διεύθυνσης

Η πιο «ενεργή» σημαία PSW είναι η σημαία μεταφοράς, η οποία εμπλέκεται και τροποποιείται κατά τη διάρκεια πολλών λειτουργιών, συμπεριλαμβανομένων της πρόσθεσης, της αφαίρεσης και της μετατόπισης. Επιπλέον, η σημαία μεταφοράς (CY) λειτουργεί ως «συσσωρευτής Boolean» σε οδηγίες χειρισμού bit. Η σημαία υπερχείλισης (OV) ανιχνεύει αριθμητική υπερχείλιση σε υπογεγραμμένες πράξεις ακέραιου αριθμού και καθιστά δυνατή τη χρήση αριθμητικής σε κωδικούς συμπληρωμάτων δύο. Η ALU δεν ελέγχει τις σημαίες επιλογής τράπεζας μητρώου (RS0, RS1), η τιμή τους καθορίζεται πλήρως από το πρόγραμμα εφαρμογής και χρησιμοποιείται για την επιλογή μιας από τις τέσσερις τράπεζες καταχώρισης.

Ως byte, ο καταχωρητής PSW μπορεί να αναπαρασταθεί ως εξής:

Στους μικροεπεξεργαστές των οποίων η αρχιτεκτονική βασίζεται σε έναν συσσωρευτή, οι περισσότερες εντολές λειτουργούν στον συσσωρευτή χρησιμοποιώντας σιωπηρή διευθυνσιοδότηση. Η Intel 8051 είναι διαφορετική. Αν και ο επεξεργαστής βασίζεται σε μπαταρία, μπορεί να εκτελέσει πολλές εντολές χωρίς τη συμμετοχή του. Για παράδειγμα, τα δεδομένα μπορούν να μεταφερθούν από οποιοδήποτε κελί RDM σε οποιονδήποτε καταχωρητή, οποιοσδήποτε καταχωρητής μπορεί να φορτωθεί με έναν άμεσο τελεστή κ.λπ. Πολλές λογικές λειτουργίες μπορούν να εκτελεστούν χωρίς τη συμμετοχή συσσωρευτή. Επιπλέον, οι μεταβλητές μπορούν να αυξηθούν, να μειωθούν και να ελεγχθούν χωρίς τη χρήση συσσωρευτή. Οι σημαίες και τα bit ελέγχου μπορούν να ελεγχθούν και να αλλάξουν με τον ίδιο τρόπο.

2.6. Καταχωρητές δεικτών

Ο δείκτης στοίβας 8-bit (SP) μπορεί να απευθύνεται σε οποιαδήποτε περιοχή RDM. Τα περιεχόμενά του αυξάνονται πριν αποθηκευτούν τα δεδομένα στη στοίβα κατά τις οδηγίες PUSH και CALL. Τα περιεχόμενα του SP μειώνονται μετά την εκτέλεση των εντολών POP και RET. Αυτή η μέθοδος διευθυνσιοδότησης στοιχείων στοίβας ονομάζεται pre-increment/post-decrement. Κατά την αρχικοποίηση του μικροελεγκτή, μετά το σήμα RST, ο κωδικός 07H φορτώνεται αυτόματα στο SP. Αυτό σημαίνει ότι εκτός εάν το πρόγραμμα εφαρμογής παρακάμψει τη στοίβα, το πρώτο στοιχείο δεδομένων στη στοίβα θα βρίσκεται στη θέση RDM 08H.

Ο καταχωρητής δείκτη δεδομένων δύο byte DPTR χρησιμοποιείται συνήθως για τη λήψη μιας διεύθυνσης 16 bit σε λειτουργίες πρόσβασης εξωτερικής μνήμης. Με εντολές μικροελεγκτή, ο καταχωρητής δείκτη δεδομένων μπορεί να χρησιμοποιηθεί είτε ως καταχωρητής 16-bit είτε ως δύο ανεξάρτητοι καταχωρητές 8-bit (DPH και DPL).

2.7. Ειδικοί καταχωρητές συναρτήσεων

Οι καταχωρητές, με συμβολική ονομασία IP, IE, TMOD, TCON, SCON και PCON, χρησιμοποιούνται για να κλειδώνουν και να αλλάζουν προγραμματικά τα bit ελέγχου και κατάστασης του κυκλώματος διακοπής, του χρονοδιακόπτη/μετρητή, του σειριακού πομποδέκτη και της διαχείρισης ισχύος. Η οργάνωσή τους θα περιγραφεί λεπτομερώς στις ενότητες 1.8-1.12, όταν εξετάζονται τα χαρακτηριστικά του μικροελεγκτή σε διάφορους τρόπους λειτουργίας.

2.8. Συσκευή ελέγχου και συγχρονισμού

Ένας συντονιστής χαλαζία που συνδέεται με τις εξωτερικές ακίδες του μικροελεγκτή ελέγχει τη λειτουργία του εσωτερικού ταλαντωτή, ο οποίος με τη σειρά του παράγει σήματα συγχρονισμού. Η μονάδα ελέγχου (CU), με βάση τα σήματα συγχρονισμού, δημιουργεί έναν κύκλο μηχανής σταθερής διάρκειας ίσης με 12 περιόδους γεννήτριας. Οι περισσότερες εντολές μικροελεγκτή εκτελούνται σε έναν κύκλο μηχανής. Ορισμένες οδηγίες που λειτουργούν με λέξεις 2 byte ή έχουν πρόσβαση σε εξωτερική μνήμη χρειάζονται δύο κύκλους μηχανής για να ολοκληρωθούν. Μόνο οι οδηγίες διαίρεσης και πολλαπλασιασμού απαιτούν τέσσερις κύκλους μηχανής. Με βάση αυτά τα χαρακτηριστικά λειτουργίας της συσκευής ελέγχου, υπολογίζεται ο χρόνος εκτέλεσης των προγραμμάτων εφαρμογής.

Στο κύκλωμα του μικροελεγκτή, ένας καταχωρητής εντολών (IR) βρίσκεται δίπλα στη συσκευή ελέγχου. Η λειτουργία του είναι να αποθηκεύει τον κώδικα της εντολής που εκτελείται.

Σήματα εισόδου και εξόδου της συσκευής ελέγχου και συγχρονισμού:

1. PSEN – ανάλυση μνήμης προγράμματος,

2. ALE – σήμα εξόδου ενεργοποίησης σταθεροποίησης διεύθυνσης,

3. PROG – σήμα προγραμματισμού,

4. EA – αποκλεισμός εργασίας με εσωτερική μνήμη,

5. VPP – τάση προγραμματισμού,

6. RST – σήμα γενικής επαναφοράς,

7. VPD – Έξοδος ισχύος εφεδρικής μνήμης από εξωτερική πηγή,

8. XTAL – είσοδοι σύνδεσης αντηχείο χαλαζία.

2.9. Παράλληλες θύρες εισόδου/εξόδου

Και οι τέσσερις θύρες (P0-P3) έχουν σχεδιαστεί για την εισαγωγή ή την έξοδο πληροφοριών byte προς byte. Κάθε θύρα περιέχει έναν ελεγχόμενο καταχωρητή ασφάλισης, ένα buffer εισόδου και ένα πρόγραμμα οδήγησης εξόδου.

Τα προγράμματα οδήγησης εξόδου των θυρών P0 και P2, καθώς και το buffer εισόδου της θύρας P0, χρησιμοποιούνται κατά την πρόσβαση στην εξωτερική μνήμη. Σε αυτήν την περίπτωση, μέσω της θύρας P0 σε λειτουργία πολυπλεξίας χρόνου, αρχικά εξάγεται το χαμηλό byte της διεύθυνσης και στη συνέχεια εκδίδεται ή λαμβάνεται το byte δεδομένων. Η θύρα P2 εξάγει το πιο σημαντικό byte της διεύθυνσης σε περιπτώσεις όπου το πλάτος της διεύθυνσης είναι 16 bit.

Όλες οι ακίδες της θύρας P3 μπορούν να χρησιμοποιηθούν για την υλοποίηση των εναλλακτικών λειτουργιών που αναφέρονται στον πίνακα. 4. Αυτές οι λειτουργίες μπορούν να ενεργοποιηθούν γράφοντας 1 στα αντίστοιχα bit του καταχωρητή ασφάλισης (P3.0-P3.7) της θύρας P3.

Πίνακας 4

Εναλλακτικές λειτουργίες θύρας P3

Όνομα και σκοπός

ΑΝΑΓΝΩΣΗ. Ένα ενεργό σήμα χαμηλής στάθμης δημιουργείται από το υλικό κατά την πρόσβαση σε εξωτερική μνήμη δεδομένων

Ρεκόρ. Ένα ενεργό σήμα χαμηλής στάθμης δημιουργείται από το υλικό κατά την πρόσβαση σε εξωτερική μνήμη δεδομένων

Είσοδος χρονοδιακόπτη/μετρητή 1 ή είσοδος δοκιμής

Είσοδος χρονοδιακόπτη/μετρητή 0 ή είσοδος δοκιμής

Είσοδος αιτήματος διακοπής 1. Αισθάνεται σήμα χαμηλής στάθμης ή διακοπής

Είσοδος αιτήματος διακοπής 0. Αισθάνεται σήμα χαμηλής στάθμης ή διακοπής

Έξοδος πομπού σειριακής θύρας σε λειτουργία UART. Έξοδος ρολογιού σε λειτουργία καταχώρησης αλλαγής ταχυτήτων

Είσοδος δέκτη σειριακής θύρας σε λειτουργία UART. Είσοδος/έξοδος δεδομένων σε λειτουργία καταχώρησης μετατόπισης

Η θύρα 0 είναι αμφίδρομη και οι θύρες 1-3 είναι σχεδόν αμφίδρομες. Κάθε γραμμή θύρας μπορεί να χρησιμοποιηθεί ανεξάρτητα για είσοδο ή έξοδο.

Με βάση το σήμα RST, οι μονάδες εγγράφονται αυτόματα στους καταχωρητές μανδάλωσης όλων των θυρών, ρυθμίζοντας έτσι τη λειτουργία εισόδου.

Όλες οι θύρες μπορούν να χρησιμοποιηθούν για την οργάνωση της εισόδου/εξόδου πληροφοριών μέσω αμφίδρομων γραμμών μετάδοσης. Ωστόσο, οι θύρες P0 και P2 δεν μπορούν να χρησιμοποιηθούν για το σκοπό αυτό εάν το σύστημα διαθέτει εξωτερική μνήμη, η επικοινωνία με την οποία οργανώνεται μέσω ενός κοινού διαύλου διευθύνσεων/δεδομένων που λειτουργεί σε λειτουργία πολυπλεξίας χρόνου.

Η πρόσβαση στις θύρες I/O είναι δυνατή χρησιμοποιώντας εντολές που λειτουργούν σε ένα byte, ένα μεμονωμένο bit ή έναν αυθαίρετο συνδυασμό bit. Επιπλέον, σε περιπτώσεις όπου η θύρα είναι ταυτόχρονα τελεστής και προορισμός του αποτελέσματος, η συσκευή ελέγχου εφαρμόζει αυτόματα έναν ειδικό τρόπο που ονομάζεται «read-modify-write». Αυτή η λειτουργία πρόσβασης περιλαμβάνει την εισαγωγή σημάτων όχι από τις εξωτερικές ακίδες της θύρας, αλλά από τον καταχωρητή μανδάλωσης της, η οποία εξαλείφει τη λανθασμένη ανάγνωση των πληροφοριών που είχαν προηγουμένως εξέλθει. Αυτός ο μηχανισμός πρόσβασης στις θύρες υλοποιείται στις εντολές:




Μπλουζα