Tuesday, 25 February 2014

code for anti theft tracking system, fingerprint protected anti theft tracking system code, embedded code, project code

This is the code i am sending it is having gsm.h, lcd.h, main.c, uart0.h, uart.h files.


  1. main.c
#include<lpc214x.h>


#include<string.h>
#include"lcd.h"
#include"uart0.h"
#include"uart1.h"
#include"gsm.h"

unsigned char GSM_recive,newmsg=0;
extern unsigned char msg[50],mobilenum[11];
unsigned char store_m[11],vib=0,gpsdata,GPSvalue[50],Longitude[50];

void GPS_read (void);

#define  motor           0x00020000         // p0.17        pin no=35  (in pin)
#define  ir           0x00040000        // p0.18      pin no=45  (in pin)
#define  sw           0x00080000        // p0.19      pin no=45  (in pin)
#define  enrol           0x00100000        // p0.20      pin no=45  (in pin)

#define  buzz            0x00800000
#define  gsm             0x00000004         
#define  gps             0x00000008


#define  Motor_ON     IOSET0 |= motor
#define  Motor_OFF    IOCLR0 |= motor

#define  buzz_ON      IOCLR0 |=buzz
#define  buzz_OFF     IOSET0 |= buzz

#define  gsm_on       IOSET0 |= gsm
#define  gsm_off      IOCLR0 |= gsm

#define  gps_on       IOSET0 |= gps
#define  gps_off      IOCLR0 |= gps

unsigned char uart0_rx,t1,t2,t3,suc=0,ide=0,id1=0;

unsigned char baudrate[14]={0xef,0x01,0xff,0xff,0xff,0xff,0x01,0x00,0x05,0x0e,0x04,0x01,0x00,0x19};
unsigned char enroll[12]={0xEF,0X01,0XFF,0XFF,0XFF,0XFF,0X01,0X00,0X03,0X01,0X00,0X05};   
unsigned char generate_ch[13]={0xEF,0X01,0XFF,0XFF,0XFF,0XFF,0X01,0X00,0X04,0x02,0X01,0X00,0X08};  
unsigned char generate_ch1[13]={0xEF,0X01,0XFF,0XFF,0XFF,0XFF,0X01,0X00,0X04,0x02,0X02,0X00,0X09};  
unsigned char un_cmd[12]={0xef,0x01,0xff,0xff,0xff,0xff, 0x01,0x00,0x03,0x05,0x00,0x09 };
unsigned char store[12]={0xEF,0X01,0XFF,0XFF,0XFF,0XFF,0X01,0X00,0X06,0X06,0X02,0x00};
unsigned char identify[17]={0xef,0x01,0xff,0xff,0xff,0xff,0x01,0x00,0x08,0x1b,0x01,0x00,0x00,0x01,0x01,0x00,0x27};

unsigned int fp_i=0,fp[20],fp_j=0;
unsigned int rec=0x00,dummy=0x0f,id; 


void clearfp(void);
void enroll_finger(void);
void identify_finger(void);


void main_delay( unsigned int value )
{
 unsigned int ui_temp1,ui_temp2;
 for(ui_temp1=0;ui_temp1<value;ui_temp1++)
 for(ui_temp2=0;ui_temp2<5000;ui_temp2++);
}

void UART0_irq (void) __irq               
{
 while (!(U0LSR & 0x01));     // Wait RXD Receive Data Ready
 GSM_recive=U0RBR; 
 
 if(GSM_recive=='+')
 {
  newmsg=1;
  VICIntEnable = 0x00000000;   //interrupt Enable 
  U0IER=0;  // Clear the interrupt;
  VICVectAddr = 0x00000000; // interrupt address;
 }
 VICVectAddr = 0x00000000;   //Dummy write to signal end of interrupt                                                                                  
}

void UART1ISR (void) __irq
{
 while (!(U1LSR & 0x01));
 fp[fp_j]=U1RBR;
 fp_j++;
 VICVectAddr = 0x00000000;   //Dummy write to signal end of interrupt   
}

void EXTINT0_ISR (void)  __irq    //external interrupt 0 EINT0 pin0 16
{
 vib=1;
 VICVectAddr = 0x00000000; 
 EXTINT =0x01;
}

void uart0_irq_init(void)
{
 VICVectCntl1 = 0x00000026;            
 VICVectAddr1 = (unsigned long)UART0_irq;
 VICIntEnable |= 0x00000040;         
 U0IER=0x01;          
}

void uart1_irq_init(void)
{
 VICVectCntl0 = 0x00000027;    
 VICVectAddr0 = (unsigned)UART1ISR;
 VICIntEnable = 0x00000080;
 U1IER=0x05;
}

void  EXTINT0_init()
{
 VICVectCntl2 = 0x0000002E; 
 VICVectAddr2 = (unsigned)EXTINT0_ISR; 
 VICIntEnable |=0x00004000;
 PINSEL1 |= 0x00000001; 
 EXTINT |=0x01;
 EXTMODE |=0x01;
 EXTPOLAR |=0x00;
}

int main()
{
 char vh_status=0,glass_b=0,vh_s=0;  

 IODIR0 |=gsm;
 gsm_off;

 IODIR0 |=gps;
 gps_off;

 IODIR0 |=motor;
 Motor_OFF;

 IODIR0 |=buzz;
 buzz_OFF;

 lcd_init();
 uart0_init();
 uart1_init();
 lcd_cmd(0x01);
 lcd_puts("vehicle security "); //Vehicle security
 lcd_cmd(0xc0);
 lcd_puts("     system");
 main_delay(2000);

 gsm_on;
 gps_off;
 gsm_check();
 gsm_init();
 gsm_clear_msg(1);

 uart0_irq_init();

 lcd_cmd(0x01);
 lcd_puts("Store Ph.No");

 while(newmsg==0);
 {
  newmsg=0;
  lcd_cmd(0x01);
  lcd_puts("msg.........");
  main_delay(2000);
  U0IER=0x00;
  gsm_mes_read();
  lcd_cmd(0x01);
  lcd_puts(mobilenum);
  gsm_delay(2000);
  store_m[0]=mobilenum[0];
  store_m[1]=mobilenum[1];
  store_m[2]=mobilenum[2];
  store_m[3]=mobilenum[3];
  store_m[4]=mobilenum[4];
  store_m[5]=mobilenum[5];
  store_m[6]=mobilenum[6];
  store_m[7]=mobilenum[7];
  store_m[8]=mobilenum[8];
  store_m[9]=mobilenum[9];
  store_m[10]=mobilenum[10];

  U0IER=0x01;  
  main_delay(2000);
 }

 EXTINT0_init();
 uart1_irq_init();

 start:

 lcd_cmd(0x01);
 lcd_puts("vehicle security "); //Vehicle security
 lcd_cmd(0xc0);
 lcd_puts("     system");
 main_delay(5000);

 lcd_cmd(0x01);
 lcd_puts(" PUT UR FINGER");

 while(1)
 {
  if(newmsg==1)
  {
   char i;
   
   newmsg=0;
   gsm_mes_read();
   main_delay(1000);

lcd_cmd(0x01);
 lcd_puts("vehicle security "); //Vehicle security
 lcd_cmd(0xc0);
 lcd_puts("     system");
   
   if(!strcmp(msg,"STOP"))
   {
    if(!strcmp(mobilenum,store_m))
 {
     buzz_ON ;
  vh_status=1;
     for(i=0;i<5;i++)
  {
   lcd_cmd(0x01);
   lcd_puts("vh going to be ");
   lcd_cmd(0xc0);
   lcd_puts("stop....");
   main_delay(500);
  }
  Motor_OFF;
  U0IER=0x00;
  gsm_send_num_mesg_data(mobilenum,Longitude,"vh stoped");
  main_delay(1500);
     U0IER=0x01;
  lcd_cmd(0x01);
  lcd_puts("Door locked");
  lcd_cmd(0xc0);
  lcd_puts("vh ctrl by user");
    }
 else
 {
  lcd_cmd(0x01);
  lcd_puts("Unauthorized ");
  lcd_cmd(0xc0);
  lcd_puts("       Access");
  main_delay(500);
  goto start;
 }
   }
   if(!strcmp(msg,"LOCATION"))
   {
    if(!strcmp(mobilenum,store_m))
 {
     U0IER=0x00;
     gsm_send_num_mesg(mobilenum,Longitude);
  gsm_delay(2000);
     U0IER=0x01;
     
     lcd_cmd(0x01);
     lcd_puts("vehicle security "); //Vehicle security
     lcd_cmd(0xc0);
     lcd_puts("     system");
     main_delay(1000); 

  if(vh_status==1)
     {
      lcd_cmd(0x01);
      lcd_puts("Door locked");
  lcd_cmd(0xc0);
  lcd_puts("vh ctrl by user");
     }
    }
 else
 {
  lcd_cmd(0x01);
  lcd_puts("Unauthorized P");
  lcd_cmd(0xc0);
  lcd_puts(" Try to Access");
  main_delay(1500);
  goto start;
 }
   }
   if(!strcmp(msg,"START"))
   {
    if(!strcmp(mobilenum,store_m))
 {
     vh_status=0;
  U0IER=0x00;
     gsm_send_num_mesg_data(mobilenum,Longitude,"vh start");
  gsm_delay(2000);
     U0IER=0x01;
  lcd_cmd(0x01);
     lcd_puts("vh start by user");
goto start;
    }
 else
 {
  lcd_cmd(0x01);
  lcd_puts("Unauthorized ");
  lcd_cmd(0xc0);
  lcd_puts("       Access");
  main_delay(1500);
  goto start;
 }
   } 
  }

if((IOPIN0&ir)!=0 && vh_status==0 && vh_s==0)
  {
    //U0IER=0x00;
   //enroll_finger();
// U0IER=0x01;

U0IER=0x00; 
identify_finger();
U0IER=0x01; 

if( ide==1)
   {
ide=0; 
vh_s=1; 
    Motor_ON ;
    U0IER=0x00; 
gsm_off;
gps_on; 
GPS_read();
uart0_init(); 
gps_off;
    gsm_on;
    gsm_send_num_mesg_data(store_m,Longitude,"authorized access");
    U0IER=0x01;  
}
else
{
U0IER=0x00; 
gsm_off;
gps_on; 
GPS_read();
uart0_init(); 
gps_off;
    gsm_on;
    gsm_send_num_mesg_data(store_m,Longitude,"unauthorized access");
    U0IER=0x01;  
   } 
    lcd_cmd(0x01);
    lcd_puts("vehicle security "); //Vehicle security
    lcd_cmd(0xc0);
    lcd_puts("     system"); 
  } 

if((IOPIN0&sw)==0&&vh_s==1)
  {
vh_s=0;  
while(!(sw&IOPIN0));
Motor_OFF ;
   goto start;
}

  if((IOPIN0&enrol)==0 && vh_s==1)
  {
while(!(enrol&IOPIN0));
    U0IER=0x00;
   enroll_finger();
U0IER=0x01;
lcd_cmd(0x01);
    lcd_puts("vehicle security "); //Vehicle security
    lcd_cmd(0xc0);
    lcd_puts("     system");  
  }

  if(vib==1)
  {
vib=0;
vh_s=0; 
   Motor_OFF ;
lcd_cmd(0x01);
lcd_puts("Accident ");
lcd_cmd(0xc0);
lcd_puts("   occurred");
main_delay(1000);
U0IER=0x00; 
gsm_off;
gps_on; 
GPS_read();
uart0_init(); 
gps_off;
   gsm_on;
   gsm_send_num_mesg_data(store_m,Longitude,"Accident occurred");
   U0IER=0x01;
   EXTINT0_init();
   goto start;
  }
  
  /*if(vh_status==1)
  {
   lcd_cmd(0x80);
   lcd_puts("                ");
   lcd_cmd(0xc0);
   lcd_puts("               ");
   lcd_cmd(0x80);
   lcd_puts("Door locked");
   lcd_cmd(0xc0);
   lcd_puts("vh cont by user");
   main_delay(800);
  }


  if(glass==1 && glass_b==0)   
  {
   glass_b=1;
   buzz_ON;
   glass=0;
   lcd_cmd(0x01);
   lcd_puts("  Glass Broken ");
   main_delay(1500);
   U0IER=0x00;
   gsm_send_num_mesg_data(store,Longitude,"Glass Broken");
   main_delay(1500);
   lcd_cmd(0x01);
   U0IER=0x01;
   goto start;
  }*/
 }
}









void GPS_read (void)
{
 unsigned char gps_i,gps_k;
 com_baudrate0(4800);
 while(1)
 {
  gpsdata =uart0_getch();
  if(gpsdata=='$')
  {
   gpsdata= uart0_getch();
   gpsdata= uart0_getch();

   if(uart0_getch()=='R')
   {
    if(uart0_getch()=='M')
    { 
     if(uart0_getch()=='C')
{
 gps_i=0;
 while(gps_i<45)
 {
  GPSvalue[gps_i]=uart0_getch();
  gps_i++;
 }
 GPSvalue[gps_i]='\0';
 gps_i=0;gps_k=0;
 main_delay(100);
 lcd_cmd(0x80);
   lcd_puts("                ");
   lcd_cmd(0xc0);
   lcd_puts("               ");
   lcd_cmd(0x80);
      lcd_puts("LT: ");
      Longitude[gps_k]='L';
 gps_k++;
 Longitude[gps_k]='T';gps_k++;
 Longitude[gps_k]=':';gps_k++;
 for(gps_i=14;gps_i<25;gps_i++)
 {
  lcd_data(GPSvalue[gps_i]);
  Longitude[gps_k]= GPSvalue[gps_i];
  gps_k++;
    //main_delay(100);
 }
 Longitude[gps_k]=' ';gps_k++;
 Longitude[gps_k]=' ';gps_k++;
 Longitude[gps_k]='L';gps_k++;
 Longitude[gps_k]='G';gps_k++;
 Longitude[gps_k]=':';gps_k++;
 lcd_cmd(0xc0);
      lcd_puts("LG: ");
 for(gps_i=27;gps_i<38;gps_i++)
 { 
  lcd_data(GPSvalue[gps_i]);
  Longitude[gps_k]=GPSvalue[gps_i];
  gps_k++;
  //main_delay(100);
 }
 Longitude[gps_k]='\0';
      gps_i=0;
 gps_k=0;
 main_delay(1000);

 break;
     }
    }
   }
  }
 }
}

void clearfp(void)
{
 unsigned char cl=0;
 while(cl<20)
 {
  fp[cl]=' ';
  cl++; 
 }
 fp_j=0;




void enroll_finger(void)
{
 lcd_cmd(0x01);                                                
 lcd_puts("Enrolling.....");
  main_delay(1000);
 fp_i=0;
 clearfp();
 while(fp_i<14)
 {
  uart1_putch( baudrate[fp_i]);
  fp_i++;
 }
 fp_j=0;
 fp[11]=0x00;
 while(fp_j==0);
 main_delay(500);                                       
 if(fp[11]==0x0a)
 {
  //lcd_cmd(0x01);                                                
  //lcd_puts("BAUDRATE SUCCESS");

  //main_delay(800);
 }
 else
 {
  lcd_cmd(0x01);                                                
  lcd_puts("BAUDRATE FAILED");
  main_delay(800);
goto end;
 } 

   fp_i=0;
   clearfp();
   while(fp_i<12)
   {
    uart1_putch(enroll[fp_i]);
    fp_i++;
   }
   fp_j=0;
   fp[9]=0x01;
   while(fp_j==0);
   main_delay(500);                                       
   if(fp[9]==0x00)
   {
   }
   else
   {
    lcd_cmd(0x01);                                                
    lcd_puts("ENROLL FAILED");
 main_delay(3000);
 goto end;
   }

   clearfp();
   fp_j=0;
   fp_i=0;
   while(fp_i<13)
   {
    uart1_putch(generate_ch[fp_i]);
    fp_i++;
   }
   fp_j=0;
   fp[9]=0x01;
   while(fp_j==0);
   main_delay(500);        
   if(fp[9]==0x00)
   {
   }
   else
   {
    lcd_cmd(0x01);                                                
    lcd_puts("ENROLL FAILED");
  main_delay(3000);
 goto end;
   }

   fp_i=0;
   clearfp();
   while(fp_i<12)
   {
    uart1_putch(enroll[fp_i]);
    fp_i++;
   }
   fp_j=0;
   fp[9]=0x01;
   while(fp_j==0);
   main_delay(500);       
   if(fp[9]==0x00)
   {
   }
   else
   {
    lcd_cmd(0x01);                                                
    lcd_puts("ENROLL FAILED");
 main_delay(3000);
   goto end;
   }

   clearfp();
   fp_j=0;
   fp_i=0;
   while(fp_i<13)
   {
    uart1_putch(generate_ch1[fp_i]);
    fp_i++;
   }
   fp_j=0;
   fp[9]=0x01;
   while(fp_j==0);
   main_delay(500);         
   if(fp[9]==0x00)
   {
   }
   else
   {
    lcd_cmd(0x01);                                                
    lcd_puts("ENROLL FAILED");
     main_delay(3000);
goto end;
   }

   clearfp();
   fp_j=0;
   fp_i=0;
   while(fp_i<12)
   {
    uart1_putch(un_cmd[fp_i]);
    fp_i++;
   }
   fp_j=0;
   fp[9]=0x01;
   while(fp_j==0);
   main_delay(500);        
   if(fp[9]==0x00)
   {
   }
   else
   { 
    lcd_cmd(0x01);                                                
    lcd_puts("ENROLL FAILED");
     main_delay(3000);
  goto end;
   }

   clearfp();
   fp_j=0;
   fp_i=0;
   while(fp_i<12)
   {
    uart1_putch(store[fp_i]);
    fp_i++;
   }
   uart1_putch(rec);
   uart1_putch(0x00);
   uart1_putch(dummy);
   fp_j=0;
   fp[9]=0x01;
   while(fp_j==0);
   main_delay(500);       
 
   if(fp[9]==0x00)
   {
    suc=1;
 lcd_cmd(0x01);                                                
    lcd_puts(" successfully ");
    lcd_cmd(0xc0);                                                
    lcd_puts("  Enrolled");
    main_delay(3000);       
    lcd_cmd(0x01);  
    lcd_puts(" ur id : "); 
lcd_data(rec/10+48);
    lcd_data(rec%10+48);  
id1++;
    rec++;
    dummy++;
    main_delay(3000);
goto end;
   }
   else
   {
    lcd_cmd(0x01);                                                
    lcd_puts("ENROLL FAILED");
  main_delay(3000);
goto end;
   } 
   end:
   main_delay(1);
}


void identify_finger(void)
{
 lcd_cmd(0x01);                              
 lcd_puts("IDENTIFYING...");
 main_delay(1000);
 fp_i=0;
 clearfp();
 while(fp_i<14)
 {
  uart1_putch( baudrate[fp_i]);
  fp_i++;
 }
 fp_j=0;
 fp[11]=0x00;
 while(fp_j==0);
 main_delay(1500);                                       
 if(fp[11]==0x0a)
 {
  //lcd_cmd(0x01);                                                
  //lcd_puts("BAUDRATE SUCCESS");

  //main_delay(800);
 }
 else
 {
  lcd_cmd(0x01);                                                
  lcd_puts("BAUDRATE FAILED");
  main_delay(800);
goto end; 
 } 

 fp_i=0;
 clearfp();
 while(fp_i<12)
 {
  uart1_putch(enroll[fp_i]);
  fp_i++;
 }
 fp_j=0;
 fp[9]=0x01;
 while(fp_j==0);
 main_delay(500);                                           
 if(fp[9]==0x00)
 {
 }
 else
 {
  lcd_cmd(0x01);                                                
  lcd_puts("IDENTIFY FAILED");
  
  main_delay(3000);       
  goto end;
 }

 clearfp();
 fp_j=0;
 fp_i=0;
 while(fp_i<13)
 {
  uart1_putch(generate_ch[fp_i]);
  fp_i++;
 }
 fp_j=0;
 fp[9]=0x01;
 while(fp_j==0);
 main_delay(500);         
 if(fp[9]==0x00)
 {
 }
 else
 {
  lcd_cmd(0x01);                                                
  lcd_puts("IDENTIFY FAILED");
  //lcd_puts1(0,4,"IDENTIFY FAILED..");
  main_delay(3000);       
  goto end;
 }
   

 clearfp();
 fp_i=0;  
 fp_j=0;
 while(fp_i<17)
 {
  uart1_putch(identify[fp_i]);
  fp_i++;
 }
 fp_j=0;
 while(fp_j==0);
 main_delay(500);       
   
 if(fp[9]==0x00)
 {
  ide=1;
  lcd_cmd(0x01);                                                
  lcd_puts(" successfully ");
  lcd_cmd(0xc0);                                                
  lcd_puts("identified  ");

  //lcd_puts1(0,4," successfully    ");
//lcd_puts1(0,5,"identified   ");
  id=fp[11];
  //lcd_puts1(0,5," ur id : ");
  //lcd_data2(fp[11]/10+48);
  //lcd_data2(fp[11]%10+48);

  lcd_data(fp[11]/10+48);
  lcd_data(fp[11]%10+48);
  main_delay(3000);       
 }
 else
 {
  lcd_cmd(0x01);                                                
  lcd_puts("IDENTIFY FAILED");
  //lcd_puts1(0,4,"IDENTIFY FAILED..");
 main_delay(3000);       

  goto end;
 }
 end:
 main_delay(1);
}

2.  gsm.h file 

#include "LCD.h" 


extern unsigned char mx,my,mz,mm;
unsigned char uc_temp,uc_temp1,uc_temp2=0;
unsigned long int uli_temp3=0; 


void gsm_delay( unsigned int value );
void gsm_cmd(char *cmd);
void gsm_check(void);
void gsm_init(void);
void gsm_send_num_mesg(unsigned char *num,unsigned char *mes);

unsigned char msg[50],mobilenum[11];

void gsm_delay( unsigned int value )
{
 unsigned int ui_temp1,ui_temp2;
 for(ui_temp1=0;ui_temp1<value;ui_temp1++)
 for(ui_temp2=0;ui_temp2<2500;ui_temp2++);
}

void gsm_cmd(char *cmd)
{
 while(*cmd)      
 {
  while (!(U0LSR & 0x20));
  U0THR = *cmd++;
 }   
}

void gsm_enter(void)
{
 uart0_putch(10);
 uart0_putch(13);         
}

void gsm_check()
{
 check:
 uc_temp1=0;
 uli_temp3=0;
 gsm_cmd("AT");
 gsm_enter();
 while(uc_temp1<10)
 {
  while (!(U0LSR & 0x01))
  {
   uli_temp3++;
   if(uli_temp3==6000000)
   {
    uli_temp3=0;
goto end;
   }
  }
  uc_temp= U0RBR;
  if(uc_temp=='O')
  {
   uc_temp=uart0_getch();
   if(uc_temp=='K')
   {
    uc_temp2=1;
    break;
   }
  }
  uc_temp1++ ;
  uli_temp3=0;
 }
 end:
 if(uc_temp2==0)
 {
  lcd_cmd(0x01);
 lcd_puts("MODEM IS NOT");
 lcd_cmd(0xc0);
 lcd_puts("        READY");
 gsm_delay(1000);
  goto check;
 }
}

void gsm_init()
{
 check1:
 uc_temp1=0;
 uli_temp3=0;
 uc_temp2=0;
 gsm_cmd("ATE0");
 gsm_enter();
 while(uc_temp1<10)
 {
  while (!(U0LSR & 0x01))
  {
   uli_temp3++;
   if(uli_temp3==8000000)
   {
    uli_temp3=0;
goto end1;
   }
  } // Wait RXD Receive Data Ready
  uc_temp= U0RBR;
  if(uc_temp=='O')
  {
   uc_temp=uart0_getch();
   if(uc_temp=='K')
   {
    uc_temp2=1;
    break;
   }
  }
  uc_temp1++ ;
  uli_temp3=0;
 }
 end1:
 if(uc_temp2==0)
 {
  lcd_cmd(0x01);
 lcd_puts("MODEM IS NOT");
 lcd_cmd(0xc0);
 lcd_puts("        READY");
 gsm_delay(1000);
  goto check1;
 }
  check:
 uc_temp1=0;
 uli_temp3=0;
 uc_temp2=0;
 gsm_cmd("AT+CMGF=1");
 gsm_enter();
 while(uc_temp1<10)
 {
  while (!(U0LSR & 0x01))
  {
   uli_temp3++;
   if(uli_temp3==8000000)
   {
    uli_temp3=0;
goto end;
   }
  } // Wait RXD Receive Data Ready
  uc_temp= U0RBR;
  if(uc_temp=='O')
  {
   uc_temp=uart0_getch();
   if(uc_temp=='K')
   {
    uc_temp2=1;
    break;
   }
  }
  uc_temp1++ ;
  uli_temp3=0;
 }
 end:
 if(uc_temp2==0)
 {
  
 lcd_cmd(0x01);
 lcd_puts("MODEM IS NOT");
 lcd_cmd(0xc0);
 lcd_puts("        READY");
 gsm_delay(1000);

  goto check;
 }

 lcd_cmd(0x01);
 lcd_puts("MODEM IS READY");
 gsm_delay(2000);
}

void gsm_clear_msg(char num)
{
 check:
 uc_temp1=0;
 uli_temp3=0;
 uc_temp2=0;
 gsm_cmd("at+cmgd=");
 uart0_putch(num+48);
 gsm_enter(); 
 while(uc_temp1<10)
 {
  while (!(U0LSR & 0x01))
  {
   uli_temp3++;
   if(uli_temp3==8000000)
   {
    uli_temp3=0;
    goto end;
   }
  } // Wait RXD Receive Data Ready
  uc_temp= U0RBR;
  if(uc_temp=='O')
  {
   uc_temp=uart0_getch();
   if(uc_temp=='K')
   uc_temp2=1;
   break;
  }
  uc_temp1++ ;
  uli_temp3=0;
  }
  end:
  if(uc_temp2==0)
  {
   lcd_cmd(0x01);
   lcd_puts("MSG DELETE ERROR");
   gsm_delay(1500);
   goto check;
  }
  lcd_cmd(0x01);
  lcd_puts("MSG DELETED");
  gsm_delay(2000);
}    


void gsm_send_num_mesg(unsigned char *num,unsigned char *mes)
{
 unsigned char uc_temp,uc_temp1,uc_temp3=0;
 unsigned long long int uli_temp2;
 U1IER=0;
 U0IER=0;
 gsm_cmd("at+cmgs=");
 uart0_putch('"');
 while(*num)
 uart0_putch(*num++);
 uart0_putch('"');
 gsm_enter();
 while(*mes)
 uart0_putch(*mes++);
 gsm_enter();

 gsm_enter();
 uart0_putch(0x1a);
 uc_temp1=0;
 uli_temp2=0;
 while(uc_temp1<10)
 {
  while (!(U0LSR & 0x01))
  {
   if(uli_temp2==8000000)
   {
    lcd_cmd(0x01);
    lcd_puts("MSG SENDING ");
    lcd_cmd(0xc0);
    lcd_puts("       ERROR");
    gsm_delay(2000);
lcd_cmd(0x01);
    lcd_puts("MODEM IS");
    lcd_cmd(0xc0);
    lcd_puts("   NOT CONNECTED");
    gsm_delay(2000);
goto end;
   }
   uli_temp2++;
  } // Wait RXD Receive Data Ready
  uc_temp= U0RBR;
  if(uc_temp=='+')
  {
   uc_temp=uart0_getch();
   if(uc_temp=='C')
   uc_temp=uart0_getch();
   else
   {
    lcd_cmd(0x01);
    lcd_puts("NO BALENCE");
    lcd_cmd(0xc0);
    lcd_puts("  IN UR SIM CARD");
    gsm_delay(2000);
goto end;
   }
   if(uc_temp=='M')
   uc_temp=uart0_getch();
   else
   {
    lcd_cmd(0x01);
    lcd_puts("NO BALENCE");
    lcd_cmd(0xc0);
    lcd_puts("  IN UR SIM CARD");
    gsm_delay(2000);
goto end;
   }
   if(uc_temp=='G')
   uc_temp=uart0_getch();
   else
   {
    lcd_cmd(0x01);
    lcd_puts("NO BALENCE");
    lcd_cmd(0xc0);
    lcd_puts("  IN UR SIM CARD");
    gsm_delay(2000);
goto end;
   }
   if(uc_temp=='S')
   {
    uc_temp3=1;
    break;
   }
   else
   {
    lcd_cmd(0x01);
    lcd_puts("NO BALENCE");
    lcd_cmd(0xc0);
    lcd_puts("  IN UR SIM CARD");
    gsm_delay(2000);
goto end;
   }
  }
  uc_temp1++ ;
 }
 if(uc_temp3==1)
 {
  lcd_cmd(0x01);
  lcd_puts("MESSAGE HAS BEEN");
  lcd_cmd(0xc0);
  lcd_puts("   SENT TO USER");
  gsm_delay(2000);
 }
 else
 {
  lcd_cmd(0x01);
  lcd_puts("MSG SENDING ");
  lcd_cmd(0xc0);
  lcd_puts("       ERROR");
  gsm_delay(2000);
 }
 end: 
 U1IER=0x01;
 U0IER=0x01;
}


void gsm_send_num_mesg_data(unsigned char *num,unsigned char *mes ,unsigned char *mes1)
{
 unsigned char uc_temp,uc_temp1,uc_temp3=0;
 unsigned long long int uli_temp2;
 U1IER=0;
 U0IER=0;
 gsm_cmd("at+cmgs=");
 uart0_putch('"');
 while(*num)
 uart0_putch(*num++);
 uart0_putch('"');
 gsm_enter();
 while(*mes)
 uart0_putch(*mes++);
 gsm_enter();
 while(*mes1)
 uart0_putch(*mes1++);
 gsm_enter();
 uart0_putch(0x1a);
 uc_temp1=0;
 uli_temp2=0;
 while(uc_temp1<10)
 {
  while (!(U0LSR & 0x01))
  {
   if(uli_temp2==8000000)
   {
    lcd_cmd(0x01);
    lcd_puts("MSG SENDING ");
    lcd_cmd(0xc0);
    lcd_puts("       ERROR");
    gsm_delay(2000);
lcd_cmd(0x01);
    lcd_puts("MODEM IS");
    lcd_cmd(0xc0);
    lcd_puts("   NOT CONNECTED");
    gsm_delay(2000);
goto end;
   }
   uli_temp2++;
  } // Wait RXD Receive Data Ready
  uc_temp= U0RBR;
  if(uc_temp=='+')
  {
   uc_temp=uart0_getch();
   if(uc_temp=='C')
   uc_temp=uart0_getch();
   else
   {
    lcd_cmd(0x01);
    lcd_puts("NO BALENCE");
    lcd_cmd(0xc0);
    lcd_puts("  IN UR SIM CARD");
    gsm_delay(2000);
goto end;
   }
   if(uc_temp=='M')
   uc_temp=uart0_getch();
   else
   {
    lcd_cmd(0x01);
    lcd_puts("NO BALENCE");
    lcd_cmd(0xc0);
    lcd_puts("  IN UR SIM CARD");
    gsm_delay(2000);
goto end;
   }
   if(uc_temp=='G')
   uc_temp=uart0_getch();
   else
   {
    lcd_cmd(0x01);
    lcd_puts("NO BALENCE");
    lcd_cmd(0xc0);
    lcd_puts("  IN UR SIM CARD");
    gsm_delay(2000);
goto end;
   }
   if(uc_temp=='S')
   {
    uc_temp3=1;
    break;
   }
   else
   {
    lcd_cmd(0x01);
    lcd_puts("NO BALENCE");
    lcd_cmd(0xc0);
    lcd_puts("  IN UR SIM CARD");
    gsm_delay(2000);
goto end;
   }
  }
  uc_temp1++ ;
 }
 if(uc_temp3==1)
 {
  lcd_cmd(0x01);
  lcd_puts("MESSAGE HAS BEEN");
  lcd_cmd(0xc0);
  lcd_puts("   SENT TO USER");
  gsm_delay(2000);
 }
 else
 {
  lcd_cmd(0x01);
  lcd_puts("MSG SENDING ");
  lcd_cmd(0xc0);
  lcd_puts("       ERROR");
  gsm_delay(2000);
 }
 end: 
 U1IER=0x01;
 U0IER=0x01;
}

void gsm_mes_read(void)         
{
 unsigned char a,b,i,count,numcnt;
 U1IER=0;
 U0IER=0;
 gsm_delay(100);

 while ((U0LSR & 0x01)) // Wait RXD Receive Data Ready
 {
  b= U0RBR;
  gsm_delay(5);
 }
   
 gsm_cmd("at+cmgr=1");
 gsm_enter();
 count=0;
 i=0;
 a=0;
 numcnt=0;

 while(count!=3)
 {
  b=uart0_getch();
  if((b==',')||(a==1))
  {
   if(numcnt<15)
   {
    if(numcnt>4)
    {
     mobilenum[numcnt-5]=b;
    }
    a=1;
    numcnt++;
   }
   else
   a=0;
  }
  if(count==2)
  {
   msg[i++]=b;
  }
  if(b==10)
  count+=1;
 }
 msg[--i]='\0';
 msg[--i]='\0';
 mobilenum[10]='\0';
 lcd_cmd(0x01);
 lcd_puts(msg);
 gsm_delay(2000);
 gsm_cmd("at+cmgd=1");
 gsm_enter();
 U1IER=0x01;
 U0IER=0x01;
}

3. lcd.h

//*****************************************************************************
// file name :lcd.h 
//*****************************************************************************

#ifndef _LPC214X_H_
#define _LPC214X_H_

// Define LCD PinIO Mask 
#define  LCD_RS     0x00010000   // P1.16(0000 0000 0000 000x 0000 0000 0000 0000)
#define  LCD_EN     0x00020000   // P1.17(0000 0000 0000 00x0 0000 0000 0000 0000)

#define  LCD_D4     0x00040000   // P1.18(0000 0000 0000 0x00 0000 0000 0000 0000)
#define  LCD_D5     0x00080000   // P1.19(0000 0000 0000 x000 0000 0000 0000 0000)
#define  LCD_D6     0x00100000   // P1.20(0000 0000 000x 0000 0000 0000 0000 0000)
#define  LCD_D7     0x00200000   // P1.21(0000 0000 00x0 0000 0000 0000 0000 0000)


lcd_cmd(unsigned char val)
{
 unsigned int lcd_ch;
 unsigned int lcd_i; // LCD Initial Delay Count 

 IOCLR1 = LCD_RS ; // RS = 0 

 lcd_ch=((val>>4)&0x0F); // Strobe 4-Bit High-Nibble to LCD

 IOCLR1 = (LCD_D7|LCD_D6|LCD_D5|LCD_D4); // Reset 4-Bit Pin Data
 IOSET1 = (lcd_ch<<18); // EN,0,RW,RS:DDDD:0000:0000:0000:0000:0000:0000   

 IOSET1 = LCD_EN ; // EN = 1 (Enable)
 for (lcd_i=0;lcd_i<10000;lcd_i++);
 IOCLR1 = LCD_EN ; // EN = 0 (Disable)
  
 lcd_ch=(val&0x0F);   // Strobe 4-Bit Low-Nibble to LCD

 IOCLR1 = (LCD_D7|LCD_D6|LCD_D5|LCD_D4);   // Reset 4-Bit Pin Data
 IOSET1 = (lcd_ch<<18); // EN,0,RW,RS:DDDD:0000:0000:0000:0000:0000:0000   

 IOSET1 = LCD_EN ; // EN = 1 (Enable)
 for (lcd_i=0;lcd_i<10000;lcd_i++);
 IOCLR1 = LCD_EN ; // EN = 0 (Disable)
  
 for (lcd_i=0;lcd_i<10000;lcd_i++);
}

lcd_data(unsigned char val)
{
 unsigned int lcd_ch;
 unsigned int lcd_i; // LCD Initial Delay Count 

 IOSET1 = LCD_RS ; // RS = 1 

 lcd_ch=((val>>4)&0x0F); // Strobe 4-Bit High-Nibble to LCD

 IOCLR1 = (LCD_D7|LCD_D6|LCD_D5|LCD_D4);   // Reset 4-Bit Pin Data
 IOSET1 = (lcd_ch<<18); // EN,0,RW,RS:DDDD:0000:0000:0000:0000:0000:0000   

 IOSET1 = LCD_EN ; // EN = 1 (Enable)
 for (lcd_i=0;lcd_i<10000;lcd_i++);
 IOCLR1 = LCD_EN ; // EN = 0 (Disable)
  
 lcd_ch=(val&0x0F);   // Strobe 4-Bit Low-Nibble to LCD

 IOCLR1 = (LCD_D7|LCD_D6|LCD_D5|LCD_D4);   // Reset 4-Bit Pin Data
 IOSET1 = (lcd_ch<<18); // EN,0,RW,RS:DDDD:0000:0000:0000:0000:0000:0000   

 IOSET1 = LCD_EN ; // EN = 1 (Enable)
 for (lcd_i=0;lcd_i<10000;lcd_i++);
 IOCLR1 = LCD_EN ; // EN = 0 (Disable)
  
 for (lcd_i=0;lcd_i<10000;lcd_i++);
}

void lcd_puts(unsigned char* str)
{
 while(*str)
 lcd_data(*str++);
}

void lcd_int(unsigned int lcd_value)
{
 unsigned int lcd_arr[10],lcd_val;

 for(lcd_val=1;lcd_val<5;lcd_val++)
 {
  lcd_arr[lcd_val] = lcd_value%10;
  lcd_value  = lcd_value/10;
 }

 for(lcd_val=4; lcd_val!=0 ; lcd_val--) //sending data to LCD
 {
  lcd_data(lcd_arr[lcd_val]+48);
 }
}


lcd_init()
{
 unsigned int lcd_main_i; // LCD Initial Delay Count 

 PINSEL2 |= 0x00000000; // GPIO1[31..26] = I/O Function
 IODIR1  |= 0x003F0000 ; // LCD Data Bus = Write // LCD Data Bus = Write
 for (lcd_main_i=0;lcd_main_i<10000;lcd_main_i++); // Power-On Delay (15 mS)

 IOCLR1 = ((LCD_D7|LCD_D6|LCD_D5|LCD_D4|LCD_RS|LCD_EN)); // Reset (RS,RW,EN,4-Bit Data) Pin
 IOSET1 = (LCD_D5|LCD_D4); // DDDD:EN,RW,RS,0:0000:0000:0000:0000:0000:0000 
 IOSET1 = LCD_EN ; // EN = 1 (Enable)
 for (lcd_main_i=0;lcd_main_i<10000;lcd_main_i++);
 IOCLR1 = LCD_EN ; // EN = 0 (Disable)
 for (lcd_main_i=0;lcd_main_i<10000;lcd_main_i++); // Delay 4.1mS

 IOCLR1 = ((LCD_D7|LCD_D6|LCD_D5|LCD_D4|LCD_RS|LCD_EN));   // Reset (RS,RW,EN,4-Bit Data) Pin
 IOSET1 = (LCD_D5|LCD_D4); // DDDD:EN,RW,RS,0:0000:0000:0000:0000:0000:0000 
 IOSET1 = LCD_EN ; // EN = 1 (Enable)
 for (lcd_main_i=0;lcd_main_i<10000;lcd_main_i++);
 IOCLR1 = LCD_EN ; // EN = 0 (Disable)
 for (lcd_main_i=0;lcd_main_i<10000;lcd_main_i++); // delay 100uS
  
 IOCLR1 = ((LCD_D7|LCD_D6|LCD_D5|LCD_D4|LCD_RS|LCD_EN));   // Reset (RS,RW,EN,4-Bit Data) Pin
 IOSET1 = (LCD_D5|LCD_D4); // DDDD:EN,RW,RS,0:0000:0000:0000:0000:0000:0000 
 IOSET1 = LCD_EN ; // EN = 1 (Enable)
 for (lcd_main_i=0;lcd_main_i<10000;lcd_main_i++);
 IOCLR1 = LCD_EN ; // EN = 0 (Disable)
 for (lcd_main_i=0;lcd_main_i<10000;lcd_main_i++);  

 IOCLR1 = ((LCD_D7|LCD_D6|LCD_D5|LCD_D4|LCD_RS|LCD_EN));   // Reset (RS,RW,EN,4-Bit Data) Pin
 IOSET1 = (LCD_D5); // DDDD:EN,RW,RS,0:0000:0000:0000:0000:0000:0000 
 IOSET1 = LCD_EN ; // EN = 1 (Enable)
 for (lcd_main_i=0;lcd_main_i<10000;lcd_main_i++);
 IOCLR1 = LCD_EN ; // EN = 0 (Disable)
 for (lcd_main_i=0;lcd_main_i<10000;lcd_main_i++);
 
 lcd_cmd(0x28);  
 lcd_cmd(0x0c); 
 lcd_cmd(0x06); 
 lcd_cmd(0x01);
 for (lcd_main_i=0;lcd_main_i<10000;lcd_main_i++); // Wait Command Ready
}

void lcd_float(float value)
{
   unsigned char xxx[5],z=0;
   int intval;
   

   intval=(int)value;

   value=value-intval;

   while(intval!=0)
   {
    xxx[z]=intval%10;
intval=intval/10;
    z++;
    }
while(z!=0)
{
z--;

   lcd_data(xxx[z]+48);
   }
   lcd_puts(".");
   
   intval=value*10;
    lcd_data(intval+48);
  /* while(intval!=0)
   {
    xx[z]=intval%10;
intval=intval/10;
    z++;
}
while(z!=0)
{
z--;
lcd_data(xx[z]+48);
} */
 }


#endif


4. uart.h

void uart0_init()
{
 PINSEL0 |=0x00000005;

 U0LCR =0X80;
 U0DLL =97;
 U0LCR =0X03;
}

void com_baudrate0 (unsigned int baudrate) 
{
  unsigned long DLreload;

  PINSEL0 |=0x00000005;
  DLreload = (15000000UL / baudrate) / 16UL;

  U0LCR = 0x80;           /* Set DLAB */
  U0DLL = DLreload;
  U0DLM = (DLreload >> 8);
  
  U0LCR = 0x03;          /* Clear DLAB */
}

void uart0_putch(unsigned char val)
{
 while(!(U0LSR & 0x20));
 U0THR =val;


unsigned char uart0_getch()
{
 while(!(U0LSR & 0x01));
 return(U0RBR);
}

void uart0_puts( char *stringptr)
{
  while (*stringptr)
   uart0_putch(*stringptr++);


void uart0_int(unsigned long value)
{
 unsigned char arr[10];
 unsigned char val=0;
 if(value==0)
 uart0_putch(0+48);

 while(value!=0)
 {
  arr[val] = value%10;
  value  = value/10;
  val++;
 }

 while(val!=0)
 {
  val--;
  uart0_putch(arr[val]+48);
 }
}

  

5. uart1.h 



       void uart1_init()
{
 PINSEL0 |=0x00050000;
 U1LCR =0X80;
 U1DLL =97;
 U1LCR =0X03;
}

void uart1_putch(unsigned char val)
{
 while(!(U1LSR & 0x20));
 U1THR =val;

unsigned char uart1_getch()
{
 while(!(U1LSR & 0x01));
 return(U1RBR);

void uart1_puts( unsigned char *stringptr)
{
  while (*stringptr)
   uart1_putch(*stringptr++);

void uart1_int(unsigned long value)
{
 unsigned char arr[10];
 unsigned char val=0;
 if(value==0)
 uart1_putch(0+48);

 while(value!=0)
 {
  arr[val] = value%10;
  value  = value/10;
  val++;
 }

 while(val!=0)
 {
  val--;
  uart1_putch(arr[val]+48);
 }
}

No comments:

Post a Comment