В този проект ще разработим RFID и базирана на клавиатурата система за сигурност. Този проект се реализира с помощта на 8051 микроконтролер. RFID технологията (радиочестотна идентификация и откриване) се използва често в училища, колежи, офиси и станции за различни цели за автоматично удостоверяване на хората с валидни RFID тагове. Тук ще проверим RFID маркера, заедно с парола, свързана с етикета, за да защитим системата.
Работещи
Можем да разделим цялостната система за сигурност на различни секции - секция Reader, клавиатура, секция Control, секция Driver и секция Display. Работата на цялата система и ролята на всеки раздел може да се разбере чрез долната блок-схема.
Раздел за четене: Този раздел съдържа RFID, което е електронно устройство, което има две части - едната е RFID четец, а другата е RFID етикет или карта. Когато поставим RFID етикет близо до RFID четеца, той чете последователно данните на маркера. RFID тагът, който използвахме тук, има 12 цифрен код или сериен номер. Този RFID работи със скорост на предаване от 9600 bps.
Клавиатура: Тук използваме матрична клавиатура 4x4 за въвеждане на паролата в системата.
Контролна секция: 8051 микроконтролер се използва за контролиране на цялостния процес на тази базирана на RFID система за сигурност. Тук с помощта на 8051 получаваме RFID данни и изпращаме статус или съобщения на LCD.
Дисплейна секция: 6x2 LCD се използва в този проект за показване на съобщения върху него. Тук можете да видите урока: LCD взаимодействие с микроконтролер 8051
Шофьорска секция: Тази секция има двигател L293D за отваряне на портата и зумер с BC547 NPN транзистор за индикации.
Когато човек постави своя RFID етикет в RFID четец, RFID чете данните на маркера и ги изпраща на микроконтролер 8051 и след това микроконтролерът сравнява тези данни с предварително дефинирани данни. Ако данните съвпадат с предварително дефинирани данни, тогава микроконтролерът иска парола и след въвеждане на парола микроконтролер сравнява паролата с предварително дефинираната парола. Ако паролата за съвпадение на паролата се отвори в противен случай, на LCD дисплея се показва отказ за достъп и зумерът започва да издава звуков сигнал за известно време.
Електрическа схема и обяснение
Както е показано в схемата на схемата за сигурност на RFID по-горе, 16x2 LCD е свързан в четирибитов режим с микроконтролер. RS, RW и EN щифтовете на LCD са директно свързани с PORT 1 пинов номер P1.0, P1.1 и P1.2. D4, D5, D6 и D7 щифтовете на LCD са директно свързани на щифтове P1.4, P1.5, P1.6 и P1.7 на порт 1. Драйверът на двигателя е свързан с номера на PORT пинове P2.4 и P2.5. И зумерът е свързан на P2.6 на PORT2. А клавиатурата е свързана на PORT0. Редът на клавиатурата е свързан на P0.4 - P0.7, а колоните са свързани на P0.0 - P0.3.
Обяснение на програмата
Докато програмираме микроконтролера 8051 за RFID базирана система за сигурност, на първо място включваме заглавни файлове и дефинира входния и изходния щифт и променливите.
#include
След това дефинирайте щифтове за модула на клавиатурата.
sbit col1 = P0 ^ 0; sbit col2 = P0 ^ 1; sbit col3 = P0 ^ 2; sbit col4 = P0 ^ 3; sbit ред1 = P0 ^ 4; sbit ред2 = P0 ^ 5; sbit ред3 = P0 ^ 6; sbit ред4 = P0 ^ 7;
След това създадохме функция за забавяне.
void delay (int itime) {int i, j; за (i = 0; i
След това правим някаква функция за LCD и инициализираме lcd функция, void lcd_init (void) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x0e); lcdcmd (0x01); }
Тук имаме някаква функция, която сме използвали в нашата програма. В това сме конфигурирали скорост на предаване 9600bps при честота на кристала 11.0592MHz, а за получаване ние наблюдаваме SBUF регистъра за получаване на данни.
void uart_init () {TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1; } char rxdata () {while (! RI); ch = SBUF; RI = 0; return ch; }
След това в основната програма сме инициализирали lcd и Uart и след това четем изхода на RFID, когато върху него се постави някакъв таг. Съхраняваме този низ в масив и след това съвпадаме с предварително зададени данни за масива. И след това съчетайте паролата.
if (strncmp (rfid, "160066A5EC39", 12) == 0) {клавиатура (); if (strncmp (pass, "4201", 4) == 0) {accept (); lcdcmd (1); lcdstring ("Осигурен достъп"); lcdcmd (0xc0);
Ако се случи съвпадение, контролерът отваря портата, в противен случай се включва зумер и LCD показва невалидна карта.