Tastaturen sind weit verbreitete Eingabegeräte, die in verschiedenen Elektronik- und Embedded-Projekten verwendet werden. Sie werden verwendet, um Eingaben in Form von Zahlen und Albhabets vorzunehmen und diese zur weiteren Verarbeitung in das System einzuspeisen. In diesem Tutorial werden wir eine 4x4-Matrixtastatur mit dem 8051-Mikrocontroller verbinden.
4X4 Matrix Tastatur
Bevor wir die Tastatur mit dem Mikrocontroller verbinden, müssen wir zunächst verstehen, wie sie funktioniert. Die Matrixtastatur besteht aus einer Reihe von Drucktasten, die miteinander verbunden sind. Wie in unserem Fall verwenden wir die 4X4-Matrixtastatur, in der sich in jeder der vier Zeilen 4 Drucktasten befinden. Und die Klemmen der Drucktasten sind gemäß Diagramm verbunden. In der ersten Zeile ist ein Anschluss aller 4 Drucktasten miteinander verbunden, und ein weiterer Anschluss mit 4 Drucktasten repräsentiert jede der 4 Spalten. Gleiches gilt für jede Zeile. Wir haben also 8 Terminals für die Verbindung mit einem Mikrocontroller.
Schnittstelle zur Tastatur mit dem 8051-Mikrocontroller (AT89S52)
Zuerst müssen wir ein LCD-Modul anschließen, um die Daten anzuzeigen, die über KEYPAD übertragen werden. Lesen Sie daher bitte den Artikel „LCD-Schnittstelle mit 8051-Mikrocontroller“, bevor Sie KEYPAD anschließen.
Wie im obigen Schaltplan gezeigt, müssen zur Schnittstelle der Tastatur 8 Anschlüsse der Tastatur an einen beliebigen Port (8 Pins) des Mikrocontrollers angeschlossen werden. Wie wir Tastaturanschlüsse an Port 1 von 8051 angeschlossen haben. Immer wenn eine Taste gedrückt wird, müssen wir die Position der Taste ermitteln, dh die entsprechende REIHE eine SPALTEN-Nr. Sobald wir die Position der Schaltfläche erhalten haben, können wir das Zeichen entsprechend drucken.
Die Frage ist nun, wie man die Position des gedrückten Knopfes erhält. Ich werde dies in den folgenden Schritten erklären und möchte auch, dass Sie sich den Code ansehen:
1. Zuerst haben wir alle Zeilen auf Logikebene 0 und alle Spalten auf Logikebene 1 gesetzt.
2. Immer wenn wir eine Taste drücken, werden Spalte und Zeile, die dieser Taste entsprechen, kurzgeschlossen und die entsprechende Spalte auf Logikebene 0 gebracht. Da diese Spalte mit der Zeile verbunden (kurzgeschlossen) wird, die sich auf Logikebene 0 befindet Spalte Nr. Siehe main () -Funktion.
3. Jetzt müssen wir die Zeilennummer finden, also haben wir vier Funktionen erstellt, die jeder Spalte entsprechen. Wenn eine Taste in Spalte 1 gedrückt wird, rufen wir die Funktion row_finder1 () auf, um die Zeilennummer zu finden.
4. In der Funktion row_finder1 () haben wir die Logikpegel umgekehrt, dh jetzt sind alle Zeilen 1 und die Spalten 0. Jetzt sollte die Zeile der gedrückten Taste 0 sein, da sie mit der Spalte verbunden (kurzgeschlossen) wurde, deren Taste gedrückt wird und alle Spalten haben die Logik 0. Wir haben also alle Zeilen nach 0 durchsucht.
5. Wenn wir also die Zeile bei logisch 0 finden, bedeutet dies, dass dies die Zeile der gedrückten Taste ist. Jetzt haben wir also Spalte Nr. (In Schritt 2) und Zeilennummer, und wir können Nr. Drucken. dieser Schaltfläche mit der Funktion lcd_data.
Das gleiche Verfahren wird für jeden Tastendruck angewendet, und wir verwenden while (1), um kontinuierlich zu überprüfen, ob die Taste gedrückt ist oder nicht.