Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Need help, rfid reader bug!

Status
Not open for further replies.

jeyes56

Member
Hi guys,

i made a code that will display the valud of the rfid tag if it is placed on the rfid reader,

it is working fine for now, except for some bug.

i can't explain it will that why i made this,
please look at this:

the fig. 1 is working fine,
fig. 2 is a bug,
what i want is fig. 3 or fig. 4

i assume that fig. 4 will need a interrupt routine, but i don't know how.

this is my code:
Code:
/*

RFID BASED DOOR LOCK

by Darvin Carillo ----- jeyes56@yahoo.com
January 27, 2012


this will wait for the rfid tag to placed in rfid reader,
search if the tag is registered on the list, 
if it is registered, 
	get the coresponding registered name,
	get the current time and save it on the eeprom together with the registered name,
	display the time and registered name on LCD.
	send a data high on the output pin to turn off the locking system. (we use electromagnetic lock)
else
	get the time and display to lcd together with the tag number.



while idle, it will also wait for the button to be pressed,
if the button is pressed,
	it will display the list of last log-in from the eeprom.




attached devices:
	rfid reader
	rtc ds1307
	pcd8544 (N3310LCD)
	
mcu:
	pic16f877a



*/




#include <pic.h>
#include "i2c.h"
#include "sci.h"
#include "string.h"

//DS1307 VARIABLES
unsigned char HOUR=12;
unsigned char MIN=35;
unsigned char DAY=25;
unsigned char MON=9;
unsigned char SEC=9;
unsigned char YEAR=9;
unsigned char list=0xFF;
unsigned char ads;
unsigned char sound=0;
unsigned char show=0;

//NOKIA N3310 LCD PINS
#define nok_sclk RB0
#define nok_sda RD5 
#define nok_dc RD6 
#define nok_cs RD7 
#define nok_res RB1 


#define number_of_user 6

const unsigned char NAME[][15] = {"",
	"Pangalan ko",
	"Name ko ito",
	"Name number3",
	"NAME Number4",
	"RFID TAG # 5"
	};

const long SERIAL_NUM[] = {
	15477790,
	15496921,
	15477672,
	15491755,
	15485041
	};


const char TABLE1[240]= {      // 
   0x00,0x00,0x00,0x00,0x00,   // 20 space          ASCII table for NOKIA LCD: 96 rows * 5 bytes= 480 bytes
   0x00,0x00,0x5f,0x00,0x00,   // 21 !
   0x00,0x07,0x00,0x07,0x00,   // 22 "
   0x14,0x7f,0x14,0x7f,0x14,   // 23 #
   0x24,0x2a,0x7f,0x2a,0x12,   // 24 $
   0x23,0x13,0x08,0x64,0x62,   // 25 %
   0x36,0x49,0x55,0x22,0x50,   // 26 &
   0x00,0x05,0x03,0x00,0x00,   // 27 '
   0x00,0x1c,0x22,0x41,0x00,   // 28 (
   0x00,0x41,0x22,0x1c,0x00,   // 29 )
   0x14,0x08,0x3e,0x08,0x14,   // 2a *
   0x08,0x08,0x3e,0x08,0x08,   // 2b +
   0x00,0x50,0x30,0x00,0x00,   // 2c ,
   0x08,0x08,0x08,0x08,0x08,   // 2d -
   0x00,0x60,0x60,0x00,0x00,   // 2e .
   0x20,0x10,0x08,0x04,0x02,   // 2f /
   0x3e,0x51,0x49,0x45,0x3e,   // 30 0
   0x00,0x42,0x7f,0x40,0x00,   // 31 1
   0x42,0x61,0x51,0x49,0x46,   // 32 2
   0x21,0x41,0x45,0x4b,0x31,   // 33 3
   0x18,0x14,0x12,0x7f,0x10,   // 34 4
   0x27,0x45,0x45,0x45,0x39,   // 35 5
   0x3c,0x4a,0x49,0x49,0x30,   // 36 6
   0x01,0x71,0x09,0x05,0x03,   // 37 7
   0x36,0x49,0x49,0x49,0x36,   // 38 8
   0x06,0x49,0x49,0x29,0x1e,   // 39 9
   0x00,0x00,0x36,0x36,0x00,   // 3a :
   0x00,0x56,0x36,0x00,0x00,   // 3b ;
   0x08,0x14,0x22,0x41,0x00,   // 3c <
   0x14,0x14,0x14,0x14,0x14,   // 3d =
   0x00,0x41,0x22,0x14,0x08,   // 3e >
   0x02,0x01,0x51,0x09,0x06,   // 3f ?
   0x32,0x49,0x79,0x41,0x3e,   // 40 @
   0x7e,0x11,0x11,0x11,0x7e,   // 41 A
   0x7f,0x49,0x49,0x49,0x36,   // 42 B
   0x3e,0x41,0x41,0x41,0x22,   // 43 C
   0x7f,0x41,0x41,0x22,0x1c,   // 44 D
   0x7f,0x49,0x49,0x49,0x41,   // 45 E
   0x7f,0x09,0x09,0x09,0x01,   // 46 F
   0x3e,0x41,0x49,0x49,0x7a,   // 47 G
   0x7f,0x08,0x08,0x08,0x7f,   // 48 H
   0x00,0x41,0x7f,0x41,0x00,   // 49 I
   0x20,0x40,0x41,0x3f,0x01,   // 4a J
   0x7f,0x08,0x14,0x22,0x41,   // 4b K
   0x7f,0x40,0x40,0x40,0x40,   // 4c L
   0x7f,0x02,0x0c,0x02,0x7f,   // 4d M
   0x7f,0x04,0x08,0x10,0x7f,   // 4e N
   0x3e,0x41,0x41,0x41,0x3e    // 4f O
};   


const char TABLE2[246]= {
   0x7f,0x09,0x09,0x09,0x06,   // 50 P
   0x3e,0x41,0x51,0x21,0x5e,   // 51 Q
   0x7f,0x09,0x19,0x29,0x46,   // 52 R
   0x46,0x49,0x49,0x49,0x31,   // 53 S
   0x01,0x01,0x7f,0x01,0x01,   // 54 T
   0x3f,0x40,0x40,0x40,0x3f,   // 55 U
   0x1f,0x20,0x40,0x20,0x1f,   // 56 V
   0x3f,0x40,0x38,0x40,0x3f,   // 57 W
   0x63,0x14,0x08,0x14,0x63,   // 58 X
   0x07,0x08,0x70,0x08,0x07,   // 59 Y
   0x61,0x51,0x49,0x45,0x43,   // 5a Z
   0x00,0x7f,0x41,0x41,0x00,   // 5b [
   0x02,0x04,0x08,0x10,0x20,   // 5c
   0x00,0x41,0x41,0x7f,0x00,   // 5d
   0x04,0x02,0x01,0x02,0x04,   // 5e
   0x40,0x40,0x40,0x40,0x40,   // 5f
   0x00,0x01,0x02,0x04,0x00,   // 60
   0x20,0x54,0x54,0x54,0x78,   // 61 a
   0x7f,0x48,0x44,0x44,0x38,   // 62 b
   0x38,0x44,0x44,0x44,0x20,   // 63 c
   0x38,0x44,0x44,0x48,0x7f,   // 64 d
   0x38,0x54,0x54,0x54,0x18,   // 65 e
   0x08,0x7e,0x09,0x01,0x02,   // 66 f
   0x0c,0x52,0x52,0x52,0x3e,   // 67 g
   0x7f,0x08,0x04,0x04,0x78,   // 68 h
   0x00,0x44,0x7d,0x40,0x00,   // 69 i
   0x20,0x40,0x44,0x3d,0x00,   // 6a j
   0x7f,0x10,0x28,0x44,0x00,   // 6b k
   0x00,0x41,0x7f,0x40,0x00,   // 6c l
   0x7c,0x04,0x18,0x04,0x78,   // 6d m
   0x7c,0x08,0x04,0x04,0x78,   // 6e n
   0x38,0x44,0x44,0x44,0x38,   // 6f o
   0x7c,0x14,0x14,0x14,0x08,   // 70 p
   0x08,0x14,0x14,0x18,0x7c,   // 71 q
   0x7c,0x08,0x04,0x04,0x08,   // 72 r
   0x48,0x54,0x54,0x54,0x20,   // 73 s
   0x04,0x3f,0x44,0x40,0x20,   // 74 t
   0x3c,0x40,0x40,0x20,0x7c,   // 75 u
   0x1c,0x20,0x40,0x20,0x1c,   // 76 v
   0x3c,0x40,0x30,0x40,0x3c,   // 77 w
   0x44,0x28,0x10,0x28,0x44,   // 78 x
   0x0c,0x50,0x50,0x50,0x3c,   // 79 y
   0x44,0x64,0x54,0x4c,0x44,   // 7a z
   0x00,0x08,0x36,0x41,0x00,   // 7b
   0x00,0x00,0x7f,0x00,0x00,   // 7c
   0x00,0x41,0x36,0x08,0x00,   // 7d
   0x10,0x08,0x08,0x10,0x08,   // 7e
   0x78,0x46,0x41,0x46,0x78,   // 7f
   0x7F,0x3E,0x1C,0x08,0x00    // 80
}; 

const char DIGITS_8x16[160]=
{
   0xfc, 0xfe, 0xfe, 0x06, 0x06, 0xfe, 0xfe, 0xfc, 0x7f, 0xff, 0xff, 0xc0, 0xc0, 0xff, 0xff, 0x7f, //0
   0x00, 0x18, 0x1c, 0xfe, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xc0, 0x00, //1
   0x3c, 0x3e, 0x3e, 0x06, 0x86, 0xfe, 0xfe, 0x7c, 0xe0, 0xf0, 0xfc, 0xff, 0xcf, 0xc7, 0xc1, 0xc0, //2
   0x1c, 0x1e, 0x9e, 0x86, 0x86, 0xfe, 0xfe, 0xfc, 0x78, 0xf8, 0xf9, 0xc1, 0xc1, 0xff, 0xff, 0x7e, //3
   0x00, 0xf0, 0xfe, 0x7e, 0xfe, 0xfe, 0xfe, 0x00, 0x3f, 0x3f, 0x37, 0x30, 0xff, 0xff, 0xff, 0x30, //4
   0xfe, 0xfe, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x86, 0x71, 0xf1, 0xf1, 0xc0, 0xc0, 0xff, 0xff, 0x7f, //5
   0xfc, 0xfe, 0xfe, 0xc6, 0xc6, 0xde, 0xde, 0x9c, 0x7f, 0xff, 0xff, 0xc0, 0xc0, 0xff, 0xff, 0x7f, //6
   0x06, 0x06, 0x06, 0x86, 0xe6, 0xfe, 0x7e, 0x1e, 0x80, 0xf0, 0xfe, 0x3f, 0x07, 0x01, 0x00, 0x00, //7
   0x7c, 0xfe, 0xfe, 0x86, 0x86, 0xfe, 0xfe, 0x7c, 0x7e, 0xff, 0xff, 0xc1, 0xc1, 0xff, 0xff, 0x7e, //8
   0xfc, 0xfe, 0xfe, 0x86, 0x86, 0xfe, 0xfe, 0xfc, 0x78, 0xf9, 0xf9, 0xc1, 0xc1, 0xff, 0xff, 0x7f  //9
};



void idle(void);
void init_nokia(void);
void nokia_command(unsigned char nokiacmd);
void nokia_data(unsigned char nokiadata);
void nokia_dorc(unsigned char nokiadorc);
void nokia_gotoxy(unsigned char xpos, unsigned char ypos);
void nokia_erase_y(unsigned char ydel);
void nokia_erase_x(unsigned char xdel);
void nokia_print(unsigned char print);
void nokia_clear_screen(void);
void nokia_string(unsigned char str[]);

unsigned char *receive(unsigned char id[]);
void write_eeprom(unsigned char adr, unsigned char d);
unsigned char read_eeprom(unsigned char adr);
void write_eeprom_string(unsigned char adr, unsigned char eeprom[]);
void read_eeprom_string(unsigned char adr);
void RFID_check();
void developer(void);
void showlist(unsigned char add);

void initialize(void);
void time_save(unsigned char add);
void idletime(void);
void time_get(void);
void time_read(unsigned char adr);
void time_show(void);

__CONFIG(XT & WDTDIS & PWRTDIS & UNPROTECT & LVPDIS);   //-->> not working????


void init_PORTS(void)
{	TRISB =0b00011000;	//Make PORTB<7:0> as output
	PORTB &=~0xFF;	//Send Logic 0 to PORTB<7:0>
	TRISD &=0b00001100;//0b00001110;
}

void time_set()
{	
	i2c_Start();
	i2c_WriteTo(0xd0);
	i2c_PutByte(0x00);
	i2c_PutByte(0x00);   //sec
	i2c_PutByte(0x40);   //min
	i2c_PutByte(0x20);   //hr
	i2c_PutByte(0x02);   //date (monday-sunday)
	i2c_PutByte(0x24);   //day 
	i2c_PutByte(0x01);   //month
	i2c_PutByte(0x12);   //year
	i2c_Stop();
}

void main(void)
{	sci_Init(9600, SCI_NINE);   	// initialize serial data bus
	init_PORTS();			// initialize ports
	init_nokia();			// initialize nokia LCD

//	time_set();	

	unsigned char data;
	int y,x,z,w,ads;

	initialize();
	idle();
	
	while(1)
	{	if(ads==0xFFF)
		{	RD0=0;
			show^=1;
 			list=0xFF;
			ads=0x00;
			if(show==0){idle();}
			else {developer(); ads=0xD00;}
		}

		if(RD2==1)
		{	showlist(1);	ads=0x500;}
		else if(RD3==1)
		{	showlist(2);	ads=0x500;}


		ads++;
		for(y=0;y<=0xFF;y++)
		{	if (RCIF)
			{	ads=0xF00;
				data=RCREG;
				RFID_check();
				data=RCREG;
			}
		}


//		write_eeprom_string(0x00,data);
	}
}




/*////////////////////////////////////   START OF FUNCTIONS     ///////////////////////////*/


/////
/////  	FUNCTION FOR RFID READER
/////



void RFID_check()
{	int meron=number_of_user+1;
	int var,val,y,x=0;
	long tag;
	unsigned char *temp;
	unsigned char d,add;
	unsigned char data[15];

	d=sci_GetByte();
	while(d!=0x03)
	{	data[x]=d;
		d=sci_GetByte();
		x++;	
	}	

	tag=0;
	for(x=2;x<=9;x++)
	{	if(data[x]<0x3a)
		{var=data[x]-0x30;}
		
		if(data[x]>0x40)
		{var=data[x]-0x37;}

		tag=(tag<<4)+var;
		RCIF=0;
	}
	
	for(y=0;y<=number_of_user;y++)
	{	if(SERIAL_NUM[y]==tag)
		{	meron=y;
			y=number_of_user+1;
		}
		RCIF=0;
	}

	idletime();
	if(meron<(number_of_user+1))
	{	RD0=1;
		nokia_erase_y(1);		
		nokia_gotoxy(0,2);
		nokia_string("   WELCOME!  ");
		nokia_print(' ');
		nokia_erase_y(3);
		nokia_erase_y(4);	
		nokia_gotoxy(5,4);
		temp=&NAME[meron][15];
		nokia_string(temp);

		add=(read_eeprom(0xFF)+0x10)&0xF0;
		if (add==0xF0) add=0x00;
		for(int x=0;x<13;x++) {write_eeprom((add+x),0xFF);} // delete row
		write_eeprom_string(add,temp);       /////-->> this makes error
		write_eeprom(0xFF,add);
		time_save(add);
	}
	else
	{	RD0=0;
		nokia_gotoxy(0,1);
		nokia_string(data);
		nokia_string(":       ");
		nokia_erase_y(2);
		nokia_gotoxy(0,3);
		nokia_string("   Invalid   ");
		nokia_print(' ');
		nokia_gotoxy(0,4);
		nokia_string("   RFID Tag   ");
	}
	nokia_erase_y(5);
}

/////
/////  END OF FUNCTION FOR RFID READER
/////


//////
////// Functions FOR NOKIA 3310 LCD DISPLAY
//////


void init_nokia(void)
{	nok_dc=1;
	nok_cs=1;
	nok_res=0;
	for(int z=0;z<=0xFF;z++)
	{
	}
	nok_res=1;
	nokia_command(0x21);
	nokia_command(0xc2);
	nokia_command(0x13);
	nokia_command(0x20);
	nokia_command(0x09);
	nokia_command(0x08);
	nokia_command(0x0c);
	nok_dc=1;
	
	nokia_clear_screen();
}

void nokia_command(unsigned char nokiacmd)
{	nok_dc=0;
	nok_cs=0;
	nokia_dorc(nokiacmd);
	nok_cs=1;
}

void nokia_data(unsigned char nokiadata)
{	nok_dc=1;
	nok_cs=0;
	nokia_dorc(nokiadata);
	nok_cs=1;
	RCIF=0;
}

void nokia_dorc(unsigned char nokiadorc)  // write 1x8 matrix for serial	 connection
{	for(int cnt=8;cnt>0;cnt--)
	{ for(int  z=0x00;z<0x02;z++){continue;}   // DelayMs(10); //-->> not working???

		nok_sclk=0;
		for(int  z=0x00;z<0x02;z++){continue;}   // DelayMs(10); //-->> not working???

		if ((nokiadorc&0x80)==0)
			nok_sda=0;
		else
			nok_sda=1;

		nok_sclk=1;
		nokiadorc=nokiadorc<<1;
	}
}

void nokia_gotoxy(unsigned char xpos, unsigned char ypos)
{	if (ypos>5) ypos=5;
	if (xpos>83) xpos=83;
	nokia_command(0x40|(ypos&0x07));
	nokia_command(0x80|(xpos&0x7f));
}

void nokia_erase_y(unsigned char ydel)
{	nokia_gotoxy(0,ydel);
	nokia_string("               ");
	nokia_print(' ');
}

void nokia_erase_x(unsigned char xdel)
{	for(int col=0;col<=6;col++)
	{	nokia_gotoxy(xdel,col);
		for(int r=0;r<6;r++) 
			nokia_data(0x00);
	}
}

void nokia_print(unsigned char charsel) // 5x8 LCD matrix
{	int skip=0;
	if (charsel<0x20) skip=1;
	if (charsel>0x80) skip=1;
	unsigned char chardata,charpos;
 
	if (skip==1)
	{	for (int char_row=0;char_row<5;char_row++)       // 5 bytes
		nokia_data(0x00);
	}
	else 
	{
		for (int char_row=0;char_row<5;char_row++)       // 5 bytes
		{	if (charsel<0x50)	
			{	charpos=(((charsel&0xff)-0x20)*5);
				chardata=TABLE1[(charpos+char_row)];    // use TABLE1
			}
			else if (charsel>0x4f)
			{	charpos=(((charsel&0xff)-0x50)*5);
				chardata=TABLE2[(charpos+char_row)];  // use TABLE2
			}
			nokia_data(chardata);      // send data to nokia
	  	}
	}
	nokia_data(0x00);      //    1 byte (always blank)

}


void nokia_string(unsigned char str[]) // 
{	int z=0;
	while((str[z]!=0x00) & (z<13))  // z<14 will limit the character to 13 Char, not exceeding the 84 column of LCD
	{	nokia_print(str[z]);
		z++;
	}
}

void nokia_clear_screen(void)
{	nokia_gotoxy(0,0);
	for(int z=0;z<=6;z++)
	{nokia_string("               ");
	}
}

/////
/////  	END OF FUNCTION NOKIA 3310 LCD DISPLAY
/////

/////   
/////   START EEPROM FUNCTION
/////   

unsigned char read_eeprom(unsigned char adr)
{  EEADR=adr;
   RD=1; // set the read bit
   return(EEDATA);
}

void read_eeprom_string(unsigned char adr)
{	adr=adr&0xF0;
	for(int x=0;x<13;x++)
	{	
		nokia_print(read_eeprom(adr+x));
	}
}

void write_eeprom(unsigned char adr, unsigned char d)
{  EEADR = adr;
   EEDATA = d;

   WREN = 1;  // write enable
   EECON2 = 0x55; // protection sequence
   EECON2 = 0xaa;

   WR = 1;  // begin programming sequnce
   for(int x=0;x<0xFF;x++){;}   // delay
   WREN = 0;  // disable write enable
}

void write_eeprom_string(unsigned char adr, unsigned char eeprom[])
{	if (adr>=0xF0) adr=0x00;
	for(int x=0;x<13;x++)
	{	if(eeprom[x]!=0)
		{	write_eeprom(adr,eeprom[x]);
			adr=adr+1;
		}	
		else 
			x=15;
	}
}

/////   
/////   END OF EEPROM FUNCTION
/////   

/////   
/////   START OF DS1307 TIME FUNCTION
/////   

void time_get(void)
{	i2c_Start();
	i2c_WriteTo(0xd0);
	i2c_PutByte(0x00); //address for seconds
	i2c_ReadFrom(0xd0);
	SEC=i2c_GetByte(1); 
	MIN=i2c_GetByte(1);
	HOUR=i2c_GetByte(1);
	DAY=i2c_GetByte(1);
	DAY=i2c_GetByte(1);
	MON=i2c_GetByte(1);
	YEAR=i2c_GetByte(0);
	i2c_Stop();
	for(int y=0;y<=500;y++){continue;}

}

void time_save(unsigned char add)
{	add=(add&0xF0);
	unsigned char ADDXD,ADDXE,ADDXF;
	time_get();
	ADDXD=(MON<<3)+((MIN>>4)&0b00000111); //bit-7 is ten's month, bit-6 to bit-3 is one's month, bit-2 to bit-0 is ten's of minute
	ADDXE=(MIN<<4)+((DAY>>2)&0b00001100)+((HOUR>>4)&0b00000011); //bit-7 to bit-4 is one's minute, bit-3 to bit-2 is ten's day, bit-1 to bit-0 ten's hour
	ADDXF=(DAY<<4)+(HOUR&0x0F); //bit-7 to bit-4 one's day, bit-3 to bit-0 one's of hour

	write_eeprom((add+0x0D),ADDXD);
	write_eeprom((add+0x0E),ADDXE);
	write_eeprom((add+0x0F),ADDXF);	
}

void time_read(unsigned char adr)
{	adr=adr&0xF0;
	MIN=((read_eeprom(adr+0x0D)&0x07)<<4)+ (read_eeprom(adr+0x0E)>>4);
	HOUR=((read_eeprom(adr+0x0E)&0x03)<<4)+(read_eeprom(adr+0x0F)&0x0F);
	DAY=((read_eeprom(adr+0x0E)&0x0C)<<2)+((read_eeprom(adr+0x0F)&0xF0)>>4);
	MON=(read_eeprom(adr+0x0D)>>3);
	time_show();
}

void time_show(void)
{	nokia_gotoxy(12,0);
	nokia_print((DAY>>4)+0x30);
	nokia_print((DAY&0x0F)+0x30);
	nokia_print('/');
	nokia_print((MON>>4)+0x30);
	nokia_print((MON&0x0F)+0x30);
//	nokia_print('/');
//	nokia_print((YEAR>>4)+0x30);
//	nokia_print((YEAR&0x0F)+0x30);
	nokia_print('-');
	nokia_print((HOUR>>4)+0x30);
	nokia_print((HOUR&0x0F)+0x30);
	nokia_print(':');
	nokia_print((MIN>>4)+0x30);
	nokia_print((MIN&0x0F)+0x30);
//	nokia_print(':');
//	nokia_print((SEC>>4)+0x30);
//	nokia_print((SEC&0x0F)+0x30);
}

void idletime(void)
{	time_get();
	time_show();	
}

/////   
/////   END OF DS1307 TIME FUNCTION
/////   

/////   
/////   FUNCTION WHILE STANDBY
/////


void idle(void)
{	idletime();
	nokia_gotoxy(0,1);
	nokia_print(' ');
	nokia_gotoxy(3,1);
	nokia_string("  RFID BASED   ");
	nokia_print(' ');
	nokia_gotoxy(0,2);
	nokia_string("   DOOR LOCK   ");
	nokia_print(' ');
	nokia_erase_y(3);
	nokia_gotoxy(0,4);
	nokia_string("     COE ++     ");
	nokia_print(' ');
	nokia_gotoxy(0,5);
	nokia_string("S.Y. 2011-201");
	nokia_print('2');
}

void developer(void)
{	nokia_gotoxy(0,0);
	nokia_string("  DEVELOPERS ");
	nokia_print(' ');
	nokia_erase_y(1);
	nokia_gotoxy(0,2);
	nokia_string("D. Carillo   ");
	nokia_gotoxy(0,3);
	nokia_string("E. Medrano   ");
	nokia_gotoxy(0,4);
	nokia_string("R. Mapanao   ");
	nokia_gotoxy(0,5);
	nokia_string("E. Sia       ");
	nokia_print(' ');
}

void showlist(unsigned char add)
{	int lst=0;
	//nokia_clear_screen();
	if (list==0xFF){list=read_eeprom(0xFF); 	nokia_clear_screen();}
	else 
	{	if(add==1)
		{	if (list==0x00) 
				list=0xE0;
			else list=list-0x10; 
		}
		if(add==2)
		{	list=list+0x10; 
			if (list>=0xFF) 
				list=0x00;

		}
	} 
	time_read(list);

	for(int x=0;x<5;x++)
	{	lst=(list&0xF0)-(x<<4);
		nokia_erase_y(x+1);
		nokia_gotoxy(6,(x+1));
		if((lst&0xF0)==0xF0) ;
		else 
		{read_eeprom_string(lst);}
	}	

	nokia_gotoxy(0,1);
	nokia_print(0x80);

	ads=0;
}

void initialize(void)
{	nokia_clear_screen();
	idletime();
	nokia_gotoxy(15,1);
	nokia_string("RFID BASED");
	nokia_gotoxy(18,2);
	nokia_string("DOOR LOCK");
	nokia_gotoxy(0,4);
	nokia_string("Initializing.");
	nokia_print('.');
	nokia_print('.');
	nokia_gotoxy(0,5);
	nokia_string("Please Wait.");
	nokia_print('.');
	nokia_print('.');
	nokia_gotoxy(0,0);
	for(int x=0;x<=0xFF;x++){
		for(int y=0;y<=0xFF;y++)
			{continue;}
	}
}


/////
/////   END FUNCTION WHILE STANDBY
/////


i hope that you can help me guys,
thanks.
 
I don't know what you linked to but I don't click on shortened urls. Please state your problem here.

Mike.
 
it is an image, i can't explain it well that's why i just made a graphical representation,
if i place the tag to the reader, it will show the tag to lcd,

the bug is,
if the tag is placed for during the displaying on LCD, it hangs up, or it stays on an infinite loop where i can't find,
 
Status
Not open for further replies.

New Articles From Microcontroller Tips

Back
Top