- EEPROM σε PIC16F877A:
- Διάγραμμα κυκλώματος και επεξήγηση:
- Προσομοίωση της χρήσης του PIC EEPROM:
- Προγραμματισμός PIC για EEPROM:
- Εργαζόμενος:
Σε αυτό το σεμινάριο θα μάθουμε πόσο εύκολο είναι να αποθηκεύουμε δεδομένα χρησιμοποιώντας το EEPROM που υπάρχει στον Μικροελεγκτή PIC16F877A. Στα περισσότερα έργα σε πραγματικό χρόνο, ίσως χρειαστεί να αποθηκεύσουμε ορισμένα δεδομένα τα οποία δεν πρέπει να διαγραφούν ακόμη και όταν η τροφοδοσία είναι απενεργοποιημένη. Αυτό μπορεί να ακούγεται σαν μια περίπλοκη διαδικασία, αλλά με τη βοήθεια του XC8 Compiler αυτή η εργασία μπορεί να γίνει με τη χρήση μίας μόνο γραμμής κώδικα. Εάν τα δεδομένα είναι μεγάλα από την άποψη των Mega bytes, τότε μπορούμε να συνδέσουμε μια συσκευή αποθήκευσης όπως μια κάρτα SD και να τα αποθηκεύσουμε σε αυτά. Αλλά μπορούμε να αποφύγουμε αυτήν την κουραστική διαδικασία εάν τα δεδομένα είναι μικρά, μπορούμε απλά να χρησιμοποιήσουμε το EEPROM που υπάρχει στον Μικροελεγκτή PIC για να αποθηκεύσουμε τα δεδομένα μας και να τα ανακτήσουμε όποτε θέλουμε.
Αυτό το σεμινάριο PIC EEPROM είναι μέρος μιας ακολουθίας μαθημάτων PIC Microcontroller Tutorials στα οποία ξεκινήσαμε από ένα πολύ βασικό επίπεδο. Εάν δεν έχετε μάθει τα προηγούμενα μαθήματα, τότε θα ήταν καλύτερα να τα ρίξετε μια ματιά τώρα, επειδή αυτό το σεμινάριο προϋποθέτει ότι είστε εξοικειωμένοι με το Interfacing LCD με τον PIC Microcontroller και το ADC with PIC Microcontroller
EEPROM σε PIC16F877A:
Το EEPROM σημαίνει "Ηλεκτρονικά διαγράψιμη και προγραμματιζόμενη μνήμη μόνο για ανάγνωση". Όπως υποδηλώνει το όνομα είναι μια μνήμη που υπάρχει μέσα στον μικροελεγκτή PIC στην οποία μπορούμε να γράψουμε / να διαβάσουμε δεδομένα προγραμματίζοντας να το κάνουν. Τα δεδομένα που αποθηκεύονται σε αυτό θα διαγραφούν μόνο εάν αναφέρεται στο πρόγραμμα. Ο διαθέσιμος χώρος αποθήκευσης στο EEPROM ποικίλλει ανάλογα με κάθε μικροελεγκτή. οι λεπτομέρειες θα δοθούν στο φύλλο δεδομένων ως συνήθως. Στην περίπτωσή μας για το PIC16F877A ο διαθέσιμος χώρος είναι 256 byte όπως αναφέρεται στο δελτίο δεδομένων προδιαγραφών. Τώρα ας δούμε πώς μπορούμε να χρησιμοποιήσουμε αυτά τα 256 byte για ανάγνωση / εγγραφή δεδομένων χρησιμοποιώντας μια απλή πειραματική ρύθμιση.
Διάγραμμα κυκλώματος και επεξήγηση:
Το διάγραμμα κυκλώματος για το έργο φαίνεται παραπάνω. Έχουμε διασυνδέσει μια οθόνη LCD για να απεικονίσουμε τα δεδομένα που αποθηκεύονται και ανακτώνται. Ένα κανονικό ποτενσιόμετρο συνδέεται με το αναλογικό κανάλι AN4, οπότε τροφοδοτείτε με μεταβλητή τάση, αυτή η μεταβλητή τάση θα χρησιμοποιηθεί ως δεδομένα που θα αποθηκευτούν στο EEPROM. Χρησιμοποιήσαμε επίσης ένα κουμπί στο RB0, όταν πατηθεί αυτό το κουμπί, τα δεδομένα από το αναλογικό κανάλι θα αποθηκευτούν στο EEPROM.
Αυτή η σύνδεση μπορεί να γίνει σε ένα breadboard. Τα pinouts του μικροελεγκτή PIC φαίνονται στον παρακάτω πίνακα.
S.No: |
Αριθμός Pin |
Όνομα καρφιτσώματος |
Συνδεδεμένος με |
1 |
21 |
RD2 |
RS LCD |
2 |
22 |
RD3 |
Ε της LCD |
3 |
27 |
RD4 |
D4 της LCD |
4 |
28 |
RD5 |
D5 της οθόνης LCD |
5 |
29 |
RD6 |
D6 της οθόνης LCD |
6 |
30 |
RD7 |
D7 της οθόνης LCD |
7 |
33 |
RBO / INT |
Πιέστε το κουμπί |
8 |
7 |
ΑΝ4 |
Ποτενσιόμετρο |
Προσομοίωση της χρήσης του PIC EEPROM:
Αυτό το έργο περιλαμβάνει επίσης μια Προσομοίωση που σχεδιάστηκε χρησιμοποιώντας το Proteus, χρησιμοποιώντας την οποία μπορούμε να προσομοιώσουμε τη λειτουργία του έργου χωρίς κανένα υλικό. Το πρόγραμμα για αυτήν την προσομοίωση δίνεται στο τέλος αυτού του σεμιναρίου. Μπορείτε απλά να χρησιμοποιήσετε το αρχείο Hex από εδώ και να προσομοιώσετε ολόκληρη τη διαδικασία.
Κατά τη διάρκεια της προσομοίωσης μπορείτε να απεικονίσετε την τρέχουσα τιμή ADC και τα δεδομένα που αποθηκεύονται στο EEPROM στην οθόνη LCD. Για να αποθηκεύσετε την τρέχουσα τιμή ADC στο EEPROM απλά πατήστε το διακόπτη που είναι συνδεδεμένος στο RB0 και θα αποθηκευτεί. Ένα στιγμιότυπο της προσομοίωσης φαίνεται παρακάτω.
Προγραμματισμός PIC για EEPROM:
Ο πλήρης κωδικός για αυτό το σεμινάριο δίνεται στο τέλος αυτού του σεμιναρίου. Στο πρόγραμμά μας πρέπει να διαβάσουμε τις τιμές από την ενότητα ADC και όταν πατηθεί ένα κουμπί πρέπει να αποθηκεύσουμε αυτήν την τιμή στο EEPROM. Εφόσον έχουμε ήδη μάθει για τις διασυνδέσεις ADC και LCD, θα εξηγήσω περαιτέρω τον κώδικα για την αποθήκευση και ανάκτηση δεδομένων από την EEPROM.
Σύμφωνα με το δελτίο δεδομένων «Αυτές οι συσκευές έχουν 4 ή 8K λέξεις προγράμματος Flash, με εύρος διευθύνσεων από 0000h έως 1FFFh για το PIC16F877A». Αυτό σημαίνει ότι κάθε χώρος αποθήκευσης EEPROM έχει μια διεύθυνση μέσω της οποίας μπορεί να προσεγγιστεί και στο MCU μας η διεύθυνση ξεκινά από 0000h έως 1FFFh.
Για να αποθηκεύσετε δεδομένα μέσα σε μια συγκεκριμένη διεύθυνση EEPROM, απλώς χρησιμοποιήστε την παρακάτω γραμμή.
eeprom_write (0, adc);
Εδώ το "adc" είναι μια μεταβλητή ακέραιου τύπου στην οποία υπάρχουν τα προς αποθήκευση δεδομένα. Και το "0" είναι η διεύθυνση του EEPROM στην οποία αποθηκεύονται τα δεδομένα μας. Η σύνταξη "eeprom_write" παρέχεται από τον XC8 μας, οπότε οι καταχωρητές θα φροντίζονται αυτόματα από τον μεταγλωττιστή.
Για να ανακτήσετε δεδομένα που είναι ήδη αποθηκευμένα στο EEPROM και να τα αποθηκεύσετε σε μια μεταβλητή, μπορεί να χρησιμοποιηθεί η ακόλουθη γραμμή κώδικα.
Sadc = (int) eeprom_read (0);
Εδώ, το "Sadc" είναι η μεταβλητή στην οποία θα αποθηκευτούν τα δεδομένα από το EEPROM. Και το "0" είναι η διεύθυνση της EEPROM από την οποία ανακτούμε τα δεδομένα. Η σύνταξη “eeprom_read” παρέχεται από τον XC8 μας, οπότε οι καταχωρητές θα φροντίζονται αυτόματα από τον μεταγλωττιστή. Τα δεδομένα που αποθηκεύονται στο EEPROM θα έχουν δεκαεξαδικό τύπο. Ως εκ τούτου τα μετατρέπουμε σε ακέραιο τύπο προθέτοντας ένα (int) πριν από τη σύνταξη.
Εργαζόμενος:
Μόλις καταλάβουμε πώς λειτουργεί ο κώδικας και ετοιμαστούμε με το υλικό μπορούμε να δοκιμάσουμε τον κώδικα. Ανεβάστε τον κωδικό στο μικροελεγκτή PIC και ενεργοποιήστε τη ρύθμιση. Εάν όλα λειτουργούν όπως αναμένεται, θα πρέπει να δείτε τις τρέχουσες τιμές ADC που εμφανίζονται στην οθόνη LCD. Τώρα μπορείτε να πατήσετε το κουμπί για να αποθηκεύσετε την τιμή ADC στο EEPROM. Τώρα ελέγχετε εάν η τιμή αποθηκεύεται κλείνοντας ολόκληρο το σύστημα και ενεργοποιώντας το ξανά. Όταν είναι ενεργοποιημένο, θα πρέπει να βλέπετε την τιμή που αποθηκεύτηκε προηγουμένως στην οθόνη LCD.
Η ολοκληρωμένη εργασία αυτού του έργου για τη χρήση του PIC Microcontroller EEPROM φαίνεται στο παρακάτω βίντεο. Ελπίζω να καταλάβατε το σεμινάριο και σας άρεσε να το κάνετε. Εάν έχετε αμφιβολίες, μπορείτε να τις γράψετε στην παρακάτω ενότητα σχολίων ή να τις δημοσιεύσετε στα φόρουμ μας.