You are on page 1of 6

#include<reg51.

h>
sbit RS= P1^0;
sbit E=P1^1;
sbit
sbit
sbit
sbit
sbit
sbit

C1=P1^2;
C2=P1^3;
C3=P1^4;
R1=P1^5;
R2=P1^6;
R3=P1^7;

sbit motor1= P2^1;


sbit motor2= P2^3;
char row,col,net;
unsigned char arr[]="4500792AFFE9";
unsigned char arr2[]="450078F71AD0";
unsigned char arr1[10];
char pwd[5]={"2222"};
int initial=500;
int balance,current;
int n=0;
int count=0;
int a,f,c,d,g,h,k,j,m,x,d1,d2,d3;
unsigned char temp[10];
char str1[15]={"ENTER_PASSWORD"};
char str2[11]={"MATCH_FOUND"};
char str3[9]={"TRY_AGAIN"};
char
char
char
char
char
void

str4[12]={"ENTER_AMOUNT"};
str5[13]={"INSUFFICIENT"};
str6[10]={"SWAP_CARD"};
str7[16]={"WELCOME_ANP_BANK"};
str8[16]={" BALANCE =
"};
delay()
{
int i;
for(i=0;i<30000;i++);
}

void delay1(unsigned char day)


{
int i;
for(i=0;i<=day;i++);
}
void cmddip(unsigned char cmd1)
{
P0 = cmd1;
RS=0;
E=1;
E=0;
delay();
}
void datadip(unsigned char data1)
{
P0 = data1;

// RFID number

// password to access ATM card


// initial balance in ATM

RS=1;
E=1;
E=0;
delay();
}
void serial_initialize()
{
int i;
SCON=0x50;
TMOD=0x20;
TH1=0xFD;
TR1=1;

// to enable serial communication

cmddip(0xc0);
for(h=0;h<=2;h++)
{
while(RI==0);
arr1[h]= SBUF;
RI=0;
}
for(i=0;i<=2;i++)
{
if(arr[i] == arr1[i])
{
count++;
}
}
}
void key_scan()
{
do
{

// function for hex-keypad

R1=R2=R3=0;
C1=C2=C3=1;
}
while(C1==1 && C2==1 && C3==1);
if(C1==0)
col=0x00;
if(C2==0)
col=0x01;
if(C3==0)
col=0x02;
do
{
C1=C2=C3=0;
R1=R2=R3=1;
}
while(R1==1 & R2==1 & R3==1);
if(R1==0)
if(R2==0)
if(R3==0)
net=row+col;
}

row=0x00;
row=0x03;
row=0x06;

void pwd_mtch()
{
cmddip(0x01);
for(a=0;a<10;a++)
{
datadip(str3[a]);
}

// function to match password

// try again

}
void strng_cmp()
d
{
int b;
if(pwd[0]==arr[0])
{
if(pwd[1]==arr[1])
{
if(pwd[2]==arr[2])
{
if(pwd[3]==arr[3])
{
cmddip(0x01);

// function to compare string of passwor

for(b=0;b<11;b++)

// match found

{
datadip(str2[b]);
}
cmddip(0x80);
for(f=0;f<12;f++)

// enter amount

{
datadip(str4[f]);
}
cmddip(0xc0);
for(d=0;d<3;d++)
rd through keypad
{
key_scan();
temp[d]=net;
datadip(temp[d]+0x30);
}

// to enter 4 numerals of passwo

current=((temp[0]*100)+(temp[1]*10)+temp[2]);
balance=initial-current;
x=balance/10;
d1=balance%10;
d2=x%10;
d3=x/10;
if(balance>current)
{
P2=0x02;
delay();delay();delay();

delay();delay();delay();
delay();delay();delay();
delay();delay();delay();
}
else
{
P2=0x00;
cmddip(0x80);
for(g=0;g<13;g++)

// insufficient balance

{
datadip(str5[g]);
}
}
P2=0x00;
cmddip(0x80);
for(g=0;g<16;g++)
{
datadip(str8[g]);
}
cmddip(0xc0);
datadip(d3+0x30);
datadip(d2+0x30);
datadip(d1+0x30);
delay();delay();delay();
delay();delay();delay();
delay();delay();delay();
delay();delay();delay();
}
else
{
pwd_mtch();
}
}
else
{
pwd_mtch();
}
}
else
{
pwd_mtch();
}
}
else
{
pwd_mtch();
}
}
void main()
{

// insufficient balance

cmddip(0x38);
cmddip(0x0e);
cmddip(0x06);
while(1)
{
cmddip(0x01);
cmddip(0x80);
for(m=0;m<=16;m++)
{
datadip(str7[m]);

// welcome to ANP bank

}
cmddip(0x01);
cmddip(0x80);
for(k=0;k<10;k++)

// swap card

{
datadip(str6[k]);
}
serial_initialize();
if(count == 3)

// If RFID no. matches then enter password

{
count = 0;
cmddip(0x01);
cmddip(0x80);
for(c=0;c<15;c++)

// enter password

{
datadip(str1[c]);
}
cmddip(0xc0);
for(d=0;d<=3;d++)
ugh keypad
{
key_scan();
arr[d]=net+0x30;
datadip('*');
}

// to enter 4 numerals of password thro

strng_cmp();
}
else
hen try again
{
for(a=0;a<10;a++)
{
datadip(str3[a]);
}
}

// if RFID no. does not match t


// try again

}
}

You might also like