Professional Documents
Culture Documents
/**************************************************************************
**************
Project Title
Project File
Project12
Source File
librarymgmtsystem.c
Target IC
AT89S52
Description
***************************************************************************
*************/
#include<reg51.h>
#include<string.h>
//temp=0X12;
void command(unsigned char);
void message(unsigned char);
void Display(unsigned char[ ]);
void delay(unsigned int);
void delay1(unsigned int);
void lcd_init( );
void mess_lcd(unsigned char,unsigned char[ ]);
void clrlcd( );
void serialinit(void);
void serialstore( );
//unsigned char compare(unsigned char[ ],unsigned char[ ]);
void cont_compare(void);
void cont_compare_R(void);
sfr ldata = 0X90;
62
sbit rs = P3^5;
sbit rw = P3^6;
sbit en = P3^7;
sbit sw1 =
P2^0;
sb1=0,sb2=0,sb3=0,sb4=0;
again_start:
mess_lcd(0X80,"TAKE
mess_lcd(0XC0," 1
RETURN ");
2 ");
if(sw1==0)
{
while(sw1==0);
clrlcd( );
mess_lcd(0X80,"PLACE THE CARD");
message(id[h]);
serialstore( );
cont_compare( );
}
if(sw2==0)
{
while(sw2==0);
clrlcd( );
mess_lcd(0X80,"PLACE THE CARD");
message(id[h]);
serialstore( );
cont_compare_R( );
}
goto again_start;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void lcd_init(void)
{
command(0x38);
command(0x80);
command(0x0e);
command(0x01);
command(0x06);
}
64
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void mess_lcd(unsigned char m,unsigned char arr[ ])
{
char a;
a=0;
command(m);
while(arr[a]!=0)
{
message(arr[a]);
a++;
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void clrlcd( )
{
command(0X01);
delay(100);
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void serialstore(void)
{
unsigned char n=0;
while(n<=11)
{
while(RI==0);
RI = 0;
id[n]= SBUF;
n++;
}
65
id[n]='\0';
for(h=0;h<=11;h++)
delay(1);
message(id[h]);
clrlcd( );
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void serialinit(void)
{
TMOD = 0X20;
TH1 = 0XFD;
SCON = 0X50;
TR1 = 1;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void command(unsigned char value)
{
ldata = value;
rs = 0;
rw = 0;
en = 1;
delay(5);
en = 0;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void message(unsigned char value)
{
ldata = value;
rs = 1;
66
rw = 0;
en = 1;
delay(5);
en = 0;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void delay(unsigned int r)
{
unsigned int p,q;
for(p=0;p<r;p++)
for(q=0;q<=200;q++);
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*unsigned char compare(unsigned char kk[ ],unsigned char hh[ ])
{
unsigned char i=0,j=0,e;
lcd_init( );
for(e=0;e<=11;e++)
if(kk[i]!=hh[i])
{
j=1;
break;
}
else
i++;
67
return 0;
}
*/
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////
/*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
FUNCTION FOR TAKING THE BOOKS
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&*/
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////
void cont_compare(void)
{
t=strcmp(id,"380035083F3A");
////////////////////////////////////////////////////STUDENT 1////////////////////////////////////
if(t==0)
{
mess_lcd(0x80,"STUDENT1");
delay(260);
command(0x01);
if((sa1 + sa2 + sa3 + sa4)==2)
while(1)
{
command(0x01);
mess_lcd(0x80,"PLACE THE BOOK");
message(id[h]);
serialstore( );
t=strcmp(id,"3600AB17AC26");
if(t==0)
{
mess_lcd(0x80,"BOOK1 TAKEN");
sa1=1;
status1++;
delay(260);
return;
}
68
else
{
sa1=0;
}
t=strcmp(id,"360067633D0F");
if(t==0)
{
mess_lcd(0x80,"BOOK2 TAKEN");
sa2=1;
status1++;
delay(260);
return;
}
else
{
sa2=0;
}
t=strcmp(id,"36006C424E56");
if(t==0)
{
mess_lcd(0x80,"BOOK3 TAKEN");
sa3=1;
status1++;
delay(260);
return;
}
else
{
sa3=0;
}
t=strcmp(id,"34006C49AABB");
if(t==0)
{
mess_lcd(0x80,"BOOK4 TAKEN");
69
sa4=1;
status1++;
delay(260);
return;
}
else
{
sa4=0;
}
}
return;
}
t=strcmp(id,"380034028E80");
///////////////////////////////////////////////////STUDENT2////////////////////////////////////
if(t==0)
{
mess_lcd(0x80,"STUDENT2");
delay(260);
command(0x01);
if((sb1 + sb2 + sb3 + sb4)==2)
while(1)
{
command(0x01);
mess_lcd(0x80,"PLACE THE BOOK");
message(id[h]);
serialstore( );
t=strcmp(id,"3600AB17AC26");
if(t==0)
{
mess_lcd(0x80,"BOOK1 TAKEN");
sb1=1;
status2++;
70
delay(260);
return;
}
else
{
sb1=0;
}
t=strcmp(id,"360067633D0F");
if(t==0)
{
mess_lcd(0x80,"BOOK2 TAKEN");
sb2=1;
status2++;
delay(260);
return;
}
else
{
sb2=0;
}
t=strcmp(id,"36006C424E56");
if(t==0)
{
mess_lcd(0x80,"BOOK3 TAKEN");
sb3=1;
status2++;
delay(260);
return;
}
else
{
sb3=0;
}
t=strcmp(id,"34006C49AABB");
71
if(t==0)
{
mess_lcd(0x80,"BOOK4 TAKEN");
sb4=1;
status2++;
delay(260);
return;
}
else
{
sb4=0;
}
}
return;
}
else
{
clrlcd( );
mess_lcd(0x80,"INVALID ID");
delay(260);
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////
/*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
FUNCTION FOR RETURNING THE BOOKS
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&*/
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////
void cont_compare_R(void)
{
t=strcmp(id,"380035083F3A");
////////////////////////////////////////////////////STUDENT 1////////////////////////////////////
if(t==0)
{
mess_lcd(0x80,"STUDENT1");
72
delay(260);
command(0x01);
if((sa1+sa2+sa3+sa4)==2)
{
clrlcd( );
mess_lcd(0x80," YOU ARE NOT ");
mess_lcd(0xc0,"HAVING ANY BOOK ");
delay(450);
return;
}
while(1)
{
command(0x01);
mess_lcd(0x80,"PLACE THE BOOK");
message(id[h]);
serialstore( );
t=strcmp(id,"3600AB17AC26");
if(t==0)
{
mess_lcd(0x80,"BOOK1 RETURNED");
sa1=0;
status1--;
delay(260);
return;
}
else
{
sa1=1;
}
t=strcmp(id,"360067633D0F");
if(t==0)
{
mess_lcd(0x80,"BOOK2 RETURNED");
sa2=0;
status1--;
delay(260);
73
return;
}
else
{
sa2=1;
}
t=strcmp(id,"36006C424E56");
if(t==0)
{
mess_lcd(0x80,"BOOK3 RETURNED");
sa3=0;
status1--;
delay(260);
return;
}
else
{
sa3=1;
}
t=strcmp(id,"34006C49AABB");
if(t==0)
{
mess_lcd(0x80,"BOOK4 RETURNED");
sa4=0;
status1--;
delay(260);
return;
}
else
{
sa4=1;
}
}
return;
}
74
t=strcmp(id,"380034028E80");
//////////////////////////////////////////////////STUDENT2////////////////////////////////////
if(t==0)
{
mess_lcd(0x80,"STUDENT2");
delay(260);
command(0x01);
// if(status2==0)
if((sb1+sb2+sb3+sb4)==2)
{
clrlcd( );
mess_lcd(0x80," YOU ARE NOT ");
mess_lcd(0xc0,"HAVING ANY BOOK ");
delay(450);
return;
}
while(1)
{
command(0x01);
mess_lcd(0x80,"PLACE THE BOOK");
message(id[h]);
serialstore( );
t=strcmp(id,"3600AB17AC26");
if(t==0)
{
mess_lcd(0x80,"BOOK1 RETURNED");
sb1=0;
status2--;
delay(260);
return;
}
else
{
sb1=1;
75
}
t=strcmp(id,"360067633D0F");
if(t==0)
{
mess_lcd(0x80,"BOOK2 RETURNED");
sb2=0;
status2--;
delay(260);
return;
}
else
{
sb2=1;
}
t=strcmp(id,"36006C424E56");
if(t==0)
{
mess_lcd(0x80,"BOOK3 RETURNED");
sb3=0;
status2--;
delay(260);
return;
}
else
{
sb3=1;
}
t=strcmp(id,"34006C49AABB");
if(t==0)
{
mess_lcd(0x80,"BOOK4 RETURNED");
sb4=0;
status2--;
delay(260);
76
return;
}
else
{
sb4=1;
}
}
return;
}
else
{
clrlcd( );
mess_lcd(0x80,"INVALID ID");
delay(260);
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////
77