Mikrokontroller - RFID-ga asoslangan kuzatuv tizimida ishlatiladigan mikrokontroller 8051 oilasidan AT89C52. U 4-I/U portlarini o'z ichiga oladi . va 40-pin.
Osilator sxemasi - Osilator sxemasi mikrokontrollerning 18 va 19 pinlari orasiga ulangan. Ushbu sxema osilator va 11,0592 MGts ish chastotasida ikkita 33 pF kondensatorning kombinatsiyasi bilan qurilgan.
Oldindan o'rnatilgan sxema - AT89C52 mikrokontrollerining 9-pinasi qayta o'rnatish pinidir. Oldindan o'rnatilgan sxema kondansatör, rezistor va kalit bilan qurilgan. Kalit bosilganda, qayta o'rnatish piniga ulanadi va mikrokontroller qayta o'rnatiladi.
LCD displey -LCD displey 16 pindan iborat bo'lib , bu erda 3 ta pin ulangan va qolgan barcha pinlar mikrokontrollerning 2-portiga ulangan.
RFID Reader -RFID o'quvchi RFID teglarida saqlangan ma'lumotlarni o'qish uchun ishlatiladi. U o'z ichiga oladi bilan har qanday turi ning apparat dizayn .
Ishlash ning Davomat tizimi sxemasi
Ishtirok etish tizimining barcha komponentlarini ulab bo'lgandan so'ng, kontaktlarning zanglashiga olib kirish uchun quvvat manbaini bering. Keyin LCD displey paydo bo'ladi , iltimos, kartani suring. RFID yorlig'idagi ma'lumotlar talabaning identifikatori va davomati sifatida ko'rsatiladi. Biror kishi kartani RFID o'quvchi oldiga qo'yganida, u ma'lumotni o'qiydi va AT89S52 mikrokontrollerida saqlangan ma'lumotlarga mos kela boshlaydi. Oldin operatsiya mikrokontroller hisoblanadi oldindan dasturlashtirilgan bilan o'rnatilgan C tili .
Agar karta ma'lumotlari RFID o'quvchi bilan mos keladigan bo'lsa, u holda ma'lumot LCD displeyda ko'rsatiladi. Ushbu tizim yordamida ish vaqtini tejash mumkin, chunki barcha ma'lumotlar to'g'ridan-to'g'ri ma'lumotlar bazasida saqlanadi.
Manba kodi:
#o'z ichiga
#include
//0000 dan 7FFFgacha
sbit RS = P0 ^7;
sbit EN = P0 ^6;
sbit SDA = P1 ^0;
sbit SCL = P1 ^1;
sbit RELAY = P1 ^2;
kod unsigned char RFID_1[] = "34006C9C04C0"; //34006C9C04+NULL
kod unsigned char RFID_2[] = "34006C549C90";
kod unsigned char RFID_3[] = "1300F8FAC1D0";
kod unsigned char RFID_4[] = "34006CD5AD20";
kod unsigned char RFID_5[] = "420061231E1E";
code unsigned char name_1[] = "SANJAY JAIN";
code unsigned char name_2[] = "SHEKHAT HARSH";
code unsigned char name_3[] = "DHOLARIYA RAKSHIT";
kod unsigned char name_4[] = "DIVYANG SINGH ";
code unsigned char name_5[] = "NAKUL JAIN";
imzosiz char rs [ 15];
unsigned int no_of_records ;
bekor kechikish ( )
{
int j;
uchun ( j = 0 ;j <500 ;j++);
}
bekor uzoq_ kechikish ( )
{
imzosiz int j;
uchun ( j = 0 ;j <65000 ;j++);
}
bekor kechikish ( )
{
imzosiz int j;
uchun ( j = 0 ;j <10000 ;j++);
}
void lcd_ buyrug'i ( char lc)
{
P2 = lc ;
RS = 0 ;
EN = 1 ;
kechikish ( );
EN = 0 ;
}
lcd_ ma'lumotlarini bekor qilish ( char ld )
{
P2 = ld ;
RS = 1 ;
EN = 1 ;
kechikish ( );
EN = 0 ;
}
bekor lcd_ init ( )
{
lcd_command (0x38);
lcd_command (0x0E);
lcd_command (0x01);
}
bekor serial_ init ( )
{
TMOD = 0x20 ;
SCON = 0x50 ;
TH1 = 0xFD ;
TR1 = 1;
}
bekor uzatish ( imzosiz char tx )
{
SBUF = tx ;
while ( TI ==0);
TI = 0 ;
}
void send_ string ( imzosiz belgi *str)
{
int j;
for( j = 0 ;str [j]!='\0';j++)
uzatish ( str [j]);
}
imzosiz char qabul qilish ( )
{
char rx ;
while ( RI ==0);
RI = 0 ;
rx = SBUF ;
qaytish ( rx );
}
void lcd_ string ( char add, char *str)
{
int j;
lcd_command ( qo'shish );
for( j = 0 ;str [j]!='\0';j++)
lcd_data ( str [j]);
}
bekor boshlash ( )
{
SDA = 1 ;
SCL = 1 ;
SDA = 0 ;
}
bekor STOP ( )
{
SDA = 0 ;
SCL = 1 ;
SDA = 1 ;
}
bekor yozish ( imzosiz belgi w)
{
int j;
SCL = 0 ;
uchun ( j = 0 ;j <8 ;j++)
{
agar ( (w & 0x80)==0)
SDA = 0 ;
boshqa
SDA = 1 ;
SCL = 1 ;
SCL = 0 ;
w w = w << 1 ;
}
SCL = 1 ;
SCL = 0 ;
}
imzosiz char o'qish ( )
{
int j;
imzosiz char r = 0x00 ;
SDA = 1 ;
uchun ( j = 0 ;j <8 ;j++)
{
SCL = 1 ;
r r = r << 1 ;
agar ( SDA == 1)
r r = r | 0x01;
SCL = 0 ;
}
qaytish (r);
}
bekor ack ( )
{
SDA = 0 ;
SCL = 1 ;
SCL = 0 ;
}
bekor nack ( )
{
SDA = 1 ;
SCL = 1 ;
SCL = 0 ;
}
bekor rtc_ o'qish ( )
{
unsigned char ss, mm , hh, kun, mn, sana, yil ;
boshlash ( );
yozish (0xD0);
yozish (0x00);
STOP ( );
boshlash ( );
yozish (0xD1);
ss = o'qish ( );
ack ( );
mm = o'qish ( );
ack ( );
hh = o'qish ( );
ack ( );
kun = o'qish ( );
ack ( );
sana = o'qish ( );
ack ( );
mn = o'qish ( );
ack ( );
yr = o'qish ( );
nack ( );
STOP ( );
rs [ 0] = hh /0x10 + 48;
rs [ 1] = hh%0x10 + 48;
rs [ 2] = ':';
rs [ 3] = mm /0x10 + 48;
rs [ 4] = mm% 0x10 + 48;
rs [ 5] = ',';
rs [ 6] = sana /0x10 + 48;
rs [ 7] = sana% 0x10 + 48;
rs [ 8] = '/';
rs [ 9] = mn /0x10 + 48;
rs [ 10] = mn%0x10 + 48;
rs [ 11] = '/';
rs [ 12] = yil /0x10 + 48;
rs [ 13] = yil%0x10 + 48;
rs [ 14] = '\0';
}
bekor rtc_ init ( )
{
boshlash ( );
yozish (0xD0);
yozish (0x00);
yozish (0x00);
yozish (0x00);
yozish (0x13);
yozish (0x05);
yozish (0x12);
yozish (0x04);
yozish (0x12);
STOP ( );
}
yozuvlarni bekor qilish ( imzosiz belgi *str) ;
bekor o'qish_ yozuvlar ( );
bekor asosiy ( )
{
unsigned char rec_ ma'lumotlar [ 13], i, t ;
RELAY = 0 ;
lcd_ init ( );
serial_ init ( );
rtc_ init ( );
kechikish ( );
boshlash ( );
yozish (0xA0);
yozish (0x7F);
yozish (0xFF);
STOP ( );
boshlash ( );
yozish (0xA1);
no_of_records = o'qish ( );
nack ( );
STOP ( );
// yo'q _of_records = 0 ; _
esa ( 1)
{
boshlash :
lcd_command (0x01);
lcd_ string ( 0x80, "RFID ATTTENDANCE");
lcd_string (0xC5, "SYSTEM");
j = 0 ;
esa ( 1)
{
agar ( RI ==1)
{
RI = 0 ;
t = qabul qilish ( );
agar ( t == '+')
{
o'qish_ yozuvlar ( );
boshlash ;
}
boshqa
{
rec_data [j] = t;
uchun ( j = 1 ;j <12 ;j++)
rec_data [j] = qabul qilish ( );
rec_data [j] = '\0';
sindirish ;
}
}
}
j = strcmp ( RFID_1, rec_data); // mos = > j = 0
lcd_command (0x01);
agar ( j == 0)
{
RELAY = 1 ;
lcd_string (0x 80, nomi _1);
rtc_ o'qish ( );
lcd_string (0xC 0,rs );
uzoq_ kechikish ( );
yozish_yozuvlari (ism_1);
RELAY = 0 ;
borish boshlash ;
}
//
j = strcmp ( RFID_2, rec_data); // mos = > j = 0
agar ( j == 0)
{
RELAY = 1 ;
lcd_string (0x 80, ism _2);
rtc_ o'qish ( );
lcd_string (0xC 0,rs );
uzoq_ kechikish ( );
yozish_yozuvlari (ism_2);
RELAY = 0 ;
borish boshlash ;
}
//
j = strcmp ( RFID_3, rec_data); // mos = > j = 0
agar ( j ==0)
{
RELAY = 1 ;
lcd_string (0x 80, nomi _3);
rtc_ o'qish ( );
lcd_string (0xC 0,rs );
uzoq_ kechikish ( );
yozish_yozuvlari (ism_3);
RELAY = 0 ;
borish boshlash ;
}
j = strcmp ( RFID_4, rec_data); // mos = > j = 0
agar ( j == 0)
{
RELAY = 1 ;
lcd_string (0x 80, nomi _4);
rtc_ o'qish ( );
lcd_string (0xC 0,rs );
uzoq_ kechikish ( );
yozish_yozuvlari (ism_4);
RELAY = 0 ;
borish boshlash ;
}
j = strcmp ( RFID_5, rec_data); // mos = > j = 0
agar ( j == 0)
{
RELAY = 1 ;
lcd_string (0x 80, nomi _5);
yozuvlar_yo'qligi = 0 ;
boshlash ( );
yozish (0xA0);
yozish (0x7F);
yozish (0xFF);
yozish (0x00);
STOP ( );
lcd_ string ( 0xC0, "XOTIRA TOZALADI");
uzoq_ kechikish ( );
RELAY = 0 ;
borish boshlash ;
}
lcd_string (0x80, "ERROR");
lcd_string (0xC 0, rec _data);
uzoq_ kechikish ( );
}
}
12>8>8>10000>65000>500>
Dostları ilə paylaş: |