if(rowLoc == 3 && colLoc == 0x0D) // keypad 0
{
SMSString( "\r");
Delay(50);
SMSString( "AT+CMGS=\"0718021336\"\r");//my mob number here
Delay(50);
SMSString("7.10PM");
Delay(50);
SMSString("CTRLZ");
Delay(50);
SMSString( "\r");
Delay(50);
lcdcmd(0x01); //clear screen
lcdcmd(0x80); //Row 1 and First Column
lcd_data_string("Info. Sent: 7.10PM ");
Delay(10);
lcdcmd(0x0C0);
lcd_data_string("ACHIVE Y/N? ");
Delay(10);
}
}
if(rowLoc == 3 && colLoc == 0x0D) // keypad 0
{
SMSString(0x0D);
SMSString( "AT+CMGF=1");
SMSString(0x0D);
Delay(50);
SMSString( "AT+CMGS="0718021336");//my mob number here
SMSString(0x0D);
Delay(50);
SMSString("7.10PM");
Delay(50);
SMSString(0x1A);
Delay(50);
SMSString(0x0D);
Delay(50);
lcdcmd(0x01); //clear screen
lcdcmd(0x80); //Row 1 and First Column
lcd_data_string("Info. Sent: 7.10PM ");
Delay(10);
lcdcmd(0x0C0);
lcd_data_string("ACHIVE Y/N? ");
Delay(10);
}
}
void SMSString(unsigned char* text) //function to send SMS using GSM modem
{
while (*text)
{
SerTX(*text++);
}
}
#include <REGX51.H>
#include<string.h>
#define COL P2
#define ROW P0
#define CTRLZ 26
sfr LcdData = 0x90; //LCD Data Pins
sbit RS = P2^5;
sbit RW = P2^6;
sbit EN = P2^7;
//Function Prototype Declaration
void lcd_data_string(unsigned char *str);
void lcdcmd(unsigned char value);
void lcddata(unsigned char value);
void Delay(unsigned int itime);
void SerTX(unsigned char);
void SMSString(char*text) ;
unsigned char msg[] = "Enter Info:-";
unsigned char CtrlZ=0x1A;
unsigned char keypad[4][4] = {'1','2','3','A',
'4','4','6','B',
'7','8','9','C',
'Y','0','N',':'};
void main()
{
unsigned char colLoc,rowLoc;
unsigned int len,i;
LcdData = 0x00; //Port-1 as Output Port
TMOD = 0x20; //For Baud Rate Generation
TH1 = -3; //Baud Rate of 9600bps
SCON = 0x50;
TR1 = 1; //Start Timer-1
//LCD Initialization Commands
SMSString("AT\r"); // AT commands to initialize gsm modem
Delay(50);
SMSString( "ATe0\r"); // turn off echo
Delay(50);
SMSString( "AT+CMGF=1\r"); // turn off echo
Delay(50);
SMSString( "AT&W\r"); // save settings
Delay(50);
lcdcmd(0x38); //Initialize LCD Commands
Delay(1);
lcdcmd(0x0E); //Display on Cursor Blinking
Delay(1);
lcdcmd(0x01); //Clear LCD
Delay(1);
lcdcmd(0x80); //Row 1 and First Column
//lcd_data_string("Bus Route Info.");
//Delay(10);
//lcdcmd(0x0C0);
//lcd_data_string("System Project");
//Delay(10);
lcdcmd(0x01); //clear screen
Delay(1);
len = strlen(msg);
for(i=0;i<len;i++)
{
lcddata(msg[i]);
Delay(1);
}
lcdcmd(0x0C0); //Move to Second Line of the LCD
COL = 0x0FF; //Make Port-2 as Input Port
while(1) //Infinite Loop
{
do
{
ROW = 0x00; //Groud all Row's
colLoc = COL; //Read all the Columns
colLoc = colLoc & 0x0F; //Mask the Unused Bits.
}while(colLoc != 0x0F); //Check until all the Keys are released
do
{
do
{
Delay(2); //20msec delay
colLoc = COL; //Read all the Columns
colLoc = colLoc & 0x0F; //Mask the Unused Bits.
}while(colLoc == 0x0F); //Keep Checking for Key-press
//It may be possible that this key-press may be due to some noise-spikes in the circuit
//thats why we will check once again whether the same key is pressed or not.
//If not the whole loop will be executed once again
Delay(2);
colLoc = COL; //read all columns
colLoc = colLoc & 0x0F; //Mask the Unused Bits.
}while(colLoc == 0x0F); //Wait for the Key-Press
while(1)
{
ROW = 0x0FE; //Ground First Row
colLoc = COL;
colLoc = colLoc & 0x0F; //Mask the Unused Bits.
if(colLoc != 0x0F) //1111 Column Detected
{
rowLoc = 0; //1st Row Selected
break;
}
ROW = 0x0FD; //Ground Second Row
colLoc = COL;
colLoc = colLoc & 0x0F; //Mask the Unused Bits.
if(colLoc != 0x0F) //Column Detected
{
rowLoc = 1; //2nd Row Selected
break;
}
ROW = 0x0FB; //Ground Third Row
colLoc = COL;
colLoc = colLoc & 0x0F; //Mask the Unused Bits.
if(colLoc != 0x0F) //Column Detected
{
rowLoc = 2; //3rd Row Selected
break;
}
ROW = 0x0F7; //Ground Fourth Row
colLoc = COL;
colLoc = colLoc & 0x0F; //Mask the Unused Bits.
if(colLoc!= 0x0F)
{
rowLoc = 3; //4th Row Selected
break;
}
}
if(colLoc == 0x0E) //1110 This means that First column is Selected
{
SerTX(keypad[rowLoc][0]);
}
else if(colLoc == 0x0D) // 1101
{
SerTX(keypad[rowLoc][1]);
}
else if(colLoc == 0x0B) // 1011
{
SerTX(keypad[rowLoc][2]);
}
else if(colLoc == 0x07) // 0111
{
SerTX(keypad[rowLoc][3]);
}
//lcdcmd(0xC0); //Second Row
//Check Columns and send the Data to the LCD Screen:-
if(colLoc == 0x0E) //1110 This means that First column is Selected
{
lcddata(keypad[rowLoc][0]);
}
else if(colLoc == 0x0D) // 1101
{
lcddata(keypad[rowLoc][1]);
}
else if(colLoc == 0x0B) // 1011
{
lcddata(keypad[rowLoc][2]);
}
else if(colLoc == 0x07) // 0111
{
lcddata(keypad[rowLoc][3]);
}
if(rowLoc == 3 && colLoc == 0x0D) // keypad 0
{
SMSString( "\r");
Delay(50);
SMSString( "AT+CMGS=\"0718021336\"\r");//my mob number here
Delay(50);
SMSString("7.10PM");
Delay(50);
SMSString("CTRLZ");
Delay(50);
SMSString( "\r");
Delay(50);
lcdcmd(0x01); //clear screen
lcdcmd(0x80); //Row 1 and First Column
lcd_data_string("Info. Sent: 7.10PM ");
Delay(10);
lcdcmd(0x0C0);
lcd_data_string("ACHIVE Y/N? ");
Delay(10);
}
}
}
void lcdcmd(unsigned char value)
{
LcdData = value;
RS = 0;
RW = 0;
EN = 1;
Delay(1);
EN = 0;
}
void lcddata(unsigned char value)
{
LcdData = value;
RS = 1;
RW = 0;
EN = 1;
Delay(1);
EN = 0;
}
void Delay(unsigned int itime)
{
unsigned int i,j;
for(i=0;i<1275;i++)
for(j=0;j<itime;j++);
}
void SerTX(unsigned char x)
{
SBUF = x;
while(TI == 0);
TI = 0;
}
void lcd_data(unsigned char item) // Function to send one byte data to LCD
{
LcdData = item;
RS= 1;
RW=0;
EN=1;
Delay(1);
EN=0;
return;
}
void lcd_data_string(unsigned char *str) // Function to send string to LCD
{
int i=0;
while(str[i]!='\0')
{
lcd_data(str[i]);
i++;
Delay(10);
}
return;
}
void SMSString(unsigned char* text) //function to send SMS using GSM modem
{
while (*text)
{
SerTX(*text++);
}
}
SMSString( "AT+CMGS=\"0718021336\"\r");//my mob number here
Delay(50);
SMSString("7.10PM");
Delay(50);
putchar(0x1A);
Delay(50);[ATTACH=CONFIG]74712._xfImport[/ATTACH]
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?