RFID Card Interface

 #include<avr/io.h>
 #include<util/delay.h>
 #include<stdio.h>
 #include"RFID.h"
 #include"I2CLCD.h"
uint8_t FoundTag,ReadTag,TagData[16],sw; // Variable used to store Full Tag Data
uint8_t YourTag[4]={0xB3,0x4A,0x63,0xA9};
char buffer[20];
int main(void)
 {
 DDRD|=(1<<DDD2);                  //Load pin
 DDRD&=~((1<<DDD3)|(1<<DDD4));    //input pin
 init_spi();
 system_init();
 LCD_Clear();
 begin(); //initialize MFRC522
 LCD_write_string(1,1,"Waiting for TAG");
 uint8_t version = readFromRegister(VersionReg);
 if(!version) LCD_write_string(1,2,"NO DEVICE");
 if(version)
 {
   LCD_write_string(1,2,"DEVICE found");
   _delay_ms(1000);
   sprintf(buffer,"%2X          ",(version)); //display version in hexadecimal
   LCD_write_string(1,2,buffer);
 }
 sw=PIND&(1<<PIND3);
 while(sw)
  {
    sw=PIND&(1<<PIND3);
    FoundTag = requestTag(MF1_REQIDL, TagData);
    if (FoundTag == MI_OK)
	{
		ReadTag = antiCollision(TagData);
		LCD_write_string(1,1,"Tag Detected    ");
		for(uint8_t i=0;i<4;i++)
        YourTag[i]=TagData[i];
		_delay_ms(1000);
		sprintf(buffer,"Sl %2X:%2X:%2X:%2X  ",YourTag[0],YourTag[1],YourTag[2],YourTag[3]);
		LCD_write_string(1,1,buffer);
		LCD_write_string(1,2,"Enter to save   ");
	}
 }
 LCD_Clear();
 while(1)
  {
   LCD_write_string(1,1,"Security System  ");
   FoundTag = requestTag(MF1_REQIDL, TagData);
   if (FoundTag == MI_OK)
     {
       ReadTag = antiCollision(TagData);
	   if((YourTag[0]==TagData[0])&&(YourTag[1]==TagData[1])&&(YourTag[2]==TagData[2])&&(YourTag[3]==TagData[3]))
	   {
	   LCD_write_string(1,2,"unlock for 30s  ");
		PORTD|=(1<<PORTD2);  //open for 30s
		_delay_ms(30000);
		LCD_write_string(1,2,"**** Locked ****  ");
	   }
     }else PORTD&=~(1<<PORTD2);
 }
return 0;
}