Sunteți pe pagina 1din 32

#include <reg51.

h>

sbit rs=P3^6;
sbit en=P3^7;

sbit t0=P2^0;
sbit t1=P2^1;
sbit wr=P2^2;
sbit rd=P2^3;

sbit light=P3^2;
sbit temp=P3^3;

sbit ac=P2^7;
sbit bulb=P2^6;

sbit led=P3^4;

sbit key=P3^5;

sbit irin=P1^6;
sbit irout=P2^4;
sbit explosive=P1^7;

sbit track1=P1^0;
sbit track2=P1^1;
sbit track3=P1^2;
sbit track4=P1^3;
sbit track5=P1^4;

sbit track6=P1^5;
sbit track7=P3^1;
sbit track8=P2^5;

sbit ACH0=P1^0;
sbit ACH1=P1^1;

void del_2ms()
{
unsigned char i;
for(i=0;i<=250;i++);
}

void del_10ms()
{
unsigned char i;
for(i=0;i<5;i++)
{
del_2ms();
}
}
/*
void del_50ms()
{
unsigned char i;
for(i=0;i<5;i++)
{
del_10ms();

}
*/

void del_100ms()
{
unsigned char i;
for(i=0;i<10;i++)
{
del_10ms();
}

void del_500ms()
{
unsigned char i;
for(i=0;i<5;i++)
{
del_100ms();
}

void del_1sec()

{
unsigned char i;
for(i=0;i<10;i++)
{
del_100ms();
}
}

/*
void del_1min()
{
unsigned char i;
for(i=0;i<30;i++)
{
del_1sec();
}

}
*/

void delaym(void)
{
int i;
for(i = 0; i <2000; i++)
; /* 25 */
}

// 140RPM for 150 in For loop

void delay(void)
{
int i;
for(i = 0; i < 300; i++)
; /* 25 */
}

void delay1(void)
{
int k;
for(k = 0; k < 200; k++)
; /* 25 */
}

/*
void del(void)
{
unsigned char i;

for(i=0;i<3;i++)
{
del_100ms();
}

}
*/

void Controler(unsigned char LCD_Cntr)


{
rs=0;
//

rw=0;
en=1;

P0=LCD_Cntr;

rs=0;
//

rw=0;
en=0;
delay();

void Data_Display(unsigned char Data)


{

rs=1;
//

rw=0;
en=1;

P0=Data;

rs=1;
//

rw=0;
en=0;

delay();
}

void lcd_init(void)
{
Controler(0x38);

/**********************************/

delay();
Controler(0x0c);

/* LCD control signal data's */

delay();
Controler(0x06);

/******* 38,0e and 06 hex ********/

delay();
Controler(0x01);

/* clear's LCD display(01h) */

void disp(unsigned char line, char *p)


{
Controler(line);
delay1();
while(*p)
{
Data_Display(*p);
delay();
p++;
}
delay1();

delay1();

////////////////////////////////////////////////////////////////////////////

void reverse(void)

// If we Call this function once motor rotates

{
char i;
// 7.2 Degree. For 360 Degree = 50 in for loop
for(i=0;i<=97;i++)
{

t0=0;
t1=1;
wr=1;
rd=0;

delaym();

t0=1;
t1=0;
wr=1;
rd=0;

delaym();

t0=1;
t1=0;
wr=0;
rd=1;

delaym();

t0=0;
t1=1;
wr=0;
rd=1;

delaym();

}
}

void forward(void)
{
char i;
// 7.2 Degree. For 360 Degree = 50 in for loop
for(i=0;i<=97;i++)
{

t0=0;
t1=1;

wr=0;
rd=1;

delaym();

t0=1;
t1=0;
wr=0;
rd=1;

delaym();

t0=1;
t1=0;
wr=1;
rd=0;
delaym();

t0=0;
t1=1;
wr=1;
rd=0;

delaym();
}

void RX(void)
{
TMOD=0X20;
TH1=-3;
TR1=0xff;
SCON=0X50;
RI=0;
}

/*

void uart(unsigned char txdt)


{
SBUF=txdt;
while(TI == 0)
CY = TI;
TI = 0;
}

*/

////////////////////////////////////////////////////////////////////////////

void conv_disp(unsigned char d1)


{
unsigned char a,temp;

// int i;

Controler(0xca);

// delay1();

if(d1<=0x09)
{
Data_Display('0');
Data_Display('0');
Data_Display(d1+0x30);

else

if(d1<=0x63)
{
B=0x0a;
a=d1/B;

Data_Display('0');
Data_Display(a+0x30);
Data_Display(B+0x30);

}
else
{

B=0x0a;
a=d1/B;
temp=B;
B=0x0a;
a=a/B;
Data_Display(a+0x30);
Data_Display(B+0x30);
Data_Display(temp+0x30);

void main()
{
unsigned char dn[]= {"

"};

int i,u=0,y=0,d=0,z,p=0,dr=0,fir=0,fir1=1,gos=0,gos1=1,user1=0,user2=0,user1_detect=0,clear1=0;
int pass=0,t6=0,exit=0;

t0=0;
t1=0;
wr=0;
rd=0;

ac=0;

bulb=0;

lcd_init();
Controler(0x00);
delay();

Controler(0x01);
delay();

disp(0x80," Microcontroller");
disp(0xc0,"

Based

");

del_1sec();
del_500ms();
del_1sec();
disp(0x80," RFID Based ");
disp(0xc0," Transportation ");

del_1sec();
del_500ms();
del_1sec();

del_1sec();
del_500ms();
del_1sec();
disp(0x80," Management ");
disp(0xc0,"

SYSTEM

");

del_1sec();
del_500ms();
del_1sec();

disp(0x80," PRESS START ");


disp(0xc0,"

");

z=0;
user2=0;
user1=9;
clear1=0;
user1_detect=0;
u=0;
/////////////////////////////////////////////////////////////////////////
RX();
RI=0;

while(1)
{

label:

if(key==1 && pass==0)


{

//tx=0;

disp(0x80,"

BUS IS

");

disp(0xc0,"GETTING STARTED ");

pass=1;

del_1sec();
del_1sec();

disp(0x80,"

BUS IS

");

disp(0xc0," MOVING.... ");

forward();
del_1sec();

led=0;

del_1sec();

}
// if bus moving

else

if(key==1 && pass==1)


{

//tx=0;

disp(0x80,"

BUS IS

");

disp(0xc0," SWITCHING OFF ");

del_1sec();
del_1sec();
pass=0;
//bulb=0;
//ac=0;

disp(0x80," BUS IS
disp(0xc0,"

");

STOPPED ");

reverse();

del_1sec();
del_1sec();

led=1;

retrn:

RI=0;
RI=0;

while(RI==0)
{

if(irin==1)
{

disp(0x80," UNAUTHORISED ");


disp(0xc0," ENTRY DETECTED ");

track3=0;
del_1sec();
del_1sec();
del_100ms();
//del_10ms();
track3=1;

del_1sec();
del_1sec();
}

if(irout==1)
{

disp(0x80," AUTHORISED ");


disp(0xc0," ENTRY DETECTED ");
exit=1;
goto labelexit;
//del_1sec();
//del_1sec();
//del_1sec();
}

if(explosive==0)
{

disp(0x80," Explosive
disp(0xc0,"

");

Detected ");

track2=0;
del_1sec();
del_1sec();
del_100ms();
//del_10ms();
track2=1;

del_1sec();
del_1sec();
del_1sec();
del_1sec();
del_1sec();

if(key==1)
goto label;

if(RI==1)
{

y=1;

break;
}

} //RI=0

if(y==1)
{
labelexit:

Controler(0x01);
delay();
Controler(0x80);
delay();
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////

//////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////
del_500ms();
//RX();
RI=0;
RI=0;

disp(0x80,"User : ");

for(i=1;i<=8;i++)
{
while(RI==0)
{}

RI=0;
dn[i]=SBUF;
Data_Display(dn[i]);
z=1;
}

if(dn[6]=='8' && dn[7]=='1'&& dn[8]=='7')


{

if(clear1==0)
{
clear1=1;
user1_detect=1;
}
else
if(clear1==1)
{
clear1=0;
user1_detect=0;
}

if(user1<=2)
{
disp(0xc0,"BALANCE : LOW");

track1=0;
del_1sec();
del_1sec();

// User 1

del_100ms();
//del_10ms();
track1=1;

del_1sec();
del_1sec();

}
else
{

disp(0xc0,"BALANCE : ");
conv_disp(user1);
}

else
if(dn[6]=='8' && dn[7]=='0'&& dn[8]=='7')
{

disp(0xc0,"BALANCE : LOW");

track1=0;
del_1sec();
del_1sec();
del_100ms();
//del_10ms();
track1=1;

// User 2

del_1sec();
del_1sec();

goto retrn;

}
pass=0;
del_1sec();
del_1sec();
del_1sec();

while(z==1)
{

if(exit==1)
{
exit=0;
goto retrn;
}

if(irin==1)
{
z=0;

disp(0x80," AUTHORISED ");


disp(0xc0," ENTRY DETECTED ");
del_1sec();

del_1sec();
del_1sec();

goto retrn;
}

if(irout==1)
{
//z=0;
disp(0x80," UNAUTHORISED ");
disp(0xc0," ENTRY DETECTED ");

track3=0;
del_1sec();
del_1sec();
del_100ms();
//del_10ms();
track3=1;

del_1sec();
del_1sec();
}

if(explosive==0)
{

disp(0x80," Explosive
disp(0xc0,"

");

Detected ");

track2=0;
del_1sec();
del_1sec();
del_100ms();
//del_10ms();
track2=1;

del_1sec();
del_1sec();
del_1sec();
del_1sec();
del_1sec();

if(key==1)
goto label;

y=0;
}

// while z = 1

}// y=1

// key press

if bus stopped

if(light==0)
{

bulb=0;
}

else
if(light==1)
{
bulb=1;
}

if(temp==0)
{
ac=1;

}
else
if(temp==1)
{
ac=0;
}

if(explosive==0)
{

disp(0x80," Explosive
disp(0xc0,"

Detected ");

track2=0;
del_1sec();
del_1sec();
del_100ms();
//del_10ms();
track2=1;

del_1sec();
del_1sec();
del_1sec();
del_1sec();
del_1sec();

RI=0;
RI=0;

for(i=0;i<=400;i++)
{

del_2ms();

if(RI==1)

");

u=1;

break;
}

} //for

if(u==1)
{

Controler(0x01);
//Data_Display('a');

disp(0x80," STOP : ");


Controler(0x88);
//disp(0x80,"

RI=0;
RI=0;

for(i=1;i<=8;i++)
{
while(RI==0)
{}

");

RI=0;
dn[i]=SBUF;
Data_Display(dn[i]);

del_1sec();
del_1sec();
del_1sec();

if(dn[6]=='7' && dn[7]=='2'&& dn[8]=='3') // station 1


{

if(user1_detect==1)
{
//user1_detect=0;
user1=user1-2;
disp(0x8f,".");

disp(0x80," MAJESTIC ");


disp(0xc0,"STATION DETECTED");

track4=0;
del_1sec();
del_1sec();
del_100ms();
//del_10ms();

track4=1;

del_1sec();
del_1sec();
del_1sec();

else

if(dn[6]=='9' && dn[7]=='8'&& dn[8]=='4')


{

if(user1_detect==1)
{
//user1_detect=0;
user1=user1-2;
disp(0x8f,".");

disp(0x80," YELAHANKA ");


disp(0xc0,"STATION DETECTED");

track5=0;
del_1sec();
del_1sec();
del_100ms();
//del_10ms();

// station 2

track5=1;

del_1sec();
del_1sec();
del_1sec();

else

if(dn[6]=='7' && dn[7]=='2'&& dn[8]=='4')


{

if(user1_detect==1)
{
//user1_detect=0;
user1=user1-2;
disp(0x8f,".");
}

disp(0x80," MVIT COLLEGE ");


disp(0xc0,"STATION DETECTED");

track7=0;
del_1sec();
del_1sec();
del_100ms();
//del_10ms();
track7=1;

// station 3

del_1sec();
del_1sec();
del_1sec();

}
u=0;
//Controler(0x01);
}

// if u==1

}//while

}//main

S-ar putea să vă placă și