Τα πληκτρολόγια χρησιμοποιούνται ευρέως συσκευές εισόδου που χρησιμοποιούνται σε διάφορα ηλεκτρονικά και ενσωματωμένα έργα. Χρησιμοποιούνται για τη λήψη εισόδων με τη μορφή αριθμών και αλφάβητων και τροφοδοτούν το ίδιο σε σύστημα για περαιτέρω επεξεργασία. Σε αυτό το σεμινάριο πρόκειται να διασυνδέσουμε ένα πληκτρολόγιο 4x4 matrix με 8051 μικροελεγκτή.
Πληκτρολόγιο 4X4 Matrix
Προτού διασυνδέσουμε το πληκτρολόγιο με τον μικροελεγκτή, πρώτα πρέπει να καταλάβουμε πώς λειτουργεί. Το πληκτρολόγιο Matrix αποτελείται από σύνολο κουμπιών Push, τα οποία είναι διασυνδεδεμένα. Όπως στην περίπτωσή μας χρησιμοποιούμε πληκτρολόγιο matrix 4X4, στο οποίο υπάρχουν 4 κουμπιά σε κάθε μία από τις τέσσερις σειρές. Και οι ακροδέκτες των μπουτόν συνδέονται σύμφωνα με το διάγραμμα. Στην πρώτη σειρά, ένα τερματικό και από τα 4 κουμπιά συνδέονται μεταξύ τους και ένα άλλο τερματικό με 4 κουμπιά παριστάνει καθεμία από τις 4 στήλες, το ίδιο ισχύει για κάθε σειρά. Έχουμε λοιπόν 8 τερματικά για σύνδεση με έναν μικροελεγκτή.
Διεπαφή πληκτρολόγιο με μικροελεγκτή 8051 (AT89S52)
Πρώτα πρέπει να συνδέσουμε μια μονάδα LCD για να εμφανίσουμε τα δεδομένα που θα τροφοδοτούνται μέσω του KEYPAD, οπότε μεταβείτε στο άρθρο «LCD Interfacing with 8051 Microcontroller» πριν από τη διασύνδεση του KEYPAD.
Όπως φαίνεται στο παραπάνω διάγραμμα κυκλώματος, για τη διασύνδεση του πληκτρολογίου, πρέπει να συνδέσουμε 8 ακροδέκτες του πληκτρολογίου σε οποιαδήποτε θύρα (8 ακίδες) του μικροελεγκτή. Όπως έχουμε συνδέσει τους ακροδέκτες πληκτρολογίου στη θύρα 1 του 8051. Όποτε πατηθεί οποιοδήποτε κουμπί πρέπει να βρούμε τη θέση του κουμπιού, σημαίνει την αντίστοιχη ROW a COLUMN αρ. Μόλις λάβουμε την τοποθεσία του κουμπιού, μπορούμε να εκτυπώσουμε τον χαρακτήρα ανάλογα.
Τώρα το ερώτημα είναι πώς να πάρετε τη θέση του πατημένου κουμπιού; Θα το εξηγήσω στα παρακάτω βήματα και θέλω επίσης να κοιτάξετε τον κώδικα:
1. Πρώτα έχουμε κάνει όλες τις σειρές στο επίπεδο λογικής 0 και όλες τις στήλες στο επίπεδο λογικής 1.
2. Κάθε φορά που πατάμε ένα κουμπί, η στήλη και η γραμμή που αντιστοιχούν σε αυτό το κουμπί συντομεύονται και κάνουν την αντίστοιχη στήλη στο λογικό επίπεδο 0. Επειδή αυτή η στήλη συνδέεται (συντομεύεται) με τη γραμμή, η οποία βρίσκεται στο επίπεδο λογικής 0. Έτσι παίρνουμε το στήλη αρ. Δείτε την κύρια λειτουργία ().
3. Τώρα πρέπει να βρούμε τον αριθμό σειράς, οπότε έχουμε δημιουργήσει τέσσερις συναρτήσεις που αντιστοιχούν σε κάθε στήλη. Όπως εάν πατηθεί οποιοδήποτε κουμπί της στήλης, καλούμε τη συνάρτηση row_finder1 (), για να βρούμε τη σειρά αρ.
4. Στη συνάρτηση row_finder1 (), αντιστρέψαμε τα επίπεδα λογικής, σημαίνει τώρα όλες οι σειρές είναι 1 και οι στήλες είναι 0. Τώρα η σειρά του πιεσμένου κουμπιού πρέπει να είναι 0, επειδή έχει συνδεθεί (συντομευθεί) στη στήλη της οποίας το κουμπί είναι πατημένο και όλες οι στήλες έχουν λογική 0. Έτσι, σαρώσαμε όλες τις σειρές για 0.
5. Έτσι, όποτε βρίσκουμε τη Σειρά στη λογική 0, αυτό σημαίνει ότι είναι η σειρά του πατημένου κουμπιού. Τώρα έχουμε τη στήλη αρ. (Μπήκα στο βήμα 2) και τη σειρά αριθ. Και μπορούμε να εκτυπώσουμε τον αριθμό. αυτού του κουμπιού χρησιμοποιώντας τη συνάρτηση lcd_data.
Ακολουθεί η ίδια διαδικασία για κάθε πάτημα των κουμπιών και χρησιμοποιούμε ενώ (1), για να ελέγξουμε συνεχώς, εάν το κουμπί πατηθεί ή όχι