#include<pic.h> __CONFIG(0X3F72); unsigned int A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0; unsigned int K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,K1=0,L1=0,M1=0,N1=0,O1=0; unsigned int U=0,V=0,W=0,X=0,Y=0,Z=0; unsigned char T=0,ser1='R',data_cap1=0,st1=1,n,o,gpsdata[50]; unsigned int Z,val2,val3,val4,val5,M2,M3; unsigned int d=0,e=0; #define RS RD1 #define RW RD2 #define EN RD3 //*********************************************************************** // KEYPAD PIN DEFINE //********************************************************************** #define RESET RB1 //RESET SWITCH #define SS RB2 //IR SENSOR #define MOTOR RC0 #define BUZZER RC1 #define ir1 RB5 #define ir2 RB6 #define LDR RC2 static bit ultrasonic1@((unsigned )&PORTE*8+0); static bit trig@((unsigned )&PORTE*8+1); unsigned int g3,val12,val13,val13,val14,val15,H1=0,H2=0,H3=0; unsigned int aa,bb,dd,cc=50,VAL2=350,spo2,val24,val25; unsigned int adc_value,val1,val2=0,val3=0,val5=0,b,c,e,VAL22=0,TEMP,VALZ=0; //********************************************************************************** // DELAY FUNCTION //********************************************************************************** void delay(unsigned int a) { while(a--); } //********************************************************************************** // LCD COMMAND FUNCTION //********************************************************************************** void lcd_cmd(unsigned char com) { PORTD=(com & 0xf0); RS=0; RW=0; EN=1; delay(200); EN=0; unsigned int b; b=com<<4; PORTD=(b & 0xf0); RS=0; RW=0; EN=1; delay(200); EN=0; } //********************************************************************************** // LCD DATA FUNCTION //********************************************************************************** void lcd_data(unsigned char dat) { PORTD=(dat & 0xf0); RS=1; RW=0; EN=1; delay(200); EN=0; unsigned int c; c=dat<<4; PORTD=(c & 0xf0); RS=1; RW=0; EN=1; delay(200); EN=0; } //********************************************************************************** // LCD INITIALIZE FUNCTION //********************************************************************************** void lcd_init() { lcd_cmd(0x02); lcd_cmd(0x2c); lcd_cmd(0x06); lcd_cmd(0x0c); lcd_cmd(0x01); } //********************************************************************************** // LCD DISPLAY FUNCTION //********************************************************************************** void lcd_display(const unsigned char word[50]) { for(int l=0;word[l]!=0;l++) { lcd_data(word[l]); } } //****************************************************************************************************************************************** // GPS INTIALIZE FUNCTION //****************************************************************************************************************************************** void gps_init() { TXSTA=0X24; RCSTA=0X90; SPBRG=25; GIE=1; PEIE=1; RCIE=1; INTE=1; } void gsm_command(const unsigned char *da) { unsigned int s; for(s=0;da[s]!=0;s++) { while(!TXIF) { } OERR=0; TXREG=da[s]; } } void txs(unsigned char val) { while(!TXIF) { } OERR=0; TXREG=val; } void sms1() { txs('A');txs('T');txs('+');txs('C');txs('M');txs('G'); txs('S');txs('='); txs('"'); txs('7');txs('8');txs('1');txs('2');txs('8'); txs('5');txs('9');txs('6');txs('1');txs('2'); txs('"'); txs(13); delay(10000);txs(10); delay(600); delay(600); gsm_command("ACCIDENT OCCURED "); TXREG=0x0D; delay(5000); //TXREG=(x+0x30); delay(600); txs(13);delay(60000); txs(10); delay(10000); gsm_command("GPS LOCATION "); delay(600); txs(13);delay(60000); txs(10); delay(10000); for(o=16;o<28;o++) { ser1=(gpsdata[o]); TXREG=(ser1); delay(600); } for(o=30;o<42;o++) { ser1=(gpsdata[o]); TXREG=(ser1); delay(600); } delay(60000);delay(60000); txs(13);delay(60000); txs(10); delay(10000); txs(26); delay(50000);delay(50000); delay(50000);delay(50000); } //********************************************************************************** // SPEED SENSOR //********************************************************************************** void heart_beat() { while(CNT<=6) { TMR1ON=1; TMR1CS=0; // TIMER MODE T1CKPS1=1; // SETTING PRESCALAR VALUE AS 8 T1CKPS0=1; TMR1H=0x0B; TMR1L=0xDB; while(TMR1IF==0) { if((SS==1)&&(VAL8==0)) { VAL8=1; delay(10000); } if(SS==0) { VAL8=0; } } if(TMR1IF==1) { TMR1IF=0; CNT=CNT+1; TMR1ON=0; } } CNT=0; if((COUNT>=0)&&(COUNT<=5)) { COUNT1=COUNT1*12; } if((COUNT>=6)&&(COUNT<=8)) { COUNT1=COUNT1*10; } if((COUNT>=8)&&(COUNT<=12)) { COUNT1=COUNT1*10; } if((COUNT>=13)&&(COUNT<=29)) { COUNT1=COUNT1*8; } } //****************************************************************************************************************************************** // INTERRUPT FUNCTION //****************************************************************************************************************************************** void interrupt rcx() { if(INTF==1) { INTF=0; T=1; } if(RCIF==1) { RCIF=0; ser1=RCREG; if((ser1=='R')&&(st1==1)) { data_cap1=1; st1=0; } if((data_cap1==1)&&(n<45)) { gpsdata[n]=ser1; n=n+1; } } } //****************************************************************************************************************************************** // GPS SEND FUNCTION //****************************************************************************************************************************************** void gps_send() { if(n>43) { lcd_cmd(0x01); lcd_cmd(0x80); TXREG=('H'); delay(600); for(o=16;o<28;o++) { ser1=(gpsdata[o]); TXREG=(ser1); lcd_data(ser1); delay(600); } TXREG=('H'); delay(600); for(o=16;o<28;o++) { ser1=(gpsdata[o]); TXREG=(ser1); lcd_data(ser1); delay(600); } lcd_cmd(0xc0); TXREG=('I'); delay(600); for(o=30;o<42;o++) { ser1=(gpsdata[o]); TXREG=(ser1); lcd_data(ser1); delay(600); } TXREG=('I'); delay(600); for(o=30;o<42;o++) { ser1=(gpsdata[o]); TXREG=(ser1); lcd_data(ser1); delay(600); } delay(50000);delay(50000);delay(50000); delay(50000);delay(50000);delay(50000); lcd_cmd(0x01); lcd_cmd(0x80); lcd_display(" WELCOME "); data_cap1=0; st1=1; n=0; } } void serial(const unsigned char *a) { unsigned char i; for(i=0;a[i]!=0;i++) { TXREG=a[i]; delay(20000); //TXREG=0X0D; } } //*************************************************************** //ultrsonic sensor //*************************************************************** void sensor() { lcd_cmd(0x01); lcd_cmd(0x80); trig=0; for(e=0;e<30;e++); trig=1; for(e=0;e<30;e++); trig=0; while(ultrasonic1==0); if(ultrasonic1==1) { while(ultrasonic1==1) { d++; if(d>10000) break; } d=d*2; g3=d; lcd_cmd(0x01); delay(100); lcd_cmd(0x80); delay(100); lcd_display("ULTRASONIC L:"); lcd_cmd(0xC0); lcd_data((d%10000)/1000+0x30); lcd_data((d%1000)/100+0x30); lcd_data((d%100)/10+0x30); lcd_data((d%10)+0x30); lcd_data('m'); lcd_data('m'); } delay(10000);delay(10000); delay(10000);delay(10000); delay(10000);delay(10000); if(d<30) { lcd_cmd(0x80); lcd_display("ULTRASONIC Low:"); BUZZER=1; delay(10000);delay(10000); delay(10000);delay(10000); delay(10000);delay(10000); BUZZER=0; } d=0; delay(10000);delay(10000);delay(10000); } //********************************************************************************** // MAIN FUNCTION //********************************************************************************** void main() { ADCON1=0X8E; ADCON0=0x00; TRISB=0XF7; PORTB=0X00; TRISC=0x84; PORTC=0X00; TRISD=0x00; PORTD=0x00; TRISE=0x01; PORTE=0x00; lcd_init(); delay(200); lcd_cmd(0x80); lcd_display("WELCOME"); gps_init(); delay(50000);delay(50000);delay(50000); delay(50000);delay(50000);delay(50000); lcd_cmd(0x01); VALA=0; VALB=1; T=0; //********************************************************************************** // WHILE FUNCTION //********************************************************************************** while(1) { //*********************************************************************** //ACCIDENT SENSOR //*********************************************************************** if((T==1)&&(VALB==1)) { T=0; delay(6000); lcd_cmd(0x80); lcd_display("ACC OCCURED1 "); VALB=0; MOTOR=0; delay(50000);delay(50000); VALA=1; } if(VALA==1) { data_cap1=0; st1=1; n=0; lcd_cmd(0x80); lcd_display("ACC OCCURED2 "); U=U+1; V=U/10; W=U%10; BUZZER=1; lcd_cmd(0xCE); lcd_data(V+0x30); lcd_data(W+0x30); delay(1000);delay(1000);delay(1000);delay(1000); } { BUZZER=0; data_cap1=0; st1=1; n=0; TXREG=('E'); delay(600); TXREG=('0'); delay(600); lcd_cmd(0x80); lcd_display("NORMAL "); VALB=1; VALA=0; U=0; T=0; delay(50000);delay(50000); } if(U==10) { TXREG=('G'); delay(600); TXREG=('1'); delay(600); BUZZER=1; delay(50000); lcd_cmd(0x01); lcd_cmd(0x80); lcd_display("GPS SENDING......................"); delay(50000);delay(50000);delay(50000); gps_send(); delay(50000);delay(50000);delay(50000); delay(50000);delay(50000);delay(50000); serial("AT"); txs(13);delay(60000);delay(60000); txs(10); delay(10000); delay(10000); serial("AT+CMGF=1"); txs(13);delay(60000);delay(60000); txs(10); delay(10000); delay(10000); sms1(); delay(50000); delay(50000);delay(50000);delay(50000);delay(50000); BUZZER=0; delay(50000); delay(50000);delay(50000);delay(50000);delay(50000); while(1); } if(VALB==1) { MOTOR=1; //*********************************************************************** // HEART BEAT SENSOR //*********************************************************************** if(SS==0) { COUNT1=0; heart_beat(); } P=COUNT1/100; Q=COUNT1%100; R=Q/10; S=Q%10; lcd_cmd(0xC6); lcd_display("S="); lcd_data(P+0x30); lcd_data(R+0x30); lcd_data(S+0x30); delay(1000); delay(50000); } if(LDR==0) { BUZZER=1; lcd_cmd(0x86); lcd_display("LDR=1"); lcd_cmd(0xC0); lcd_display("lane detected"); delay(10000);delay(10000);delay(10000);delay(10000); delay(10000);delay(10000); delay(10000);delay(10000); delay(10000);delay(10000); BUZZER=0; } else { lcd_cmd(0x86); lcd_display("LDR=0"); delay(10000);delay(10000);delay(10000);delay(10000); } delay(30000);delay(30000); sensor(); delay(30000);delay(30000); lcd_cmd(0x01); } }
Standard input is empty
#include<pic.h>
__CONFIG(0X3F72);
unsigned int A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;
unsigned int K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,K1=0,L1=0,M1=0,N1=0,O1=0;
unsigned int U=0,V=0,W=0,X=0,Y=0,Z=0;
unsigned char T=0,ser1='R',data_cap1=0,st1=1,n,o,gpsdata[50];
unsigned int COUNT,CNT,COUNT,COUNT1,VAL8=0,VALA=0,VALB=1,VALC=0;
unsigned int Z,val2,val3,val4,val5,M2,M3;
unsigned int d=0,e=0;
#define RS RD1
#define RW RD2
#define EN RD3
//***********************************************************************
// KEYPAD PIN DEFINE
//**********************************************************************
#define RESET RB1 //RESET SWITCH
#define SS RB2 //IR SENSOR
#define MOTOR RC0
#define BUZZER RC1
#define ir1 RB5
#define ir2 RB6
#define LDR RC2
static bit ultrasonic1@((unsigned )&PORTE*8+0);
static bit trig@((unsigned )&PORTE*8+1);
unsigned int g3,val12,val13,val13,val14,val15,H1=0,H2=0,H3=0;
unsigned int aa,bb,dd,cc=50,VAL2=350,spo2,val24,val25;
unsigned int adc_value,val1,val2=0,val3=0,val5=0,b,c,e,VAL22=0,TEMP,VALZ=0;
//**********************************************************************************
// DELAY FUNCTION
//**********************************************************************************
void delay(unsigned int a)
{
while(a--);
}
//**********************************************************************************
// LCD COMMAND FUNCTION
//**********************************************************************************
void lcd_cmd(unsigned char com)
{
PORTD=(com & 0xf0);
RS=0;
RW=0;
EN=1;
delay(200);
EN=0;
unsigned int b;
b=com<<4;
PORTD=(b & 0xf0);
RS=0;
RW=0;
EN=1;
delay(200);
EN=0;
}
//**********************************************************************************
// LCD DATA FUNCTION
//**********************************************************************************
void lcd_data(unsigned char dat)
{
PORTD=(dat & 0xf0);
RS=1;
RW=0;
EN=1;
delay(200);
EN=0;
unsigned int c;
c=dat<<4;
PORTD=(c & 0xf0);
RS=1;
RW=0;
EN=1;
delay(200);
EN=0;
}
//**********************************************************************************
// LCD INITIALIZE FUNCTION
//**********************************************************************************
void lcd_init()
{
lcd_cmd(0x02);
lcd_cmd(0x2c);
lcd_cmd(0x06);
lcd_cmd(0x0c);
lcd_cmd(0x01);
}
//**********************************************************************************
// LCD DISPLAY FUNCTION
//**********************************************************************************
void lcd_display(const unsigned char word[50])
{
for(int l=0;word[l]!=0;l++)
{
lcd_data(word[l]);
}
}
//******************************************************************************************************************************************
// GPS INTIALIZE FUNCTION
//******************************************************************************************************************************************
void gps_init()
{
TXSTA=0X24;
RCSTA=0X90;
SPBRG=25;
GIE=1;
PEIE=1;
RCIE=1;
INTE=1;
}
void gsm_command(const unsigned char *da)
{
unsigned int s;
for(s=0;da[s]!=0;s++)
{
while(!TXIF)
{
}
OERR=0;
TXREG=da[s];
}
}
void txs(unsigned char val)
{
while(!TXIF)
{
}
OERR=0;
TXREG=val;
}
void sms1()
{
txs('A');txs('T');txs('+');txs('C');txs('M');txs('G');
txs('S');txs('=');
txs('"');
txs('7');txs('8');txs('1');txs('2');txs('8');
txs('5');txs('9');txs('6');txs('1');txs('2');
txs('"');
txs(13); delay(10000);txs(10);
delay(600);
delay(600);
gsm_command("ACCIDENT OCCURED ");
TXREG=0x0D;
delay(5000);
//TXREG=(x+0x30);
delay(600);
txs(13);delay(60000);
txs(10);
delay(10000);
gsm_command("GPS LOCATION ");
delay(600);
txs(13);delay(60000);
txs(10);
delay(10000);
for(o=16;o<28;o++)
{
ser1=(gpsdata[o]);
TXREG=(ser1);
delay(600);
}
for(o=30;o<42;o++)
{
ser1=(gpsdata[o]);
TXREG=(ser1);
delay(600);
}
delay(60000);delay(60000);
txs(13);delay(60000);
txs(10);
delay(10000);
txs(26);
delay(50000);delay(50000);
delay(50000);delay(50000);
}
//**********************************************************************************
// SPEED SENSOR
//**********************************************************************************
void heart_beat()
{
while(CNT<=6)
{
TMR1ON=1;
TMR1CS=0; // TIMER MODE
T1CKPS1=1; // SETTING PRESCALAR VALUE AS 8
T1CKPS0=1;
TMR1H=0x0B;
TMR1L=0xDB;
while(TMR1IF==0)
{
if((SS==1)&&(VAL8==0))
{
VAL8=1;
COUNT=COUNT+1;
delay(10000);
}
if(SS==0)
{
VAL8=0;
}
}
if(TMR1IF==1)
{
TMR1IF=0;
CNT=CNT+1;
TMR1ON=0;
}
}
COUNT1=COUNT;
CNT=0;
if((COUNT>=0)&&(COUNT<=5))
{
COUNT1=COUNT1*12;
}
if((COUNT>=6)&&(COUNT<=8))
{
COUNT1=COUNT1*10;
}
if((COUNT>=8)&&(COUNT<=12))
{
COUNT1=COUNT1*10;
}
if((COUNT>=13)&&(COUNT<=29))
{
COUNT1=COUNT1*8;
}
COUNT=0;
}
//******************************************************************************************************************************************
// INTERRUPT FUNCTION
//******************************************************************************************************************************************
void interrupt rcx()
{
if(INTF==1)
{
INTF=0;
T=1;
}
if(RCIF==1)
{
RCIF=0;
ser1=RCREG;
if((ser1=='R')&&(st1==1))
{
data_cap1=1;
st1=0;
}
if((data_cap1==1)&&(n<45))
{
gpsdata[n]=ser1;
n=n+1;
}
}
}
//******************************************************************************************************************************************
// GPS SEND FUNCTION
//******************************************************************************************************************************************
void gps_send()
{
if(n>43)
{
lcd_cmd(0x01);
lcd_cmd(0x80);
TXREG=('H');
delay(600);
for(o=16;o<28;o++)
{
ser1=(gpsdata[o]);
TXREG=(ser1);
lcd_data(ser1);
delay(600);
}
TXREG=('H');
delay(600);
for(o=16;o<28;o++)
{
ser1=(gpsdata[o]);
TXREG=(ser1);
lcd_data(ser1);
delay(600);
}
lcd_cmd(0xc0);
TXREG=('I');
delay(600);
for(o=30;o<42;o++)
{
ser1=(gpsdata[o]);
TXREG=(ser1);
lcd_data(ser1);
delay(600);
}
TXREG=('I');
delay(600);
for(o=30;o<42;o++)
{
ser1=(gpsdata[o]);
TXREG=(ser1);
lcd_data(ser1);
delay(600);
}
delay(50000);delay(50000);delay(50000);
delay(50000);delay(50000);delay(50000);
lcd_cmd(0x01);
lcd_cmd(0x80);
lcd_display(" WELCOME ");
data_cap1=0;
st1=1;
n=0;
}
}
void serial(const unsigned char *a)
{
unsigned char i;
for(i=0;a[i]!=0;i++)
{
TXREG=a[i];
delay(20000);
//TXREG=0X0D;
}
}
//***************************************************************
//ultrsonic sensor
//***************************************************************
void sensor()
{
lcd_cmd(0x01);
lcd_cmd(0x80);
trig=0;
for(e=0;e<30;e++);
trig=1;
for(e=0;e<30;e++);
trig=0;
while(ultrasonic1==0);
if(ultrasonic1==1)
{
while(ultrasonic1==1)
{
d++;
if(d>10000)
break;
}
d=d*2;
g3=d;
lcd_cmd(0x01);
delay(100);
lcd_cmd(0x80);
delay(100);
lcd_display("ULTRASONIC L:");
lcd_cmd(0xC0);
lcd_data((d%10000)/1000+0x30);
lcd_data((d%1000)/100+0x30);
lcd_data((d%100)/10+0x30);
lcd_data((d%10)+0x30);
lcd_data('m');
lcd_data('m');
}
delay(10000);delay(10000);
delay(10000);delay(10000);
delay(10000);delay(10000);
if(d<30)
{
lcd_cmd(0x80);
lcd_display("ULTRASONIC Low:");
BUZZER=1;
delay(10000);delay(10000);
delay(10000);delay(10000);
delay(10000);delay(10000);
BUZZER=0;
}
d=0;
delay(10000);delay(10000);delay(10000);
}
//**********************************************************************************
// MAIN FUNCTION
//**********************************************************************************
void main()
{
ADCON1=0X8E;
ADCON0=0x00;
TRISB=0XF7;
PORTB=0X00;
TRISC=0x84;
PORTC=0X00;
TRISD=0x00;
PORTD=0x00;
TRISE=0x01;
PORTE=0x00;
lcd_init();
delay(200);
lcd_cmd(0x80);
lcd_display("WELCOME");
gps_init();
delay(50000);delay(50000);delay(50000);
delay(50000);delay(50000);delay(50000);
lcd_cmd(0x01);
VALA=0;
VALB=1;
T=0;
//**********************************************************************************
// WHILE FUNCTION
//**********************************************************************************
while(1)
{
//***********************************************************************
//ACCIDENT SENSOR
//***********************************************************************
if((T==1)&&(VALB==1))
{
T=0;
delay(6000);
lcd_cmd(0x80);
lcd_display("ACC OCCURED1 ");
VALB=0;
MOTOR=0;
delay(50000);delay(50000);
VALA=1;
}
if(VALA==1)
{
data_cap1=0;
st1=1;
n=0;
lcd_cmd(0x80);
lcd_display("ACC OCCURED2 ");
U=U+1;
V=U/10;
W=U%10;
BUZZER=1;
lcd_cmd(0xCE);
lcd_data(V+0x30);
lcd_data(W+0x30);
delay(1000);delay(1000);delay(1000);delay(1000);
}
if((RESET==1)&&(U<=9))
{
BUZZER=0;
data_cap1=0;
st1=1;
n=0;
TXREG=('E');
delay(600);
TXREG=('0');
delay(600);
lcd_cmd(0x80);
lcd_display("NORMAL ");
VALB=1;
VALA=0;
U=0;
T=0;
delay(50000);delay(50000);
}
if(U==10)
{
TXREG=('G');
delay(600);
TXREG=('1');
delay(600);
BUZZER=1;
delay(50000);
lcd_cmd(0x01);
lcd_cmd(0x80);
lcd_display("GPS SENDING......................");
delay(50000);delay(50000);delay(50000);
gps_send();
delay(50000);delay(50000);delay(50000);
delay(50000);delay(50000);delay(50000);
serial("AT");
txs(13);delay(60000);delay(60000);
txs(10);
delay(10000);
delay(10000);
serial("AT+CMGF=1");
txs(13);delay(60000);delay(60000);
txs(10);
delay(10000);
delay(10000);
sms1();
delay(50000);
delay(50000);delay(50000);delay(50000);delay(50000);
BUZZER=0;
delay(50000);
delay(50000);delay(50000);delay(50000);delay(50000);
while(1);
}
if(VALB==1)
{
MOTOR=1;
//***********************************************************************
// HEART BEAT SENSOR
//***********************************************************************
if(SS==0)
{
COUNT1=0;
heart_beat();
}
P=COUNT1/100;
Q=COUNT1%100;
R=Q/10;
S=Q%10;
lcd_cmd(0xC6);
lcd_display("S=");
lcd_data(P+0x30);
lcd_data(R+0x30);
lcd_data(S+0x30);
delay(1000);
delay(50000);
}
if(LDR==0)
{
BUZZER=1;
lcd_cmd(0x86);
lcd_display("LDR=1");
lcd_cmd(0xC0);
lcd_display("lane detected");
delay(10000);delay(10000);delay(10000);delay(10000);
delay(10000);delay(10000);
delay(10000);delay(10000);
delay(10000);delay(10000);
BUZZER=0;
}
else
{
lcd_cmd(0x86);
lcd_display("LDR=0");
delay(10000);delay(10000);delay(10000);delay(10000);
}
delay(30000);delay(30000);
sensor();
delay(30000);delay(30000);
lcd_cmd(0x01);
}
}