- Απαιτούμενα στοιχεία:
- Γραφική οθόνη LCD:
- Εμφάνιση εικόνας σε LCD γραφικών με χρήση 8051:
- Επεξήγηση κυκλώματος:
- Επεξήγηση προγραμματισμού:
Στην καθημερινή μας ζωή, βλέπουμε πολλούς τύπους συσκευών για εμφάνιση κειμένου, εικόνων και γραφικών. Οι οθόνες LCD είναι μια από τις πιο δημοφιλείς συσκευές εμφάνισης στα ηλεκτρονικά και χρησιμοποιούνται κυρίως σε όλα τα έργα που εμφανίζουν κάποιες πληροφορίες. Υπάρχουν πολλοί τύποι LCD που χρησιμοποιούνται σε ηλεκτρονικά έργα. Έχουμε ήδη χρησιμοποιήσει LCD 16X2 σε πολλά από τα έργα μας και χρησιμοποιήσαμε επίσης TFT LCD με το Arduino. Μπορείτε να βρείτε όλο το σχετικό έργο 16X2 LCD ακολουθώντας αυτόν τον σύνδεσμο, συμπεριλαμβανομένης της διασύνδεσης με 8051, AVR, Arduino και πολλά άλλα.
Σε αυτό το σεμινάριο πρόκειται να κάνουμε διασύνδεση γραφικών LCD με 8051 μικροελεγκτή. Σε αυτό το έργο, θα δείξουμε τον τρόπο εμφάνισης μιας εικόνας σε LCD γραφικών (GLCD).
Απαιτούμενα στοιχεία:
- Γραφική οθόνη LCD
- AT89c52 8051 Μικροελεγκτής
- 7805 ρυθμιστής τάσης
- Πυκνωτής 1000uf
- Πυκνωτής 10 uF
- 10Κ αντίσταση
- 10Κ ΔΟΧΕΙΟ
- Κρυστάλλινος ταλαντωτής 12 MH
- Καλώδιο σύνδεσης
- Πίνακας ψωμιού
- Το Burg ρίχνει αρσενικό
- Παροχή ηλεκτρικού ρεύματος
- LED
- 220 Ohm αντίσταση
- 1Κ αντίσταση
Γραφική οθόνη LCD:
Μια απλή οθόνη LCD 16x2 έχει 16 ακίδες, αλλά η οθόνη LCD γραφικών έχει 20 ακίδες. Η περιγραφή της καρφίτσας δίνεται παρακάτω σύμφωνα με το δελτίο δεδομένων της:
Pin No. | Όνομα καρφιτσώματος | Περιγραφή | Λειτουργία |
1 | VSS | Εδαφος | 0 Volt |
2 | VDD | Παροχή ηλεκτρικού ρεύματος | 5 Volt |
3 | V0 | Ρύθμιση αντίθεσης LCD | |
4 | RS | Επιλογή καταλόγου εντολών / δεδομένων | RS = 0: Επιλογή εντολών και RS = 1: Επιλογή δεδομένων |
5 | Ε / Δ | Εγγραφή ανάγνωσης / εγγραφής | R / W = 0: Γράψτε επιλογή και R / W = 1: Διαβάστε την επιλογή |
6 | μι | Ενεργοποίηση σήματος | |
7 | DB0 | Καρφίτσα εισόδου / εξόδου δεδομένων (DB0-DB7) | 8 Bit (DB0-DB7) |
8 | DB1 | ||
9 | DB2 | ||
10 | DB3 | ||
11 | DB4 | ||
12 | DB5 | ||
13 | DB6 | ||
14 | DB7 | ||
15 | CS1 | Επιλογή τσιπ | CS1 = 1, Chip Select Signal για IC1 |
16 | CS2 | Επιλογή τσιπ | CS2 = 1, Chip Select Signal για IC2 |
17 | RST | Επαναφορά | Επαναφορά GLCD |
18 | VEE | Αρνητική τάση για πρόγραμμα οδήγησης LCD | |
19 | ΕΝΑ | LED οπίσθιου φωτισμού | 5 Volt |
20 | κ | LED οπίσθιου φωτισμού | Εδαφος |
Εμφάνιση εικόνας σε LCD γραφικών με χρήση 8051:
Για να εμφανιστεί μια εικόνα σε LCD γραφικών, πρώτα πρέπει να μετατρέψουμε αυτήν την εικόνα σε κώδικα συναρμολόγησης, έτσι ώστε ο μικροελεγκτής 8051 να μπορεί να το κατανοήσει και να το διαβάσει. Επομένως, πρέπει να ακολουθήσουμε τα παρακάτω βήματα για τη μετατροπή της εικόνας σε κώδικα HEX:
Βήμα 1: Πρώτα πρέπει να κατεβάσετε μια εφαρμογή που μετατρέπει την εικόνα (μορφή BMP) σε κώδικα συναρμολόγησης. Λάβετε λοιπόν την εφαρμογή μετατροπής εικόνας BMP2ASM από αυτόν τον σύνδεσμο, απλώς κάντε δεξί κλικ στον σύνδεσμο και, στη συνέχεια, κάντε κλικ στην επιλογή Αποθήκευση συνδέσμου ως…
Βήμα 2: Στη συνέχεια, επιλέξτε την εικόνα που θέλετε να εμφανιστεί στην οθόνη LCD γραφικών και μετατρέψτε την σε BMP, (εάν δεν είναι ήδη σε μορφή BMP) χρησιμοποιώντας οποιαδήποτε εφαρμογή όπως MS Paint, Photoshop κ.λπ. Ή μπορείτε να βρείτε πολλούς διαδικτυακούς ιστότοπους για μετατροπή μορφής εικόνας. Έχουμε κάτω από την εικόνα BMP, με μέγεθος 128x64:
Βήμα 3: Τώρα εξαγάγετε το αρχείο BMP2ASM.zip, το οποίο έχουμε κατεβάσει στο Βήμα 1 και ανοίξτε το Bmp2asm.exe μέσα σε αυτό και επιλέξτε την εικόνα BMP.
Βήμα 4: Τώρα πατήστε "Μετατροπή" στο παράθυρο εφαρμογής BMP2ASM.
Βήμα 5: Στη συνέχεια, Αντιγράψτε τον παραγόμενο κώδικα και επικολλήστε στο πρόγραμμα του 8051 στο Keil uVision. Κάντε μερικές αλλαγές και συντάξτε τον κωδικό.
Τώρα ο κωδικός σας είναι έτοιμος για μεταφόρτωση στο 8051 Microcontroller.
Επεξήγηση κυκλώματος:
Οι συνδέσεις κυκλώματος, για Interfacing Graphical LCD to 8051 Microcontroller, είναι εύκολες και σχεδόν ίδιες με τη σύνδεση LCD 16x2 με 8051. Αλλά 16x2 LCD έχει 16 ακίδες και το GLCD έχει 20 ακίδες.
Ένα δοχείο 10Κ χρησιμοποιείται για καθορισμένη αντίθεση για GLCD. Οι πείροι ελέγχου των GLCD RS, R / W και E συνδέονται απευθείας με τον αριθμό καρφίτσας 89C52 P1.0, P1.1 και P1.2. Οι καρφίτσες επιλογής τσιπ CS1 και CS2 της LCD συνδέονται με τις ακίδες P1.3 και P1.4 αντίστοιχα. Οι καρφίτσες δεδομένων DB0-DB7 συνδέονται απευθείας στο PORT P2. Ένας ρυθμιστής τάσης 7805 χρησιμοποιείται για κανονική τροφοδοσία 5 volt. Στο βίντεο επίδειξης, έχω χρησιμοποιήσει το τροφοδοτικό Arduino.
Επεξήγηση προγραμματισμού:
Πρώτα απ 'όλα, συμπεριλαμβάνουμε τα απαιτούμενα αρχεία κεφαλίδας στο πρόγραμμα και ορίζουμε bits για τις καρφίτσες ελέγχου και δεδομένων του GLCD.
#περιλαμβάνω
Μετά από αυτό, δημιουργήσαμε μια λειτουργία καθυστέρησης.
άκυρη καθυστέρηση (int itime) {int i, j; για (i = 0; i
Η λειτουργία void lcd_disp_on () χρησιμοποιείται για την ενεργοποίηση της οθόνης.
Το Function void setCursorY (int y) δημιουργείται για τη ρύθμιση της στήλης στο GLCD και το Function void setCursorX (int x) δημιουργείται για τη ρύθμιση της σελίδας στο GLCD. Το πλήρες αρχείο κώδικα δίνεται στην παρακάτω ενότητα Κωδικός.
Μετά τη ρύθμιση της στήλης και της σελίδας, έχουμε γράψει μια συνάρτηση για αποστολή εντολών και δεδομένων στο GLCD
άκυρο lcdprint (char dat, int size) {unsigned int i; για (i = 0; i
Στην κενή συνάρτηση () , διαγράψαμε το GLCD και μετά ορίσαμε τη στήλη και τη σελίδα. Μετά από αυτό, στείλτε δεδομένα σε LCD χρησιμοποιώντας τη λειτουργία void lcdprint (char dat, int size) .
κενή κύρια () {int x, y; P3 = 0xff; ενώ (1) {lcdclear (); για (y = 0; y <8; y ++) {για (x = 0; x <128; x ++) {lcd_disp_on (); setCursorX (y); setCursorY (x); lcdprint (εικόνα, x); }}…………………..
Ροή κώδικα:
- Πρώτα όταν ενεργοποιούμε το σύστημα, το πρόγραμμα διαγράφει το GLCD και ενεργοποιεί την οθόνη.
- Στη συνέχεια, ορίστε τον κέρσορα στη στήλη, από όπου θέλουμε να γράψουμε τα δεδομένα.
- Στη συνέχεια, ορίστε τον κέρσορα στη σελίδα, από όπου θέλουμε να γράψουμε τα δεδομένα.
- Τώρα το πρόγραμμα στέλνει δεδομένα στην επιλεγμένη τοποθεσία ένα προς ένα έως 128Χ8 φορές. Επειδή ένα GLCD έχει 8 σελίδες και 128 στήλες.