GSM modem interfacing with 8051 for SMS

GSM modem interfacing with microcontroller 8051 for SMS control of industrial equipments
This is a beginner tutorial in which a GSM modem is being interfaced with the microcontroller AT89s51 for SMS communication. The SMS can be send and recieved for the data sharing and situation information and control. there are many application of the project based on microcontroller 8051 and GSM interfacing.
We can use it as a remote control of industrial machines or we can sue it for home automation or we can use it for the security of home or offices.gsm control 8051
The sending SMS through GSM modem when interfaced with microcontroller or PC is much simpler as compared with sending SMS through Modem in PDU Mode.Text message may be sent through the modem by interfacing only three signals of the serial interface of modem with microcontroller i.e.,TxD,RxD and GND.In this scheme RTS and CTS signals of serial port interface of GSM Modem are connected with each other.The transmit signal of serial port of microcontroller is connected with transmit signal (TxD) of the serial interface of GSM Modem while receive signal of microcontroller serial port is connected with receive signal (RxD) of serial interface of GSM Modem.The COMPIM Serial Port Model shown in the schematic diagram developed in Proteus VSM is equivalent to the serial interafce of GSM Modem.Sending SMS Messages from a Computer / PC Using AT Commands (AT+CMGS, AT+CMSS)
8051 projects based on message recived on mobile
block circuit diagram of GSM interface with microcontroller 8051

The following are the AT Commands and sequence of events performed for sending text message to a mobile phone through GSM Modem interfaced with microcontroller :

1. First select the text mode for SMS by sending the following AT Command to GSM Modem : AT+CMGF = 1 . This command configures the GSM modem in text mode.

2. Send the following AT Command for sending SMS message in text mode along with mobile number to the GSM Modem : AT+CMGS =+923005281046 . This command sends the mobile number of the recipient mobile to the GSM modem.

3. Send the text message string (“hello!”) to the GSM Modem This is a test message from UART”
4. Send ASCII code for CTRL+Z i.e., 0x1A to GSM Modem to transmit the message to mobile phone.After message string has been sent to the modem, send CTRL+Z to the micro-controller,which is equivalent to 0x1A (ASCII value) Every AT command is followed by i.e. carriage return and line feed
you are giving line feed first and carriage return after that.
“\r” stands for carriage return

Interfacing 8051 with gsm modem equipped with RS232 serial interface is the same as interfacing AVR with GSM modem is.
The SMS message in text mode can contain only 140 characters at the most.It depends upon the amount of information collected from GPS Engine that you need at the base station for tracking vehicle or person

The most important string of GPS is “$GPRMC…” which contains the minimum information required in tracking a target additionally you may need the information regarding the number of satellites that are visible to the GPS receiver.So it depends upon how much information you need to pack in 140 characters of SMS in text mode.
code for the interfacing the GSM modem with microcontroller 8051 for just testing of connection and serial communication is under:-
#include<at89x51.h> // include at89x51 . h
#include<stdio.h>// include stdio . h
#include<stdlib.h>// include stdlib . h
void initialize_GSM_modem(void);
void initialize_serialcommunication(void);
unsigned char Command_CMGF[]="AT+CMGF=1\r";
// AT+CMGF for selecting Text Mode
unsigned char CtrlZ=0x1A;
// CTRL+Z for sedning SMS after the message has been entered
unsigned char Command_CMGS[]="AT+CMGS =+9233385xxxxx\r";
// recepient mobile number
unsigned char Command_AT[]="AT\r";
unsigned char msg02[]="Hello!";
void delay(void){
unsigned int i;
void delay2(void){
unsigned int i;
void main (void) {
while (1) {
void initialize_GSM_modem(void){
while(!TI); TI = 0;SBUF = 0x1A;
void initialize_serialcommunication(void){
TMOD = 0x20;
SCON = 0x50;
TH1  = 0xFD;
TL1  = 0xFD;
TR1  = 1;
TI = 1;

Tags:-Introduction to SMS Messaging ,What Makes SMS Messaging So Successful Worldwide? , Example Applications of SMS Messaging , What is an SMS Center / SMSC? , Basic Concepts of SMS Technology , Intra-operator SMS Messages , Inter-operator SMS Messages , International SMS Messages , What is an SMS Gateway? , How to Send SMS Messages from a Computer / PC? , How to Receive SMS Messages Using a Computer / PC? , Introduction to GSM / GPRS Wireless Modems , How to Use Microsoft Hyper Terminal to Send AT Commands to a Mobile Phone or GSM/GPRS Modem? , Introduction to AT Commands , General Syntax of Extended AT Commands , Result Codes of AT Commands , AT Command Operations: Test, Set, Read and Execution , Testing the Communication between the PC and GSM/GPRS Modem or Mobile Phone ,Checking if the GSM/GPRS Modem or Mobile Phone Supports the Use of AT Commands to Send, Receive and Read SMS Messages , Operating Mode: SMS Text Mode and SMS PDU Mode , Setting or Reading the Service Center Address / SMSC Address (AT+CSCA) , Preferred Message Storage (AT+CPMS)
23. Writing SMS Messages to Memory / Message Storage (AT+CMGW) , Deleting SMS Messages from Message Storage (AT+CMGD) , Sending SMS Messages from a Computer / PC Using AT Commands (AT+CMGS, AT+CMSS) , Reading SMS Messages from a Message Storage Area Using AT Commands (AT+CMGR, AT+CMGL) SMS alarm je vrlo jednostavan uređaj. Za slanje SMS poruka koristi Siemens telefon a ima 5 ulaza – znači šalje 5 različitih poruka. Za svaki senzor uprogramiramo odgovarajuću poruku koju želimo da primimo na mobilni kada se alarm aktivira. Programiranje se vrši preko PC-a odgovarajućim programom koji je priložen u arhivi.

cell phone interface microcontroller,sms based energy meter monitoring system circuit diagram,circuit diagram microcontroll section of bar code reader,flow diagram of operation of microcontroller of pc based logic analyzer,

Related posts:

About author

This article was written by admin

Admin has over twenty years experience in the electronics industry, largely dedicated to embedded software. A frequent presenter at conferences and seminars and author of numerous technical articles. Working presently as Development Manager in India. A firm Believer in Knowledge grows when it shared.


Comments (15)
  1. Cameron Camancho says - Posted: October 24, 2012

    very good post, i definitely love this website, keep on it

  2. jal says - Posted: July 8, 2013

    hiiiiii………..This tutorial is very good…….I need more information on this……..

  3. omer sohail says - Posted: December 9, 2014

    In which software above code is written?

    • Kuljit Ray says - Posted: January 20, 2016

      keil software

  4. Jessy says - Posted: March 24, 2015

    could you email me a code on how to interface the PC with phone

  5. kartik says - Posted: May 8, 2015

    excellent tutorial . great help!!!

  6. Mohit says - Posted: May 16, 2015

    this code is wrong my frnd because of this:(line no.-25 and 26)
    while (1) {

  7. Murugan says - Posted: June 26, 2015

    hi This is Murugan, i have an a doubt on particular line ” puts(Command_AT); ” what mean for? Puts means, wil you clearly explain to me. thanks in advance

  8. says - Posted: October 23, 2015

    You can use keil C

  9. salman says - Posted: November 15, 2015

    I did it but not working can you give me the circuit diagram

  10. salman says - Posted: November 28, 2015

    its not working .

  11. lakshminarayanan says - Posted: March 9, 2016

    I Upload the program to controller and interfaced gsm (SIM908)

    What the next step?
    how the message will go..

    please explain the steps.

  12. md hannan sohail says - Posted: April 24, 2016

    How can i use the above Cody for recieving text mesaage on GSM and based on it control devices
    Please help

Leave your comment

Your email address will not be published. Required fields are marked *