//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#include<reg51.h>
#include<intrins.h>
#include<lcddisplay.h>
sbit rfen = P3^0;
sbit rfdata1 = P3^2;
sbit rfdata2 = P3^3;
sbitin1 = P2^2;
sbitin2 = P2^3;
sbitin3 = P2^4;
sbitin4 = P2^5;
sbiten1 = P2^0;
sbiten2 = P2^1;
sbitgate1_red = P3^5;
sbitgate1_green = P3^4;
//sbitgate2_red = P3^5;
//sbitgate2_green = P3^6;
sbitbuz = P2^7; //buzzer
//***************************************************************************
//**************************** MAIN PROGRAM**********************************
//***************************************************************************
voidmain()
{
intk=0;
lcd_init();
lcd_init();
gate1_red=1;
//gate2_red=1;
gate1_green=0;
//gate2_green=0;
lcdcmd(0x1);
msgdisplay(" WELCOME");
delay(800);
st:
lcdcmd(0x01);
msgdisplay(" GATECONTROL ");
lcdcmd(0xc0);
msgdisplay(" SYSTEM ");
delay(700);
gate1_green=0;
//gate2_green=0;
back:
if((rfen==1)&&(rfdata1==1)&&(rfdata2==0))
{
goto gate;
}
else
{
goto back;
}
gate:
gate1_green=1;
// gate2_green=1;
lcdcmd(0x01);
msgdisplay("TRAIN ISCOMING");
buz=0;
delay(1000);
while(1)
{
delay(50);
buz=0;
gate1_red=0;
// gate2_red=0;
lcdcmd(0xc0);
msgdisplay("GATESCLOSED!!");
en1=en2=1;
in1=1;
in2=0;
in3=1;
in4=0;
delay(400);
en1=en2=0;
in1=in2=in3=in4=0;
buz=1;
lcdcmd(0xc0);
msgdisplay("GATESCLOSED!!");
back1:
while(rfen==1);//waittill trainmovesoutof gate range
for(k=0;k<2000;k++) //waitforsome time
{
delay(1);
if(rfen==1)
gotoback1;
}
lcdcmd(0x01);
msgdisplay("TRAIN ISMOVING");
lcdcmd(0xc0);
msgdisplay("GATESOPENED!!");
buz=0;
en1=en2=1;
in1=0;
in2=1;
in3=0;
in4=1;
delay(400);
en1=en2=0;
in1=in2=in3=in4=0;
buz=1;
gate1_red=1;
//gate2_red=1;
gate1_green=0;
//gate2_green=0;
delay(1500);
goto st;
}
}

Intelligenttraingate