Sicherheit ist ein wichtiges Anliegen in unserem täglichen Leben, und digitale Schlösser sind zu einem wichtigen Bestandteil dieser Sicherheitssysteme geworden. Es gibt viele Arten von Technologien, die unseren Platz sichern, wie PIR-basierte Sicherheitssysteme, RFID-basierte Sicherheitssysteme, Lasersicherheitsalarme, Biomatrixsysteme usw. Schon jetzt gibt es digitale Schlösser, die mit unseren Smartphones bedient werden können mehr müssen unterschiedliche Schlüssel behalten, nur ein Smartphone kann alle Schlösser bedienen, dieses Konzept basiert auf dem Internet der Dinge.
In diesem Projekt haben wir eine einfache elektronische Codesperre mit 8051 Microcontorller erklärt, die nur durch einen vordefinierten Code entsperrt werden kann. Wenn wir den falschen Code eingeben, alarmiert das System per Sirene den Summer. Wir haben bereits ein digitales Schloss mit Arduino erstellt.
Arbeitserklärung:
Dieses System enthält hauptsächlich den Mikrocontroller AT89S52, das Tastaturmodul, den Summer und das LCD. Der At89s52-Mikrocontroller steuert die gesamten Prozesse wie das Erfassen des Kennworts über das Tastaturmodul, das Vergleichen von vordefinierten Kennwörtern, das Ansteuern des Summers und das Senden des Status an das LCD-Display. Die Tastatur dient zum Einfügen eines Passworts in den Mikrocontroller. Der Summer dient zur Anzeige eines falschen Passworts und das LCD zur Anzeige des Status oder der Meldungen. Buzzer hat einen eingebauten Treiber unter Verwendung eines NPN-Transistors.
Komponenten:
- 8051 Mikrocontroller (AT89S52)
- 4X4 Tastaturmodul
- Summer
- 16x2 LCD
- Widerstand (1k, 10k)
- Pullup-Widerstand (10K)
- Kondensator (10uf)
- Rot führte
- Brotbrett
- IC 7805
- 11,0592 MHz Kristall
- Energieversorgung
- Kabel anschließen
Eingabe von der 4X4-Tastaturmatrix mithilfe der Multiplexing-Technik:
In dieser Schaltung haben wir die Multiplextechnik verwendet, um die Tastatur mit dem 8051-Mikrocontroller zu verbinden und das Passwort in das System einzugeben. Hier verwenden wir eine 4x4-Tastatur mit 16 Tasten. Wenn wir 16 Schlüssel verwenden möchten, benötigen wir 16 Pins für den Anschluss an 89s52, aber in der Multiplextechnik müssen wir nur 8 Pins für die Verbindung von 16 Schlüsseln verwenden. Damit ist es eine clevere Möglichkeit, das Tastaturmodul anzuschließen.
Die Multiplexing-Technik ist eine sehr effiziente Methode, um die Anzahl der Pins zu reduzieren, die mit dem Mikrocontroller zur Bereitstellung der Eingabe oder des Kennworts verwendet werden. Grundsätzlich wird diese Technik auf zwei Arten verwendet - eine ist das Zeilenscannen und die andere das Spaltenscannen.
Hier erklären wir das Scannen von Zeilen:
Zuerst müssen wir 8 Pin für das Tastaturmodul definieren. In denen die ersten 4 Pins Spalten und die letzten 4 Pins Zeilen sind.
Für das Zeilenscannen müssen wir den Spaltenstiften Daten oder Signale geben und diese Daten oder Signale vom Zeilenstift lesen. Nehmen wir nun an, wir geben den Spaltenstiften die folgenden Daten:
C1 = 0;
C2 = 1;
C3 = 1;
C4 = 1;
Und wir lesen diese Daten an den Zeilenstiften (standardmäßig sind die Zeilenstifte aufgrund des Pull-up-Widerstands HOCH).
Wenn der Benutzer die Taste '1' drückt, ändert R1 HIGH in LOW, was bedeutet, dass R1 = 0 ist; und der Controller versteht, dass der Benutzer die Taste '1' gedrückt hat. Und es druckt '1' auf dem LCD und speichert '1' im Array. Diese Änderung von HIGH nach LOW bei R1 ist die Hauptsache, unter der der Controller versteht, dass eine Taste, die Spalte 1 entspricht, gedrückt wurde.
Wenn der Benutzer die Taste '2' drückt, bleibt R1 auf HIGH, da C1 und R1 beide bereits auf HIGH sind. Daher wird es keine Änderung geben. Dies bedeutet, dass der Mikrocontroller versteht, dass in Spalte 1 nichts gedrückt wurde. Und ebenso gilt dieses Prinzip für alle anderen Stifte. In diesem Schritt wartet der Controller nur auf die Schlüssel in Spalte 1: '1', '4', '7' und '*'.
Wenn wir nun die Schlüssel in anderen Spalten verfolgen möchten (wie in Spalte 2), müssen wir die Daten an den Spaltenstiften ändern:
C1 = 1;
C2 = 0;
C3 = 1;
C4 = 1;
Dieser Zeitregler wartet nur auf die Tasten in Spalte zwei: '2', '5', '8' und '0', da eine Änderung (HIGH to LOW) nur erfolgt, wenn die Tasten in Spalte zwei gedrückt werden. Wenn wir eine Taste in Spalte 1, 3 oder 4 drücken, erfolgt keine Änderung, da diese Spalten auf HIGH stehen und die Zeilen bereits auf HIGH stehen.
Ebenso können Schlüssel in Spalte C3 und C4 verfolgt werden, indem sie jeweils auf 0 gesetzt werden. Überprüfen Sie hier die ausführliche Erklärung: Tastaturschnittstelle mit 8051. Lesen Sie auch den folgenden Abschnitt Code, um die Logik richtig zu verstehen.
Schaltungserklärung:
Der Schaltplan für diese digitale Sperre mit 8051 wurde unten gezeigt und ist leicht zu verstehen. Die Spaltenstifte des Tastaturmoduls sind direkt mit Pin P0.0, P0.1, P0.2, P0.3 verbunden, und die Zeilenstifte sind mit P0.4, P0.5, P0.6, P0.7 des Ports 0 des 89s52-Mikrocontrollers verbunden Ein 16x2-LCD ist im 4-Bit-Modus mit dem 89s52-Mikrocontroller verbunden. Die Steuerstifte RS, RW und En sind direkt mit den Stiften P1.0, GND und P1.2 verbunden. Der Datenstift D4-D7 ist mit den Stiften P1.4, P1.5, P1.6 und P1.7 von 89s52 verbunden. Ein Summer ist an Pin P2.6 über einen Widerstand angeschlossen.
Programmerklärung:
Wir haben im Programm ein vordefiniertes Passwort verwendet. Dieses Passwort kann vom Benutzer im folgenden Code definiert werden. Wenn der Benutzer ein Kennwort für das System eingibtAnschließend vergleicht das System das vom Benutzer eingegebene Kennwort mit dem im Programmcode gespeicherten oder vordefinierten Kennwort. Wenn eine Übereinstimmung auftritt, zeigt das LCD "Access Grated" an, und wenn das Passwort nicht übereinstimmt, zeigt das LCD "Access Denied" an und der Summer piept einige Zeit lang ununterbrochen. Hier haben wir die Bibliothek string.h verwendet. Mit dieser Bibliothek können wir zwei Zeichenfolgen mit der Funktion „strncmp“ vergleichen oder abgleichen.
Im Programm enthalten wir zunächst eine Header-Datei und definieren Variablen- und Eingabe- und Ausgabepins für Tastatur und LCD.
#einschließen
Es wurde eine Funktion zum Erstellen der Verzögerung von 1 Sekunde erstellt, zusammen mit einigen LCD-Funktionen wie zum Beispiel zur LCD-Initialisierung, zum Drucken der Zeichenfolge, für Befehle usw. Sie können sie leicht im Code finden. In diesem Artikel finden Sie Informationen zur LCD-Schnittstelle mit 8051 und seinen Funktionen.
Danach haben wir im Hauptprogramm LCD initialisiert und dann lesen wir die Eingabe von der Tastatur mit der Funktion keypad () und speichern die Eingabetasten in einem Array und vergleichen sie dann mit strncmp aus vordefinierten Array-Daten.
void main () {Summer = 1; lcd_init (); lcdstring ("elektronischer Code"); lcdcmd (0xc0); lcdstring ("Lock System"); Verzögerung (400); lcdcmd (1); lcdstring ("Circuit Digest"); Verzögerung (400); während (1) {i = 0; Tastenfeld(); if (strncmp (pass, "4201", 4) == 0)
Wenn das eingegebene Passwort übereinstimmt, wird die Funktion accept () aufgerufen:
void accept () {lcdcmd (1); lcdstring ("Willkommen"); lcdcmd (192); lcdstring ("Passwort akzeptieren"); Verzögerung (200); }}
Und wenn das Passwort falsch ist, wird die Funktion false () aufgerufen:
void false () {Summer = 0; lcdcmd (1); lcdstring ("Falscher Passkey"); lcdcmd (192); lcdstring ("PLZ Try Again"); Verzögerung (200); Summer = 1; }}
Überprüfen Sie die Tastaturfunktion unten im Code, der das Tastaturmodul des Eingabeformulars liest.