Κύρια ηλεκτρονικά περιφερειακά που συνδέονται με τον μικροελεγκτή 8051

Δοκιμάστε Το Όργανο Μας Για Την Εξάλειψη Των Προβλημάτων





Η διασύνδεση είναι μια από τις σημαντικές έννοιες στο μικροελεγκτής 8051 επειδή ο μικροελεγκτής είναι μια CPU που μπορεί να εκτελέσει κάποια λειτουργία σε δεδομένα και δίνει την έξοδο. Ωστόσο, για να εκτελέσουμε τη λειτουργία χρειαζόμαστε μια συσκευή εισόδου για να εισαγάγουμε τα δεδομένα και με τη σειρά της η συσκευή εξόδου εμφανίζει τα αποτελέσματα της λειτουργίας. Εδώ χρησιμοποιούμε το πληκτρολόγιο και την οθόνη LCD ως συσκευές εισόδου και εξόδου μαζί με τον μικροελεγκτή.

Μικροελεγκτής 8051 Περιφερειακές συσκευές

Μικροελεγκτής 8051 Περιφερειακές συσκευές



Η διασύνδεση είναι η διαδικασία σύνδεσης των συσκευών μεταξύ τους, ώστε να μπορούν να ανταλλάσσουν τις πληροφορίες και αυτό αποδεικνύεται ότι είναι πιο εύκολο να γράψετε τα προγράμματα. Υπάρχουν διαφορετικοί τύποι συσκευών εισόδου και εξόδου, όπως για τις απαιτήσεις μας, όπως LED, LCD, 7segment, πληκτρολόγιο, κινητήρες και άλλες συσκευές.


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



1. Διεπαφή LED σε μικροελεγκτή:

Περιγραφή:

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

Δίοδος εκπομπής φωτός

Δίοδος εκπομπής φωτός

Η αρχή του λειτουργία LED είναι πολύ εύκολο. Ένα απλό LED εξυπηρετεί επίσης ως βασικές συσκευές προβολής, η κατάσταση ενεργοποίησης και απενεργοποίησης εκφράζει πλήρη πληροφόρηση σχετικά με μια συσκευή. Τα κοινά διαθέσιμα LED έχουν πτώση τάσης 1,7v που σημαίνει ότι όταν εφαρμόζουμε πάνω από 1,7V, η δίοδος διεξάγει. Η δίοδος χρειάζεται ρεύμα 10mA για να λάμψει με πλήρη ένταση.


Το ακόλουθο κύκλωμα περιγράφει 'πώς να ανάβετε τα LED'.

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

Διάγραμμα κυκλώματος

Διασύνδεση LED με μικροελεγκτή

Διασύνδεση LED με μικροελεγκτή

Πηγαίος κώδικας:

#περιλαμβάνω
κενή κύρια ()
{
χωρίς υπογραφή int i
ενώ (1)
{
P0 = 0x00
για (i = 0i<30000i++)
P0 = 0xff
για (i = 0i<30000i++)
}
}

2. Κύκλωμα διασύνδεσης οθόνης 7-τμημάτων

Περιγραφή:
Οθόνη επτά τμημάτων είναι η πιο βασική ηλεκτρονική οθόνη. Αποτελείται από οκτώ LED που συνδέονται κατά σειρά ώστε να εμφανίζουν ψηφία από το 0 έως το 9 όταν ενεργοποιούνται οι κατάλληλοι συνδυασμοί LED. Μια οθόνη 7 τμημάτων χρησιμοποιεί επτά LED για την εμφάνιση ψηφίων από 0 έως 9 και η 8η LED χρησιμοποιείται για κουκκίδες. Ένα τυπικό επτά τμήμα μοιάζει όπως φαίνεται στο παρακάτω σχήμα.

Οθόνη 7 τμημάτων

Οθόνη 7 τμημάτων

Οι οθόνες 7 τμημάτων χρησιμοποιούνται σε διάφορα συστήματα για την εμφάνιση των αριθμητικών πληροφοριών. Μπορούν να εμφανίσουν ένα ψηφίο κάθε φορά. Έτσι, ο αριθμός των τμημάτων που χρησιμοποιούνται εξαρτάται από τον αριθμό των ψηφίων που θα εμφανίζονται. Εδώ τα ψηφία 0 έως 9 εμφανίζονται συνεχώς με προκαθορισμένη χρονική καθυστέρηση.

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

Διαμορφώσεις οθόνης 7 τμημάτων

Διαμορφώσεις οθόνης 7 τμημάτων

Ο παρακάτω πίνακας δείχνει τις δεκαεξαδικές τιμές που χρησιμοποιούνται για την εμφάνιση των διαφορετικών ψηφίων.

Πίνακας προβολής 7 τμημάτων

Πίνακας προβολής 7 τμημάτων

Διάγραμμα κυκλώματος

Διεπαφή οθόνης 7-τμημάτων

Διεπαφή οθόνης 7-τμημάτων

Πηγαίος κώδικας:

#περιλαμβάνω
sbit a = P3 ^ 0
κενή κύρια ()
{
χωρίς υπογραφή char n [10] = {0x40,0xF9,0x24,0x30,0x19,0x12,0x02,0xF8,0xE00,0x10}
χωρίς υπογραφή int i, j
α = 1
ενώ (1)
{
για (i = 0i<10i++)
{
P2 = n [i]
για (j = 0j<60000j++)
}
}
}

3. Διασύνδεση LCD με μικροελεγκτή

LCD σημαίνει οθόνη υγρών κρυστάλλων, η οποία μπορεί να εμφανίζει τους χαρακτήρες ανά γραμμή. Εδώ η οθόνη LCD 16 με 2 μπορεί να εμφανίσει 16 χαρακτήρες ανά γραμμή και υπάρχουν 2 γραμμές. Σε αυτήν την οθόνη κάθε χαρακτήρας εμφανίζεται σε μήτρα 5 * 7 pixel.

Οθόνη LCD

Οθόνη LCD

Η LCD είναι πολύ σημαντική συσκευή που χρησιμοποιείται για σχεδόν όλες τις αυτοματοποιημένες συσκευές, όπως πλυντήρια ρούχων, ένα αυτόνομο ρομπότ, συστήματα ελέγχου ισχύος και άλλες συσκευές. Αυτό επιτυγχάνεται με την εμφάνιση της κατάστασής τους σε μικρές μονάδες οθόνης όπως οθόνες 7-επτά τμημάτων, LED πολλαπλών τμημάτων κ.λπ. Οι λόγοι είναι ότι οι LCD είναι λογικές τιμές, εύκολα προγραμματιζόμενες και δεν έχουν περιορισμούς στην εμφάνιση ειδικών χαρακτήρων.

Αποτελείται από δύο καταχωρητές όπως το μητρώο εντολών / εντολών και το μητρώο δεδομένων.

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

Ο καταχωρητής δεδομένων αποθηκεύει τα δεδομένα που θα εμφανίζονται σε LCD. Τα δεδομένα είναι μια τιμή ASCII των χαρακτήρων που θα εμφανίζονται στην οθόνη LCD.

Η λειτουργία της LCD ελέγχεται από δύο εντολές. Όταν RS = 0, R / W = 1 διαβάζει τα δεδομένα και όταν RS = 1, R / W = 0, γράφει (εκτυπώνει) τα δεδομένα.

Η LCD χρησιμοποιεί τους ακόλουθους κωδικούς εντολών:

Εντολές οθόνης LCD

Εντολές οθόνης LCD

Διάγραμμα κυκλώματος:

Διασύνδεση LCD με μικροελεγκτή

Διασύνδεση LCD με μικροελεγκτή

Πηγαίος κώδικας:

#περιλαμβάνω
# καθορισμός kam P0

sbit rs = P2 ^ 0
sbit rw = P2 ^ 1
sbit σε = P2 ^ 2

άκυρο lcd_initi ()
void lcd_dat (χωρίς υπογραφή char)
άκυρο lcd_cmd (χωρίς υπογραφή char)
άκυρη καθυστέρηση (χωρίς υπογραφή int)
άκυρη οθόνη (χωρίς υπογραφή char * s, unsigned char r)
κενή κύρια ()
{

lcd_initi ()
lcd_cmd (0x80)
καθυστέρηση (100)
οθόνη ('EDGEFX TECHLNGS', 15)
lcd_cmd (0xc0)
οθόνη ('ΚΙΤ & ΛΥΣΕΙΣ', 15)
ενώ (1)
}

άκυρη οθόνη (χωρίς υπογραφή char * s, unsigned char r)
{
χωρίς υπογραφή int w
για (w = 0w{

lcd_dat (s [w])
}
}

άκυρο lcd_initi ()
{
lcd_cmd (0x01)
καθυστέρηση (100)
lcd_cmd (0x38)
καθυστέρηση (100)
lcd_cmd (0x06)
καθυστέρηση (100)
lcd_cmd (0x0c)
καθυστέρηση (100)
}
void lcd_dat (μη υπογεγραμμένο char dat)
{
χτένα = αυτό
rs = 1
rw = 0

σε = 1
καθυστέρηση (100)
σε = 0
}
άκυρο lcd_cmd (χωρίς υπογραφή char cmd)
{
ήρθε = cmd
rs = 0
rw = 0

σε = 1
καθυστέρηση (100)
σε = 0
}
άκυρη καθυστέρηση (χωρίς υπογραφή int n)
{

χωρίς υπογραφή int a
για (a = 0a}

4. Κύκλωμα διασύνδεσης κινητήρα Stepper

Τύποι Stepper Motors-1

Μονοπολικός κινητήρας Stepper

ΠΡΟΣ ΤΗΝ βηματικό κινητήρα είναι ένας από τους πιο συχνά χρησιμοποιούμενους κινητήρες για ακριβή γωνιακή κίνηση. Το πλεονέκτημα της χρήσης ενός βηματικού κινητήρα είναι ότι η γωνιακή θέση του κινητήρα μπορεί να ελέγχεται χωρίς μηχανισμό ανάδρασης. Οι κινητήρες stepper χρησιμοποιούνται ευρέως σε βιομηχανικές και εμπορικές εφαρμογές. Χρησιμοποιούνται επίσης συνήθως όπως σε συστήματα κίνησης όπως ρομπότ, πλυντήρια κ.λπ.

Τύποι Stepper Motors-2

Διπολικός κινητήρας Stepper

Οι κινητήρες Stepper μπορούν να είναι μονοπολικοί ή διπολικοί και εδώ χρησιμοποιούμε μονοπολικό stepper κινητήρα. Ο μονοπολικός βηματικός κινητήρας αποτελείται από έξι καλώδια από τα οποία τέσσερα συνδέονται στο πηνίο του κινητήρα και δύο είναι κοινά καλώδια. Κάθε κοινό καλώδιο συνδέεται με πηγή τάσης και τα υπόλοιπα καλώδια συνδέονται με τον μικροελεγκτή.

Διάγραμμα κυκλώματος:

Κύκλωμα διασύνδεσης κινητήρα Stepper

Κύκλωμα διασύνδεσης κινητήρα Stepper

Πηγαίος κώδικας:

#περιλαμβάνω
sbit a = P3 ^ 0
sbit b = P3 ^ 1
sbit c = P3 ^ 2
sbit d = P3 ^ 3

άκυρη καθυστέρηση ()

κενή κύρια ()
{

ενώ (1)
{

α = 0
b = 1
c = 1
d = 1
καθυστέρηση()
α = 1
b = 0
c = 1
d = 1
καθυστέρηση()
α = 1
b = 1
c = 0
d = 1
καθυστέρηση()
α = 1
b = 1
c = 1
d = 0

}
}

άκυρη καθυστέρηση ()
{

χωρίς υπογραφή char i, j, k
για (i = 0i<6i++)
για (j = 0j<255j++)
για (k = 0k<255k++)

}

5. Διεπαφή πληκτρολογίου Matrix σε 8051

Περιγραφή:

Πληκτρολόγιο Matrix

Πληκτρολόγιο Matrix

Το πληκτρολόγιο είναι μια ευρέως χρησιμοποιούμενη συσκευή εισόδου με πολλές εφαρμογές όπως τηλέφωνο, υπολογιστής, ATM, ηλεκτρονική κλειδαριά κ.λπ. Ένα πληκτρολόγιο χρησιμοποιείται για τη λήψη εισόδου από τον χρήστη για περαιτέρω επεξεργασία. Εδώ είναι ένα πληκτρολόγιο 4 με 3 matrix που αποτελείται από διακόπτες διατεταγμένους σε σειρές και στήλες διασυνδεδεμένος με τον μικροελεγκτή . Μια οθόνη LCD 16 by 2 είναι επίσης διασυνδεδεμένη για την εμφάνιση της εξόδου.

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

Εσωτερικό διάγραμμα πληκτρολογίου

Εσωτερικό διάγραμμα πληκτρολογίου

Αρχικά, όλες οι σειρές ρυθμίζονται στο μηδέν (‘0’) από τον ελεγκτή και οι στήλες σαρώνονται για να ελέγξουν εάν πατηθεί κάποιο πλήκτρο. Σε περίπτωση που δεν πατηθεί κανένα πλήκτρο, η έξοδος όλων των στηλών θα είναι υψηλή («1»).

Διάγραμμα κυκλώματος

Διεπαφή πληκτρολογίου Matrix σε 8051

Διεπαφή πληκτρολογίου Matrix σε 8051

Πηγαίος κώδικας:

#περιλαμβάνω
# καθορισμός kam P0
sbit rs = P2 ^ 0
sbit rw = P2 ^ 1
sbit σε = P2 ^ 2
sbit c1 = P1 ^ 4
sbit c2 = P1 ^ 5
sbit c3 = P1 ^ 6
sbit r1 = P1 ^ 0
sbit r2 = P1 ^ 1
sbit r3 = P1 ^ 2
sbit r4 = P1 ^ 3
άκυρο lcd_initi ()
void lcd_dat (χωρίς υπογραφή char)
άκυρο lcd_cmd (χωρίς υπογραφή char)
άκυρη καθυστέρηση (χωρίς υπογραφή int)
άκυρη οθόνη (χωρίς υπογραφή char * s, unsigned char r)

κενή κύρια ()
{
lcd_initi ()
lcd_cmd (0x80)
καθυστέρηση (100)
οθόνη ('0987654321', 10)
ενώ (1)
}

άκυρη οθόνη (χωρίς υπογραφή char * s, unsigned char r)
{

χωρίς υπογραφή int w
για (w = 0w{

lcd_dat (s [w])
}
}
άκυρο lcd_initi ()
{
lcd_cmd (0x01)
καθυστέρηση (100)
lcd_cmd (0x38)
καθυστέρηση (100)
lcd_cmd (0x06)
καθυστέρηση (100)
lcd_cmd (0x0c)
καθυστέρηση (100)
}

void lcd_dat (μη υπογεγραμμένο char dat)
{
χτένα = αυτό
rs = 1
rw = 0

σε = 1
καθυστέρηση (100)
σε = 0
}
άκυρο lcd_cmd (χωρίς υπογραφή char cmd)
{
ήρθε = cmd
rs = 0
rw = 0

σε = 1
καθυστέρηση (100)
σε = 0

}
άκυρη καθυστέρηση (χωρίς υπογραφή int n)
{

χωρίς υπογραφή int a
για (a = 0a}
}

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

Ένα περαιτέρω ερώτημα ή σχόλιο σχετικά με αυτό το θέμα είναι ευπρόσδεκτο να αναφέρεται στην παρακάτω ενότητα σχολίων.

Φωτογραφικές μονάδες