You are on page 1of 41

A Project Report

On

EMBEDDED SYSTEMS
AND DTMF BASED
WIRELESS SWITCH

Submitted to: Submitted by:

1
DECLARATION

I hereby declare that the project work on “Embedded Systems” is an authentic record of my
own work carried out at APPIN TECHNOLOGY LAB, NOIDA as requirements of six weeks
project term for the award of degree of B.E. (Electronics & Communication
Engineering),______ under the guidance of Mr. MITHILESH CHANDRA , Project In
Charge___________ during ________

2
ACKNOWLEDGEMENT

First and foremost I would like to thank Mr. MITHILESH CHANDRA, at APPIN
TECHNOLOGY LAB, NOIDA who was also our supervisor, for his consistent guidance on
each and every step of our project. Without his push and direction, this project would have not
been completed. His continuous support and motivation made this project possible.
I’d also like to thank our teachers in ____________ who helped me in understanding the basics
of this course . Without their support I would not have been able to excel in my project.
Lastly, I’d like to thanks all my friends and teammates for believing me in me and my
capabilities.

_____________
_____________

_____________

3
ABOUT COMPANY

Appin Knowledge Solutions is a part of Appin Group of Companies and the premier
provider of hi- technology certification, courseware as well as online, computer based and instructor
led training across the world. Appin is primarily an IIT Alumni company. Appin has come up with the
way of innovative learning concept using Computer Based Training Software (CBTS) in a highly
interactive environment.

Appin School of Niche Technology is an innovative concept of imparting hi-technology training to


customers and young professionals in niche areas including Information Security & Ethical Hacking,
Embedded Systems, Robotics, Application Programming, Nanotechnology, Networking &
Communication and other emerging technologies.

Appin Knowledge Solution is an affiliate of Appin group of companies based in Austin,Texas (US)
known worldwide for education and training in Hi-Technology Certification Programmes. Partners
with organization like Microsoft Corporation , MAHE (Manipal Academy of Higher Education),
Gurukul Online Learning Solutions, IP University and Everon Systems etc. We have conducted
training programs in all big corporate houses of India. At the same time Appin has a strong hold on
colleges all over India, with over 500 colleges taking programs from Appin regularly and more then
1000+ campuses having subscribed some specific service from Appin.

4
TABLE OF CONTENTS

Introduction............................................................................................04

Microprocessor v/s Microcontroller.....................................................05

Embedded Systems.................................................................................05

Types Of Microcontrollers.....................................................................06

8051 Family ............................................................................................

Harvard Architecture.............................................................................

Risc v/s Cisc.............................................................................................

8051 Architecture....................................................................................

Types of Memory....................................................................................

Addressing Modes...................................................................................

Timers......................................................................................................

Interrupts................................................................................................

Serial Port Communication...................................................................

Project Description.................................................................................27

References and Bibliography.................................................................

INTRODUCTION

A digital computer typically consists of three major components: the Central Processing
Unit(CPU), program and data memory, and an Input/Output (I/O) system. The CPU controls
the flow of information among the components of the computer. It also processes the data by
5
performing digital operations. Most of the processing is done in the Arithmetic-Logic Unit
(ALU)within the CPU. When the CPU of a computer is built on a single printed circuit board,
the computer is called a minicomputer. A microprocessor is a CPU that is compacted into a
single-chip semiconductor device. Microprocessors are general-purpose devices, suitable for
many applications. A computer built around a microprocessor is called a microcomputer. The
choice of I/O and memory devices of a microcomputer depends on the specific application. For
example, most personal computers contain a keyboard and monitor as standard input and
output devices.
A microcontroller is an entire computer manufactured on a single chip. Microcontrollers are
usually dedicated devices embedded within an application. For example, microcontrollers are
used as engine controllers in automobiles and as exposure and focus controllers in cameras. In
order to serve these applications, they have a high concentration of on-chip facilities such as
serial ports, parallel input output ports, timers, counters, interrupt control, analog-to-digital
converters, random access memory, read only memory, etc. The I/O, memory, and on-chip
peripherals of a microcontroller are selected depending on the specifics of the target
application. Since microcontrollers are powerful digital processors, the degree of control and
programmability they provide significantly enhances the effectiveness of the application.

MICROCONTROLLER v/s MICROPROCESSOR

Microprocessor and microcontroller are two popular terms in world of computer.


However,microprocessor and microcontroller has different functions and features.
Microprocessors generally require external components or circuits to implement program
6
memory, RAM memory and Input/Output. Intel's 8085, 80386 and Pentium are examples of
microprocessors. Microcontrollers incorporate program memory, RAM memory and
input/output port into one chip. Microchip's PIC series and Atmel's AVR series are examples of
microcontrollers.
One of the main differences is that microcontrollers are usually designed to perform a small set
of specific functions, for example as in the case of a Automatic Braking System which
performs a small set of input processing functions, whereas microprocessors tend to be
designed to perform a wider set of general purpose functions. For example, microcontrollers
are widely used in modern cars where they will each perform a dedicated task, i.e. a
microcontroller to regulate the brakes on all four wheels, or a microcontroller to regulate the
car air conditioning, or a microcontroller for automatic gate systems.
These microcontrollers will perform few other tasks (if any) other than those specified.
Compare to a microprocessor in a PC which performs a wide range of tasks related to the
general requirements of a PC such as performing the necessary calculations for a very wide set
of software applications, performing Input/Output for the main subsystems, peripheral control
and etc.

EMBEDDED SYSTEMS

An embedded system is a computer system designed to perform one or a few dedicated


functions, often with real-time computing constraints. It is embedded as part of a complete
device often including hardware and mechanical parts. In contrast, a general-purpose computer,
7
such as a personal computer, is designed to be flexible and to meet a wide range of an end-
user's needs. Embedded systems control many of the common devices in use today.
Embedded systems are controlled by a main processing core that is typically either a
microcontroller or a digital signal processor (DSP).
Since the embedded system is dedicated to specific tasks, design engineers can optimize it
reducing the size and cost of the product and increasing the reliability and performance. Some
embedded systems are mass-produced, benefiting from economies of scale.
Physically, embedded systems range from portable devices such as digital watches and MP3
players, to large stationary installations like traffic lights, factory controllers, or the systems
controlling nuclear power plants. Complexity varies from low, with a single microcontroller
chip, to very high with multiple units, peripherals and networks mounted inside a large chassis
or enclosure.
In general, "embedded system" is not an exactly defined term, as many systems have some
element of programmability. For example, handheld computers share some elements with
embedded systems such as the operating systems and microprocessors which power them, but
are not truly embedded systems, because they allow different applications to be loaded and
peripherals to be connected.

Variety Of Embedded systems


Embedded systems span all aspects of modern life and there are many examples of their use.
Telecommunications systems employ numerous embedded systems from telephone switches
for the network to mobile phones at the end-user. Computer networking uses dedicated routers
and network bridges to route data.
Consumer electronics include personal digital assistants (PDAs), mp3 players, mobile phones,
videogame consoles, digital cameras, DVD players, GPS receivers, and printers. Many
household appliances, such as microwave ovens, washing machines and dishwashers, are
including embedded systems to provide flexibility, efficiency and features. Advanced HVAC
systems use networked thermostats to more accurately and efficiently control temperature that
can change by time of day and season. Home automation uses wired- and wireless-networking
that can be used to control lights, climate, security, audio/visual, surveillance, etc., all of which
use embedded devices for sensing and controlling.
Transportation systems from flight to automobiles increasingly use embedded systems. New
airplanes contain advanced avionics such as inertial guidance systems and GPS receivers that
also have considerable safety requirements. Various electric motors — brushless DC motors,
induction motors and DC motors — are using electric/electronic motor controllers.
Automobiles, electric vehicles, and hybrid vehicles are increasingly using embedded systems to
maximize efficiency and reduce pollution. Other automotive safety systems include anti-lock
braking system (ABS), Electronic Stability Control (ESC/ESP), traction control (TCS) and
automatic four-wheel drive.
Medical equipment is continuing to advance with more embedded systems for vital signs
monitoring, electronic stethoscopes for amplifying sounds, and various medical imaging (PET,
8
SPECT, CT, MRI) for non-invasive internal inspections.
Embedded systems are designed to do some specific task, rather than be a general-purpose
computer for multiple tasks. Some also have real-time performance constraints that must be
met, for reasons such as safety and usability; others may have low or no performance
requirements, allowing the system hardware to be simplified to reduce costs.

Characteristic
1. Embedded systems are not always standalone devices. Many embedded systems consist
of small, computerized parts within a larger device that serves a more general purpose.
For example, the Gibson Robot Guitar features an embedded system for tuning the
strings, but the overall purpose of the Robot Guitar is, of course, to play music.[5]
Similarly, an embedded system in an automobile provides a specific function as a
subsystem of the car itself.
2. The program instructions written for embedded systems are referred to as firmware, and
are stored in read-only memory or Flash memory chips. They run with limited computer
hardware resources: little memory, small or non-existent keyboard and/or screen.

TYPES OF MICROCONTROLLERS

The predominant family of microcontrollers are 8-bit types since this word size has proved
popular for the vast majority of tasks the devices have been required to perform. The
microcontroller family would have a common instruction subset but family members differ in
9
the amount, and type, of memory, timer facility, port options, etc. possessed, thus producing
cost-effective devices suitable for particular manufacturing requirements.
There are 4 major 8 bit micro controllers. They are Freescale's 6811, Intel's 8051, Zilog's Z8
and PIC 16x from Microchip Technology. Each of these Microcontrollers have a unique set of
instruction set and register set; therefore they are not compatible with each other.

8051 MICROCONTROLLER

The 8051 is the first microcontroller of the MCS-51 family introduced by Intel Corporation at
the end of the 1970s. The 8051 family with its many enhanced members enjoys the largest
market share, estimated to be about 40%, among the various microcontroller architectures. The
architecture of the 8051 family of microcontrollers is referred to as the MCS-51 architecture, or
sometimes simply as MCS-51. The microcontrollers have an 8-bit data bus. They are capable
of addressing 64K of program memory and a separate 64K of data memory. The 8051 has 4K
of code memory implemented as on-chip Read Only Memory (ROM). The 8051 has 128 bytes
of internal Random Access Memory (RAM). It has two timer/counters, a serial port, 4 general
purpose parallel input/output ports, and interrupt control logic with five sources of interrupts.
Besides internal RAM, the 8051 has various Special Function Registers (SFR), which are the
control and data registers for on-chip facilities

COMPARISON OF 8051 FAMILY MEMBERS

Feature 8051 8052 8031


ROM (program space in bytes) 4K 8K 0K

10
RAM (bytes) 128 256 128
Timers 2 3 2
I/O pins 32 32 32
Serial port 1 1 1
Interrupt sources 6 8 6

HARVARD ARCHITECTURE

The Harvard architecture is a computer architecture with physically separate storage and signal
pathways for instructions and data. In a Harvard architecture, there is no need to make the two
memories share characteristics. In particular, the word width, timing, implementation
technology, and memory address structure can differ. In some systems, instructions can be
stored in read-only memory while data memory generally requires read-write memory. In some
systems, there is much more instruction memory than data memory so instruction addresses are
wider than data addresses. The Modified Harvard architecture is very much like the Harvard
architecture but provides a pathway between the instruction memory and the CPU that allows
11
words from the instruction memory to be treated as read-only data. This allows constant data,
particularly text strings, to be accessed without first having to be copied into data memory, thus
preserving more data memory for read/write variables. Special machine language instructions
are provided to read data from the instruction memory. This is by contrast with a Von
Neumann architecture computer, in which both instructions and data are stored in the same
memory system and (without the complexity of a cache) must be accessed in turn.
Microcontrollers (complete computers on a single chip) may use the Modified Harvard
architecture for the reasons it was first developed, which are to improve memory access speeds
with moderate complexity and to allow the instruction and data memory systems to be
implemented independently of each other.

RISC V/S CISC

Complex instruction set computer (CISC, pronounced like "sisk") is a computer instruction
set architecture (ISA) in which each instruction can execute several low-level operations, such
as a load from memory, an arithmetic operation, and a memory store, all in a single instruction.
The term was retroactively coined in contrast to reduced instruction set computer (RISC).
The acronym RISC (pronounced as risk), for reduced instruction set computer, represents a
CPU design strategy emphasizing the insight that simplified instructions that "do less" may still
provide for higher performance if this simplicity can be utilized to make instructions execute
very quickly.
For any given level of general performance, a RISC chip will typically have far fewer
transistors dedicated to the core logic which originally allowed designers to increase the size of
the register set and increase internal parallelism.
Other features, which are typically found in RISC architectures are:
• Uniform instruction format, using a single word with the opcode in the same bit
positions in every instruction, demanding less decoding;
• Identical general purpose registers, allowing any register to be used in any context,
simplifying compiler design (although normally there are separate floating point
registers);
• Simple addressing modes. Complex addressing performed via sequences of arithmetic
and/or load-store operations;
• Few data types in hardware, some CISCs have byte string instructions, or support
complex numbers; this is so far unlikely to be found on a RISC.
Exceptions abound, of course, within both CISC and RISC.
RISC designs are also more likely to feature a Harvard memory model, where the instruction
stream and the data stream are conceptually separated; this means that modifying the memory
where code is held might not have any effect on the instructions executed by the processor
(because the CPU has a separate instruction and data cache), at least until a special
12
synchronization instruction is issued. On the upside, this allows both caches to be accessed
simultaneously, which can often improve performance.

8051 ARCHITECTURE

The Intel 8051 is an 8-bit microcontroller which means that most available operations are
limited to 8 bits.
Some of the features that have made the 8051 popular are:
• 8-bit data bus
• 16-bit address bus
• 32 general purpose registers each of 8 bits
• 16 bit timers (usually 2, but may have more, or less).
• 3 internal and 2 external interrupts.
• Bit as well as byte addressable RAM area of 16 bytes.
• Four 8-bit ports, (short models have two 8-bit ports).
• 16-bit program counter and data pointer

PIN DESCRIPTION OF 8051


PIN 9: PIN 9 is the reset pin which is used reset the microcontroller’s internal registers and
ports upon starting up.2 machine cycle should be high at this pin.
PINS 18 & 19: The 8051 has a built-in oscillator amplifier hence we need to only connect a
crystal at these pins to provide clock pulses to the circuit.
PIN 40 and 20: Pins 40 and 20 are VCC and ground respectively. The 8051 chip needs +5V
500mA to function properly.
PINS 29, 30 & 31: As described in the features of the 8051, this chip contains a built-in flash
memory. In order to program this we need to supply a voltage of +12V at pin 31. If external
memory is connected then PIN 31, also called EA/VPP, should be connected to ground to
indicate the presence of external memory. PIN 30 is called ALE (address latch enable), which
is used when multiple memory chips are connected to the controller and only one of them
needs to be selected. PIN 29 is called PSEN. This is "program select enable". In order to use
the external memory it is required to provide the low voltage (0) on both PSEN and EA pins.

Ports
There are 4 8-bit ports: P0, P1, P2 and P3.
PORT P1 (Pins 1 to 8): The port P1 is a general purpose input/output port which can be used
for a variety of interfacing tasks. The other ports P0, P2 and P3 have dual roles or additional
functions associated with them based upon the context of their usage.
PORT P3 (Pins 10 to 17): PORT P3 acts as a normal IO port, but Port P3 has additional
functions such as, serial transmit and receive pins, 2 external interrupt pins, 2 external counter
13
inputs, read and write pins for memory access.
PORT P2 (pins 21 to 28): PORT P2 can also be used as a general purpose 8 bit port when no
external memory is present, but if external memory access is required then PORT P2 will act as
an address bus in conjunction with PORT P0 to access external memory. PORT P2 acts as A8-
A15, as can be seen from fig
PORT P0 (pins 32 to 39) PORT P0 can be used as a general purpose 8 bit port when no
external memory is present, but if external memory access is required then PORT P0 acts as a
multiplexed address and data bus that can be used to access external memory in conjunction
with PORT P2. P0 acts as AD0-AD7, as can be seen from fig

REGISTERS

The Accumulator
The Accumulator, as its name suggests, is used as a general register to accumulate the results of
a large number of instructions. It can hold an 8-bit (1-byte) value and is the most versatile
register the 8051 has due to the shear number of instructions that make use of the accumulator.
More than half of the 8051s 255 instructions manipulate or use the accumulator in some way.
The "R" registers
14
The "R" registers are a set of eight registers that are named R0, R1, etc. up to and including
R7.These registers are used as auxillary registers in many operations.
The "B" Register
The "B" register is very similar to the Accumulator in the sense that it may hold an 8-bit (1-
byte) value.The "B" register is only used by two 8051 instructions: MUL AB and DIV AB.
Thus, if you want to quickly and easily multiply or divide A by another number, you may store
the other number in "B" and make use of these two instructions.Aside from the MUL and DIV
instructions, the "B" register is often used as yet another temporary storage register much like a
ninth "R" register.
The Data Pointer (DPTR)
The Data Pointer (DPTR) is the 8051s only user-accessable 16-bit (2-byte) register. The
Accumulator, "R" registers, and "B" register are all 1-byte values.
DPTR, as the name suggests, is used to point to data. It is used by a number of commands
which allow the 8051 to access external memory. When the 8051 accesses external memory it
will access external memory at the address indicated by DPTR.
The Program Counter (PC)
The Program Counter (PC) is a 2-byte address which tells the 8051 where the next instruction
to execute is found in memory. When the 8051 is initialized PC always starts at 0000h and is
incremented each time an instruction is executed. It is important to note that PC isnt always
incremented by one. Since some instructions require 2 or 3 bytes the PC will be incremented by
2 or 3 in these cases.The Program Counter is special in that there is no way to directly modify
its value.
The Stack Pointer (SP)
The Stack Pointer, like all registers except DPTR and PC, may hold an 8-bit (1-byte) value.
The Stack Pointer is used to indicate where the next value to be removed from the stack should
be taken from.
A
When you push a value onto the stack, the 8051 first increments the value of SP and then stores
B memory location.When you pop a value off the stack, the 8051 returns
the value at the resulting
the value from the memory
R0 location indicated by SP, and then decrements the value of SP.
DPTR DPH DPL
This order of operation
R1 is important. When the 8051 is initialized SP will be initialized to 07h.
If you immediately push a value onto the stack, the value will be stored in Internal RAM
R2 sense taking
address 08h. This makes PC into account what was
PC mentioned two paragraphs above:
First the 8051 will increment the value of SP (from 07h to 08h) and then will store the pushed
R3
value at that memory address (08h).
R4 Some 8051 16-bit Register
R5
R6
R7
15
Some 8-bitt Registers of
the 8051
SPECIAL FUNCTION REGISTER

The Special Function Register (SFR) is the upper area of addressable memory, from address
0x80 to 0xFF. This area of memory cannot be used for data or program storage, but is instead a
series of memory-mapped ports and registers. All port input and output can therefore be
performed by memory mov operations on specified addresses in the SFR. Also, different status
registers are mapped into the SFR, for use in checking the status of the 8051, and changing
some operational parameters of the 8051.
The 4 ports, register A,B, and stack pointer SP have already been explained above. The rest of
the SFR are explained below.

DPL/DPH (Data Pointer Low/High, Addresses 82h/83h):


The SFRs DPL and DPH work together to represent a 16-bit value called the Data Pointer. The
data pointer is used in operations regarding external RAM and some instructions involving
code memory. Since it is an unsigned two-byte integer value, it can represent values from
0000h to FFFFh (0 through 65,535 decimal).

16
PCON (Power Control, Addresses 87h):
The Power Control SFR is used to control the 8051's power control modes. Certain operation
modes of the 8051 allow the 8051 to go into a type of "sleep" mode which requires much less
power. These modes of operation are controlled through PCON. Additionally, one of the bits in
PCON is used to double the effective baud rate of the 8051's serial port.

TCON (Timer Control, Addresses 88h, Bit-Addressable):


The Timer Control SFR is used to configure and modify the way in which the 8051's two
timers operate. This SFR controls whether each of the two timers is running or stopped and
contains a flag to indicate that each timer has overflowed. Additionally, some non-timer related
bits are located in the TCON SFR. These bits are used to configure the way in which the
external interrupts are activated and also contain the external interrupt flags which are set when
an external interrupt has occured.

TMOD (Timer Mode, Addresses 89h):


17
The Timer Mode SFR is used to configure the mode of operation of each of the two timers.
Using this SFR your program may configure each timer to be a 16-bit timer, an 8-bit autoreload
timer, a 13-bit timer, or two separate timers. Additionally, you may configure the timers to only
count when an external pin is activated or to count "events" that are indicated on an external
pin.

TL0/TH0 (Timer 0 Low/High, Addresses 8Ah/8Ch): These two SFRs, taken together, represent
timer 0. Their exact behavior depends on how the timer is configured in the TMOD SFR;
however, these timers always count up. What is configurable is how and when they increment
in value.
TL1/TH1 (Timer 1 Low/High, Addresses 8Bh/8Dh): These two SFRs, taken together, represent
timer 1. Their exact behavior depends on how the timer is configured in the TMOD SFR;
however, these timers always count up. What is configurable is how and when they increment
in value.
SCON (Serial Control, Addresses 98h, Bit-Addressable):

The Serial Control SFR is used to configure the behavior of the 8051's on-board serial port.
This SFR controls the baud rate of the serial port, whether the serial port is activated to receive
data, and also contains flags that are set when a byte is successfully sent or received..

SBUF (Serial Control, Addresses 99h):


The Serial Buffer SFR is used to send and receive data via the on-board serial port. Any value
written to SBUF will be sent out the serial port's TXD pin. Likewise, any value which the 8051
receives via the serial port's RXD pin will be delivered to the user program via SBUF. In other
words, SBUF serves as the output port when written to and as an input port when read from.
IE (Interrupt Enable, Addresses A8h):

18
The Interrupt Enable SFR is used to enable and disable specific interrupts. The low 7 bits of the
SFR are used to enable/disable the specific interrupts, where as the highest bit is used to enable
or disable ALL interrupts. Thus, if the high bit of IE is 0 all interrupts are disabled regardless of
whether an individual interrupt is enabled by setting a lower bit.

IP (Interrupt Priority, Addresses B8h, Bit-Addressable):


The Interrupt Priority SFR is used to specify the relative priority of each interrupt. On the 8051,
an interrupt may either be of low (0) priority or high (1) priority. An interrupt may only
interrupt interrupts of lower priority. For example, if we configure the 8051 so that all
interrupts are of low priority except the serial interrupt, the serial interrupt will always be able
to interrupt the system, even if another interrupt is currently executing. However, if a serial
interrupt is executing no other interrupt will be able to interrupt the serial interrupt routine since
the serial interrupt routine has the highest priority.

PSW (Program Status Word, Addresses D0h, Bit-Addressable):


The Program Status Word is used to store a number of important bits that are set and cleared by
8051 instructions. The PSW SFR contains the carry flag, the auxiliary carry flag, the overflow
flag, and the parity flag. Additionally, the PSW register contains the register bank select flags
which are used to select which of the "R" register banks are currently selected.

19
TYPES OF MEMORY

The 8051 has three very general types of memory. To effectively program the 8051 it is
necessary to have a basic understanding of these memory types.
The memory types are illustrated in the following graphic. They are: On-Chip Memory,
External Code Memory, and External RAM.

On-Chip Memory refers to any memory (Code, RAM, or other) that physically exists on the
microcontroller itself. On-chip memory can be of several types, but we'll get into that shortly.

External Code Memory is code (or program) memory that resides off-chip. This is often in
the form of an external EPROM.

External RAM is RAM memory that resides off-chip. This is often in the form of standard
static RAM or flash RAM.

ADDRESSING MODES
20
An "addressing mode" refers to how you are addressing a given memory location. In summary,
the addressing modes are as follows, with an example of each:

Immediate addressing
Immediate addressing is so-named because the value to be stored in memory immediately
follows the operation code in memory. That is to say, the instruction itself dictates what value
will be stored in memory.
For example, the instruction:
MOV A,#20h
This instruction uses Immediate Addressing because the Accumulator will be loaded with the
value that immediately follows; in this case 20 (hexidecimal).Immediate addressing is very fast
since the value to be loaded is included in the instruction. However, since the value to be
loaded is fixed at compile-time it is not very flexible.

Direct Addressing
Direct addressing is so-named because the value to be stored in memory is obtained by directly
retrieving it from another memory location. For example:
MOV A,30h
This instruction will read the data out of Internal RAM address 30 (hexidecimal) and store it in
the Accumulator.
Direct addressing is generally fast since, although the value to be loaded isnt included in the
instruction, it is quickly accessable since it is stored in the 8051s Internal RAM. It is also much
more flexible than Immediate Addressing since the value to be loaded is whatever is found at
the given address--which may be variable.
Also, it is important to note that when using direct addressing any instruction which refers to an
address between 00h and 7Fh is referring to Internal Memory. Any instruction which refers to
an address between 80h and FFh is referring to the SFR control registers that control the 8051
microcontroller itself.

Register addressing
The register banks, containing registers R0 through R7, can be accessed by certain instructions
which carry a 3-bit register specification within the opcode of the instruction. Instructions that
access the registers this way are code efficient, since this mode eliminates an address byte.
When the instruction is executed, one of the eight registers in the selected bank is accessed.
One of four banks is selected at execution time by the two bank select bits in the PSW.

21
Register indirect addressing
Indirect addressing is a very powerful addressing mode which in many cases provides an
exceptional level of flexibility. Indirect addressing is also the only way to access the extra 128
bytes of Internal RAM found on an 8052.
Indirect addressing appears as follows:
MOV A,@R0
This instruction causes the 8051 to analyze the value of the R0 register. The 8051 will then
load the accumulator with the value from Internal RAM which is found at the address indicated
by R0.

Indexed addressing
Used in accessing data elements of look up table entries located in the program ROM space of
8051
eg. MOVC A@A+DPTR

TIMERS
The 8051 comes equipped with two timers, both of which may be controlled, set, read, and
configured individually. The 8051 timers have three general functions: 1) Keeping time and/or
calculating the amount of time between events, 2) Counting the events themselves, or 3)
Generating baud rates for the serial port.
As mentioned before, the 8051 has two timers which each function essentially the same way.
One timer is TIMER0 and the other is TIMER1. The two timers share two SFRs (TMOD and
TCON) which control the timers, and each timer also has two SFRs dedicated solely to itself
(TH0/TL0 and TH1/TL1).

13-bit Time Mode (mode 0)


Timer mode "0" is a 13-bit timer. This is a relic that was kept around in the 8051 to maintain
22
compatability with its predecesor, the 8048. Generally the 13-bit timer mode is not used in new
development.When the timer is in 13-bit mode, TLx will count from 0 to 31. When TLx is
incremented from 31, it will "reset" to 0 and increment THx. Thus, effectively, only 13 bits of
the two timer bytes are being used: bits 0-4 of TLx and bits 0-7 of THx. This also means, in
essence, the timer can only contain 8192 values. If you set a 13-bit timer to 0, it will overflow
back to zero 8192 machine cycles later.
16-bit Time Mode (mode 1)
Timer mode "1" is a 16-bit timer. This is a very commonly used mode. It functions just like 13-
bit mode except that all 16 bits are used.
TLx is incremented from 0 to 255. When TLx is incremented from 255, it resets to 0 and
causes THx to be incremented by 1. Since this is a full 16-bit timer, the timer may contain up to
65536 distinct values. If you set a 16-bit timer to 0, it will overflow back to 0 after 65,536
machine cycles.
8-bit Time Mode (mode 2)
Timer mode "2" is an 8-bit auto-reload mode. What is that, you may ask? Simple. When a
timer is in mode 2, THx holds the "reload value" and TLx is the timer itself. Thus, TLx starts
counting up. When TLx reaches 255 and is subsequently incremented, instead of resetting to 0
(as in the case of modes 0 and 1), it will be reset to the value stored in THx.
For example, lets say TH0 holds the value FDh and TL0 holds the value FEh. If we were to
watch the values of TH0 and TL0 for a few machine cycles this is what wed see:As you can
see, the value of TH0 never changed. In fact, when you use mode 2 you almost always set THx
to a known value and TLx is the SFR that is constantly incremented.
Split Timer Mode (mode 3)
Timer mode "3" is a split-timer mode. When Timer 0 is placed in mode 3, it essentially
becomes two separate 8-bit timers. That is to say, Timer 0 is TL0 and Timer 1 is TH0. Both
timers count from 0 to 255 and overflow back to 0. All the bits that are related to Timer 1 will
now be tied to TH0.
While Timer 0 is in split mode, the real Timer 1 (i.e. TH1 and TL1) can be put into modes 0, 1
or 2 normally--however, you may not start or stop the real timer 1 since the bits that do that are
now linked to TH0. The real timer 1, in this case, will be incremented every machine cycle no
matter what.

INTERRUPTS
As the name implies, an interrupt is some event which interrupts normal program execution.
As stated earlier, program flow is always sequential, being altered only by those instructions
which expressly cause program flow to deviate in some way. However, interrupts give us a
mechanism to "put on hold" the normal program flow, execute a subroutine, and then resume
normal program flow as if we had never left it. This subroutine, called an interrupt handler, is
23
only executed when a certain event (interrupt) occurs. The event may be one of the timers
"overflowing," receiving a character via the serial port, transmitting a character via the serial
port, or one of two "external events." The 8051 may be configured so that when any of these
events occur the main program is temporarily suspended and control passed to a special section
of code which presumably would execute some function related to the event that occured. Once
complete, control would be returned to the original program. The main program never even
knows it was interrupted.
The ability to interrupt normal program execution when certain events occur makes it much
easier and much more efficient to handle certain conditions. If it were not for interrupts we
would have to manually check in our main program whether the timers had overflown, whether
we had received another character via the serial port, or if some external event had occured.
Besides making the main program ugly and hard to read, such a situation would make our
program inefficient since wed be burning precious "instruction cycles" checking for events that
usually dont happen.
We can configure the 8051 so that any of the following events will cause an interrupt:
• Timer 0 Overflow.
• Timer 1 Overflow.
• Reception/Transmission of Serial Character.
• External Event 0.
• External Event 1.
In other words, we can configure the 8051 so that when Timer 0 Overflows or when a character
is sent/received, the appropriate interrupt handler routines are called.
Polling Sequence
The 8051 automatically evaluates whether an interrupt should occur after every instruction.
When checking for interrupt conditions, it checks them in the following order:
• External 0 Interrupt
• Timer 0 Interrupt
• External 1 Interrupt
• Timer 1 Interrupt
• Serial Interrupt
This means that if a Serial Interrupt occurs at the exact same instant that an External 0 Interrupt
occurs, the External 0 Interrupt will be executed first and the Serial Interrupt will be executed
once the External 0 Interrupt has completed.

SERIAL PORT COMMUNICATION


24
One of the 8051s many powerful features is its integrated UART, otherwise known as a serial
port. The fact that the 8051 has an integrated serial port means that you may very easily read
and write values to the serial port. If it were not for the integrated serial port, writing a byte to a
serial line would be a rather tedious process requring turning on and off one of the I/O lines in
rapid succession to properly "clock out" each individual bit, including start bits, stop bits, and
parity bits.
However, we do not have to do this. Instead, we simply need to configure the serial ports
operation mode and baud rate. Once configured, all we have to do is write to an SFR to write a
value to the serial port or read the same SFR to read a value from the serial port. The 8051 will
automatically let us know when it has finished sending the character we wrote and will also let
us know whenever it has received a byte so that we can process it. We do not have to worry
about transmission at the bit level--which saves us quite a bit of coding and processing time
The first thing we must do when using the 8051s integrated serial port is, obviously, configure
it. This lets us tell the 8051 how many data bits we want, the baud rate we will be using, and
how the baud rate will be determined.
First, lets present the "Serial Control" (SCON) SFR and define what each bit of the SFR
represents:

PROJECT DESCRIPTION
25
PROJECT – 1
DTMF BASED WIRELESS SWITCH

INTRODUCTION
I have attempted to make a DTMF BASED WIRELESS SWITCH. It is a basically a wireless
SWITCH which will be control with the help of signals given through a cellphone. A cellphone
will be attached to the device with its earphones plugged into the dtmf circuit. When a person
will call on that cellphone ,he can operate the device by pressing keys on his own cellphone.
Each key will execute different command like ON/OFF etc. Thus a wireless switch which
requires very little investment and is reliable can be made with the help of DTMF circuit.

PROJECT METHODOLOGY
Components:
1. Microcontroller Section: At89V51 with base
Crystal oscillator(11.0592 Mhz)
Capacitor(30 pf)
Capacitor(10 uF)
Resistor(8.2 K)
2. DTMF Section :MT8870 with base
Crystal oscillator(3.5 Mhz)
2 resistors (100K)
Capacitor(100nf)
3. Relay driver(ULN 2003)
4. Voltage regulators(LM7805)
5. Relays
6. Socket board
7. Voltage supply (DC battery of 6 v)

Softwares used:
1. Keil compiler

Equipments Used:

26
Soldering iron, flux,wire

Circuit Diagram

DTMF Section

27
Procedure of building the Wireless Robot

STEP 1:Circuit Diagram of the project is designed and finalized (given above)
STEP 2: All the components and software platform (also mentioned above) are selected.
STEP 3: All the hardware components are soldered on the general circuit board.
STEP 4: The program/code of the project is written in Assembly language and compiled using
keil compiler
STEP 5: The hex code of the program is burnt into the flash code memory of the
microcontroller
STEP 6: Testing is done at various levels to finalize the project

Snapshot Of microcontroller and IC section

28
GENERAL INFORMATION :

29
DTMF Decoder
Dual-tone multi-frequency (DTMF) signaling is used for telecommunication signaling over
analog telephone lines in the voice-frequency band between telephone handsets and other
communications devices and the switching center. DTMF, also known as touch-tone, are the
audible sounds you hear when you press keys on your phone. It was designed for optimal
performance with each tone being very distinct. This makes decoding the tone very easy even
in surrounding noise. It is this performance that makes DTMF ideal for clear transmission and
reception in remote control (wireless or through phone lines) applications.

30
Snapshot of DTMF circuit

Relay driver
ULN2003 LINEAR INTEGRATED CIRCUIT
31
HIGH VOLTAGE AND HIGH CURRENT
DARLINGTON TRANSISTOR ARRAY

DESCRIPTION
The ULN2003 is a monolithic high voltage and high
current
Darlington transistor arrays. It consists of seven NPN
darlington
pairs that features high-voltage outputs with common-
cathode
clamp diode for switching inductive loads. The
collector-current
rating of a single darlington pair is 500mA. The
darlington pairs
may be parrlleled for higher current capability.
Applications include
relay drivers,hammer drivers, lampdrivers,display
drivers(LED gas
discharge),line drivers, and logic buffers.
The ULN2003 has a 2.7kW series base resistor for
each
darlington pair for operation directly with TTL or 5V
CMOS
devices.

FEATURES
* 500mA rated collector current(Single output)
* High-voltage outputs: 50V
* Inputs compatibale with various types of logic.
* Relay driver application
32
RELAYS

What is a relay?
We know that most of the high end industrial application devices have relays for their effective
working. Relays are simple switches which are operated both electrically and mechanically. Relays
consist of a n electromagnet and also a set of contacts. The switching mechanism is carried out with the
help of the electromagnet. There are also other operating principles for its working. But they differ
according to their applications. Most of the devices have the application of relays.

Why is a relay used?


The main operation of a relay comes in places where only a low-power signal can be used to control a
circuit. It is also used in places where only one signal can be used to control a lot of circuits. The
application of relays started during the invention of telephones. They played an important role in
switching calls in telephone exchanges. They were also used in long distance telegraphy. They were
used to switch the signal coming from one source to another destination. After the invention of
computers they were also used to perform Boolean and other logical operations. The high end
applications of relays require high power to be driven by electric motors and so on. Such relays are
called contactors.

33
TAKE A LOOK : TYPES OF RELAYS
TAKE A LOOK : HOW TO TEST A RELAY

Relay Design
There are only four main parts in a relay. They are
• Electromagnet
• Movable Armature
• Switch point contacts
• Spring
The figures given below show the actual design of a simple relay.

Relay Construction
It is an electro-magnetic relay with a wire coil, surrounded by an iron core. A path of very low
reluctance for the magnetic flux is provided for the movable armature and also the switch point
contacts. The movable armature is connected to the yoke which is mechanically connected to the

34
switch point contacts. These parts are safely held with the help of a spring. The spring is used so as to
produce an air gap in the circuit when the relay becomes de-energized.

How relay works?


The working of a relay can be better understood by explaining the following diagram given below.

Relay Design
The diagram shows an inner section diagram of a relay. An iron core is surrounded by a control coil.
As shown, the power source is given to the electromagnet through a control switch and through
contacts to the load. When current starts flowing through the control coil, the electromagnet starts
energizing and thus intensifies the magnetic field. Thus the upper contact arm starts to be attracted to
the lower fixed arm and thus closes the contacts causing a short circuit for the power to the load. On the
other hand, if the relay was already de-energized when the contacts were closed, then the contact move
oppositely and make an open circuit.
As soon as the coil current is off, the movable armature will be returned by a force back to its initial
position. This force will be almost equal to half the strength of the magnetic force. This force is mainly
provided by two factors. They are the spring and also gravity.
Relays are mainly made for two basic operations. One is low voltage application and the other is high
voltage. For low voltage applications, more preference will be given to reduce the noise of the whole
circuit. For high voltage applications, they are mainly designed to reduce a phenomenon called arcing.

Relay Basics
The basics for all the relays are the same. Take a look at a 4 – pin relay shown below. There are two
colours shown. The green colour represents the control circuit and the red colour represents the load
circuit. A small control coil is connected onto the control circuit. A switch is connected to the load.
35
This switch is controlled by the coil in the control circuit. Now let us take the different steps that
occour in a relay.

relay operation
• Energized Relay (ON)
As shown in the circuit, the current flowing through the coils represented by pins 1 and 3 causes a
magnetic field to be aroused. This magnetic field causes the closing of the pins 2 and 4. Thus the
switch plays an important role in the relay working. As it is a part of the load circuit, it is used to
control an electrical circuit that is connected to it. Thus, when the relay in energized the current flow
will be through the pins 2 and 4.

Energized Relay (ON)

36
• De – Energized Relay (OFF)
As soon as the current flow stops through pins 1 and 3, the switch opens and thus the open circuit
prevents the current flow through pins 2 and 4. Thus the relay becomes de-energized and thus in off
position.

De-Energized Relay (OFF)


In simple, when a voltage is applied to pin 1, the electromagnet activates, causing a magnetic field to
be developed, which goes on to close the pins 2 and 4 causing a closed circuit. When there is no
voltage on pin 1, there will be no electromagnetic force and thus no magnetic field. Thus the
switches remain open.

Pole and Throw


Relays have the exact working of a switch. So, the same concept is also applied. A relay is said to
switch one or more poles. Each pole has contacts that can be thrown in mainly three ways. They are
• Normally Open Contact (NO) – NO contact is also called a make contact. It closes the circuit
when the relay is activated. It disconnects the circuit when the relay is inactive.
• Normally Closed Contact (NC) – NC contact is also known as break contact. This is opposite
to the NO contact. When the relay is activated, the circuit disconnects. When the relay is
deactivated, the circuit connects.
• Change-over (CO) / Double-throw (DT) Contacts – This type of contacts are used to control
two types of circuits. They are used to control a NO contact and also a NC contact with a
common terminal. According to their type they are called by the names break before make and
make before break contacts.
Relays are also named with designations like

37
• Single Pole Single Throw (SPST) – This type of relay has a total of four terminals. Out of
these two terminals can be connected or disconnected. The other two terminals are needed for
the coil.
• Single Pole Double Throw (SPDT) – This type of a relay has a total of five terminals. Out f
these two are the coil terminals. A common terminal is also included which connects to either
of two others.
• Double Pole Single Throw (DPST) – This relay has a total of six terminals. These terminals
are further divided into two pairs. Thus they can act as two SPST’s which are actuated by a
single coil. Out of the six terminals two of them are coil terminals.
• Double Pole Double Throw (DPDT) – This is the biggest of all. It has mainly eight relay
terminals. Out of these two rows are designed to be change over terminals. They are designed to
act as two SPDT relays which are actuated by a single coil.

Relay Applications
• Relays are used to realize logic functions. They play a very important role in providing safety
critical logic.
• Relays are used to provide time delay functions. They are used to time the delay open and delay
close of contacts.
• Relays are used to control high voltage circuits with the help of low voltage signals. Similarly
they are used to control high current circuits with the help of low current signals.
• They are also used as protective relays. By this function all the faults during transmission and
reception can be detected and isolated.

Read more: http://www.circuitstoday.com/working-of-relays#ixzz12nf8mpLL


Under Creative Commons License: Attribution

POWER SUPPLY (220v A.C to 12v D.C)


CIRCUIT DIAGRAM

38
Snap shots

VOLTAGE REGULATOR
Features
• Output Current up to 1A
• Output Voltages of 5, 6, 8, 9, 10, 12, 15, 18, 24V
• Thermal Overload Protection
• Short Circuit Protection
• Output Transistor Safe Operating Area Protection
Description
The KA78XX/KA78XXA series of three-terminal positive
regulator are available in the TO-220/D-PAK package and
with several fixed output voltages, making them useful in a
wide range of applications. Each type employs internal
current limiting, thermal shut down and safe operating area
protection, making it essentially indestructible. If adequate
heat sinking is provided, they can deliver over 1A output
current. Although designed primarily as fixed voltage
regulators, these devices can be used with external
components to obtain adjustable voltages and currents.

39
Sockets

To connect various devices

CODE - FOR ABOVE CIRCUIT

Condition: Make P1.0 high if Key 1 is pressed otherwise terminate session directly.

ASSEMBLY LANGUAGE

mov p0 ,#0ffh ; To configure P0 for input


setb p2.6 ; To configure P2.6 (RING DETECT) for input.

AGAIN
jnb p2.6 , AGAIN ; Poll for ring detect signal
setb 2.7 ; Activate relay to lift receiver
setb p0.3

POLL
jnb p0.3 POLL ;Poll for high strobe
mov a,p0 ;Read P0
anl a,#0f0h ;To get code (Q1-Q4 ) for Received tone- pair in ACC.
xrl a,#01h
jnz TERMINATE ;If 0 is not received TERMINATE Session
setb p1.0 ;make P1.0 High if 1 is received

TERMINATE
clr 2.7 ;Deactivate relay

40
REFERENCES AND BIBLIOGRAPHY

1. “THE 8051 MICROCONTROLLER AND EMBEDDED SYSTEM” by Muhammad Ali


Mazidi, Janice Ali Mazidi, Rolin D. Mckinley
2. “THE 8051 MICROCONTROLLER” by K.J AYALA
3. www.wikipedia.org

41

You might also like