This document describes a project to control a GSM 1308 modem using a PIC16F877A microcontroller. The goals of the project were to improve an existing Flowcode program to allow the modem to function more like a general mobile phone. Key aspects included using the PIC16F877A and e-blocks components like an LCD board and keypad to send AT commands to the modem for calling, SMS sending and receiving. The programs were tested in Flowcode and shown to allow dialing, call answering, sending and receiving SMS via the modem and microcontroller interface.
2. Presented by
Supervised By
Dr. A.K.M Fazlul Haque
Associate Professor
Department of ETE
Daffodil International
University
Sk.Mustafizur Rahman
ID: 082-19-930
Md. Moktarul Islam
ID: 082-19-938
Md.Emam-ul-Uddin
ID: 082-19-939
3. Aim of the Project:
Controlling the GSM 1308 modem using PIC16F877A by
improving the existing flowcode microcontroller program that
the modem can work as a more general mobile phone.
5. PIC16F877A Microcontroller
The name PIC refers to a group of microcontrollers
This is a flexible 40 pin device. The
operating voltage of the microcontroller is
5V
6. Memory of 16F877A
Flash or EPROM: It is the memory where
the written program is stored.
RAM: It is the memory where the declared
'variables are stored.
EEPROM: It is the memory where the
variables can be permanently stored.
7. I/O Ports of 16F877A
PORT A : It is connected with Multiprogrammer
board
PORT C: It is Connected with RS232
Communicator
PORT D : It is connected with Keypad
PORT B: It is connected with LCD
8. E-blocks are small circuit boards each of which consists of a block of electronics that can be snapped
together to form an electronic system. There are two kinds of E-block
E-block
Upstream boards
Downstream boards
10. Jumper Setting of E-Blocks
Board PORT Settings
Keypad D No settings
LCD B Jumpers on DEFAULT
Sensor A Jumpers on DEFAULT
RS232 C
C
Jumpers:
R& TX SELECTION
CTS & RTS SELECTION
1
Patch System wire links:
SPI/DAC C
Jumpers:
SDO, SDI & SCK SELECTION
A HIP EN SELECTION
1
Patch System wire links:
None
C
11. Setting up the GSM modem
It can operates between 6vdc to 40vdc
RS232 is used to connect the modem with E-Blocks.
Need a active SIM card with sufficient credit.
Need to connect an Antenna with it to get network connection.
12. Testing GSM Modem
Before using the GSM modem with E-Block system it needs to be test by
HyperTerminal using different AT Command
•AT+CREG?
•AT%CGREG?
•ATD
•ATH
Checking of GSM, GPRS Setting, Outgoing & Incoming Call
25. Open the HEX file Send the program
:020000001C2DB5
:08000800FF00030EFC000A0ECC
:0C001000FD00040EFE008A110A12452DAE
:1000200000000000C10B10280800C308031D192898
:10003000080009300000FF3E031D1A2800000000E0
:10004000C30B1928080083160313DA010230DB0002
:100050001030DC006F30DD00E001DD08031908001E
:100060005C08DE00DF015B18DE17DB185F1483130A
:100070005F1883175E0884000008E100E11B742804
26. Developed Program
Program for calling system:
It has three state:
Idle
Ringing
Connected
When the modem detects an incoming call it transmits the message “RING” at regular
intervals (approximately 2 seconds).
Steps to Write Program:
LCD Initializing
Sending AT+CLIP
Checking incoming call
Taking Number from Keypad
Speed Dialing
Sending ATA
Sending ATH
32. Program for sending sms
Steps to Write Program:
Taking Number from Keypad
The AT command required to configure
this option is Message Format
command:
AT+CMGF=1
The AT command to send a text
message is:
AT+CMGS=<”number”>
Writing message
<CTRL-Z> to finish sending
36. Speed dialling call termination
If we press ‘*’ Key it will terminate by sending ATH command
37. Taking and Dialing a Number from Keypad
If we press the ‘5’ key on keypad a option will be appeared showing “Enter No” on Software LCD .than we have
to enter a mobile number which will be saved in a variable named “K_Buffer”.
if we press the ‘#’ Key on keypad, the entered number will be dialled By a AT command that is
“ATD01710036458;”
38. Incoming Call
Hardware output
Now if we press the ‘#’ key on the keypad the incoming call will be received by sending a AT command to
modem as “ATA”
If we press ‘*’ Key it will terminate.
39. Sending of sms: When we will press the ‘#’ key a AT command that is “AT+CMGS=<”01717405762”>
” is sent to the modem
Software Output Hardware output
40. Receiving of sms
The figure is showing received message from a remote mobile phone
41. Conclusion
There are three existing program has been modified separately for
calling, sending and receiving sms which is necessary to developed a
general phone.
But it works slowly because of during the execution of large program the
device faces some delay as its fixed clock speed and also for limitation of
LCD display and KEYPAD