#include "LPC214x.h"
void init(void);
extern unsigned char at[]="AT";
extern unsigned char cmgf[]="AT+CMGF=1"; //Text format in GSM modem
extern unsigned char cmgs[]="AT+CMGS=\"+91##########\""; //Mobile number to which the msg is sent
extern unsigned char msg[]="dips";
void senduart1(unsigned char a) //sends a byte through U1
{
U1THR=a;
while(U1LSR!=0x60);
}
void sendstring(unsigned char *p) //Sends a string of data through UART1
{
while(1)
{
if(*p=='\0') break;
senduart1(*p++);
}
}
void delaygsm() //delay function
{
int i,c=0;
for(i=0;i<4000000;i++)
{
c++;
}
}
int main()
{
PINSEL0=0x00050005; //initialized U0 and U1 as UART and not GPIO
PINSEL1 = 0x00000000;
PINSEL2 = 0x00000000;
IO1DIR = 0xFFFFFFFF;
IO1SET = 0x000F0000;
delaygsm();
delaygsm();
delaygsm();
delaygsm();
IO1CLR = 0x000F0000;
init();
sendstring(at);
senduart1(0x0D); // equivalent of
senduart1(0x0A); // enter key
delaygsm();
delaygsm();
delaygsm();
delaygsm();
IO1SET = 0x00010000; //Code execution stops here wen GSM is connected- does not proceed further
sendstring(cmgf);
senduart1(0x0D);
senduart1(0x0A);
delaygsm();
delaygsm();
delaygsm();
delaygsm();
IO1SET = 0x00040000;
sendstring(cmgs);
senduart1(0x0D);
senduart1(0x0A);
delaygsm();
delaygsm();
delaygsm();
delaygsm();
IO1CLR = 0x000F0000;
sendstring(msg);
senduart1(0x1A);
delaygsm();
delaygsm();
delaygsm();
delaygsm();
IO1SET = 0x00080000;
senduart1(0x1A);
IO1CLR= 0x000F0000;
}
void init()
{
U1LCR=0x83; //8-N-1, enable divisors
U1DLL=0x62; //9600 baud (9615)
U1DLM=0x00;
U1LCR=0x03; //8-N-1, disable divisors
U1FCR=0x07;
}