I dette projekt skal vi udvikle et RFID- og tastaturbaseret sikkerhedssystem. Dette projekt implementeres ved hjælp af 8051 mikrokontroller. RFID Tecnology (Radio Frequency Identification and Detection) bruges ofte i skoler, gymnasier, kontorer og stationer til forskellige formål for automatisk at godkende personer med gyldige RFID-tags. Her vil vi kontrollere RFID-koden sammen med en adgangskode, der er knyttet til koden, for at sikre systemet.
Arbejder
Vi kan opdele det komplette sikkerhedssystem i forskellige sektioner - læserafsnit, tastatur, kontrolafsnit, førersektion og skærmafsnit. Arbejdet med hele systemet og hver sektions rolle kan forstås gennem nedenstående blokdiagram.
Læsesektion: Dette afsnit indeholder en RFID, som er en elektronisk enhed, der har to dele - den ene er RFID-læser, og den anden er RFID-tag eller -kort. Når vi sætter RFID-tag nær RFID-læser, læser det tag-data serielt. RFID-tag, som vi har brugt her, har 12-cifret tegnkode eller serienummer. Dette RFID fungerer med en baudrate på 9600 bps.
Tastatur: Her har vi brugt et 4x4 matrix tastatur til at indtaste adgangskoden til systemet.
Kontrolafsnit: 8051 mikrokontroller bruges til at styre hele processen med dette RFID-baserede sikkerhedssystem. Her ved hjælp af 8051 modtager vi RFID-data og sender status eller meddelelser til LCD.
Skærmafsnit: 6x2 LCD bruges i dette projekt til visning af meddelelser på det. Her kan du se vejledningen: LCD-interface med 8051 mikrokontroller
Førersektion: Dette afsnit har en motordriver L293D til åbning af port og en summer med en BC547 NPN-transistor til indikationer.
Når en person lægger sit RFID-mærke til RFID-læser, læser RFID tag-data og sender det til 8051 mikrokontroller, og derefter sammenligner mikrokontroller disse data med foruddefinerede data. Hvis data matches med foruddefinerede data, beder mikrokontroller om adgangskode, og efter at have indtastet adgangskode, sammenligner mikrocontroller adgangskode med foruddefineret adgangskode. Hvis adgangskodepartiet åbnes ellers vises LCD-displayet Adgang nægtet, og summeren bipper et stykke tid.
Kredsløbsdiagram og forklaring
Som vist i ovenstående kredsløbsdiagram for RFID-sikkerhedssystem er 16x2 LCD forbundet i firebitstilstand med mikrocontroller. LCD's RS-, RW- og EN-ben er direkte forbundet med PORT 1-pin nummer P1.0, P1.1 og P1.2. D4, D5, D6 og D7 ben på LCD er direkte forbundet ved pin P1.4, P1.5, P1.6 og P1.7 i port 1. Motordriveren er forbundet ved PORT pin nummer P2.4 og P2.5. Og summer er tilsluttet ved P2.6 ved PORT2. Og tastaturet er forbundet med PORT0. Tastaturrækken er forbundet med P0.4 - P0.7, og søjler er forbundet med P0.0 - P0.3.
Programforklaring
Mens vi programmerer 8051 mikrokontrolleren til RFID-baseret sikkerhedssystem, inkluderer vi først headerfiler og definerer input- og output pin og variabler.
#omfatte
Definer derefter ben til tastaturmodulet.
sbit col1 = P0 ^ 0; sbit col2 = P0 ^ 1; sbit col3 = P0 ^ 2; sbit col4 = P0 ^ 3; sbit række1 = P0 ^ 4; sbit række2 = P0 ^ 5; sbit række3 = P0 ^ 6; sbit række4 = P0 ^ 7;
Herefter har vi oprettet en funktion til forsinkelse.
ugyldig forsinkelse (int itime) {int i, j; for (i = 0; i
Så laver vi nogle funktioner til LCD og initialiserer LCD-funktionen, ugyldigt lcd_init (ugyldigt) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x0e); lcdcmd (0x01); }
Her har vi nogle funktioner, som vi har brugt i vores program. I dette har vi konfigureret 9600bps baudrate ved 11.0592MHz krystalfrekvens, og fuktion til modtagelse overvåger vi SBUF-registeret for modtagelse af data.
ugyldigt uart_init () {TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1; } char rxdata () {while (! RI); ch = SBUF; RI = 0; returnere ch; }
Efter dette i hovedprogrammet har vi initialiseret lcd og Uart, og derefter læser vi output af RFID, når et mærke bringes på det. Vi gemmer denne streng i en matrix og matcher derefter med foruddefinerede matrixdata. Og match derefter adgangskoden.
hvis (strncmp (rfid, "160066A5EC39", 12) == 0) {tastatur (); hvis (strncmp (pass, "4201", 4) == 0) {accept (); lcdcmd (1); lcdstring ("Adgang givet"); lcdcmd (0xc0);
Hvis der opstår match, åbner controller porten, ellers starter summer og LCD viser ugyldigt kort.