mini project on gsm based ups batterys management changes
TRANSCRIPT
MINI PROJECT REPORT
On
GLOBAL ALERT AND CONTROL SYSTEM FOR UPS BATTERY
MANAGEMENT FOR CORPORATE AUTOMATION (GSM)
Submitted in partial fulfillment of the requirements
For the award of the degree of
BACHELOR OF TECHNOLOGY
IN
ELECTRONICS & COMMUNICATION ENGINEERING
BY
Y.SAI NITISH (08C71A04A9)
P.CHANDRA SHEKER (08C71A0482)
Under the Guidance of
P.SURESH REDDY
Asst.Prof
Department of ECE
ELLENKI COLLEGE OF ENGINEERING & TECHNOLOGY
PATELGUDA, PATANCHERU, MEDAK DISTRICT-502305
AFFILIATED TO JNTU
ELLENKI COLLEGE OF ENGINEERING & TECHNOLOGY
PATELGUDA, PATANCHERU, MEDAK DISTRICT-502305
DEPARTMENT OF ELECTRONICS & COMMUNICATION ENGINEERING
CERTIFICATE
This is to certify that project report entitled “GLOBAL ALERT AND
CONTROL SYSTEM FOR UPS BATTERY MANAGEMENT FOR CORPORATE
AUTOMATION (GSM)” of third year in partial fulfillment of requirements for
the award of the degree of bachelor of technology in Electronics &
Communication Engineering under Jawaharlal Nehru technology of University
during the period of 2008-2012.
INTERNAL GUIDE HEAD OF THE DEPARTMENT
Mr.P.SURESH REDDY Mr.T.SRAVAN KUMAR
Asst.Prof Assoc.Prof
DEPARTMENT OF ECE DEPARTMENT OF ECE
EXTERNAL GUIDE
ACKNOWLEDGEMENT
Taking up the execution of project work was a rich experience by itself as it involved more of my efforts. It was the first opportunity for me to apply my knowledge and skill to work up on and an idea, which certainly will be helpful after stepping in to the actual field work.
My sincere thanks to external project guide SRINIVAS of KREST TECHNOLOGIES HYDERABAD, for the guidance and support pertaining to use lab facilities and carry out this project work.
I express my profound attitude to our guide Mr.P.SURESH REDDY Asst.prof of ECE department for her support and encouragement in completing the project .I thanks her project guidance and help through the development of this project for providing me with required information. Without her guidance, co-operation and encouragement, I couldn’t have learned many things during my project tenure.
I would like to thank Mr.T.SRAVAN KUMAR Assoc.Prof, Head of the department of electronics and communication engineering for his valuable guidance in bringing shape to this dissertation.
I express my special thanks to Principal Prof.MR.AMZAN SHAIK on behalf of our ECE department for his kind co-operation.
Y.SAI NITISH (08C71A04A9)
P.CHANDRA SHEKER (08C71A0482)
ABSTRACT
In this project, we are using two transformers. One is as mains supply to
corporate and second transformer as secondary (UPS) supply. In the beginning
we are giving the main supply by transformer one, but if due to some reason
mains supply is not working. Then by power detector circuit this information
goes to microcontroller and buzzer will produce an alarming sound.
Microcontroller will send the message to authorized person by GSM modem.
If person wants to continue the power supply by second
transformer then that person has to send message to gsm modem. Whenever
the gsm modem receives sms message to change the power supply connection
it gives instruction to microcontroller. The microcontroller simply connects the
second power supply and disconnects the existing supply using relay based control
circuit.
INDEX
CH.NO CONTENTS PAGE NO
1. INTRODUCTION
2. BLOCK DIAGRAM
2. 1 BLOCK DIAGRAM DESCRIPTION
3. SCHEMATIC
3. 1 SCHEMATIC DESCRIPTION
4. HARDWARE COMPONENTS
MICROCONTROLLER
GSM MODEM
BUZZER
LED
RELAY
LCD
POWER SUPPLY
TRANSFORMERS
5. SOFTWARE
ABOUT KIEL
EMBEDDED ‘C’
6. SOURCE CODE
7. CONCLUSION (OR) SYNOPSIS
8. ABBREVATIONS
BIBLIOGRAPHY
CHAPTER 1
INTRODUCTION
Every system is automated in order to face new challenges in the present day
situation. Automated systems have less manual operations, so that the flexibility, reliabilities
are high and accurate. Hence every field prefers automated control systems. Especially in the
field of electronics automated systems are doing better performance increasingly.
Probably the most useful thing to know about the global system for mobile
communication is that it is an international standard. If you travel in parts of world, GSM is
only type of cellular service available. Instead of analog services, GSM was developed as a
digital system using TDMA technology.
In our project the microcontroller continuously monitors the voltage and if the voltage
drops below the present value then this system alerts the local user and the remote personal
through gsm in the form of sms message.
If we want change the existed battery with another battery just we have to send the
sms to gsm modem connected. Whenever the gsm modem receives sms message to change
the battery connection it gives instruction to microcontroller .The microcontroller simply
connects the new battery and disconnects the existing battery using relay based control
circuit.
INTRODUCTION TO GSM TECHNOLOGY
An embedded system is a special-purpose system in which the computer is completely
encapsulated by or dedicated to the device or system it controls. Unlike a general-purpose
computer, such as a personal computer, an embedded system performs one or a few pre-
defined tasks, usually with very specific requirements. Since the system is dedicated to
specific tasks, design engineers can optimize it, reducing the size and cost of the product.
Embedded systems are often mass-produced, benefiting from economies of scale.
What is GSM
Global System for Mobile Communication (GSM) is a set of ETSI standards specifying the
infrastructure for a digital cellular service. The standard is used in approx. 85 countries in the
world including such locations as Europe, Japan and Australia1
GSM Call Routing
Mobile Subscriber Roaming
When a mobile subscriber roams into a new location area (new VLR), the VLR automatically
determines that it must update the HLR with the new location information, which it does
using an SS7 Location Update Request Message. The Location Update Message is routed to
the HLR through the SS7 network, based on the global title translation of the IMSI that is
stored within the SCCP Called Party Address portion of the message. The HLR responds
with a message that informs the VLR whether the subscriber should be provided service in
Fig:Gsm call routing
GSM (Global System for Mobile communication) is a digital mobile telephone
system that is widely used in many parts of the world. GSM uses a variation of Time Division
Multiple Access (TDMA) and is the most widely used of the three digital wireless telephone
technologies. GSM digitizes and compresses data, then sends it down a channel with two
other streams of user data, each in its own time slot. GSM operates in the 900MHz,
1800MHz, or 1900 MHz frequency bands.
GSM together with other technologies is part of an evolution of wireless
mobile telecommunication that includes High-Speed Circuit-Switched Data (HCSD), General
Packet Radio System (GPRS), Enhanced Data GSM Environment (EDGE), and Universal
Mobile Telecommunications Service (UMTS). GSM security issues such as theft of service,
privacy, and legal interception continue to raise significant interest in the GSM community.
The purpose of this portal is to raise awareness of these issues with GSM security.
Digital containers offer an alternative way of securely delivering content to
consumers. They can offer many advantages, particularly for content delivery over mobile
phone networks:
1. Scalability
2. Micro transactions/Micro payments compatibility
3. Content channel neutrality (heterogeneous networks, uni cast
/multicast/broadcast etc)
4. Possibility of DRM
5. Consumer anonymity
Etc.
CHAPTER 2
BLOCK DIAGRAM:
LCD
MICRO
CONTROLLER
RELAY
LED INDICATOR
Transformer 1
Transformer 2
POWER SUPPLY
BUZZER
GSM
MODEM
Power detector ckt
MAX232
Fig: block diagram of microcontroller
2.1 BLOCK DIAGRAM EXPLANATION:
Micro Controller:
In this project work the micro-controller is plays major role. Micro-controllers were originally used as components in complicated process-control systems. However, because of their small size and low price, Micro-controllers are now also being used in regulators for individual control loops. In several areas Micro-controllers are now outperforming their analog counterparts and are cheaper as well.
Gsm Modem
Here we are using GSM MODEM to communicate with the mobile phone to which we are going to send the message. Whenever an authorized person wants to know the status of parameter or whenever parameters values increases above the threshold value then a message will be sent through modem. This fault is indicated by displaying in LCD. This project will facilitates us to monitor as well as control different parameters at a time which increase accuracy and speed.
POWER SUPPLY
This section is meant for supplying Power to all the sections
mentioned above. It basically consists of a Transformer to step down the 230V ac to 18V ac
followed by diodes. Here diodes are used to rectify the ac to dc. After rectification the
obtained rippled dc is filtered using a capacitor Filter. A positive voltage regulator is used to
regulate the obtained dc voltage.
But here in this project two power supplies are used one is meant to supply operating
voltage for Microcontroller and the other is to supply control voltage for Relays.
LCD:
Liquid crystal displays (LCDs) have materials, which combine the properties of both
liquids and crystals. Rather than having a melting point, they have a temperature range within
which the molecules are almost as mobile as they would be in a liquid, but are grouped
together in an ordered form similar to a crystal.
5
Buzzer:
A buzzer or beeper is a signaling device, usually electronic, typically used in
automobiles, household appliances such as a microwave ovens, & game shows.
The word "buzzer" comes from the rasping noise that buzzers made when they were
electromechanical devices, operated from stepped-down AC line voltage at 50 or 60 cycles.
Other sounds commonly used to indicate that a button has been pressed are a ring or a beep...
Leds:
A light-emitting diode (LED) is a semiconductor light source. LEDs are used as indicator lamps in many devices, and are increasingly used for lightning. Introduced as a practical electronic component in 1962, early LEDs emitted low-intensity red light, but modern versions are available across the visible, ultraviolet and infrared wavelengths, with very high brightness.
6
CHAPTER 3
SCHEMATIC DIAGRAM:
3.1 SCHEMATIC DESCRIPTION
The system requirements and control specifications clearly rule out the use of 16, 32
or 64 bit micro controllers or microprocessors. Systems using these may be earlier to
implement due to large number of internal features. They are also faster and more reliable
but, 8-bit micro controller satisfactorily serves the above application. Using an inexpensive 8-
bit Microcontroller will doom the 32-bit product failure in any competitive market place.
A capacitor (formerly known as condenser) is a device for storing electric charge.
The forms of practical capacitors vary widely, but all contain at least two conductors
separated by a non-conductor. Capacitors used as parts of electrical systems, for example,
consist of metal foils separated by a layer of insulating film. 7
A resistor is a two-terminal passive electronic component that implements electrical
resistance as a circuit element. When a voltage V is applied across the terminals of a resistor,
a current I will flow through the resistor in direct proportion to that voltage.
A diode is a two-terminal electronic component. A semiconductor diode, the most
common type today, is a crystalline piece of semiconductor material connected to two
electrical terminals.[1] A vacuum tube diode (now little used except in some high-power
technologies) is a vacuum with two electrodes: a plate and a cathode.
The AT89S51 is a low-power, high-performance CMOS 8-bit microcontroller with
4Kbytes of in-system programmable Flash memory. The device is manufactured using
Atmel’s high-density nonvolatile memory technology and is compatible with the industry-
Standard 80C51 instruction set and pin out. The on-chip Flash allows the program
Memory to be reprogrammed in-system or by a conventional nonvolatile memory
programmer.
By combining a versatile 8-bit CPU with in-system programmable Flash on a
Monolithic chip, the Atmel AT89S51 is a powerful microcontroller which provides a
Highly-flexible and cost-effective solution to many embedded control applications.
The required operating voltage for Microcontroller 89C51 is 5V. Hence the 5V D.C. power
supply is needed. This regulated 5V is generated by stepping down the voltage from 230V to
12V using step down transformer. Now the step downed a.c voltage is being rectified by the
Bridge Rectifier using 1N4007 diodes. The rectified a.c voltage is now filtered using a ‘C’
filter. Now the rectified, filtered D.C. voltage is fed to the Voltage Regulator. This voltage
regulator provides/allows us to have a Regulated constant Voltage which is of +5V. The
rectified; filtered and regulated voltage is again filtered for ripples using an electrolytic
capacitor 100μF. Now the output from this section is fed to 40 th pin of 89c51 microcontroller
to supply operating voltage. The microcontroller 89C51 with Pull up resistors at Port0 and
crystal oscillator of 11.0592 MHz crystal in conjunction with couple of 30-33pf capacitors is
placed at 18th& 19th pins of 89c51 to make it work (execute) properly.
8
Gsm Modem
A GSM modem can be an external modem device, such as the Wavecom FASTRACK
Modem. Insert a GSM SIM card into this modem, and connect the modem to an available
serial port on your computer. A GSM modem could also be a standard GSM mobile phone
with the appropriate cable and software driver to connect to a serial port on your computer.
Phones such as the Nokia 7110 with a DLR-3 cable, or various Ericsson phones, are often
used for this purpose.
When you install your GSM modem, or connect your GSM mobile phone to the computer, be
sure to install the appropriate Windows modem driver from the device manufacturer. To
simplify configuration, the Now SMS/MMS Gateway will communicate with the device via
this driver. An additional benefit of utilizing this driver is that you can use Windows
diagnostics to ensure that the modem is communicating properly with the computer.
9
CHAPTER 4
Hardware Components
MICROCONTROLLER
GSM MODEM
BUZZER
LED
RELAY
LCD
POWER SUPPLY
TRANSFORMERS
4.1 MICRO CONTROLLER 89C51
Introduction
A Micro controller consists of a powerful CPU tightly coupled with memory, various
I/O interfaces such as serial port, parallel port timer or counter, interrupt controller, data
acquisition interfaces-Analog to Digital converter, Digital to Analog converter, integrated on
to a single silicon chip.
If a system is developed with a microprocessor, the designer has to go for external
memory such as RAM, ROM, EPROM and peripherals. But controller is provided all these
facilities on a single chip. Development of a Micro controller reduces PCB size and cost of
design.
One of the major differences between a Microprocessor and a Micro controller is that a
controller often deals with bits not bytes as in the real world application.
Intel has introduced a family of Micro controllers called the MCS-51.
The Major Features:
Compatible with MCS-51 products
4k Bytes of in-system Reprogrammable flash memory
Fully static operation: 0HZ to 24MHZ
10
128 * 8 –bit timer/counters
Six interrupt sources
Label1
Functional block diagram of micro controller
The 89C51 oscillator and clock:
The heart of the 89C51 circuitry that generates the clock pulses by which all the
internal all internal operations are synchronized. Pins XTAL1 and XTAL2 are
provided for connecting a resonant network to form an oscillator. Typically a quartz crystal
and capacitors are employed. The manufacturers make 89C51 designs that run at specific
minimum and maximum frequencies typically 1 to 16 MHz 11
Fig 3.7.2: - Oscillator and timing circuit
Types of memory:
The 89C51 have three general types of memory. They are on-chip memory, external
Code memory and external Ram. On-Chip memory refers to physically existing memory on
the micro controller itself. External code memory is the code memory that resides off chip.
This is often in the form of an external EPROM. External RAM is the Ram that resides off
chip. This often is in the form of standard static RAM or flash RAM
Code memory
Code memory is the memory that holds the actual 89C51 programs that is to be run. This
memory is limited to 64K. Code memory may be found on-chip or off-chip. It is possible to
have 4K of code memory on-chip and 60K off chip memory simultaneously. If only off-chip
memory is available then there can be 64K of off chip ROM. This is controlled by pin
provided as EA
12
a) Internal RAM
The 89C51 have a bank of 128 of internal RAM. The internal RAM is found on-chip.
So it is the fastest Ram available. And also it is most flexible in terms of reading and writing.
Internal Ram is volatile, so when 89C51 is reset, this memory is cleared. 128 bytes of internal
memory are subdivided. The first 32 bytes are divided into 4 register banks. Each bank
contains 8 registers. Internal RAM also contains 128 bits, which are addressed from 20h to
2Fh. These bits are bit addressed i.e. each individual bit of a byte can be addressed by the
user. They are numbered 00h to 7Fh. The user may make use of these variables with
commands such as SETB and CLR.
Fig 3.7.3: - Pin diagram of AT89C51
Pin Description:
VCC: Supply voltage.
GND: Ground.
13
Port 0:
Port 0 is an 8-bit open-drain bi-directional I/O port. As an output port, each pin can
sink eight TTL inputs. When one’s are written to port 0 pins, the pins can be used as high
impedance inputs. Port 0 may also be configured to be the multiplexed low order address/data
bus during accesses to external program and data memory. In this mode P0 has internal pull-
ups. Port 0 also receives the code bytes during Flash programming, and outputs the code
bytes during program verification. External pull-ups are required during program verification.
Port 1:
Port 1 is an 8-bit bi-directional I/O port with internal pull-ups. The Port 1 output
buffers can sink/source four TTL inputs. When 1s are written to Port 1 pins they are pulled
high by the internal pull-ups and can be used as inputs. As inputs, Port 1 pins that are
externally being pulled low will source current (IIL) because of the internal pull-ups. Port 1
also receives the low-order address bytes during Flash programming and verification.
Port 2:
Port 2 is an 8-bit bi-directional I/O port with internal pull-ups. The Port 2 output
buffers can sink/source four TTL inputs. When 1s are written to Port 2 pins they are pulled
high by the internal pull-ups and can be used as inputs. As inputs, Port 2 pins that are
externally being pulled low will source current (IIL) because of the internal pull-ups. Port 2
emits the high-order address byte during fetches from external program memory and during
accesses to external data memories that use 16-bit addresses (MOVX @DPTR). In this
application, it uses strong internal pull-ups when emitting 1s. During accesses to external data
memories that use 8-bit addresses (MOVX @ RI), Port 2 emits the contents of the P2 Special
Function Register. Port 2 also receives the high-order address bits and some control signals
during Flash programming and verification.
14
Port 3:
Port 3 is an 8-bit bi-directional I/O port with internal pull-ups. The Port 3 output
buffers can sink/source four TTL inputs. When 1s are written to Port 3 pins they are pulled
high by the internal pull-ups and can be used as inputs. As inputs, Port 3 pins that are
externally being pulled low will source current (IIL) because of the pull-ups.
Port 3 also serves the functions of various special features of the AT89C51 as listed below:
Port 3 also receives some control signals for Flash programming and verification.
Tab 6.2.1 Port pins and their alternate functions
RST:
Reset input. A high on this pin for two machine cycles while the oscillator is running
resets the device.
15
ALE/PROG:
Address Latch Enable output pulse for latching the low byte of the address during
accesses to external memory. This pin is also the program pulse input (PROG) during Flash
programming. In normal operation ALE is emitted at a constant rate of 1/6the oscillator
frequency, and may be used for external timing or clocking purposes. Note, however, that one
ALE pulse is skipped during each access to external Data Memory. If desired, ALE
operation can be disabled by setting bit 0 of SFR location 8EH. With the bit set, ALE is
active only during a MOVX or MOVC instruction. Otherwise, the pin is pulled high. Setting
the ALE-disable bit has no effect if the microcontroller is in external execution mode.
PSEN:
Program Store Enable is the read strobe to external program memory. When the
AT89C51 is executing code from external program memory, PSEN is activated twice each
machine cycle, except that two PSEN activations are skipped during each access to external
data memory.
EA/VPP:
External Access Enable EA must be strapped to GND in order to enable the device to
fetch code from external program memory locations starting at 0000H up to FFFFH.
EA should be strapped to VCC for internal program executions. This pin also receives
the 12-volt programming enable voltage (VPP) during Flash programming, for parts that
require 12-volt VPP.
XTAL1:
Input to the inverting oscillator amplifier and input to the internal clock operating
circuit.
16
XTAL2:
It is the Output from the inverting oscillator amplifier.
Oscillator Characteristics:
XTAL1 and XTAL2 are the input and output, respectively, of an inverting amplifier
which can be configured for use as an on-chip oscillator, as shown in Figs 6.2.3. Either a
quartz crystal or ceramic resonator may be used. To drive the device from an external clock
source, XTAL2 should be left unconnected while XTAL1 is driven as shown in Figure
6.2.4.There are no requirements on the duty cycle of the external clock signal, since the input
to the internal clocking circuitry is through a divide-by-two flip-flop, but minimum and
maximum voltage high and low time specifications must be observed.
Fig 6.2.3 Oscillator Connections Fig 6.2.4 External Clock Drive Configuration
17
8051 Register Banks and Stack
RAM memory space allocation in the 8051
There are 128 bytes of RAM in the 8051. The 128 bytes of RAM inside the 8051
are assigned addresses 00 to7FH. These 128 bytes are divided into three different groups as
follows:
1. A total of 32 bytes from locations 00 to 1FH hex are set aside for register banks
and the stack.
2. A total of 16 bytes from locations 20 to 2FH hex are set aside for bit-addressable
read/write memory.
3. A total of 80 bytes from locations 30H to 7FH are used for read and write storage,
or what is normally called Scratch pad. These 80 locations of RAM are widely
used for the purpose of storing data and parameters nu 8051 programmers.
Register banks in the 8051
A total of 32bytes of RAM are set aside for the register banks and stack. These 32
bytes are divided into 4 banks of registers in which each bank has registers, R0-R7. RAM
locations 0 to 7 are set aside for bank 0 of R0-R7 where R0 is RAM location 0, R1 is RAM
location 1, and R2 is location 2, and so on, until memory location7, which belongs to R7 of
bank0. The second bank of registers R0-R7 starts at RAM location 08 and goes to location
0FH. The third bank of R0-R7 starts at memory location 10H and goes to location 17H.
Finally, RAM locations 18H to 1FH are set aside for the fourth bank of R0-R7. Fig shows
how the 32 bytes are allocated into 4 banks.
As we can see from fig 1, the bank 1 uses the same RAM space as the stack. This is
a major problem in programming the 8051. we must either not use register bank1, or allocate
another area of RAM for the stack.
18
Default register bank
If RAM locations 00-1F are set aside for the four register banks, which register
bank of R0-R7 do we have access to when the 8051 is powered up? The answer is register
bank 0; that is , RAM locations 0, 1,2,3,4,5,6, and 7 are accessed with the names R0, R1, R2,
R3, R4, R5, R6, and R7 when programming the 8051. It is much easier to refer to these
RAM locations with names such as R0, R1 and so on, than by their memory locations as
shown in fig 2.
The register banks are switched by using the D3 & D4 bits of register PSW.
FIG: RAM Allocation in the 8051
19
Fig: 8051 Register Banks and their RAM Addresses
PSW Register (Program Status Word)
This is one of the most important SFRs. The Program Status Word (PSW) contains several
status bits that reflect the current state of the CPU. This register contains: Carry bit, Auxiliary
Carry, two register bank select bits, Overflow flag, parity bit, and user-definable status flag.
The ALU automatically changes some of register’s bits, which is usually used in regulation
of the program performing.
P - Parity bit. If a number in accumulator is even then this bit will be automatically set (1),
otherwise it will be cleared (0). It is mainly used during data transmission and receiving via
serial communication.
20
- Bit 1. This bit is intended for the future versions of the microcontrollers, so it is not
supposed to be here.
OV Overflow occurs when the result of arithmetical operation is greater than 255 (decimal),
so that it can not be stored in one register. In that case, this bit will be set (1). If there is no
overflow, this bit will be cleared (0).
RS0, RS1 - Register bank selects bits. These two bits are used to select one of the four
register banks in RAM. By writing zeroes and ones to these bits, a group of registers R0-R7
is stored in one of four banks in RAM.
RS1 RS2 Space in RAM
0 0 Bank0 00h-07h
0 1 Bank1 08h-0Fh
1 0 Bank2 10h-17h
1 1 Bank3 18h-1Fh
F0 - Flag 0. This is a general-purpose bit available to the user.
CY - Carry Flag is the (ninth) auxiliary bit used for all arithmetical operations and shift
instructions.
DPTR Register (Data Pointer)
These registers are not true ones because they do not physically exist. They consist of two
separate registers: DPH (Data Pointer High) and (Data Pointer Low). Their 16 bits are used
for external memory addressing. They may be handled as a 16-bit register or as two
independent 8-bit registers. Besides, the DPTR Register is usually used for storing data and
intermediate results which have nothing to do with memory locations.
21
SP Register (Stack Pointer)
The stack is a section of RAM used by the CPU to store information temporarily.
This information could be data or an address. The CPU needs this storage area since there
are only a limited number of registers.
Program counter:
The important register in the 8051 is the PC (Program counter). The program
counter points to the address of the next instruction to be executed. As the CPU fetches the
OPCODE from the program ROM, the program counter is incremented to point to the next
instruction. The program counter in the 8051 is 16bits wide. This means that the 8051 can
access program addresses 0000 to FFFFH, a total of 64k bytes of code. However, not all
members of the 8051 have the entire 64K bytes of on-chip ROM installed, as we will see
soon.
22
Types of instructions
Depending on operation they perform, all instructions are divided in several groups:
Arithmetic Instructions
Branch Instructions
Data Transfer Instructions
Logical Instructions
Logical Instructions with bits
The first part of each instruction, called MNEMONIC refers to the operation an instruction
performs (copying, addition, logical operation etc.). Mnemonics commonly are shortened
form of name of operation being executed. For example:
INC R1; Increment R1 (increment register R1)
LJMP LAB5 ; Long Jump LAB5 (long jump to address specified as LAB5)
JNZ LOOP; Jump if Not Zero LOOP (if the number in the accumulator is not 0, jump to
address specified as LOOP)
Another part of instruction, called OPERAND is separated from mnemonic at least by one
empty space and defines data being processed by instructions. Some instructions have no
operand; some have one, two or three. If there is more than one operand in instruction, they
are separated by comma. For example:
RET - (return from sub-routine)
JZ TEMP - (if the number in the accumulator is not 0, jump to address specified as TEMP)
ADD A, R3 - (add R3 and accumulator)
CJNE A, #20, LOOP - (compare accumulator with 20. If they are not equal, jump to address
specified as LOOP)
23
TIMERS
On-chip timing/counting facility has proved the capabilities of the microcontroller for
implementing the real time application. These includes pulse counting, frequency
measurement, pulse width measurement, baud rate generation, etc, having sufficient number
of timer/counters may be a need in a certain design application. The 8051 has two
timers/counters. They can be used either as timers to generate a time delay or as counters to
count events happening outside the microcontroller. Let discuss how these timers are used to
generate time delays and we will also discuss how they are been used as event counters.
PROGRAMMING 8051 TIMER
The 8051 has timers: Timer 0 and Timer1.they can be used either as timers or as event
counters. Let us first discuss about the timers’ registers and how to program the timers to
generate time delays.
TIMER 0 REGISTERS
The 16-bit register of Timer 0 is accessed as low byte and high byte. the low byte
register is called TL0(Timer 0 low byte)and the high byte register is referred to as TH0(Timer
0 high byte).These register can be accessed like any other register, such as
A,B,R0,R1,R2,etc.for example, the instruction ”MOV TL0, #4F”moves the value 4FH into
TL0,the low byte of Timer 0.These registers can also be read like any other register.
24
TIMER 1 REGISTERS
Timer 1 is also 16-bit register is split into two bytes, referred to as TL1 (Timer 1
low byte) and TH1 (Timer 1 high byte).these registers are accessible n the same way as the
register of Timer 0.
TMOD (timer mode) REGISTER
Both timers TIMER 0 and TIMER 1 use the same register, called TMOD, to set the
various timer operation modes. TMOD is an 8-bit register in which the lower 4 bits are set
aside for Timer 0 and the upper 4 bits for Timer 1.in each case; the lower 2 bits are used to
set the timer mode and the upper 2 bits to specify the operation.
MODES:
M1, M0:
M0 and M1 are used to select the timer mode. There are three modes: 0, 1, 2.Mode
0 is a 13-bit timer, mode 1 is a 16-bit timer, and mode 2 is an 8-bit timer. We will concentrate
on modes 1 and 2 since they are the ones used most widely. We will soon describe the
characteristics of these modes, after describing the reset of the TMOD register.
GATE Gate control when set. The timer/counter is enabled only
While the INTx pin is high and the TRx control pin is.
Set. When cleared, the timer is enabled.
C/T Timer or counter selected cleared for timer operation
(Input from internal system clock).set for counter
Operation (input TX input pin). 25
M 1 Mode bit 1
M0 Mode bit 0
M1 M0 MODE Operating Mode
0 0 0 13-bit timer mode
8-bit timer/counter THx with TLx as
5 - Bit pre-scaler.
0 1 1 16-bit timer mode
16-bit timer/counters THx with TLx are
Cascaded; there is no prescaler
1 0 2 8-bit auto reload
8-bit auto reload timer/counter; THx
Holds a value that is to be reloaded into
TLx each time it overflows.
1 1 3 Split timer mode.
C/T (Clock / Timer)
This bit in the TMOD register is used to decide whether the timer is used as a delay
generator or an event counter. If C/T=0, it is used as a timer for time delay generation. The
clock source for the time delay is the crystal frequency of the 8051. This section is concerned
with this choice. The timer’s use as an event counter is discussed in the next section.
27
Serial Communication
Computers can transfer data in two ways: parallel and serial. In parallel data
transfers, often 8 or more lines (wire conductors) are used to transfer data to a device that is
only a few feet away. Examples of parallel data transfer are printers and hard disks; each
uses cables with many wire strips. Although in such cases a lot of data can be transferred in a
short amount of time by using many wires in parallel, the distance cannot be great. To
transfer to a device located many meters away, the serial method is used. In serial
communication, the data is sent one bit at a time, in contrast to parallel communication, in
which the data is sent a byte or more at a time. Serial communication of the 8051 is the topic
of this chapter. The 8051 has serial communication capability built into it, there by making
possible fast data transfer using only a few wires.
Serial data communication uses two methods, asynchronous and synchronous. The
synchronous method transfers a block of data at a time, while the asynchronous method
transfers a single byte at a time.
In data transmission if the data can be transmitted and received, it is a duplex
transmission. This is in contrast to simplex transmissions such as with printers, in which the
computer only sends data. Duplex transmissions can be half or full duplex, depending on
whether or not the data transfer can be simultaneous. If data is transmitted one way at a time,
it is referred to as half duplex. If the data can go both ways at the same time, it is full duplex.
Of course, full duplex requires two wire conductors for the data lines, one for transmission
and one for reception, in order to transfer and receive data simultaneously.
Asynchronous serial communication and data framing
The data coming in at the receiving end of the data line in a serial data transfer is all
0s and 1s; it is difficult to make sense of the data unless the sender and receiver agree on a set
of rules, a protocol, on how the data is packed, how many bits constitute a character, and
when the data begins and ends.
28
Start and stop bits
Asynchronous serial data communication is widely used for character-oriented
transmissions, while block-oriented data transfers use the synchronous method. In the
asynchronous method, each character is placed between start and stop bits. This is called
framing. In the data framing for asynchronous communications, the data, such as ASCII
characters, are packed between a start bit and a stop bit. The start bit is always one bit, but the
stop bit can be one or two bits. The start bit is always a 0 (low) and the stop bit (s) is 1
(high).
Data transfer rate
The rate of data transfer in serial data communication is stated in bps (bits per
second). Another widely used terminology for bps is baud rate. However, the baud and bps
rates are not necessarily equal. This is due to the fact that baud rate is the modem
terminology and is defined as the number of signal changes per second. The data transfer rate
of given computer system depends on communication ports incorporated into that system.
For example, the early IBMPC/XT could transfer data at the rate of 100 to 9600 bps. In
recent years, however, Pentium based PCS transfer data at rates as high as 56K bps. It must
be noted that in asynchronous serial data communication, the baud rate is generally limited to
100,000bps.
RS232 Standards
To allow compatibility among data communication equipment made by various
manufacturers, an interfacing standard called RS232 was set by the Electronics Industries
Association (EIA) in 1960. In 1963 it was modified and called RS232A. RS232B AND
RS232C were issued in 1965 and 1969, respectively. Today, RS232 is the most widely used
serial I/O interfacing standard. This standard is used in PCs and numerous types of
equipment. In RS232, a 1 is represented by -3 to -25V, while a 0 bit is +3 to +25V, making -3
to +3 undefined. For this reason, to connect any RS232 to a microcontroller system we must
use voltage converters such as MAX232 to convert the TTL logic levels to the RS232 voltage
levels, and vice versa. MAX232 IC chips are commonly referred to as line drivers.
29
RS232 pins
Pin Functions:
Pin Description
1 Data carrier detect (DCD)
2 Received data (RXD)
3 Transmitted data (TXD)
4 Data terminal ready(DTR)
5 Signal ground (GND)
6 Data set ready (DSR)
7 Request to send (RTS)
8 Clear to send (CTS)
9 Ring indicator (RI)
Note: DCD, DSR, RTS and CTS are active low pins.
The method used by RS-232 for communication allows for a simple connection of three
lines: Tx, Rx, and Ground. The three essential signals for 2-way RS-232
Communications are these:
TXD: carries data from DTE to the DCE.
RXD: carries data from DCE to the DTE
SG: signal ground
30
8051 connection to RS232
The RS232 standard is not TTL compatible; therefore, it requires a line driver such
as the MAX232 chip to convert RS232 voltage levels to TTL levels, and vice versa. The
interfacing of 8051 with RS232 connectors via the MAX232 chip is the main topic.
The 8051 has two pins that are used specifically for transferring and
receiving data serially. These two pins are called TXD and RXD and a part of the port 3
group (P3.0 and P3.1). Pin 11 of the 8051 is assigned to TXD and pin 10 is designated as
RXD. These pins are TTL compatible; therefore, they require a line driver to make them
RS232 compatible. One such line driver is the MAX232 chip.
MAX232 converts from RS232 voltage levels to TTL voltage levels,
and vice versa. One advantage of the MAX232 chip is that it uses a +5V power source
which, is the same as the source voltage for the 8051. In the other words, with a single +5V
power supply we can power both the 8051 and MAX232, with no need for the power supplies
that are common in many older systems. The MAX232 has two sets of line drivers for
transferring and receiving data. The line drivers used for TXD are called T1 and T2, while
the line drivers for RXD are designated as R1 and R2. In many applications only one of each
is used.
CONNECTING μC to PC using MAX 232
31
INTERRUPTS
A single microcontroller can serve several devices. There are two ways to do that:
INTERRUPTS or POLLING.
POLLING:
In polling the microcontroller continuously monitors the status of a given device;
when the status condition is met, it performs the service .After that, it moves on to monitor
the next device until each one is serviced. Although polling can monitor the status of several
devices and serve each of them as certain condition are met.
INTERRUPTS:
In the interrupts method, whenever any device needs its service, the
device notifies the microcontroller by sending it an interrupts signal. Upon receiving an
interrupt signal, the microcontroller interrupts whatever it is doing and serves the device. The
program associated with the interrupts is called the interrupt service routine (ISR).or interrupt
handler.
INTERRUPTS Vs POLLING:
The advantage of interrupts is that the microcontroller can serve many devices (not
all the same time, of course); each device can get the attention of the microcontroller based
on the priority assigned to it. The polling method cannot assign priority since it checks all
devices in round-robin fashion. More importantly, in the interrupt method the
microcontroller can also ignore (mask) a device request for service. This is again not
possible with the polling method. The most important reason that the interrupt method is
preferable is that the polling method wastes much of the microcontroller’s time by polling
devices that do not need service. So, in order to avoid tying down the microcontroller,
interrupts are used.
32
INTERRUPT SERVICE ROUTINE
For every interrupt, there must be an interrupt service routine (ISR), or interrupt
handler. When an interrupt is invoked, the microcontroller runs the interrupts service routine.
For every interrupt, there is a fixed location in memory that holds the address of its ISR. The
group of memory location set aside to hold the addresses of ISR and is called the Interrupt
Vector Table. Shown below:
Six Interrupts in the 8051:
In reality, only five interrupts are available to the user in the 8051, but many
manufacturers’ data sheets state that there are six interrupts since they include reset .the six
interrupts in the 8051 are allocated as above.
1. Reset. When the reset pin is activated, the 8051 jumps to address location 0000.this is
the power-up reset.
2. Two interrupts are set aside for the timers: one for Timer 0 and one for Timer
1.Memory location 000BH and 001BH in the interrupt vector table belong to Timer 0
and Timer 1, respectively.
3. Two interrupts are set aside for hardware external harder interrupts. Pin number
12(P3.2) and 13(P3.3) in port 3 are for the external hardware interrupts INT0 and
INT1,respectively.These external interrupts are also referred to as EX1 and
EX2.Memory location 0003H and 0013H in the interrupt vector table are assigned to
INT0 and INT1, respectively.
4. Serial communication has a single interrupt that belongs to both receive and transmit.
The interrupt vector table location 0023H belongs to this interrupt.
33
Interrupt Enable Register
D7 D6 D5 D4 D3 D2 D1 D0
EA IE.7 disables all interrupts. If EA=0, no interrupts is acknowledged.
If EA=1, each interrupt source is individually enabled disabled
By setting or clearing its enable bit.
EA -- ET2 ES ET1 EX1 ET0 EX0
-- IE.6 Not implemented, reserved for future use.*
ET2 IE.5 Enables or disables Timer 2 overflow or capture interrupt (8052
Only)
ES IE.4 Enables or disables the serial port interrupts.
ET1 IE.3 Enables or disables Timers 1 overflow interrupt
EX1 IE.2 Enables or disables external interrupt 1
ET0 IE.1 Enables or disables Timer 0 overflow interrupt.
EX0 IE.0 Enables or disables external interrupt.
34
4.2 GSM Modems
A GSM modem can be an external modem device, such as the Wavecom
FASTRACK Modem. Insert a GSM SIM card into this modem, and connect the modem to
an available serial port on your computer.
A dedicated GSM modem (external or PC Card) is usually preferable to a GSM mobile
phone. This is because of some compatibility issues that can exist with mobile phones.
When you install your GSM modem, or connect your GSM mobile phone to the computer, be
sure to install the appropriate Windows modem driver from the device manufacturer. To
simplify configuration, the Now SMS/MMS Gateway will communicate with the device via
this driver. An additional benefit of utilizing this driver is that you can use Windows
diagnostics to ensure that the modem is communicating properly with the computer.
The Now SMS/MMS gateway can simultaneously support multiple modems, provided that
your computer hardware has the available communications port resources.
Fig:16 GSM smart modem
SMART MODEM (GSM/GPRS)SMART MODEM (GSM/GPRS)
INTRODUCTION:
Analogic’s GSM Smart Modem is a multi-functional, ready to use, rugged and versatile
modem that can be embedded or plugged into any application. The Smart Modem can be
customized to various applications by using the standard AT commands. The modem is fully
type-approved and can directly be integrated into your projects with any or all the features of
Voice, Data, Fax, SMS, and Internet etc.
35
Smart Modem kit contains the following items:
Analogic’s GSM/GPRS Smart Modem
SMPS based power supply adapter.
3 dBi antenna with cable (optional: other types)
Data cable (RS232)
User Manual
PRODUCT DESCRIPTION:
The connectors integrated to the body, guarantee the reliable output and input connections.
An extractible holder is used to insert the SIM card (Micro-SIM type). Status LED indicates
the operating mode.
Fig 17: Block diagram of modem with key connections
Installing the modem:
To install the modem, plug the device on to the supplied SMPS Adapter.
Inserting/ Removing the SIM Card:
To insert or Remove the SIM Card, it is necessary to press the SIM holder ejector button with
Sharp edged object like a pen or a needle. With this, the SIM holder comes out a little, then
pulls it out and insert or remove the SIM Card
36
Fig 19: Inserting/Removing the sim card into the modem
Make sure that the ejector is pushed out completely before accessing the SIM Card holder do
not remove the SIM card holder by force or tamper it (it may permanently damage). Place the
SIM Card Properly as per the direction of the installation. It is very important that the SIM is
placed in the right direction for its proper working condition
Connecting External Antenna:
Connect GSM Smart Modem to the external antenna with cable end with SMA male. The
Frequency of the antenna may be GSM 900/1800 MHz. The antenna may be (0 dbi, 3 dbi or
short length L-type antenna) as per the field conditions and signal conditions.
Connectors:
Connector Function
SMA RF Antenna connector
15 pin or 9 pin D-SUB USB (optional) RS232 link Audio link (only for 15 D-
SUB) Reset (only for 15 D-SUB) USB
communication port (optional)
2 pin Phoenix tm Power Supply Connector
SIM Connector SIM Card Connection
RJ11 (For 9 D-SUB and USB only) Audio link Simple hand set connection
(4 wire) 2 wire desktop phone
connection
37
Description of the interfaces:
The modem comprises several interfaces:
LED Function including operating Status
External antenna (via SMA)
Serial and control link
Power Supply (Via 2 pin Phoenix tm contact)
SIM card holder
Services provided by GSM
GSM was designed having interoperability with ISDN in mind, and the services provided by GSM are
a subset of the standard ISDN services. Speech is the most basic, and most important, teleservice
provided by GSM.
In addition, various data services are supported, with user bit rates up to 9600 bps. Specially
equipped GSM terminals can connect with PSTN, ISDN, Packet Switched and Circuit Switched Public
Data Networks, through several possible methods, using synchronous or asynchronous transmission.
Also supported are Group 3 facsimile service, videotext, and teletex. Other GSM services include a
cell broadcast service, where messages such as traffic reports, are broadcast to users in particular
cells.
A service unique to GSM, the Short Message Service, allows users to send and receive point-to-point
alphanumeric messages up to a few tens of bytes. It is similar to paging services, but much more
comprehensive, allowing bi-directional messages, store-and-forward delivery, and
acknowledgement of successful delivery.
Supplementary services enhance the set of basic teleservices. In the Phase I specifications,
supplementary services include variations of call forwarding and call barring, such as Call Forward on
Busy or Barring of Outgoing International Calls. Many more supplementary services, including
multiparty calls, advice of charge, call waiting, and calling line identification presentation will be
offered in the Phase 2 specifications.
38
AT commands features:
Line settings:
A serial link handler is set with the following default values Auto baud, 8 bits data, 1 stop bit,
no parity, flow control.
Command line
Commands always start with AT (which means attention) and finish with a <CR> character.
Information responses and result codes
Responses start and end with <CR><LF>,
If command syntax is incorrect, an ERROR string is returned.
If command syntax is correct but with some incorrect parameters, the +CME ERROR: <Err>
or +CMS ERROR: <SmsErr> strings are returned with different error codes.
If the command line has been performed successfully, an OK string is returned.
In some cases, such as “AT+CPIN?” or (unsolicited) incoming events, the product does not
return the OK string as a response.
Architecture of the GSM network
A GSM network is composed of several functional entities, whose functions and interfaces
are specified. Figure 1 shows the layout of a generic GSM network. The GSM network can
be divided into three broad parts. Subscriber carries the Mobile Station. The Base Station
Subsystem controls the radio link with the Mobile Station. The Network Subsystem, the main
part of which is the Mobile services Switching Center (MSC), performs the switching of calls
between the mobile users, and between mobile and fixed network users. The MSC also
handles the mobility management operations. Not shown is the Operations intendance Center,
which oversees the proper operation and setup of the network.
39
Fig 20: General architecture of a GSM network
4.3 BUZZER
The "Piezoelectric sound components" introduced herein operate on an innovative
principle utilizing natural oscillation of piezoelectric ceramics. These buzzers are offered in
lightweight compact sizes from the smallest diameter of 12mm to large piezoelectric
sounders. Today, piezoelectric sound components are used in many ways such as home
appliances, OA equipment, audio equipment telephones, etc. And they are applied widely, for
example, in alarms, speakers, telephone ringers, receivers, transmitters, beep sounds, etc.
FIG: Types of Buzzers
4.4 LIGHT EMITING DIODES
It is a semiconductor diode having radioactive recombination. It requires a definite
amount of energy to generate an electron-hole pair.
40
4.5 RELAYS
Relay is an electrically operated switch. Current flowing through the coil of the relay
creates a magnetic field which attracts a lever and changes the switch contacts. The coil
current can be on or off so relays have two switch positions and they are double throw
(changeover) switches.
Relays allow one circuit to switch a second circuit which can be completely separate
from the first. For example a low voltage battery circuit can use a relay to switch a 230V AC
mains circuit. There is no electrical connection inside the relay between the two circuits; the
link is magnetic and mechanical.
The coil of a relay passes a relatively large current, typically 30mA for a 12V relay,
but it can be as much as 100mA for relays designed to operate from lower voltages. Most ICs
(chips) cannot provide this current and a transistor is usually used to amplify the small IC
current to the larger value required for the relay coil. The maximum output current for the
popular 555 timer IC is 200mA so these devices can supply relay coils directly without
amplification. 41
Most relays are designed for PCB mounting but you can solder wires directly to the
pins providing you take care to avoid melting the plastic case of the relay. The supplier's
catalogue should show you the relay's connections. The coil will be obvious and it may be
connected either way round. Relay coils produce brief high voltage 'spikes' when they are
switched off and this can destroy transistors and ICs in the circuit.
The relay's switch connections are usually labelled COM, NC and NO:
COM = Common, always connect to this; it is the moving part of the switch.
NC = Normally Closed, COM is connected to this when the relay coil is off.
NO = Normally Open, COM is connected to this when the relay coil is on.
Connect to COM and NO if you want the switched circuit to be on when the relay
coil is on.
Connect to COM and NC if you want the switched circuit to be on when the relay coil
is off.
Advantages of relays:
Relays can switch AC and DC, transistors can only switch DC.
Relays can switch high voltages, transistors cannot.
Relays are a better choice for switching large currents (> 5A).
Relays can switch many contacts at once.
Disadvantages of relays:
Relays are bulkier than transistors for switching small currents.
Relays cannot switch rapidly (except reed relays), transistors can switch many times
per second.
42
Relays require more current than many chips can provide, so a low power
transistor may be needed to switch the current for the relay's coil.
4.6 Liquid crystal display
An LCD consists of two glass panels, with the liquid crystal material sand witched in
between them. The inner surface of the glass plates are coated with transparent electrodes
which define the character, symbols or patterns to be displayed polymeric layers are present
in between the electrodes and the liquid crystal, which makes the liquid crystal molecules to
maintain a defined orientation angle.
One each polarizer’s are pasted outside the two glass panels. This polarizer’s would
rotate the light rays passing through them to a definite angle, in a particular direction.
When the LCD is in the off state, light rays are rotated by the two polarizer’s and the
liquid crystal, such that the light rays come out of the LCD without any orientation, and
hence the LCD appears transparent.
When sufficient voltage is applied to the electrodes, the liquid crystal molecules
would be aligned in a specific direction. The light rays passing through the LCD would be
rotated by the polarizer’s, which would result in activating/ highlighting the desired
characters.
The LCD’s are lightweight with only a few millimeters thickness. Since the LCD’s
consume less power, they are compatible with low power electronic circuits, and can be
powered for long durations.
43
TABLE 1:Pin description for LCD:
Pin symbol I/O Description
1 Vss -- Ground
2 Vcc -- +5V power supply
3 VEE -- Power supply to
control contrast
4 RS I RS=0 to select
command register
RS=1 to select
data register
5 R/W I R/W=0 for write
R/W=1 for read
6 E I/O Enable
7 DB0 I/O The 8-bit data bus
8 DB1 I/O The 8-bit data bus
9 DB2 I/O The 8-bit data bus
10 DB3 I/O The 8-bit data bus
11 DB4 I/O The 8-bit data bus
12 DB5 I/O The 8-bit data bus
13 DB6 I/O The 8-bit data bus
14 DB7 I/O The 8-bit data bus
44
TABLE 2: LCD Command Codes
Code
(hex)
Command to LCD Instruction
Register
1 Clear display screen
2 Return home
4 Decrement cursor
6 Increment cursor
5 Shift display right
7 Shift display left
8 Display off, cursor off
A Display off, cursor on
C Display on, cursor off
E Display on, cursor on
F Display on, cursor blinking
10 Shift cursor position to left
14 Shift cursor position to right
18 Shift the entire display to the left
1C Shift the entire display to the right
80 Force cursor to beginning of 1st line
C0 Force cursor to beginning of 2nd line
38 2 lines and 5x7 matrix
45
The LCD’s don’t generate light and so light is needed to read the display. By using
backlighting, reading is possible in the dark. The LCD’s have long life and a wide operating
temperature range.
This section describes the operation modes of LCD’s then describe how to program
and interface an LCD to 8051 using Assembly and C.
LCD operation
In recent years the LCD is finding widespread use replacing LEDs (seven-segment
LEDs or other multi segment LEDs).This is due to the following reasons:
1. The declining prices of LCDs.
2. The ability to display numbers, characters and graphics. This is in
Contract to LEDs, which are limited to numbers and a few characters.
3. Incorporation of a refreshing controller into the LCD, there by
relieving the CPU of the task of refreshing the LCD. In the contrast,
The LED must be refreshed by the CPU to keep displaying the data.
4. Ease of programming for characters and graphics.
Uses:
The LCDs used exclusively in watches, calculators and measuring instruments
are the simple seven-segment displays, having a limited amount of numeric data. The recent
advances in technology have resulted in better legibility, more information displaying
capability and a wider temperature range. These have resulted in the LCDs being extensively
used in telecommunications and entertainment electronics.
46
LCD INTERFACING
Sending commands and data to LCDs with a time delay:
Fig 21: Interfacing of LCD to a micro controller
To send any command from table 2 to the LCD, make pin RS=0.
For data, make RS=1.Then sends a high –to-low pulse to the E pin to enable the internal latch of the LCD.
4.7 Power supply
The power supplies are designed to convert high voltage AC mains
electricity to a suitable low voltage supply for electronic circuits and other devices. A power
supply can by broken down into a series of blocks, each of which performs a particular
function. A d.c power supply which maintains the output voltage constant irrespective of a.c
mains fluctuations or load variations is known as “Regulated D.C Power Supply”
47
For example a 5V regulated power supply system as shown below:
4.8 Transformer:
A transformer is an electrical device which is used to convert electrical power from one Electrical circuit to another without change in frequency.
Transformers convert AC electricity from one voltage to another with little loss of
power. Transformers work only with AC and this is one of the reasons why mains electricity
is AC. Step-up transformers increase in output voltage, step-down transformers decrease in
output voltage. Most power supplies use a step-down transformer to reduce the dangerously
high mains voltage to a safer low voltage. The input coil is called the primary and the output
coil is called the secondary. There is no electrical connection between the two coils; instead
they are linked by an alternating magnetic field created in the soft-iron core of the
transformer. The two lines in the middle of the circuit symbol represent the core.
Transformers waste very little power so the power out is (almost) equal to the power in. Note
that as voltage is stepped down current is stepped up. The ratio of the number of turns on
each coil, called the turn’s ratio, determines the ratio of the voltages. A step-down
transformer has a large number of turns on its primary (input) coil which is connected to the
high voltage mains supply, and a small number of turns on its secondary (output) coil to give
a low output voltage.
48
An Electrical Transformer
Regulator:
Voltage regulator ICs is available with fixed (typically 5, 12 and 15V) or variable
output voltages. The maximum current they can pass also rates them. Negative voltage
regulators are available, mainly for use in dual supplies. Most regulators include some
automatic protection from excessive current ('overload protection') and overheating ('thermal
protection'). Many of the fixed voltage regulator ICs has 3 leads and look like power
transistors, such as the 7805 +5V 1A regulator shown on the right. The LM7805 is simple to
use. You simply connect the positive lead of your unregulated DC power supply (anything
from 9VDC to 24VDC) to the Input pin, connect the negative lead to the Common pin and
then when you turn on the power, you get a 5 volt supply from the output pin.
Fig 6.1.6 A Three Terminal Voltage Regulator
49
78XX:
The Bay Linear LM78XX is integrated linear positive regulator with three terminals.
The LM78XX offer several fixed output voltages making them useful in wide range of
applications. When used as a zener diode/resistor combination replacement, the LM78XX
usually results in an effective output impedance improvement of two orders of magnitude,
lower quiescent current. The LM78XX is available in the TO-252, TO-220 & TO-
263packages,
Features:
• Output Current of 1.5A
• Output Voltage Tolerance of 5%
• Internal thermal overload protection
• Internal Short-Circuit Limited
• No External Component
• Direct Replacement for LM78XX
50
CHAPTER 5
SOFTWARE
5.1 ABOUT KEIL SOFTWARE:
It is possible to create the source files in a text editor such as Notepad, run the Compiler on each C source file, specifying a list of controls, run the Assembler on each Assembler source file, specifying another list of controls, run either the Library Manager or Linker and finally running the Object-HEX Converter to convert the Linker output file to an Intel Hex File.
Once that has been completed the Hex File can be downloaded to the target hardware and debugged. Alternatively KEIL can be used to create source files; automatically compile, link and covert using options set with an easy to use user interface and finally simulate or perform debugging on the hardware with access to C variables and memory. Unless you have to use the tolls on the command line, the choice is clear. KEIL Greatly simplifies the process of creating and testing an embedded application.
Simulator/Debugger:
The simulator/ debugger in KEIL can perform a very detailed simulation of a micro controller along with external signals. It is possible to view the precise execution time of a single assembly instruction, or a single line of C code, all the way up to the entire application, simply by entering the crystal frequency. A window can be opened for each peripheral on the device, showing the state of the peripheral. This enables quick trouble shooting of mis-configured peripherals. Breakpoints may be set on either assembly instructions or lines of C code, and execution may be stepped through one instruction or C line at a time. The contents of all the memory areas may be viewed along with ability to find specific variables. In
addition the registers may be viewed allowing a detailed view of what the microcontroller is doing at any point in time.
The Keil Software 8051 development tools listed below are the programs you use to compile your C code, assemble your assembler source files, link your program together, create HEX files, and debug your target program. µVision2 for Windows™ Integrated Development Environment: combines Project Management, Source Code Editing, and Program Debugging in one powerful environment.
C51 ANSI Optimizing C Cross Compiler: creates relocatable object modules from your C source code,
BL51 Linker/Locator: combines relocatable object modules created by the compiler and assembler into the final absolute object module,
51
LIB51 Library Manager: combines object modules into a library, which may be used by the linker,
OH51 Object-HEX Converter: creates Intel HEX files from absolute object modules.
What's New in µVision3?
µVision3 adds many new features to the Editor like Text Templates, Quick Function Navigation, and Syntax Coloring with brace high lighting Configuration Wizard for dialog based startup and debugger setup. µVision3 is fully compatible to µVision2 and can be used in parallel with µVision2.
Building an Application in µVision2
To build (compile, assemble, and link) an application in µVision2, you must:
1. Select Project - (forexample, 166\EXAMPLES\HELLO\HELLO.UV2).2. Select Project - Rebuild all target files or Build target.
µVision2 compiles, assembles, and links the files in your project
Creating Your Own Application in µVision2
To create a new project in µVision2, you must:
1. Select Project - New Project.2. Select a directory and enter the name of the project file.3. Select Project - Select Device and select an 8051, 251, or C16x/ST10 device from the
Device Database™.4. Create source files to add to the project.5. Select Project - Targets, Groups, and Files. Add/Files, select Source Group1, and add
the source files to the project.6. Select Project - Options and set the tool options. Note when you select the target
device from the Device Database™ all special options are set automatically. You typically only need to configure the memory map of your target hardware. Default memory model settings are optimal for most applications.
7. Select Project - Rebuild all target files or Build target.
Debugging an Application in µVision2
To debug an application created using µVision2, you must:
1. Select Debug - Start/Stop Debug Session.2. Use the Step toolbar buttons to single-step through your program. You may enter G,
main in the Output Window to execute to the main C function.3. Open the Serial Window using the Serial #1 button on the toolbar.
Debug your program using standard options like Step, Go, Break, and so on.
52
Starting µVision2 and creating a Project
µVision2 is a standard Windows application and started by clicking on the program icon. To create a new project file select from the µVision2 menu
Project – New Project…. This opens a standard Windows dialog that asks you
For the new project file name.
We suggest that you use a separate folder for each project. You can simply use
The icon Create New Folder in this dialog to get a new empty folder. Then
Select this folder and enter the file name for the new project, i.e. Project1.
µVision2 creates a new project file with the name PROJECT1.UV2 which contains
A default target and file group name. You can see these names in the Project
Window – Files.
Now use from the menu Project – Select Device for Target and select a CPU
For your project. The Select Device dialog box shows the µVision2 device
Database. Just select the micro controller you use. We are using for our examples the Philips 80C51RD+ CPU. This selection sets necessary tool
Options for the 80C51RD+ device and simplifies in this way the tool Configuration
Building Projects and Creating a HEX Files
Typical, the tool settings under Options – Target are all you need to start a new
Application. You may translate all source files and line the application with a
Click on the Build Target toolbar icon. When you build an application with
Syntax errors, µVision2 will display errors and warning messages in the Output
Window – Build page. A double click on a message line opens the source file
On the correct location in a µVision2 editor window.
Once you have successfully generated your application you can start debugging.
53
After you have tested your application, it is required to create an Intel HEX file to download the software into an EPROM programmer or simulator. µVision2 creates HEX files with each build process when Create HEX files under Options for Target – Output is enabled. You may start your PROM programming utility after the make process when you specify the program under the option Run User Program #1.
CPU Simulation:
µVision2 simulates up to 16 Mbytes of memory from which areas can be
Mapped for read, write, or code execution access. The µVision2 simulator traps
And reports illegal memory accesses.
In addition to memory mapping, the simulator also provides support for the
Integrated peripherals of the various 8051 derivatives. The on-chip peripherals
Of the CPU you have selected are configured from the Device.
Database selection:
You have made when you create your project target. Refer to page 58 for more
Information about selecting a device. You may select and display the on-chip peripheral components using the Debug menu. You can also change the aspects of each peripheral using the controls in the dialog boxes.
Start Debugging:
You start the debug mode of µVision2 with the Debug – Start/Stop Debug
Session command. Depending on the Options for Target – Debug
Configuration, µVision2 will load the application program and run the startup
Code µVision2 saves the editor screen layout and restores the screen layout of the last debug session. If the program execution stops, µVision2 opens an
Editor window with the source text or shows CPU instructions in the disassembly window. The next executable statement is marked with a yellow arrow. During debugging, most editor features are still available.
54
Disassembly Window
The Disassembly window shows your target program as mixed source and assembly program or just assembly code. A trace history of previously executed instructions may be displayed with Debug – View Trace Records. To enable the trace history, set Debug – Enable/Disable Trace Recording.
If you select the Disassembly Window as the active window all program step commands work on CPU instruction level rather than program source lines. You can select a text line and set or modify code breakpoints using toolbar buttons or the context menu commands.
You may use the dialog Debug – Inline Assembly… to modify the CPU instructions. That allows you to correct mistakes or to make temporary changes to the target program you are debugging.
5.2 Embedded C:
What is an embedded system?
An embedded system is an application that contains at least one programmable
computer and which is used by individuals who are, in the main, unaware that the system is
computer-based.
Which programming language should you use?
Having decided to use an 8051 processor as the basis of your embedded system, the next
key decision that needs to be made is the choice of programming language. In order to
identify a suitable language for embedded systems, we might begin by making the following
observations:
Computers (such as microcontroller, microprocessor or DSP chips) only accept
instructions in ‘machine code’ (‘object codes’). Machine code is, by definition, in the
language of the computer, rather than that of the programmer. Interpretation of the
code by the programmer is difficult and error prone.
All software, whether in assembly, C, C++, Java or Ada must ultimately be translated
into machine code in order to be executed by the computer.
Embedded processors – like the 8051 – have limited processor power and very limited
memory available: the language used must be efficient.
55
Summary of C language Features:
It is ‘mid-level’, with ‘high-level’ features (such as support for functions and modules), and
‘low-level’ features (such as good access to hardware via pointers).
It is very efficient.
It is popular and well understood.
Even desktop developers who have used only Java or C++ can soon understand C
syntax.
Good, well-proven compilers are available for every embedded processor (8-bit to 32-
bit or more).
Basic C program structure:
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//Basic blank C program that does nothing
// Includes
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#include <reg51.h> // SFR declarations
Void main (void)
{
While (1);
{
Body of the loop // Infinite loop
}
} // match the braces
56
6. SOURCE CODE
1. Click on the Keil u Vision Icon on Desktop
2. The following fig will appear
3. Click on the Project menu from the title bar
4. Then Click on New Project
5. Save the Project by typing suitable project name with no extension in u r own folder sited in either C:\ or D:\
57
6. Then Click on Save button above.
7. Select the component for u r project. i.e. Atmel……
8. Click on the + Symbol beside of Atmel
9. Select AT89C51 as shown below
58
10. Then Click on “OK”
11. The Following fig will appear
12. Then Click either YES or NO………mostly “NO”
13. Now your project is ready to USE
14. Now double click on the Target1, you would get another option “Source group 1”
as shown in next page.
59
15. Click on the file option from menu bar and select “new”
16. The next screen will be as shown in next page, and just maximize it by double
clicking on its blue boarder.
60
17. Now start writing program in either in “C” or “ASM”
18. For a program written in Assembly, then save it with extension “. asm” and for
“C” based program save it with extension “ .C”
19. Now right click on Source group 1 and click on “Add files to Group Source”
20. Now you will get another window, on which by default “C” files will appear.
61
21. Now select as per your file extension given while saving the file
22. Click only one time on option “ADD”
23. Now Press function key F7 to compile. Any error will appear if so happen.
24. If the file contains no error, then press Control+F5 simultaneously.
25. The new window is as follows
62
26. Then Click “OK”
27. Now Click on the Peripherals from menu bar, and check your required port as
shown in fig below
28. Drag the port a side and click in the program file.
63
29. Now keep Pressing function key “F11” slowly and observe.
30. You are running your program successfully
64
CHAPTER 7
7. Conclusion
The project “global alert and control system for ups battery management for corporate automation (gsm)” has been successfully designed and tested.
It has been developed by integrating features of all the hardware components used.
Presence of every module has been reasoned out and placed carefully thus contributing to the best working of the unit. Secondly, using highly advanced IC’s and with the help of growing technology the project has been successfully implemented.
7.1 FUTURE ASPECTS
65
ABBREVATIONS
Symbol Name Symbol Name
ACC Accumulator TL1 Timer/counter 1 low byte
B B register TH2 Timer/counter 2 high byte
PSW Program status word TL2 Timer/counter 2 low byte
SP Stack pointer SCON Serial control
DPTR Data pointer 2 bytes SBUF Serial data buffer
DPL Low byte MAX MAXIM (IC manufacturer )
DPH High byte TTL Transistor to Transistor Logic
P0 Port0 ATM Automatic Teller Machine
P1 Port1 RS 232 Recommended Standard
P2 Port2 AC Alternating Current
P3 Port3 DC Direct Current
IP Interrupt priority control LCD Liquid Crystal Display
IE Interrupt enable control PC Personal Computer
TMOD Timer/counter mode
control
RPS Regulated Power Supply
TCON Timer/counter control RMS Root Mean Square
T2CON Timer/counter 2 control EEPROM Electrically Erasable
Programmable ROM
T2MOD Timer/counter mode2
control
ROM Read Only Memory
TH0 Timer/counter 0high byte RAM Random Access Memory
TL0 Timer/counter 0 low byte BIOS Basic Input Output System
TH1 Timer/counter 1 high byte SRAM Static RAM
TL1 Timer/counter 1 low byte EPROM Erasable Programmable
ROM
DRAM Dynamic Random Access Memory
ISR Interrupt Service Routine
CAD Card Acceptance Device
IFD Interface Device
IDE Integrated Development Environment
Bibliography
The 8051 Micro controller and Embedded Systems
-Muhammad Ali MazidiJanice Gillispie Mazidi
The 8051 Micro controller Architecture, Programming & Applications
-Kenneth J.Ayala
Fundamentals of Micro processors and Micro computers
-B.Ram
Micro processor Architecture, Programming & Applications
-Ramesh S. Gaonkar
Electronic Components
-D.V. Prasad
Wireless Communications- Theodore S. Rappaport
Mobile Tele Communications - William C.Y. Lee
References on the Web:
www.national.comwww.atmel.comwww.microsoftsearch.comwww.geocities.com