La seguretat és una preocupació important en el nostre dia a dia i els panys digitals s’han convertit en una part important d’aquests sistemes de seguretat. Hi ha molts tipus de tecnologies disponibles per protegir el nostre lloc, com ara sistemes de seguretat basats en PIR, sistemes de seguretat basats en RFID, alarmes de seguretat làser, sistemes bio-matricials, etc. Fins i tot ara hi ha panys digitals que es poden utilitzar amb els nostres telèfons intel·ligents, més necessitat de mantenir claus diferents, només un telèfon intel·ligent pot accionar tots els panys, aquest concepte es basa en Internet de les coses.
En aquest projecte, hem explicat un simple bloqueig de codi electrònic amb 8051 Microcontorller, que només es pot desbloquejar mitjançant un codi predefinit, si introduïm un codi incorrecte, el sistema avisa per sirena el brunzidor. Ja hem creat un pany digital amb Arduino.
Explicació de treball:
Aquest sistema conté principalment microcontrolador AT89S52, mòdul de teclat, timbre i pantalla LCD. El microcontrolador At89s52 controla els processos complets com prendre el mòdul de teclat del formulari de contrasenya, comparar contrasenyes predefinides de contrasenyes, conduir el brunzidor i enviar l’estat a la pantalla LCD. El teclat s'utilitza per inserir contrasenyes al microcontrolador. El buzzer s’utilitza per indicar una contrasenya incorrecta i el LCD s’utilitza per mostrar l’estat o els missatges. Buzzer té un controlador incorporat mitjançant un transistor NPN.

Components:
- Microcontrolador 8051 (AT89S52)
- Mòdul de teclat 4X4
- Zumbador
- LCD de 16x2
- Resistència (1k, 10k)
- Resistència de tracció (10K)
- Condensador (10uf)
- Led vermell
- Taula de pa
- IC 7805
- Cristall de 11,0592 MHz
- Font d'alimentació
- Connexió de cables
Captura d’informació de la matriu del teclat 4X4 mitjançant la tècnica de multiplexació:
En aquest circuit hem utilitzat la tècnica de multiplexació per connectar el teclat al microcontrolador 8051, per introduir la contrasenya al sistema. Aquí fem servir un teclat 4x4 que té 16 tecles. Si volem utilitzar 16 tecles, necessitarem 16 pins per a la connexió a 89s52, però en tècnica de multiplexació només haurem d’utilitzar 8 pins per connectar 16 tecles. De manera que és una manera intel·ligent d’interfaçar el mòdul del teclat.

La tècnica de multiplexació és una manera molt eficient de reduir el nombre de pins utilitzats amb el microcontrolador per proporcionar l'entrada o contrasenya. Bàsicament, aquesta tècnica s'utilitza de dues maneres: una és l' escaneig de files i l'altra és l' escaneig de columnes.
Aquí explicarem l'escaneig de files:
Primer hem de definir 8 pins per al mòdul del teclat. En què els primers 4 pins són columna i els darrers 4 pins són files.


Per a l’escaneig de files, hem de donar dades o senyal als pins de les columnes i llegir aquestes dades o senyals dels pins de fila. Ara suposem que donem a continuació les dades als pins de les columnes:
C1 = 0;
C2 = 1;
C3 = 1;
C4 = 1;
I llegim aquestes dades als pins de fila (per defecte els pins de fila són ALTS a causa de la resistència de tracció).
Si l'usuari prem la tecla número '1', llavors R1 canvia ALTA a BAIX significa R1 = 0; i el controlador entén que l'usuari ha premut la tecla '1'. I imprimirà "1" a la pantalla LCD i emmagatzemarà "1" a la matriu. Per tant, aquest canvi d’ALTA a BAIXA a R1 és el principal pel qual el controlador entén que s’ha premut alguna tecla, corresponent a la columna 1.
Ara, si l'usuari prem la tecla número '2', llavors R1 es manté a HIGH, ja que C1 i R1 ja estan a HIGH. Per tant, no hi haurà canvis, vol dir que el microcontrolador entén que no s'ha premut res a la primera columna. I de la mateixa manera, aquest principal val per a tots els altres pins. Així, en aquest pas, el controlador només espera les claus de la columna primera: '1', '4', '7' i '*'.
Ara bé, si volem fer un seguiment de les claus d’altres columnes (com a la columna 2), hem de canviar les dades als pins de les columnes:
C1 = 1;
C2 = 0;
C3 = 1;
C4 = 1;
Aquest controlador de temps només espera les tecles de la columna segona: "2", "5", "8" i "0", perquè el canvi (D'ALTA a BAIXA) només es produeix quan es premen les dues tecles de la columna. Si premem qualsevol tecla a les columnes 1, 3 o 4, no es produirà cap canvi, perquè aquestes columnes són a HIGH i les files ja són a HIGH.
Així, també es poden fer un seguiment de les claus de les columnes C3 i C4 fent-les 0, alhora. Consulteu aquí l'explicació detallada: Interfície del teclat amb 8051. També aneu a la secció Codi següent per entendre correctament la lògica.
Explicació del circuit:
A continuació es mostra el diagrama de circuits d’aquest bloqueig digital que utilitza 8051 i es pot entendre fàcilment. Els pins de columna del mòdul de teclat estan connectats directament al pin P0.0, P0.1, P0.2, P0.3 i els pins de fila es connecten a P0.4, P0.5, P0.6, P0.7 del port 0 del microcontrolador 0 Una pantalla LCD de 16x2 està connectada amb un microcontrolador 89s52 en mode de 4 bits. Els pins de control RS, RW i En estan connectats directament als pins P1.0, GND i P1.2. I el pin de dades D4-D7 està connectat als pins P1.4, P1.5, P1.6 i P1.7 de 89s52. I un brunzidor està connectat al pin P2.6 mitjançant una resistència.

Explicació del programa:
Hem utilitzat una contrasenya predefinida al programa; aquesta contrasenya la pot definir l’usuari al codi següent. Quan l'usuari introdueix una contrasenya al sistema, llavors el sistema compara la contrasenya introduïda per l'usuari amb la contrasenya emmagatzemada o predefinida al Codi de programa. Si es produeix una coincidència, la pantalla LCD mostrarà "Accés ratificat" i, si la contrasenya no coincideix, la pantalla LCD mostrarà "Accés denegat" i el brunzidor emetrà un so continu durant algun temps. Aquí hem utilitzat la biblioteca string.h. Mitjançant l’ús d’aquesta biblioteca podem comparar o fer coincidir dues cadenes mitjançant la funció “strncmp”.
Al programa, primer incloem el fitxer de capçalera i defineix els pins d'entrada i sortida variables per al teclat i la pantalla LCD.
#incloure
S'ha creat la funció per crear el retard d'1 segon, juntament amb algunes funcions LCD com per a la inicialització del LCD, imprimir la cadena, per a ordres, etc. Podeu trobar-les fàcilment a Code. Consulteu aquest article per a la interfície LCD amb el 8051 i les seves funcions.
Després d'això, al programa principal hem inicialitzat el LCD i després llegim l'entrada del teclat mitjançant la funció keypad () i emmagatzemem les tecles d'entrada en una matriu i després la comparem a partir de dades de matriu predefinides mitjançant strncmp.
void main () {brunzidor = 1; lcd_init (); lcdstring ("Codi electrònic"); lcdcmd (0xc0); lcdstring ("Sistema de bloqueig"); retard (400); lcdcmd (1); lcdstring ("Circuit Digest"); retard (400); mentre que (1) {i = 0; teclat (); if (strncmp (pass, "4201", 4) == 0)
Si la contrasenya introduïda coincideix, la funció accept () es diu:
void accept () {lcdcmd (1); lcdstring ("Benvingut"); lcdcmd (192); lcdstring ("Acceptació de contrasenya"); retard (200); }
I si la contrasenya és incorrecta, la funció wrong () es diu:
void wrong () {brunzidor = 0; lcdcmd (1); lcdstring ("Contrasenya incorrecta"); lcdcmd (192); lcdstring ("PLZ Torna-ho a provar"); retard (200); zumbador = 1; }
Comproveu la funció del teclat següent al codi que llegeix el mòdul de teclat del formulari d’entrada.
