EngineersGarage

  • Engineers Garage Main Site
  • Visit our active EE Forums
    • EDABoard.com
    • Electro-Tech-Online
  • Projects & Tutorials
    • Circuits
    • Electronic Projects
    • Tutorials
    • Components
  • Digi-Key Store
    • Cables, Wires
    • Connectors, Interconnect
    • Discrete
    • Electromechanical
    • Embedded Computers
    • Enclosures, Hardware, Office
    • Integrated Circuits (ICs)
    • Isolators
    • LED/Optoelectronics
    • Passive
    • Power, Circuit Protection
    • Programmers
    • RF, Wireless
    • Semiconductors
    • Sensors, Transducers
    • Test Products
    • Tools
  • Advertise
You are here: Home / Replies / i am doing project on gsm

i am doing project on gsm

|

Microcontroller › 8051 › To interface GSM SIM900 with 8051 › i am doing project on gsm

July 28, 2012 at 6:15 am #8346
gouday
Participant

i am doing project on gsm modem to send sms.i ve connected sim 900 modem through 8051 with max232.i ve the code as follows…………………………which was there in this website only,i ve just editted and added.i ve given the o/p to lcd.i am not getting a correct response……………please help me out……….

 

 

#include<reg51.h>
#define port P1
#define dataport P2 // Data port for LCD
sbit rs = port^0;
sbit rw = port^1;
sbit en = port^2;
int count,i;
unsigned char check,str[50];
bit check_space;
 
void init_serial() // Initialize serial port
{
TMOD=0x20; // Mode2
TH1=0xfd; // 9600 baud
SCON=0x50; // Serial mode=1 ,8-Bit data,1 Stop bit ,1 Start bit, Receiving on
TR1=1; // Start timer
}
void delay(unsigned int msec) // Function for delay
{
int i,j;
for(i=0;i<msec;i++)
   for(j=0; j<1275; j++);
}
 
void lcd_cmd(unsigned char item) // Function to send command on LCD
{
dataport = item;
rs= 0;
rw=0;
en=1;
delay(1);
en=0;
return;
} 
 
void lcd_data(unsigned char item) // Function to display character on LCD
{
dataport = item;
rs= 1;
rw=0;
en=1;
delay(1);
en=0;
return;
}
 
void lcd_data_string(unsigned char *str) // Function to display string on LCD
{
int i=0;
while(str!=’’)
{
   lcd_data(str);
   i++;
   delay(10);  
    }
return; 
}
void lcd()
{
lcd_cmd(0x38);   // For using 8-bit 2 row LCD 
delay(5);  
lcd_cmd(0x0F);         // For display on cursor blinking
delay(5);
lcd_cmd(0x80);   // Set the cursor on first position of LCD 
delay(5);  
}
 
void transmit_data(unsigned char str) // Function to transmit data through serial port
{
SBUF=str;   //Store data in SBUF
while(TI==0); //Wait till data transmits
TI=0;
}
 
 void receive_data()  interrupt 4 // Function to recieve data serialy from RS232 into microcontroller
 {
RI=0;
str[++count]=SBUF; //Read SBUF
 
 }
  
unsigned char byte_check() // Function to check carraige return and new line character
{
switch(str[0])
{
case 0x0a:
{ // Return 0x00 for new line
return 0x00;
break ;
}
case 0x0d:
{ // Return 0x01 for carriage return
return 0x01;
break ;
}
default :return 0x02 ; // Return 0x02 for characters except new line and carriage return
}
}
 
void main()
{ 
lcd(); // Initialize LCD
init_serial(); // Initialize serial port
count=(-1);
delay(500);
lcd_data_string(“Ready”);
delay(10);
lcd_cmd(0x01);
 
IE=0x90;
transmit_data(‘a’);  
delay(1);
transmit_data(‘t’);
delay(1);
transmit_data(0x0d);   // Transmit carriage return to serial port
delay(500); 
transmit_data(‘a’);  
delay(1);
transmit_data(‘t’);
delay(1);
transmit_data(‘+’);  
delay(1);
transmit_data(‘c’);
delay(1);
transmit_data(‘m’);  
delay(1);
transmit_data(‘g’);  
delay(1);
transmit_data(‘f’);  
delay(1);
transmit_data(‘=’);
delay(1);
transmit_data(‘1’);
delay(1);
transmit_data(0x0d);   // Transmit carriage return to serial port
delay(500);
 
transmit_data(‘a’);  
delay(1);
transmit_data(‘t’);
delay(1);
transmit_data(‘+’);  
delay(1);
transmit_data(‘c’);
delay(1);
transmit_data(‘m’);  
delay(1);
transmit_data(‘g’);
delay(1);
transmit_data(‘s’);  
delay(1);
transmit_data(‘=’);
delay(1);
transmit_data(‘ ” ‘); //    added mobile  number here
delay(1);
transmit_data( );  
delay(1);
transmit_data( );           
delay(1);
transmit_data( );  
delay(1);
transmit_data( );
delay(1);
transmit_data( );  
delay(1);
transmit_data( );
delay(1);
  transmit_data( );  
delay(1);
transmit_data( );
delay(1);
transmit_data( );  
delay(1);
transmit_data( );
delay(1);
transmit_data(‘ ” ‘);
delay(1);
transmit_data(0x0d);   // Transmit carriage return to serial port
delay(500);
transmit_data(‘h’);
delay(1);
transmit_data(‘e’);  
delay(1);
transmit_data(‘l’);
delay(1);
transmit_data(‘l’);
delay(1);
transmit_data(0x1a);
delay(500);
 
 
while(1)
{
   lcd_cmd(0x80);
if(count>=0)
{
check=byte_check(); // Check the character
if(check!=0x00)
{
if(check==0x01)
{
if(check_space==1) // Check previous character
{
lcd_data(0x20);
check_space=0;
delay(1000);
}
}
else
{
lcd_data(str[0]);
delay(1000);
check_space=1;
}
}
count–;   
for(i=0;i<count;i++)   // Shift the whole array to one left
{
str=str[i+1];
}
}
}
}
 

 

RSS Recent Posts

  • flexible copper cable January 14, 2026
  • renewed interest in old project I call it WICKED 8 January 14, 2026
  • factory device from 2017'ish with web ui - too old to function with Microsoft Edge ? January 14, 2026
  • updating circuit with power on off switching January 14, 2026
  • Steering angle sensor question January 13, 2026

Stay Up To Date

Newsletter Signup
EngineersGarage

Copyright © 2026 WTWH Media LLC. All Rights Reserved. The material on this site may not be reproduced, distributed, transmitted, cached or otherwise used, except with the prior written permission of WTWH Media
Privacy Policy | Advertising | About Us

Search Engineers Garage

  • Engineers Garage Main Site
  • Visit our active EE Forums
    • EDABoard.com
    • Electro-Tech-Online
  • Projects & Tutorials
    • Circuits
    • Electronic Projects
    • Tutorials
    • Components
  • Digi-Key Store
    • Cables, Wires
    • Connectors, Interconnect
    • Discrete
    • Electromechanical
    • Embedded Computers
    • Enclosures, Hardware, Office
    • Integrated Circuits (ICs)
    • Isolators
    • LED/Optoelectronics
    • Passive
    • Power, Circuit Protection
    • Programmers
    • RF, Wireless
    • Semiconductors
    • Sensors, Transducers
    • Test Products
    • Tools
  • Advertise