In diesem Tutorial werden wir eine 4x4-Tastatur (16 Tasten) mit dem ATMEGA32A-Mikrocontroller verbinden. Wir wissen, dass die Tastatur eines der wichtigsten Eingabegeräte für Elektronikprojekte ist. Die Tastatur ist eine der einfachsten Möglichkeiten, einem elektronischen System Befehle oder Anweisungen zu geben.
Erforderliche Komponenten
Hardware: ATMEGA32, Netzteil (5 V), AVR-ISP-PROGRAMMER, JHD_162ALCD (16 * 2LCD), 100 uF-Kondensator, 100 nF-Kondensator, 10 kΩ-Widerstand (8 Stück).
Software: Atmel Studio 6.1 oder Atmel Studio 6.2, Progisp oder Flash Magic.
Schaltplan und Arbeitserklärung
In der Schaltung ist PORTB von ATMEGA32 mit dem Datenport-LCD verbunden. Hier sollte man daran denken, die JTAG-Kommunikation in PORTC oder ATMEGA durch Ändern der Sicherungsbytes zu deaktivieren, wenn man PORTC als normalen Kommunikationsport verwenden möchte. Im 16x2-LCD gibt es insgesamt 16 Pins, wenn eine Hintergrundbeleuchtung vorhanden ist. Wenn keine Hintergrundbeleuchtung vorhanden ist, gibt es 14 Pins. Man kann die Gegenlichtstifte mit Strom versorgen oder belassen. Nun in den 14 Stiften sind 8 Datenstifte (7-14 oder D0-D7), 2 Stromversorgungsstifte (1, 2 oder VSS & VDD oder GND & + 5 V), 3 rd Stift für die Kontraststeuerung (VEE-Kontrollen, wie dick sollten die Zeichen gezeigt) und 3 Steuerstifte (RS & RW & E).
In der Schaltung kann man beobachten, dass ich nur zwei Steuerstifte genommen habe, dies gibt die Flexibilität, das Kontrastbit und READ / WRITE werden nicht oft verwendet, so dass sie gegen Masse kurzgeschlossen werden können. Dies versetzt das LCD in den höchsten Kontrast- und Lesemodus. Wir müssen nur die ENABLE- und RS-Pins steuern, um Zeichen und Daten entsprechend zu senden.
Die Verbindungen, die für LCD hergestellt werden, sind unten angegeben:
PIN1 oder VSS gegen Masse
PIN2 oder VDD oder VCC auf +5V
PIN3 oder VEE gegen Masse (bietet maximalen Kontrast am besten für Anfänger)
PIN4 oder RS (Registerauswahl) an PD6 von uC
PIN5 oder RW (Lesen / Schreiben) nach Masse (versetzt das LCD in den Lesemodus, erleichtert die Kommunikation für den Benutzer)
PIN6 oder E (Aktivieren) zu PD5 von uC
PIN7 oder D0 bis PB0 von uC
PIN8 oder D1 bis PB1 von uC
PIN9 oder D2 bis PB2 von uC
PIN10 oder D3 bis PB3 von uC
PIN11 oder D4 bis PB4 von uC
PIN12 oder D5 bis PB5 von uC
PIN13 oder D6 bis PB6 von uC
PIN14 oder D7 bis PB7 von uC
In der Schaltung können Sie sehen, dass wir 8-Bit-Kommunikation (D0-D7) verwendet haben, dies ist jedoch nicht obligatorisch, wir können 4-Bit-Kommunikation (D4-D7) verwenden, aber mit 4-Bit-Kommunikationsprogramm wird ein Bit komplex. Aus der bloßen Beobachtung der obigen Tabelle schließen wir also 10 Pins des LCD an den Controller an, wobei 8 Pins Datenpins und 2 Pins zur Steuerung sind.
Lassen Sie uns nun über die Tastatur sprechen. Die Tastatur ist nichts anderes als Multiplex-Tasten. Die Tasten sind in einer Multiplexform verbunden, um die Pin-Verwendung des Steuerungssystems zu reduzieren.
Stellen Sie sich vor, wir haben eine 4x4-Tastatur. In dieser Tastatur haben wir 16 Tasten. Im Normalfall benötigen wir 16 Controller-Pins, um 16 Tasten anzuschließen. Dies ist jedoch aus Sicht des Steuerungssystems nicht gut. Diese Pin-Nutzung kann reduziert werden, indem die Tasten in Multiplexform angeschlossen werden.
Angenommen, wir haben 16 Tasten und möchten diese an eine Steuerung anschließen, um eine Tastatur zu bilden. Diese Tasten sind wie in der Abbildung dargestellt angeordnet:
Diese Schaltflächen sind wie in der Abbildung gezeigt durch gemeinsame Spalten verbunden:
Wie in der Abbildung gezeigt, werden nicht markierte Enden von jeweils vier Schaltflächen zusammengezogen, um eine Spalte zu bilden. Für 16 Tasten haben wir also vier Spalten.
Wenn wir die obigen Spaltenverbindungen vergessen und gemeinsame markierte Enden von jeweils vier Schaltflächen miteinander verbunden haben, um eine Zeile zu bilden:
Wie in der Abbildung gezeigt, haben wir für 16 Schlüssel vier Zeilen, wie in der Abbildung gezeigt.
Wenn beide zusammen gesehen werden, erhalten wir so etwas wie die folgende Schaltung:
Hier haben wir 16 Schlüssel in Multiplexform angeschlossen, um die Pin-Nutzung des Controllers zu reduzieren. Im Vergleich zum ersten Fall von verbundenen 16 Schlüsseln benötigten wir 16 Pins am Controller, aber nach dem Multiplexen benötigen wir einfach 8 Pins des Controllers, um 16 Schlüssel zu verbinden.
Normalerweise wird dies in einer Tastatur angezeigt:
Wie in der obigen Abbildung gezeigt, befinden sich 16 Tasten auf der obigen Tastatur, und jede dieser Tasten repräsentiert eine Taste in der Multiplex-Tastenkonfiguration. Außerdem gibt es 8-polige Verbindungen, wie in der obigen Abbildung gezeigt, die eine Multiplexverbindung symbolisieren.
Nun zum Arbeiten:
Die Tastatur hat hier vier Spalten und vier Zeilen. Zur Identifizierung der gedrückten Taste verwenden wir die Querverweismethode. Hier verbinden wir zuerst entweder alle Spalten oder alle Zeilen mit vcc. Wenn also Zeilen mit gemeinsamem vcc verbunden sind, nehmen wir die Spalten als Eingaben für den Controller.
Wenn nun die erste Taste wie in der Abbildung gezeigt gedrückt wird:
Danach fließt ein Strom durch die Schaltung, wie in der folgenden Abbildung gezeigt:
Wir haben also C1 hoch für einen Knopfdruck. In diesem Moment werden wir die Stromversorgungs- und Eingangsanschlüsse verschieben, dh wir werden die Spalten mit Strom versorgen und Zeilen als Eingänge verwenden.
Auf diese Weise entsteht ein Stromfluss, wie in der folgenden Abbildung dargestellt:
Für die Reihe haben wir also R1 hoch.
Ab sofort haben wir C1 hoch im ersten Fall und R1 hoch im zweiten Fall, also haben wir die Matrixposition der Taste, daher die Nummer "Eins".
Wenn die zweite Taste gedrückt wird, haben wir C1 als Spalte, aber die hohe Logik, die wir in der gemeinsamen Spalte erhalten, ist 'R2'. Wir haben also C1 und R2, also haben wir die Matrixposition der zweiten Taste.
So schreiben wir das Programm, wir verbinden acht Pins der Tastatur mit acht Pins des Controllers. Und zu Beginn versorgen wir vier Pins des Controllers mit Strom, um vier Reihen der Tastatur mit Strom zu versorgen. Zu diesem Zeitpunkt werden die anderen vier Pins als Eingänge verwendet. Wenn die Taste gedrückt wird, wird der entsprechende Spaltenstift nach oben gezogen, und der Controller-Stift wird nach oben gezogen. Dies wird erkannt, um den Eingang auf Leistung und die Leistung auf Eingang zu ändern, sodass Zeilen als Eingänge vorhanden sind.
Dadurch wird der Knopf vom Benutzer gedrückt. Diese Matrixadressen sind an die entsprechende Nummer gerichtet, und diese Nummer wird auf dem LCD angezeigt.
Die Funktionsweise der Tastaturschnittstelle mit einem AVR-Mikrocontroller wird Schritt für Schritt im unten angegebenen C-Code erläutert. Sie können auch Folgendes überprüfen: Tastaturschnittstelle mit 8051-Mikrocontroller.