- Απαιτούμενα στοιχεία:
- Διάγραμμα κυκλώματος:
- 8051 Μικροελεγκτής:
- LCD 16x2:
- Αναγνώστης EM-18 RFID:
- Εργασία και εξήγηση κώδικα:
Η αναγνώριση ραδιοσυχνοτήτων (RFID) χρησιμοποιεί τη ραδιοσυχνότητα για την ανάγνωση πληροφοριών που είναι αποθηκευμένες σε κάρτα ή ετικέτα RFID Σε αυτό το έργο πηγαίνουμε στη διεπαφή EM-18 RFID reader με 8051 μικροελεγκτή και εμφανίζουμε τον αριθμό κάρτας RFID σε οθόνη LCD 16 * 2. Αυτή η ασύρματη αναγνώριση RF χρησιμοποιείται σε πολλά συστήματα όπως το σύστημα παρακολούθησης με βάση RFID, συστήματα ασφαλείας, μηχανές ψηφοφορίας κ.λπ. Αυτό το έργο θα χρησιμεύσει επίσης ως κατάλληλη διασύνδεση LCD 16 * 2 με 8051 μικροελεγκτή.
Απαιτούμενα στοιχεία:
- 8051 μικροελεγκτής
- Αναγνώστης EM-18 RFID
- Οθόνη LCD 16 * 2
- Κάρτες / ετικέτες RFID
- Ποτενσιόμετρο
- Καλώδια αλτών
Διάγραμμα κυκλώματος:
8051 Μικροελεγκτής:
Ο μικροελεγκτής 8051 είναι ένας μικροελεγκτής 8 bit που έχει 128 bytes σε μνήμη RAM, 4K bytes σε chip ROM, δύο χρονοδιακόπτες, μία σειριακή θύρα και τέσσερις θύρες 8bit. Ο μικροελεγκτής 8052 είναι μια επέκταση του μικροελεγκτή. Ο παρακάτω πίνακας δείχνει τη σύγκριση 8051 μελών της οικογένειας.
χαρακτηριστικό |
8051 |
8052 |
ROM (σε byte) |
4K |
8 ΧΙΛ |
RAM (byte) |
128 |
256 |
Χρονόμετρα |
2 |
3 |
Καρφίτσες I / O |
32 |
32 |
Σειριακή θύρα |
1 |
1 |
Διακοπή πηγών |
6 |
8 |
LCD 16x2:
Η οθόνη LCD 16 * 2 είναι μια ευρέως χρησιμοποιούμενη οθόνη για ενσωματωμένες εφαρμογές. Ακολουθεί η σύντομη εξήγηση σχετικά με τις καρφίτσες και τη λειτουργία της οθόνης LCD 16 * 2. Υπάρχουν δύο πολύ σημαντικοί καταχωρητές μέσα στην οθόνη LCD. Είναι καταχωρητής δεδομένων και καταχωρητής εντολών. Ο καταχωρητής εντολών χρησιμοποιείται για την αποστολή εντολών όπως καθαρή οθόνη, δρομέας στο σπίτι κ.λπ., ο καταχωρητής δεδομένων χρησιμοποιείται για την αποστολή δεδομένων που θα εμφανίζονται σε οθόνη LCD 16 * 2. Στον παρακάτω πίνακα εμφανίζεται η περιγραφή των 16 * 2 lcd.
Καρφίτσα |
Σύμβολο |
Ι / Ο |
Περιγραφή |
1 |
Vss |
- |
Εδαφος |
2 |
Vdd |
- |
+5V τροφοδοτικό |
3 |
Θεω |
- |
Τροφοδοσία για έλεγχο της αντίθεσης |
4 |
RS |
Εγώ |
RS = 0 για το μητρώο εντολών, RS = 1 για μητρώο δεδομένων |
5 |
RW |
Εγώ |
R / W = 0 για εγγραφή, R / W = 1 για ανάγνωση |
6 |
μι |
Ι / Ο |
επιτρέπω |
7 |
Δ0 |
Ι / Ο |
Δίαυλος δεδομένων 8-bit (LSB) |
8 |
Δ1 |
Ι / Ο |
Δίαυλος δεδομένων 8-bit |
9 |
Δ2 |
Ι / Ο |
Δίαυλος δεδομένων 8-bit |
10 |
Δ3 |
Ι / Ο |
Δίαυλος δεδομένων 8-bit |
11 |
Δ4 |
Ι / Ο |
Δίαυλος δεδομένων 8-bit |
12 |
Δ5 |
Ι / Ο |
Δίαυλος δεδομένων 8-bit |
13 |
Δ6 |
Ι / Ο |
Δίαυλος δεδομένων 8-bit |
14 |
Δ7 |
Ι / Ο |
Δίαυλος δεδομένων 8-bit (MSB) |
15 |
ΕΝΑ |
- |
+ 5V για οπίσθιο φωτισμό |
16 |
κ |
- |
Εδαφος |
Στον παρακάτω πίνακα εμφανίζονται κωδικοί εντολών LCD που χρησιμοποιούνται συχνά.
Κωδικός (hex) |
Περιγραφή |
01 |
Εκκαθάριση οθόνης |
06 |
Δείκτης αύξησης (δεξιά μετατόπιση) |
0Α |
Απενεργοποιημένη, ο δρομέας είναι ενεργοποιημένος |
0C |
Ενεργοποίηση, απενεργοποιημένος δρομέας |
0F |
Η οθόνη είναι ενεργοποιημένη, ο δρομέας αναβοσβήνει |
80 |
Αναγκάστε τον κέρσορα στην αρχή της 1 ης γραμμής |
Γ0 |
Αναγκάστε τον κέρσορα στην αρχή της 2 ης γραμμής |
38 |
2 γραμμές και μήτρα 5 * 7 |
Αναγνώστης EM-18 RFID:
Ο αναγνώστης EM-18 RFID λειτουργεί στα 125 KHz και διαθέτει κεραία on-chip και μπορεί να τροφοδοτηθεί με τροφοδοσία 5V. Παρέχει σειριακή έξοδο μαζί με έξοδο weigand. Η εμβέλεια είναι περίπου 8-12 εκατοστά. οι παράμετροι σειριακής επικοινωνίας είναι 9600bps, 8 bit δεδομένων, 1 bit διακοπής. Οι εφαρμογές του περιλαμβάνουν έλεγχο ταυτότητας, τιμολόγηση e-toll road, ηλεκτρονικό εισιτήριο για τις δημόσιες συγκοινωνίες, συστήματα παρακολούθησης κ.λπ. Ελέγξτε όλα τα έργα RFID εδώ.
Η έξοδος που παρέχεται από τον αναγνώστη RF-EM-18 είναι σε 12ψήφια μορφή ASCII. Από τα 12 ψηφία τα πρώτα 10 ψηφία είναι αριθμός κάρτας και τα δύο τελευταία ψηφία είναι το αποτέλεσμα XOR του αριθμού κάρτας. Τα τελευταία δύο ψηφία χρησιμοποιούνται για τον έλεγχο σφαλμάτων.
Για παράδειγμα, ο αριθμός κάρτας είναι 0200107D0D62 διαβασμένος από τον αναγνώστη και στη συνέχεια ο αριθμός κάρτας στην κάρτα θα είναι όπως παρακάτω.
02 - προοίμιο
00107D0D = 1080589 σε δεκαδικό.
Η τιμή 62 είναι τιμή XOR για (02 XOR 00 XOR 10 XOR 7D XOR 0D).
Ως εκ τούτου, ο αριθμός στην κάρτα είναι 0001080589.
Εργασία και εξήγηση κώδικα:
Το πλήρες πρόγραμμα C και το βίντεο επίδειξης για αυτό το έργο δίνεται στο τέλος αυτού του έργου. Ο κωδικός χωρίζεται σε μικρά μικρά κομμάτια και εξηγείται παρακάτω.
Για διασύνδεση LCD 16 * 2 με 8051 μικροελεγκτή, πρέπει να ορίσουμε ακίδες στις οποίες 16 * 2 lcd συνδέεται με 8051 μικροελεγκτή. Ο ακροδέκτης RS 16 * 2 lcd συνδέεται στο P3.7, ο ακροδέκτης RW 16 * 2 lcd συνδέεται στο P3.6 και ο ακροδέκτης E 16 * 2 lcd συνδέεται στο P3.5. Οι ακίδες δεδομένων συνδέονται στη θύρα 1 του 8051 μικροελεγκτή.
sbit rs = P3 ^ 7; sbit rw = P3 ^ 6; sbit en = P3 ^ 5;
Στη συνέχεια πρέπει να καθορίσουμε ορισμένες λειτουργίες που χρησιμοποιούνται στο πρόγραμμα. Η λειτουργία καθυστέρησης χρησιμοποιείται για τη δημιουργία καθορισμένης χρονικής καθυστέρησης. Η λειτουργία Cmdwrt χρησιμοποιείται για την αποστολή εντολών σε οθόνη 16 * 2 lcd. Η λειτουργία datawrt χρησιμοποιείται για την αποστολή δεδομένων σε οθόνη 16 * 2 lcd. Η συνάρτηση Rxdata χρησιμοποιείται για τη λήψη δεδομένων από σειριακή θύρα.
άκυρη καθυστέρηση (χωρίς υπογραφή int) άκυρο cmdwrt (χωρίς υπογραφή char). άκυρο datawrt (χωρίς υπογραφή char). char rxdata (άκυρο);
Σε αυτό το μέρος του κώδικα πρόκειται να ρυθμίσουμε 8051 μικροελεγκτή για σειριακή επικοινωνία.
Ο καταχωρητής TMOD είναι φορτωμένος με 0x20 για χρονοδιακόπτη 1, λειτουργία 2 (αυτόματη επαναφόρτωση). Ο καταχωρητής SCON είναι φορτωμένος με 0x50 για 8 bit δεδομένων, 1 bit διακοπής και ενεργοποιημένη λήψη. Ο καταχωρητής TH1 φορτώνεται με 0xfd για ρυθμό baud 9600 bits ανά δευτερόλεπτο. TR1 = 1 χρησιμοποιείται για την εκκίνηση του χρονοδιακόπτη.
TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1;
Σε αυτό το μέρος του κώδικα, στέλνουμε εντολές σε 16 * 2 lcd. Εντολές όπως ευκρινή οθόνη, αύξηση του δρομέα, αναγκάζουν τον κέρσορα στην αρχή της 1 ης γραμμής αποστέλλονται σε 16 * 2 LCD οθόνη ένα προς ένα μετά από κάποια κάποια καθορισμένη χρονική καθυστέρηση.
για (i = 0; i <5; i ++) {cmdwrt (cmd); καθυστέρηση (1) }
Σε αυτό το μέρος του κώδικα λαμβάνουμε την έξοδο του αναγνώστη RFID EM-18 μέσω σειριακής διεπαφής 8051 μικροελεγκτή και αποθηκεύουμε σε μια μεταβλητή. Η μέτρηση χρησιμοποιείται για την παρακολούθηση του αριθμού των byte που λαμβάνονται. Μόλις ληφθούν όλα τα 12 bytes δεδομένων, στη συνέχεια πρέπει να τα εμφανίσουμε στην οθόνη 16 * 2 lcd. Αυτή η διαδικασία επαναλαμβάνεται για πάντα για να διαβάσετε διαφορετικές κάρτες.
ενώ (1) {count = 0; cmdwrt (0xC2); ενώ (μέτρηση <12) {input = rxdata (); μέτρηση ++; } για (i = 0; i <12; i ++) {datawrt (input); καθυστέρηση (1) } καθυστέρηση (100) }
Σε αυτό το μέρος του κώδικα, στέλνουμε εντολές σε οθόνη 16 * 2 lcd. Η εντολή αντιγράφεται στη θύρα 1 του 8051 μικροελεγκτή. Το RS είναι χαμηλό για εγγραφή εντολών. Το RW είναι χαμηλό για τη λειτουργία εγγραφής. Υψηλός έως χαμηλός παλμός εφαρμόζεται στον πείρο ενεργοποίησης (Ε) για έναρξη της λειτουργίας εγγραφής εντολών.
άκυρο cmdwrt (χωρίς υπογραφή char x) {P1 = x; rs = 0; rw = 0; en = 1; καθυστέρηση (1) en = 0; }
Σε αυτό το μέρος του κώδικα, στέλνουμε δεδομένα σε οθόνη 16 * 2 lcd. Τα δεδομένα αντιγράφονται στη θύρα 1 του 8051 μικροελεγκτή. Το RS είναι υψηλό για εγγραφή εντολών. Το RW είναι χαμηλό για τη λειτουργία εγγραφής. Ο υψηλός έως ο χαμηλός παλμός εφαρμόζεται στον πείρο ενεργοποίησης (Ε) για να ξεκινήσει η λειτουργία εγγραφής δεδομένων.
άκυρο datawrt (χωρίς υπογραφή char y) {P1 = y; rs = 1; rw = 0; en = 1; καθυστέρηση (1) en = 0; } Επίσης, ελέγξτε όλα τα έργα μας RFID με άλλους μικροελεγκτές.