Šiame projekte mes ketiname sukurti RFID ir klaviatūra pagrįstą apsaugos sistemą. Šis projektas įgyvendinamas naudojant 8051 mikrovaldiklį. RDA technologija (radijo dažnių atpažinimas ir aptikimas) dažniausiai naudojama mokyklose, kolegijose, biuruose ir stotyse įvairiems tikslams, siekiant automatiškai autentifikuoti žmones galiojančiomis RFID žymomis. Čia mes patikrinsime RFID žymą ir slaptažodį, susietą su žyma, kad apsaugotume sistemą.
Dirba
Mes galime suskirstyti visą saugos sistemą į įvairius skyrius - skaitytuvo skyrių, klaviatūrą, valdymo skyrių, tvarkyklės skyrių ir ekraną. Visos sistemos veikimą ir kiekvieno skyriaus vaidmenį galima suprasti žemiau pateiktoje blokinėje diagramoje.
Skaitytojo skyrius: Šiame skyriuje yra RDA, kuris yra elektronikos prietaisas, turintis dvi dalis - viena yra RDA skaitytuvas, kita - RDA žyma arba kortelė. Kai mes dedame RFID žymą šalia RFID skaitytuvo, ji nuosekliai nuskaito žymos duomenis. Čia naudota RFID žyma turi 12 skaitmenų simbolių kodą arba serijos numerį. Šis RDA veikia 9600 bps sparta.
Klaviatūra: Čia mes naudojome 4x4 matricos klaviatūrą slaptažodžiui įvesti į sistemą.
Valdymo skyrius: 8051 mikrovaldiklis naudojamas visam šios RDA pagrįstos apsaugos sistemos procesui valdyti. Naudodami 8051, mes gauname RDA duomenis ir siunčiame būseną ar pranešimus į LCD.
Ekrano skyrius: 6x2 skystųjų kristalų ekranas šiame projekte naudojamas pranešimams rodyti. Čia galite pamatyti pamoką: LCD sąsaja su 8051 mikrovaldikliu
Vairuotojo skyrius: Šiame skyriuje yra variklio vairuotojas L293D vartams atidaryti ir signalas su BC547 NPN tranzistoriumi indikacijoms.
Kai asmuo įdeda savo RFID žymą į RFID skaitytuvą, tada RFID nuskaito žymos duomenis ir išsiunčia juos į 8051 mikrovaldiklį, o tada mikrovaldiklis palygina šiuos duomenis su iš anksto nustatytais duomenimis. Jei duomenys suderinami su iš anksto nustatytais duomenimis, mikrovaldiklis paprašys slaptažodžio ir, įvedęs slaptažodį, mikrovaldiklis palygins slaptažodį su iš anksto nustatytu slaptažodžiu. Jei atsidarys slaptažodžio atitikties vartai, kitaip LCD ekrane rodoma prieiga uždrausta ir kažkada pradeda pypėti.
Grandinės schema ir paaiškinimas
Kaip parodyta aukščiau esančioje RDA apsaugos sistemos grandinės schemoje, 16x2 skystųjų kristalų ekranas sujungtas keturių bitų režimu su mikrovaldikliu. LCD RS, RW ir EN kaiščiai yra tiesiogiai prijungti prie PORT 1 kaiščių numerių P1.0, P1.1 ir P1.2. D4, D5, D6 ir D7 skystųjų kristalų kaiščiai yra tiesiogiai prijungti prie 1 prievado P1.4, P1.5, P1.6 ir P1.7. Variklio tvarkyklė prijungta prie PORT kaiščių P2.4 ir P2.5. Ir signalas yra prijungtas P2.6 prie PORT2. Ir klaviatūra prijungta prie PORT0. Klaviatūros eilutė sujungta P0.4 - P0.7, o stulpeliai - P0.0 - P0.3.
Programos paaiškinimas
Programuodami 8051 mikrovaldiklį RDA pagrįstai apsaugos sistemai, pirmiausia mes įtraukiame antraštės failus ir apibrėžiame įvesties ir išvesties kaiščius bei kintamuosius.
# įtraukti
Tada nustatykite klaviatūros modulio kaiščius.
sbit col1 = P0 ^ 0; sbit col2 = P0 ^ 1; sbit col3 = P0 ^ 2; sbit col4 = P0 ^ 3; sbit eilutė1 = P0 ^ 4; sbit eilutė2 = P0 ^ 5; sbit eilutė3 = P0 ^ 6; sbit eilutė4 = P0 ^ 7;
Po to mes sukūrėme uždelsimo funkciją.
void delay (int itime) {int i, j; už (i = 0; i
Tada mes sukuriame tam tikrą LCD funkciją ir inicijuojame LCD funkciją, negaliojantis lcd_init (negaliojantis) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x0e); lcdcmd (0x01); }
Čia mes turime tam tikrą funkciją, kurią naudojome savo programoje. Tai mes sukonfigūravome 9600bps perdavimo spartą 11.0592MHz kristalų dažniu, o gavimui - stebime SBUF registrą, kad gautume duomenis.
void uart_init () {TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1; } char rxdata () {while (! RI); ch = SBUF; RI = 0; grįžti ch; }
Po to pagrindinėje programoje mes inicijavome LCD ir Uart, o tada mes skaitome RDA išvestį, kai ant jos yra bet kokia žyma. Mes saugome šią eilutę masyve ir tada suderiname su iš anksto nustatytais masyvo duomenimis. Tada suderinkite slaptažodį.
if (strncmp (rfid, "160066A5EC39", 12) == 0) {klaviatūra (); if (strncmp (perduoti, "4201", 4) == 0) {priimti (); lcdcmd (1); „lcdstring“ („suteikta prieiga“); lcdcmd (0xc0);
Jei įvyksta atitiktis, valdiklis atidaro vartus, kitaip įsijungia garsinis signalas ir LCD rodo netinkamą kortelę.