Wednesday 3 June 2015

toll collection pic

#include<htc.h>
#include"lcdsub.c"
#define a RB1
#define b RB2
#define c RB3
unsigned int balance=500;
void lbal(int);
void lbal(int balance)
{
if(balance==50)
{
lcdcmd(0x01);
lcdstr("low balance");

lcdcmd(0x01);
lcdstr("wish to RC now??");
lcdcmd(0xc0);
lcdstr(" 1.Yes   2.NO ");
while(a==1 && b==1 && c==1);
if(a==0 && b==1 && c==1)
{
 balance=500;
 lcdcmd(0x01);
 lcdstr("RECHARGE success");
delay(15000);
 lcdcmd(0x01);
lcdstr("NEW BALANCE");
lcdcmd(0xc0);
lcdstr("RS:");
lcddisp1(balance);

 while(a==0 && b==1 && c==1);
 }


}
}
void interrupt ISR(void)
{
if(INTF==1)                      //interrupt loop start
{
lcdcmd(0x01);
lcdstr("VEHICLE DETECTED");
delay(8000);
lcdcmd(0x01);
lcdstr("reading data... ");
delay(8000);
lcdcmd(0x01);
lcdstr("press req button");
while(a==1 && b==1 && c==1);
if(a==0 && b==1 && c==1)    //50 rs button pressed
{
int i=0;
while(a==0 && b==1 && c==1);

lcdcmd(0x01);
lcdstr("current balance");
  lcdcmd(0xc3);
lcddisp1(balance);
delay(15000);
 lcdcmd(0x01);
lcdcmd(0x80);
balance=balance-450;
 lcdstr("amount deducted");
delay(15000);
lcdcmd(0x01);
 lcdstr("current balance");
 lcdcmd(0xc0);
 lcdstr(" RS:");
lcddisp1(balance);
delay(15000);
lbal(balance);
delay(15000);
lcdcmd(0x01);
lcdstr("you may proceed");
delay(15000);
lcdcmd(0x01);
lcdstr("THANK YOU");
delay(15000);
lcdcmd(0x01);
}

if(a==1 && b==0 && c==1)    //100 rs button pressed
{
int i=0;
while(a==1 && b==0 && c==1);

lcdcmd(0x01);
lcdstr("current balance");
  lcdcmd(0xc3);
lcddisp1(balance);
delay(15000);
 lcdcmd(0x01);
lcdcmd(0x80);
balance=balance-100;
 lcdstr("amount deducted");
delay(15000);
lcdcmd(0x01);
 lcdstr("current balance");
 lcdcmd(0xc0);
 lcdstr(" RS:");
lcddisp1(balance);
delay(15000);
lbal(balance);
delay(15000);
lcdcmd(0x01);
lcdstr("you may proceed");
delay(15000);
lcdcmd(0x01);
lcdstr("THANK YOU");
delay(15000);
lcdcmd(0x01);
}

if(a==1 && b==1 && c==0)    //150 rs button pressed
{
int i=0;
while(a==1 && b==1 && c==0);

lcdcmd(0x01);
lcdstr("current balance");
  lcdcmd(0xc3);
lcddisp1(balance);
delay(15000);
 lcdcmd(0x01);
lcdcmd(0x80);
balance=balance-150;
 lcdstr("amount deducted");
delay(15000);
lcdcmd(0x01);
 lcdstr("current balance");
 lcdcmd(0xc0);
 lcdstr(" RS:");
lcddisp1(balance);
delay(15000);
lbal(balance);
delay(15000);
lcdcmd(0x01);
lcdstr("you may proceed");
delay(15000);
lcdcmd(0x01);
lcdstr("THANK YOU");
delay(15000);
lcdcmd(0x01);
}


lcdcmd(0x01);
lcdstr("..SCANING...");
delay(15000);

INTF=0;
delay(6500);
}                                //interrupt loop ends

GIE=0;
PEIE=0;
INTE=0;
}



void main()
{
TRISB0=1;
TRISB1=1;
TRISB2=1;
TRISC=0x00;
TRISD=0x00;

lcdint();
lcdstr(".initialising.");
delay(6500);
lcdcmd(0x01);
while(1)
{
GIE=1;
PEIE=1;
INTE=1;



}
}



#define rs RC0
#define rw RC1
#define en RC2
int count=0;
int adc=0;
int p=192;
void lcdint();
void lcddisp(char chr);
void lcdcmd(int cmd);
void delay(int s);
void lcdstr(unsigned char *str);
void lcddisp1(unsigned int);
void delay(int s)
{
while(s--);
}

void lcdint()
{
lcdcmd(0x38);

lcdcmd(0x01);
lcdcmd(0x0E);

lcdcmd(0x06);

lcdcmd(0x80);
}
void lcdread()
{
char chrrd;
rw=1;
rs=1;
chrrd=PORTD;
en=1;
delay(100);
en=0;
}

void lcddisp(char chr)
{
rw=0;
rs=1;
PORTD=chr;
en=1;
delay(100);
en=0;
count++;
}

void lcdcmd(int cmd)
{
rw=0;
rs=0;
PORTD=cmd;
en=1;
delay(100);
en=0;
if(cmd==0x01)
count=0;
}
void lcddisp1(unsigned int disp1)
{
  int p,q,r,s,t,u;
 p=disp1/1000;// first digit determined

q=disp1%1000;//three seperated

r=q/100;//second digit determined

s=q%100;//two digit seperated

t=s/10;//third digit determined

u=s%10;// fourth digit determined

lcddisp(p+0x30);
lcddisp(r+0x30);
lcddisp(t+0x30);
lcddisp(u+0x30);


}
void lcdstr(unsigned char *str)
{
while(*str)
{
delay(2500);
lcddisp(*str++);
}
}


No comments:

Post a Comment