Σε αυτό το σεμινάριο πρόκειται να συνδέσουμε ένα πληκτρολόγιο 4x4 (πλήκτρο 16) με μικροελεγκτή ATMEGA32A. Γνωρίζουμε ότι το πληκτρολόγιο είναι μία από τις πιο σημαντικές συσκευές εισόδου που χρησιμοποιούνται σε έργα ηλεκτρονικών. Το πληκτρολόγιο είναι ένας από τους ευκολότερους τρόπους για να δώσετε εντολές ή οδηγίες σε ένα ηλεκτρονικό σύστημα.
Απαιτούμενα στοιχεία
Υλικό: ATMEGA32, τροφοδοτικό (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16 * 2LCD), 100uF πυκνωτής, 100nF πυκνωτής, 10KΩ αντίσταση (8 τεμάχια).
Λογισμικό: Atmel studio 6.1 ή Atmel studio 6.2, progisp ή flash magic.
Διάγραμμα κυκλώματος και εξήγηση εργασίας
Στο κύκλωμα, το PORTB του ATMEGA32 είναι συνδεδεμένο με LCD θύρα δεδομένων. Εδώ πρέπει να θυμόμαστε να απενεργοποιήσουμε την επικοινωνία JTAG στο PORTC ή ATMEGA αλλάζοντας τα bytes ασφάλειας, εάν θέλει να χρησιμοποιήσει το PORTC ως κανονική θύρα επικοινωνίας. Σε LCD 16x2 υπάρχουν 16 ακίδες πάνω από όλα αν υπάρχει οπίσθιο φως, εάν δεν υπάρχει πίσω φως θα υπάρχουν 14 ακίδες. Κάποιος μπορεί να τροφοδοτήσει ή να αφήσει τις πίσω ακίδες. Τώρα στις 14 ακίδες υπάρχουν 8 καρφίτσες δεδομένων (7-14 ή D0-D7), 2 καρφίτσες τροφοδοσίας (1 & 2 ή VSS & VDD ή gnd & + 5v), 3ος ακροδέκτης για έλεγχο αντίθεσης (VEE-ελέγχει πόσο παχύ πρέπει να είναι οι χαρακτήρες φαίνεται) και 3 ακίδες ελέγχου (RS & RW & E).
Στο κύκλωμα, μπορείτε να παρατηρήσετε ότι έχω πάρει μόνο δύο πείρους ελέγχου, αυτό δίνει την ευελιξία, το bit αντίθεσης και το READ / WRITE δεν χρησιμοποιούνται συχνά, ώστε να μπορούν να βραχυκυκλωθούν στη γείωση. Αυτό θέτει την οθόνη LCD σε υψηλότερη αντίθεση και λειτουργία ανάγνωσης. Πρέπει απλώς να ελέγξουμε ENABLE και RS καρφίτσες για να στείλουμε ανάλογα χαρακτήρες και δεδομένα.
Οι συνδέσεις που γίνονται για LCD δίνονται παρακάτω:
PIN1 ή VSS στη γείωση
PIN2 ή VDD ή VCC σε ισχύ + 5v
PIN3 ή VEE στη γείωση (δίνει τη μέγιστη αντίθεση καλύτερα για έναν αρχάριο)
PIN4 ή RS (Επιλογή καταχώρησης) στο PD6 του uC
Το PIN5 ή το RW (Ανάγνωση / Εγγραφή) στη γείωση (θέτει την οθόνη LCD σε λειτουργία ανάγνωσης διευκολύνει την επικοινωνία για τον χρήστη)
PIN6 ή E (Ενεργοποίηση) σε PD5 του uC
PIN7 ή D0 έως PB0 του uC
PIN8 ή D1 έως PB1 του uC
PIN9 ή D2 έως PB2 του uC
PIN10 ή D3 έως PB3 του uC
PIN11 ή D4 έως PB4 του uC
PIN12 ή D5 έως PB5 του uC
PIN13 ή D6 έως PB6 του uC
PIN14 ή D7to PB7 του uC
Στο κύκλωμα μπορείτε να δείτε ότι έχουμε χρησιμοποιήσει επικοινωνία 8bit (D0-D7), αλλά αυτό δεν είναι υποχρεωτικό, μπορούμε να χρησιμοποιήσουμε την επικοινωνία 4bit (D4-D7), αλλά με το πρόγραμμα επικοινωνίας 4 bit γίνεται λίγο περίπλοκο. Έτσι, από την απλή παρατήρηση του παραπάνω πίνακα, συνδέουμε 10 ακίδες LCD με ελεγκτή, όπου 8 ακίδες είναι καρφίτσες δεδομένων και 2 ακίδες για έλεγχο.
Τώρα ας μιλήσουμε για το πληκτρολόγιο, το πληκτρολόγιο δεν είναι τίποτα άλλο από τα πλήκτρα πολυπλεξίας. Τα κουμπιά συνδέονται σε μορφή πολυπλεξίας για τη μείωση της χρήσης του συστήματος ελέγχου.
Ας υποθέσουμε ότι έχουμε ένα πληκτρολόγιο 4x4, σε αυτό το πληκτρολόγιο έχουμε 16 κουμπιά, σε κανονικές περιπτώσεις χρειαζόμαστε 16 καρφίτσες χειριστηρίου για διασύνδεση 16 κουμπιών, αλλά αυτό δεν είναι καλό από την άποψη του συστήματος ελέγχου. Αυτή η χρήση καρφιτσών μπορεί να μειωθεί συνδέοντας τα κουμπιά σε μορφή πολλαπλών πινάκων.
Για παράδειγμα, θεωρήστε ότι έχουμε 16 κουμπιά και θέλουμε να το συνδέσουμε σε έναν ελεγκτή για να σχηματίσουμε ένα πληκτρολόγιο, αυτά τα πλήκτρα τακτοποιούνται όπως φαίνεται στην εικόνα:
Αυτά τα κουμπιά συνδέονται με κοινές στήλες όπως φαίνεται στο σχήμα:
Όπως φαίνεται στην εικόνα, τα μη σημαδεμένα άκρα κάθε τεσσάρων κουμπιών σύρονται για να σχηματίσουν μια στήλη και έτσι για 16 πλήκτρα έχουμε τέσσερις στήλες.
Εάν ξεχάσουμε τις παραπάνω συνδέσεις στηλών και συνδέσαμε τα κοινά μαρκαρισμένα άκρα κάθε τεσσάρων κουμπιών μαζί για να σχηματίσουμε μια σειρά:
Όπως φαίνεται στο σχήμα, για 16 πλήκτρα θα έχουμε τέσσερις σειρές όπως φαίνεται στο σχήμα.
Τώρα, όταν φαίνονται και οι δύο μαζί, έχουμε κάτι σαν το παρακάτω κύκλωμα:
Εδώ έχουμε συνδέσει 16 πλήκτρα σε μορφή πολυπλεξίας, ώστε να μειώσουμε τη χρήση των πινάκων του ελεγκτή. Σε σύγκριση με την πρώτη περίπτωση συνδεδεμένων 16 πλήκτρων χρειαζόμασταν 16 πινέζες στον ελεγκτή, αλλά τώρα μετά την πολυπλεξία χρειαζόμαστε απλά 8 ακίδες του ελεγκτή για να συνδέσουμε 16 κλειδιά.
Κανονικά αυτό είναι που παρουσιάζεται μέσα σε ένα πληκτρολόγιο:
Όπως φαίνεται στην παραπάνω εικόνα υπάρχουν 16 πλήκτρα στο παραπάνω πληκτρολόγιο και κάθε ένα από αυτά τα πλήκτρα αντιπροσωπεύει ένα κουμπί στη διαμόρφωση πολλαπλών κουμπιών. Επίσης, υπάρχουν συνδέσεις 8 ακίδων όπως φαίνεται στην παραπάνω εικόνα που συμβολίζει την πολυπλεξική σύνδεση.
Τώρα για εργασία:
Το πληκτρολόγιο εδώ έχει τέσσερις στήλες και τέσσερις σειρές, για αναγνώριση πατημένου κουμπιού, θα χρησιμοποιήσουμε τη μέθοδο παραπομπής. Εδώ πρώτα θα συνδέσουμε είτε όλες τις στήλες είτε όλες τις σειρές στο vcc, οπότε αν οι σειρές είναι συνδεδεμένες σε κοινό vcc, θα πάρουμε τις στήλες ως εισόδους στον ελεγκτή.
Τώρα εάν πατηθεί το κουμπί, όπως φαίνεται στο σχήμα:
Μετά από αυτό, ένα ρεύμα ρέει μέσω του κυκλώματος όπως φαίνεται στο παρακάτω σχήμα:
Έχουμε λοιπόν υψηλό C1, για ένα πάτημα του κουμπιού. Αυτή τη στιγμή, πρόκειται να αλλάξουμε τις θύρες ισχύος και εισόδου, δηλαδή να ενεργοποιήσουμε τις στήλες και να πάρουμε σειρές ως εισόδους, Με αυτό, θα υπάρξει ροή ισχύος όπως φαίνεται στο παρακάτω σχήμα:
Έτσι, για τη σειρά έχουμε υψηλό R1.
Από τώρα έχουμε C1 υψηλό στην πρώτη περίπτωση και R1 υψηλό στη δεύτερη περίπτωση, οπότε έχουμε θέση μήτρας του κουμπιού εξ ου και ο αριθμός «ένα».
Εάν πατηθεί το δεύτερο κουμπί, θα έχουμε C1 ως στήλη, αλλά η υψηλή λογική που έχουμε στην κοινή στήλη θα είναι «R2». Έτσι θα έχουμε C1 και R2, επομένως θα έχουμε θέση μήτρας από το δεύτερο κουμπί
Έτσι θα γράψουμε το πρόγραμμα, θα συνδέσουμε οκτώ ακίδες του πληκτρολογίου σε οκτώ ακίδες του ελεγκτή. Και για εκκίνηση ενεργοποιούμε τέσσερις ακίδες του ελεγκτή για τροφοδοσία τεσσάρων σειρών πληκτρολογίου, αυτή τη στιγμή οι άλλες τέσσερις ακίδες λαμβάνονται ως είσοδοι. Όταν πατηθεί το κουμπί, ο αντίστοιχος πείρος στήλης τραβιέται προς τα πάνω και έτσι ο πείρος χειριστηρίου τραβιέται προς τα πάνω, θα αναγνωριστεί ότι αλλάζει την είσοδο σε ισχύ και ισχύ στην είσοδο, οπότε θα έχουμε σειρές ως εισόδους.
Με αυτόν τον τρόπο πατάμε το κουμπί από τον χρήστη. Αυτή η διεύθυνση matrix κατευθύνεται στον αντίστοιχο αριθμό και αυτός ο αριθμός εμφανίζεται στην οθόνη LCD.
Η εργασία της διασύνδεσης πληκτρολογίου με τον μικροελεγκτή avr εξηγείται βήμα προς βήμα στον κώδικα C που δίνεται παρακάτω Μπορείτε επίσης να ελέγξετε: διεπαφή πληκτρολογίου με 8051 μικροελεγκτή.