En aquest projecte, desenvoluparem un sistema de seguretat basat en teclat i RFID. Aquest projecte s’implementa mitjançant el microcontrolador 8051. La tecnologia RFID (identificació i detecció de radiofreqüència) s’utilitza habitualment en escoles, col·legis, oficines i estacions amb diversos propòsits per autenticar automàticament les persones amb etiquetes RFID vàlides. Aquí comprovarem l’etiqueta RFID, juntament amb una contrasenya associada a l’etiqueta, per protegir el sistema.
Treball
Podem dividir el sistema de seguretat complet en diverses seccions: secció Lector, teclat, secció Control, secció Controlador i secció Pantalla. El funcionament de tot el sistema i el paper de cada secció es pot entendre a través del diagrama de blocs següent.

Secció Reader: aquesta secció conté un RFID, que és un dispositiu electrònic que té dues parts: una és RFID Reader i l’altra és una etiqueta RFID o una targeta. Quan posem l'etiqueta RFID a prop del lector RFID, es llegeixen les dades de l'etiqueta en sèrie. L'etiqueta RFID que hem utilitzat aquí té un codi de caràcters o número de sèrie de 12 dígits. Aquest RFID funciona a una velocitat de transmissió de 9600 bps.
Teclat: aquí hem utilitzat un teclat de matriu 4x4 per introduir la contrasenya al sistema.

Secció de control: el microcontrolador 8051 s’utilitza per controlar el procés complet d’aquest sistema de seguretat basat en RFID. Aquí, mitjançant l’ús del 8051, rebem dades RFID i enviem estat o missatges a la pantalla LCD.
Secció de visualització: en aquest projecte s’utilitza una pantalla LCD de 6 x 2 per mostrar-hi missatges. Aquí podeu veure el tutorial: Interfície LCD amb microcontrolador 8051
Secció de controladors: Aquesta secció té un controlador de motor L293D per obrir la porta i un brunzidor amb un transistor BC547 NPN per a indicacions.
Quan una persona posa la seva etiqueta RFID al lector RFID, RFID llegeix les dades de l’etiqueta i l’envia al microcontrolador 8051 i, a continuació, el microcontrolador compara aquestes dades amb dades predefinides. Si les dades coincideixen amb dades predefinides, el microcontrolador demana contrasenya i, després d’haver introduït la contrasenya, compareu la contrasenya amb la contrasenya predefinida. Si s'obrirà la porta de coincidència de contrasenya, en cas contrari, es mostrarà l'accés denegat i el timbre començarà a sonar durant algun temps.
Diagrama del circuit i explicació

Com es mostra a l'esquema de circuits del sistema de seguretat RFID, el LCD 16x2 es connecta en mode de quatre bits amb microcontrolador. Els pins RS, RW i EN de la pantalla LCD es connecten directament a PORT 1 pin número P1.0, P1.1 i P1.2. Els pins D4, D5, D6 i D7 de la pantalla LCD es connecten directament als pins P1.4, P1.5, P1.6 i P1.7 del port 1. El controlador del motor està connectat als pins P2.4 i P2.5 del port. I el brunzidor està connectat a P2.6 a PORT2. I el teclat està connectat a PORT0. Les files del teclat estan connectades a P0.4 - P0.7 i les columnes a P0.0 - P0.3.
Explicació del programa
Mentre programem el microcontrolador 8051 per al sistema de seguretat basat en RFID, primer incloguem fitxers de capçalera i definim les variables i el pin d’entrada i sortida.
#incloure
A continuació, definiu els pins per al mòdul del teclat.
sbit col1 = P0 ^ 0; sbit col2 = P0 ^ 1; sbit col3 = P0 ^ 2; sbit col4 = P0 ^ 3; fila sbit1 = P0 ^ 4; fila sbit2 = P0 ^ 5; fila sbit3 = P0 ^ 6; fila sbit4 = P0 ^ 7;
Després d'això, hem creat una funció per al retard.
void delay (int itime) {int i, j; per a (i = 0; i
A continuació, fem alguna funció per a la pantalla LCD i inicialitzem la funció lcd, void lcd_init (void) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x0e); lcdcmd (0x01); }
Aquí tenim algunes funcions que hem utilitzat al nostre programa. En això, hem configurat una velocitat de transmissió de 9600bps a 11.0592MHz de freqüència de cristall i, per a la recepció, estem supervisant el registre SBUF per rebre dades.
void uart_init () {TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1; } char rxdata () {while (! RI); ch = SBUF; RI = 0; tornar ch; }
Després d'això, al programa principal hem inicialitzat lcd i Uart i després llegim la sortida de RFID quan hi apareix alguna etiqueta. Emmagatzemem aquesta cadena en una matriu i després coincidim amb dades de matriu predefinides. I després coincideix amb la contrasenya.
if (strncmp (rfid, "160066A5EC39", 12) == 0) {teclat (); if (strncmp (pass, "4201", 4) == 0) {accept (); lcdcmd (1); lcdstring ("Accés concedit"); lcdcmd (0xc0);
Si es produeix una coincidència, el controlador obre la porta, en cas contrari s'inicia el brunzidor i la pantalla LCD mostra una targeta no vàlida.
