SlideShare a Scribd company logo
1 of 74
1. INTRODUCTION TO EMBEDDED SYSTEMS
An embedded system is a special-purpose system in which the computer is completely encapsulated
by the device it controls. Unlike a general-purpose computer, such as a personal computer, an
embedded system performs pre-defined tasks, usually with very specific requirements. Since the
system is dedicated to a specific task, design engineers can optimize it, reducing the size and cost of
the product. Embedded systems are often mass-produced, so the cost savings may be multiplied by
millions of items.
Physically, embedded systems range from portable devices such as digital watches and MP3 players,
to large stationary installations like traffic lights, factory controllers. 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.
Embedded systems contain processing cores that are either microcontrollers or digital signal
processors (DSP). The key characteristic, however, is being dedicated to handle a particular task.
Since the embedded system is dedicated to specific tasks, design engineers can optimize it to reduce
the size and cost of the product and increase the reliability and performance. Some embedded systems
are mass-produced, benefiting from economies of scale.
Robotics and automation are a part of embedded systems itself. Robot development and automation
needs study of embedded systems.

Examples of Embedded System:I.
II.

automatic teller machines (ATMs)
avionics, such as inertial guidance systems, flight control hardware/software and other
integrated systems in aircraft and missiles

III.

cellular telephones and telephone switches

IV.

computer equipment such as routers and printers

V.
VI.

engine controllers and antilock brake controllers for automobiles
home automation products, like thermostats, air conditioners, sprinklers, and security
monitoring systems

VII.
VIII.

handheld calculators
household appliances, including microwave ovens, washing machines, television sets

IX.

medical equipment

X.

handheld computers

XI.

videogame consoles
[1]
2.SOFTWARE DEVELOPEMENT
2.1 ECLIPSE
2.1.1 INTRODUCTION
Developing programs using a text editor such as TextPad is simple and straightforward.While such
editors allow students to begin programming with a minimum of distractions, asprograms become
larger and more complicated, a more sophisticated tool for developingprograms is quite valuable. In
this chapter, we examine one particular tool for developinglarge programs, the Eclipse system. Eclipse
can be used to develop programs in Java and inC/C++ (plus various other languages as well). In this
chapter, we examine how to install Eclipse.
2.2 INTERACTIVE DEVELOPMENT ENVIRONMENTS
Interactive development environments (IDE) provide a wealth of features to support the programmer
that are not available in a simple editor. There are many IDE’s currently available, some are shareware
and some must be purchased and are often expensive. Most IDE’s provide similar facilities, such as
the ability to view different classes at the same time, debuggers that step through a program line-byline in order to assist in locating errors, etc. One of the newest and most popular IDE’s is the Eclipse
IDE which is available at no cost from the Eclipse website (http://www.eclipse.org/).
2.3 THE ECLIPSE IDE
Eclipse is an IDE (actually it is more than an IDE but we will concentrate on Eclipse as an IDE) that
was initially controlled by IBM but then IBM released the source code for Eclipse, making the project
open source. Eclipse development is taking place in several cities, including Winnipeg, Ottawa, and
Zurich, although there is also a large community of programmers who provide extensions to Eclipse in
order to improve the Eclipse environment. The facilities in Eclipse can be extended by defining “plugins” which provide additional features or support additional languages.. Eclipse runs on most
operating systems, including Unix, Linux, Windows, and Mac OS X.

[2]
2. 4 TINA PRO :THE COMPLETE ELECTRONICS LAB FOR WINDOWS
INTRODUCTION:-TINA is a powerful yet affordable software package for designing,
simulating and analyzing electronic circuits. It works equally well with linear and nonlinear analog
circuits, digital and mixed circuits. Analysis results can be displayed as sophisticated diagrams or on a
range of virtual instruments. Comprehensive DTP tools and powerful text and equation editors can be
used to produce professional reports and presentations. The standard library contains over 20000
components and can be extended by the user. Electronics engineers will find TINA an invaluable, easy
to use and high performance
tool. TINA can also be used in the training environment. It includes unique tools for testing students’
knowledge, monitoring progress and introducing troubleshooting techniques. With optional hardware
it can be used to test real circuits for comparison with the results obtained from simulation. Of great
importance to educators, the package includes all the tools needed to prepare
educational materials. The circuit diagrams and the calculated or measured results can be printed or
saved to files in standard Windows WMF format. These output files can be processed by a number of
well known software packages (Microsoft Word, Corel Draw etc.). Net lists can be exported and
imported in Pspice format and also to drive popular PCB packages such as ORCAD, TANGO, PCAD,
PROTEL, REDAC and EDS.
TINA has special operating modes for training and for examination. In these modes, under TINA’S
control, the students solve problems assigned by the teacher. The solution format depends on the types
of problems: they can be selected from a list, calculated numerically, or given in symbolic form. The
interpreter - providing a number of solution tools - can also be used for problem solving. If the student
cannot solve the problem, he/she can turn to the multi-level Advisor. The package includes all the
tools needed to produce educational materials. A collection of examples and problems worked out by
teachers is also part of the package. Another special educational function of TINA is the software or
hardware simulation of circuit faults to practice troubleshooting. Using TINA, you can transform
existing PC classrooms into contemporary electronics training labs at low cost.

[3]
THE BASIC SCREEN FORMAT:-

1. The menu bar
2. The cursor or pointer
3. The Schematic window
4. The Tool bar
5.
6.
7.
8.
9.

The Component bar
Find component tool
Open files tab
The TINA Task bar
The Help line

3.PCB DESIGNING
3.1 INTRODUCTION:-

[4]
PCB Stands for "Printed Circuit Board." A PCB is a thin board made of fiberglass, composite epoxy,
or other laminate material. Conductive pathways are etched or "printed" onto board, connecting
different components on the PCB, such as transistors, resistors, and integrated circuits.
PCBs are used in both desktop and laptop computers. They serve as the foundation for many internal
computer components, such as video cards, controller cards, network interface cards, and expansion
cards. These components all connect to the motherboard, which is also a printed circuit board.
While PCBs are often associated with computers, they are used in many other electronic devices
besides PCs. Most TVs, radios, digital cameras, cell phones, and tablets include one or more printed
circuit boards. While the PCBs found in mobile devices look similar to those found in desktop
computers and large electronics, they are typically thinner and contain finer circuitry.
HISTORY :
The inventor of the printed circuit was the Austrian engineer Paul Eisler (1907–1995) who,
while working in

England,

made

one

circa

1936

as

part

of

a

radio

set.

MATERIAL:
Conducting layers are typically made of thin copper foil. Insulating layers dielectric are
typically laminated together with epoxy resin prepreg. The board is typically coated with a solder
mask that is green in color. Other colors that are normally available are blue and red. There are
quite a few different dielectrics that can be chosen to provide different insulating values depending
on the requirements of the circuit. Some of these dielectrics are polytetrafluoroethylene (Teflon),
FR-4, FR-1, CEM-1 or CEM-3. Well known prepreg materials used in the PCB industry are FR-2
(Phenolic cotton paper), FR-3 (Cotton paper and epoxy), FR-4 (Woven glass and epoxy), FR-5
(Woven glass and epoxy), FR-6(Matte glass and polyester), G-10(Woven glass and epoxy), CEM1 (Cotton paper and epoxy), CEM-2 (Cotton paper and epoxy), CEM-3 (Woven glass and
epoxy),CEM-4

(Woven

glass and

epoxy),

CEM-5 (Woven glass

and

polyester).

Thermal expansion is an important consideration especially with BGA and naked die technologies,
and glass fiber offers the best dimensional stability.
3.2 TYPES OF PRINTED CIRCUIT BOARDS
Single Sided Board:-This is the least complex of the Printed Circuit Boards, since there is only a
single layer of substrate. All electrical parts and components are fixed on one side and copper traces
are on the other side.
Double Sided Board:-This is the most common type of board, where parts and components are
attached to both sides of the substrate. In such cases, double-sided PCBs that have connecting traces
on both the sides are used. Double-sided Printed Circuit Boards usually use through-hole construction
for assembly of components.

[5]
Multi Layered Board:-Multi layered PCB consists of several layers of substrate separated by
insulation. Most common multilayer boards are: 4 layers, 6 layers, 8 layers, and 10 layers. However,
the total number of layers that can be manufactured can exceed over 42 layers. These types of boards
are used in extremely complex electronic circuits.
3.3 PCB DESIGN STEPS IN OrCad 10.5
3.3.1 ENTRY OF SCHEMATIC DIAGRAM
Schematic diagram provides the functional flow and the graphical representation of an electronic
circuit. The entry of schematic diagram is the first step in PCB design using OrCad.
A schematic diagram consists of:Electrical connections(nets)
Junctions
Integrated circuits symbols
Discrete components symbols like resistors, capacitors etc.
Input / output connectors
Power and ground symbols
Buses
No connection symbols
Components reference names
Text
3.3.2 THE SCHEMATIC PAGE EDITOR:
The schematic page editor is used to display and edit schematic pages. So that one can parts; wires;
buses and draw graphics. The schematic page editor has a tool palette that you can use to draw and
place everything you need to create a schematic page. One can print from within the schematic page
editor, or from the project window.

[6]
Fig 7.1 Schematic Page Editor
3.3.3 THE PART EDITOR:
The part editor is used to create and edit parts.
From the view menu of the part editor you can choose either part or package. In part view one can:Create and edit parts and symbols, then store in new or existing libraries.
Create and edit power and ground symbols, off-page connector symbols, and title block
Use the tool palette’s electrical tools to place pins on parts, and its drawing tools to draw parts
and symbols.
3.3.4 THE SESSION LOG:
The session log lists the events that have occurred during the current Capture session, includes
message resulting from using capture’s tools. To display context-sensitive help for an error message,
put the cursor in the error message line in the session log press F1.The ruler along the top appears in
either inches or mill meters, depending on which measurement system is selected in the window panel.
Your tab setting are saved and used each time you start capture.

[7]
Fig 7.2 Session Log window
One can search for information in the session log using the find command on the Edit menu. You can
also save the contents of the of the session log to a file, which is useful when working with Orcad’s
technical support to solve technical problems. The default filename is SESSION.TXT.
3.3.5 THE TOOLBAR:Capture’s toolbar is dock able (that means you can select and drag the
toolbar to new location) as well as resizable, and displays tool tips for each tool; by choosing a tool
button you can quickly perform a task. If tool button is dimmed, you can’t perform that task in the
current situation.

Fig 7.3 Toolbar
Some of the tools operate only on what you have selected, while others give you a choice of either
operating on what is selected or expanding the scope to entire project.
You can hide the toolbar, then display it again when u need it. For hiding select from the schematic
page editor’s view menu, choose TOOLBAR.
3.3.6 THE TOOL PALETTE:Capture has two tool palettes: one for the schematic page editor and
one for the part editor. Both tool palettes are dock able and resizable. They can also display tool tips
that identify each tool. The drawing tools on the two tool palettes are identical, however, each tool
palette has different electrical tools after you choose a tool, and you press the right mouse button to
display a context- sensitive pop-up menu.
[8]
3.3.7 THE SCHEMATIC PAGE EDITOR TOOL PALETTE:
The first group of tools on the tool palette is electrical tools, used to place electrical connectivity
objects. The second group of tools is
Drawing tools, used to create graphical objects without electrical connectivity.

Fig7.4 schematic page editor tool palette
3.3.8 THE PART EDITOR TOOL PALETTE:
The first group of tools on the part palette is electrical tools, used to place pins and symbols. They
have been already explained above within the schematic page editor tools. The second group of tools
is drawing tools, used to create graphical objects without objects any electrical connectivity and is
described:
Pin Tools: Place pins on part
Pin Array: Place multiple pins on part
3.4 CREATING NET LIST FILE
Net-list file is a document file which contains information about the logical interconnections between
signals and pins. Before one create a net list file, be sure one’s project is completed, annotated and it is
free from electrical rule violations.
A net list file consists of nets, components, connectors, junctions, no connection symbol, power and
ground symbols.
3.4.1 CREATION OF NET LIST IN CAPTURE:
Select your design in the project manager.
From the tools, choose create net list. The net list dialog box displays.
Choose a net list format tab.
If necessary, set the part value and PCB foot print combined property strings to reflect the
information you want in the net list.
Click ok to create the net list.
In the net list file text box, enter a name for the output file. If the selected format creates an
additional file, enter its file name in the second text box.

[9]
3.5 LAYOUT PLUS
Layout plus is one part for the PCB design in which we place as well as route the components an set
unit of measurement, grids, and spacing in OrCad. Within other soft wares you also have to place and
route the components in similar way. For the placement and routing of the components we normally
use auto-placement and auto-routing. Unfortunately, in a lot of soft wares some critical signals have to
be routed manually before auto-routing. In layout plus we also define the layer stacks, pad stacks and
via's.
3.5.1 STEPS FOR BOARD DESIGN:
At first, we have created a net list from our schematic diagram by using capture.
Layout plus includes design rules in order to guide logical placement and routing. That means,
load the net list into layout to create the board. At the same time you have to specify the board
parameters.
Specify board parameters: Specifying global setting for the board, including nits of
measurements, grid, and spacing
Place components: Use the components tool in order to place manually the components which
are fixed by the system designer on the board or otherwise use auto-placement.
Route the board: Use different routing technologies to route the board and take advantage of
push and shove (a routing technology), which moves track you are currently routing as well as
you can also auto route the board.
Provide finishing of the board: Layout supplies an ordered progression of commands on the
auto menu for finishing your design. These commands include design rule check, cleanup
design, rename components, back annotate, run post processor, and create reports.
3.5.2 THE DESIGN WINDOW:
The design window provides a graphical display of printed circuit board, it is primary window you use
when designing your board. It also provides tools to facilitate the design process such as to update
components and design rule violation.

[10]
Fig 7.5 design window
3.5.3 MAIN WINDOW:
Method to create a board with Layout Plus:
Ensure that net list with all footprints and necessary information has been created.
Create a directory in which the schematic design, net list, and boar will co-exit and put the
schematic design and net list. OrCad provides a directory for this purpose.
From the layout session frame’s file menu, choose New. The load template file in the dialog
box displayed.

Fig 7.6 main window
[11]
3.5.4 DESIGN STEPS:
Select the technology template (.TCH), then choose the open button and load the net list in
other box.
Then apply the auto ECO.
If necessary, respond to link footprints to component dialog.
Draw the board outline by using the obstacle tool in the tool bar.

3.5.5 SETTING BOARD PARAMETERS:
There is some parameter which should be set before placing the components on board. They are as
follows:Set Datum
Create a board outline
Set units of measurements
Set system grid
Add mount holes
3.5.6 CREATING OF BOARD OUTLINE:
Board outline is the graphical representation of the size of the actual PCB board. So it is the main step
in layout, to draw the board outline of the actual size of PCB board.
3.5.7 PLACEMENT OF COMPONENTS:
Placement of components means that to place the components in designed box. A designer should
follow the following steps before going for it:Optimize the board for component placement.
Load the placement strategy file.
Place components on the board.
Optimize placement using various placements
Components can be placed by using two techniques:1) Manual placement of components
2) Auto placement of components
Choose the components tool bar button. From the pop up men, choose the queue for placement. The
components selection criteria dialog box appears. Enter the reference designator of the components
that you want to place in the appropriate text box, and click ok. Drag the components to desired
location, place it there.

[12]
3.5.8 CONDUCTOR ROUTING IN LAYOUT:After placing all the components the other main step is to route the board from the electrical
connections between the components. One may route board manually or automatically by auto router.
100% auto routing can be achieved only when components are placed in the order of functional flow
of electronic circuit. The main routing tool available in OrCad is as flow:Add/edit route mode
Edit segment mode
Shove track mode
Auto path route mode

3.5.9 DESIGN RULE CHECK:In manual designs every thing was checked as a possible source of error. Components sizes, hole
sizes, conductor widths and clearance, land-to-hole-ratio, board areas to be free of components,
clearance to the edges, positional accuracy and of course electrical interconnections had tad to be
personally reviewed with a great deal of care. After completing the design of printed circuit board with
the help of an EDA-Tool, a designer has again to verify the PCB in order to find out errors.

[13]
4.THE 8051 MICROCONTROLLER
4.1 INTRODUCTION
The microcontroller incorporates all the features that are found in microprocessor. The microcontroller
has built in ROM, RAM, Input Output ports, Serial Port, timers, interrupts and clock circuit. 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. 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 microcontroller has on chip peripheral devices. In this unit
firstly we differentiate microcontroller from microprocessor then we will discuss about Hardware
details of 8051 and then introduce the Assembly level language in brief.

MICROCONTROLLERS
Microcontroller (MC) may be called computer on chip since it has basic
features of microprocessor with internal ROM, RAM, Parallel and serial
ports within single chip. Or we can say microprocessor with memory and
ports is called as microcontroller. This is widely used in washing machines,
vcd player, microwave oven, robotics or in industries.
Microcontroller can be classified on the basis of their bits processed like
8bit MC, 16bit MC.
8 bit microcontroller, means it can read, write and process 8 bit data. Ex.
8051 microcontroller. Basically 8 bit specifies the size of data bus. 8 bit
microcontroller means 8 bit data can travel on the data bus or we can read,
write process 8 bit data.

[14]
4.2 MICROCONTROLLER FAMILIES
8051- These microcontrollers are old but still trendy and most of the companies fabricate these
microcontrollers. The older types of 8051 have 12 clocks per instruction that make it sluggish whereas
the recent 8051 have 6 clocks per instruction. The 8051 microcontroller does not have an in built
memory bus and A/D converters. In 1980, Intel fabricated the single chip microcontroller 8051 with
Harvard architecture.
PIC- Programmable Interface Controller is usually referred as PIC. They are slightly older than 8051
microcontrollers but excel cause of their small low pin count devices. They perform well and are
affordable. The Microchip technology fabricated the single chip microcontroller PIC with Harvard
architecture. The programming part is very tedious and hence it is not recommended for beginners.
AVR(Advanced Version RISC) - In 1996, Atmel fabricated this single chip microcontroller with a
modified Harvard Architecture. This chip is loaded with C- compiler, Free IDE and many more
features. This microcontroller is a bit difficult for the starters to handle.

4.3 DIFFERENCE BETWEEN MICROCONTROLLER AND MICROPROCESSOR:-

It is very clear from figure that in microprocessor we have to interface additional circuitry for
providing the function of memory and ports, for example we have to interface external RAM for data
storage, ROM for program storage, programmable peripheral interface (PPI) 8255 for the Input Output
ports, 8253 for timers, Sartor serial port. While in the microcontroller RAM, ROM, I/O ports, timers
and serial communication ports are in built. Because of this it is called as “system on chip”. So in
micro-controller there is no necessity of additional circuitry which is interfaced in the microprocessor
because memory and input output ports are inbuilt in the microcontroller. Microcontroller gives the
satisfactory performance for small applications. But for large applications the memory requirement
is limited because only 64 KB memory is available for program storage. So for large
applications we prefer microprocessor than microcontroller due to its high processing speed.

[15]
4.4 PIN DIAGRAM OF 8051:-

Pins 1-8 (Port 1) - Each of these pins can be configured as an input or an output.
Pin 9 (Reset) - A logic one on this pin disables the microcontroller and clears the contents of most
registers. In other words, the positive voltage on this pin resets the microcontroller. By applying logic
zero to this pin, the program starts execution from the beginning.
Pins 10- 17 (Port 3) -Similar to port 1, each of these pins can serve as general input or output.
Besides, all of them have alternative functions:
Pin 10 (RXD) - Serial asynchronous communication input or Serial synchronous communication
output.
Pin 11(TXD) - Serial asynchronous communication output or Serial synchronous communication
clock output.
Pin 12 (INT 0) - Interrupt 0 input.
[16]
Pin 13(INT 1) - Interrupt 1 input.
Pin 14(T0) - Counter 0 clock input.
Pin 15(T1) - Counter 1 clock input.
Pin 16(WR) -Write to external (additional) RAM.
Pin 17 (RD) -Read from external RAM.
Pin 18 and 19(X1, X2) - Internal oscillator input and output. A quartz crystal which specifies
operating frequency is usually connected to these pins. Instead of it, miniature ceramics resonators can
also be used for frequency stability. Later versions of microcontrollers operate at a frequency of 0 Hz
up to over 50 Hz.
Pin 20 (GND) - Ground.
Pin 21-28 (Port 2) - If there is no intention to use external memory then these port pins are configured
as general inputs/outputs. In case external memory is used, the higher address byte, i.e. addresses A8A15 will appear on this port. Even though memory with capacity of 64Kb is not used, which means
that not all eight port bits are used for its addressing, the rest of them are not available as
inputs/outputs.
Pin 29 (PSEN) - If external ROM is used for storing program then a logic zero (0) appears on it every
time the microcontroller reads a byte from memory.
Pin 30 (ALE) - Prior to reading from external memory, the microcontroller puts the lower address
byte (A0-A7) on P0 and activates the ALE output. After receiving signal from the ALE pin, the
external register memorizes the state of P0 and uses it as a memory chip address. Immediately after
that, the ALU pin is returned its previous logic state and P0 is now used as a Data Bus. As seen, port
data multiplexing is performed by means of only one additional (and cheap) integrated circuit. In other
words, this port is used for both data and address transmission.
Pin 31 (EA) - By applying logic zero to this pin, P2 and P3 are used for data and address transmission
with no regard to whether there is internal memory or not. It means that even there is a program
written to the microcontroller, it will not be executed. Instead, the program written to external ROM
will be executed. By applying logic one to the EA pin, the microcontroller will use both memories,
first internal then external (if exists).
Pin 32-39 (Port 0) - Similar to P2, if external memory is not used, these pins can be used as general
inputs/outputs. Otherwise, P0 is configured as address output (A0-A7) when the ALE pin is driven
high (1) or as data output (Data Bus) when the ALE pin is driven low (0).
Pin 40 (Vcc) - +5V power supply.

[17]
4.5 MICROCONTROLLER 8051 ARCHITECTURE
It is 8-bit microcontroller, means MC 8051 can Read, Write and Process 8 bit data. This is mostly
used microcontroller in the robotics, home appliances likemp3 player, washing machines, electronic
iron and industries. Mostly used blocks in the architecture of 8051 are as follows:

Address bus-For a device (memory or I/O) to be recognized by the CPU, it must be assigned an
address. The address assigned to a given device must be unique. The CPU puts the address on the
address bus, and the decoding circuitry finds the device.
Data bus-The CPU either gets data from the device or sends data to it.
Control bus-Provides read or write signals to the device to indicate if the CPU is asking for
information or sending it information .

[18]
4.6 Memory and Registers
The 8051 microcontroller has a total of 256 bytes of RAM in which 128 is visible or useraccessible
and extra 128 is for special function registers. The user accessible RAM is used for temporary data
storage. The user accessible RAM is from the address range 00 to 7Fh.From the user accessible RAM,
32 bytes of RAM is used for registers and rest for Stack operations. The 32 Bytes of RAM is divided
into four register Banks i.e. Bank0, Bank 1, Bank 2, Bank3. Each of these banks have 8 Registers i.e.
R0 to R7 each.
RAM locations from 0 to 7 are set aside for bank 0 of R0 – R7 where R0 is RAM location 0, Rl is
RAM location 1, and R2 is location 2, and so on, until memory location 7, which belongs to R7 of
bank 0. 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.

Generally for normal operations, Register bank Bank0 is set by default. But we can switch to other
banks by using PSW Commands.

[19]
SFRs (Special Function Register) - These Registers are in extra 128 bytes of the memory. This part
of memory is not user accessible and these registers are used for special purposes. These
registers range from 80h to FFh. There are a total of only 21 SFRs in this range and all other addresses
from 80h to FFh are invalid and there use can cause errors and not valuable results.
Some of the SFRs are TCON, SBUF, ACC, B, SCON, TMOD SP, P0, PSW, TL0, and TL1. These all
the registers have some specific function that has to be performed after they are programmed.
Byte Addressable SFR with byte address
SP – Stack printer – 81H
DPTR – Data pointer 2 bytes
DPL – Low byte – 82H
DPH – High byte – 83H
TMOD – Timer mode control – 89H
TH0 – Timer 0 Higher order bytes – 8CH
TL0 – Timer 0 Low order bytes – 8AH
TH1 – Timer 1 High bytes = 80H
TL1 – Timer 1 Low order byte = 86H
SBUF – Serial data buffer = 99H
PCON – Power control – 87H.

DPTR - Data Pointer in 8051
16 bit register; it is divided into two parts DPH and DPL.
DPH for Higher order 8 bits, DPL for lower order 8 bits.
DPTR, DPH, DPL these all are SFRs in 8051.

[20]
4.7 Timers and Counters:
The 8051 has two timers T0 and T1, which may be configured and used individually. The 8052 has an
additional Timer T2.All these counters count up on negative going edges at their inputs. These can be
used as event counters (where they count the number of negative transitions on a pin connected to
some external source), or as Timers, where they count up once every twelfth clock cycle. A special use
of timers is for generating baud rates for the serial port. The usage of these timers is somewhat
different from common general purpose timer/counters such as the 8253 and 8254. This difference
stems partly from the fact that we cannot afford to have a large numbers of pins dedicated to the
functioning of these timer counters. Thus, just two multifunction pins are used as external inputs in
8051. Gating is accomplished by control bits in the special function registers, and using the external
interrupt pins as gate inputs. There are no output pins associated with the timers. The processor can
be interrupted by the timers and as a part of the interrupt service routine, the processor can performing
IO

function

through

its

ports.

When

used

as

baud

rate

generators,

the

output

goes directly to the serial port hardware within the microcomputer.
8051 timers always count up. Each counter has a 16 bit count register in the SFR area. The low and
high
count

bytes
rolls

can
over

from

be
the

accessed
maximum

as
count

separate
to

0000,

bytes.
they

set

When
the

their

corresponding

timer flag (TF1 or TF0) in TCON. The 8051 can be set up so that an interrupt occurs whenever TF1
or TF0 is set. when 8051 branches to the interrupt vector, it automatically clears the TF
flag.
Timer means which can give the delay of particular time between some events. For example on or
off the lights after every 2 sec. This delay can be provided through some assembly program but in
microcontroller two hardware pins are available for delay generation. These hardware pins can be
also used for counting
some external events. How much times a number is repeated in the given table is calculated by the
counter.
• In MC8051, two timer pins are available T0 and T1, by these timers we can
give the delay of particular time if we use these in timer mode.
• We can count external pulses at these pins if we use these pins in counter
mode.

• 16 bits timers are available. Means we can generate delay between 0000H
[21]
to FFFFH.
• Two special function registers are available.
• In the same way for T1.
• TMOD, TCON registers are used for controlling timer operation.
Basic registers of the timer

Timer 0 and Timer 1 are 16 bits wide
each 16-bit timer is accessed as two separate registers of low byte and high byte.
Timer 0 registers

low byte register is called TL0 (Timer 0 low byte) and the high byte register is referred to as TH0
(Timer 0 high byte)
can be accessed like any other register, such as A, B, R0, R1, R2, etc.
"MOV TL0, #4 FH" moves the value 4FH into TL0
"MOV R5, TH0" saves TH0 (high byte of Timer 0) in R5

Timer 1 registers

also 16 bits
split into two bytes TL1 (Timer 1 low byte) and TH1 (Timer 1 high byte)
accessible in the same way as the registers of Timer 0.

TMOD (timer mode) register

timers 0 and 1 use TMOD register to set operation modes (only learn Mode 1 and 2)
8-bit register
lower 4 bits are for Timer 0

[22]
upper 4 bits are for Timer 1
lower 2 bits are used to set the timer mode
(only learn Mode 1 and 2)

upper 2 bits to specify the operation
(only learn timer operation)

Clock source for timer

timer needs a clock pulse to tick
if C/T = 0, the crystal frequency attached to the 8051 is the source of the clock for the timer
frequency for the timer is always 1/12th the frequency of the crystal attached to the 8051
XTAL = 11.0592 MHz allows the 8051 system to communicate with the PC with no errors
In our case, the timer frequency is 1MHz since our crystal frequency is 12MHz
Using Windows calculator to find TH, TL

Windows scientific calculator can be use to find the TH, TL values
Lets say we would like to find the TH, TL values for a time delay that uses 35,000 clocks of 1.085ms
open scientific calculator and select decimal
[23]
enter 35,000
select hex - converts 35,000 to hex 88B8H
select +/- to give -35000 decimal (7748H)
the lowest two digits (48) of this hex value are for TL and the next two (77) are for TH
C/T bit in TMOD register
used as a timer, the 8051's crystal is used as the source of the frequency
used as a counter, pulse outside the 8051 increments the TH, TL registers
counter mode, TMOD and TH, TL registers are the same as for the timer
timer modes are the same as well
C/T bit in TMOD register
C/T bit in the TMOD register decides the source of the clock for the timer
C/T = 0, timer gets pulses from crystal
C/T = 1, the timer used as counter and gets pulses from outside the 8051
C/T = 1, the counter counts up as pulses are fed from pins 14 and 15
pins are called T0 (Timer 0 input) and T1 (Timer 1 input)
these two pins belong to port 3
Timer 0, when C/T = 1, pin P3.4 provides the clock pulse and the counter counts up for each clock
pulse coming from that pin
Timer 1, when C/T = 1 each clock pulse coming in from pin P3.5 makes the counter count up

[24]
TCON register
TR0 and TR1 flags turn on or off the timers
bits are part of a register called TCON (timer control)
upper four bits are used to store the TF and TR bits of both Timer 0 and Timer 1
lower four bits are set aside for controlling the interrupt bits
"SETB TRl" and "CLR TRl“
"SETB TCON. 6" and "CLR TCON. 6“

Timer Functions
When used as timers, the 8051 timers count up every 12th clock cycle. This is
selected by clearing the corresponding C/T flags in the TMOD special function
register, placed at the address 89H.

[25]
Timer modes
The timers may operate in one of four modes:
Mode 0 In this mode, the timers act as 13 bit counters. This mode is largely meant for providing
compatibility with an older microcontroller from Intel(8048). This mode is practically never used in
fresh designs. Except for the counter size, this mode is identical to mode 1.
Mode 1 In this mode, the timers are 16 bits in size. This is a commonly used mode. It is common
to configured the timer to cause an interrupt when it overflows. The interrupt routine then reloads the
timer.
Mode 2 This mode provides an 8 bit counter with auto-reload. It uses the high byte of the count
register to store the count value and the low byte as the actual counter. The counter is automatically
re-loaded from TH when it overflows. Thus, there is no software overhead for re-loading the
registers. This is convenient for generating baud rates etc. The timing resolution is much lower in
this mode (only 8 bits). Therefore crystal frequencies have to be carefully chosen to generate
accurate baud rates. Crystals of 11.059MHz are often used rather than 12 MHz for this reason.
Mode 3 In this mode Timers T0 and T1 behave quite divergently. T0 acts as two independent 8 bit
counters. Count register TL0 uses the resources (such as the RUN flag, overflows flag) in TCON,
TMOD etc. meant for T0. Similarly,TH0 uses the resources meant for T1. Thus, TR1 will enable
running the 8 bit counter made up of TH0. TF1 will be set whenever TH0 overflows.T1 now has no
control bits at all! It can only be used for services which require no control, no gating and no
interrupts. Thus, T1 can be used for Baud rate generation, while we still have two timers available
(both with 8 bit resolution).

Serial Port
• There are two pins available for serial communication TXD and RXD.
• Normally TXD is used for transmitting serial data which is in SBUF register,
RXD is used for receiving the serial data.
• SCON register is used for controlling the operation.
• There are four modes of serial communication which has been discussed in
next chapter.

[26]
OSSCILLATORS
It is used for providing the clock to MC8051 which decides the speed orbaud rate of MC.

We use crystal which frequency vary from 4MHz to 30 MHz, normally we
use 11.0592 MHz frequency.

INTERRUPTS
Interrupts are defined as requests because they can be refused (masked) if
they are not used, that is when an interrupt is acknowledged. A special set
of events or routines are followed to handle the interrupts. These special
routines are known as interrupt handler or interrupt service routines (ISR).
These are located at a special location in memory.

INT0 and INT1 are the pins for external interrupts.

[27]
ARCHUTECTURE OF 8051:-

ALU Arithmetic Logical Unit: This unit is used for the arithmetic calculations.
Accumulator: This register is used for arithmetic operations. This is also bit addressable and 8 bit
register.
B-Register: This register is used in only two instructions MUL AB and DIV AB. This is also
bit addressable and 8 bit register.
PC-Program Counter
• Points to the address of next instruction to be executed from ROM
• It is 16 bit register means the 8051 can access program address from
0000H to FFFFH. A total of 64KB of code. 16 bit register means.

[28]
STACKS IN 8051:-

[29]
5.PROGRAMMING AND INTERFACING:5.1 INPUT DEVICES INTERFACING

5.1.1 SWITCH

Fig-2.1-Various Types Of Switches
Fig. 1 Switches are used to open/close a circuit
Fig. 2  S1 is a "single pole on/off" switch in the off position
Fig. 3 This is a "2 pole on/off" switch which completely isolates the lamp from the supply in the off
position. This may be important if it is a high voltage supply. The dotted line indicates that S1a and
S1b are part of the same switch "ganged" together and operate simultaneously.
Fig. 4 This is a "single pole changeover" switch. Either lamp 1 or lamp 2 is on.
Fig. 5this is a "2 pole changeover" switch. The unlit lamp is completely isolated from the supply.
Again S1a and S1b are part of the same switch
Fig. 6this is a "single pole 5 way" switch. It can select 1 of 5 circuits. You can have 2p 5w, 3p 4w
etc
Fig. 8 This is a "changeover" slide switch. When operated a-b opens and b-c closes

[30]
1 INTERFACING WITH AT89S52In 8051 PORT 1, PORT 2 & PORT 3 have internal 10k Pull-up resistors whereas this Pull-up resistor
is absent in PORT 0. Hence PORT 1, 2 & 3 can be directly used to interface a switch whereas we have
to use an external 10k pull-up resistor for PORT 0 to be used for switch interfacing or for any other
input. Figure 2.2 shows switch interfacing for PORT 1, 2 & 3. Figure 2.3 shows switch interfacing to
PORT 0.

Fig 2.2 - Switch Interfacing For Port 1, 2 & 3
For any pin to be used as an INPUT PIN a HIGH (1) should be written to the pin if you don’t do this
the pin will always be read as LOW.In the above figure when the switch is not pressed the 10k resistor
provides the current needed for LOGIC 1 closure of switch provides LOGIC 0 to the controller
PIN.Let's write a small program where whenever a switch is pressed a LED is turned ON. Consider
that switch is connected to P2.0 & an LED connected to P2.1.
Program of switch interfacingMain()
{
P2_0==1;
SETB P2_1==0;
While(1)
{
If(P2_0==0)
{
P2_1==1;
}
Else
{
P2_1==0;
}
}

[31]
OUTPUT DEVICES INTERFACING
5.2.1 LED INTERFACING
C CODE FOR BLINKING LEDS CONNECTED ON PORT2:
#include<at89s8252.h>
void delay(unsigned int i);
void main(void)
{
While(1)
{
P2=0x00;
Delay(0xffff);
P2=0x00;
Delay(0xff);
}
}
void delay(unsigned int i)
{
while(i!=0)
{
i--;
}
}

Fig:-3.1-Hardware Interfacing Of Led With At89s52

[32]
3.1.2 C CODE FOR RUNNING LED CONNECTED ON PORT2:
#include<at89s8252.h>
void delay(unsigned int i);
void main ()
{
P0=0x00;
while (1)
{
delay(0xffff);
P2_0=1;
delay(0xffff);
P2_0=0;
P2_1=1;
delay(0xffff);
P2_1=0;
P2_2=1;
delay(0xffff);
P2_2=0;
P2_3=1;
delay(0xffff);
P2_3=0;
P2_4=1;
delay(0xffff);
P2_4=0;
P2_5=1;
delay(0xffff);
P2_5=0;
P2_6=1;
delay(0xffff);
P2_6=0;
P2_7=1;
delay(0xffff);
P2_7=0;
P2_0=1
}
}void delay(unsigned int i)
{
while (i!=0)
{
i--;
}
}

[33]
5.2.2 LCD(JHD162A) INTERFACING:
On most displays, the pins are numbered on the LCD’s printed circuit board, but if not, it is quit easy
to locate pin1. Since the pin is connected to ground, it often has a thicker PCB track connected to it,
and it is generally connected to the metal work at some point.

Fig:-3.2-Jhd162a LCD(16x2)
Three command control inputs. When this line is low, data bytes transferred to the display are treated
as commands, and data bytes read from the display indicate its status. By setting the RS line high,
character data can be transferred to and from the module.
Pin 5 is (R/W) line. This line is pulled low in order to write commands or character data to the module,
or pulled high to read character data or status information from its registers.
Pin 6 is Enable (E) line. This input is used to initiate the actual transfer of commands or character data
between the module and the data lines. When writing to the display, data is transferred only on the
high to low transition of this signal. However, when reading from the display, data will become
available shortly after the low to high transition and remain available until the signal falls low again
C CODE FOR LCD DISPLAY
//Program to study basics of LCD
#include"AT89S8252.h"
//macro directives of LCD
#define LCD P1
#define RS P3_3
#define EN P3_4
//prototyping various functions of LCD
void delay(unsigned int d);
void lcd_cmd(unsigned char c);
void lcd_init(void);
void cursor_position(unsigned char p);
void display(unsigned char h);
//program to display character 'A'
void main()
{

[34]
lcd_init();
cursor_position(0);
display('A');
}
//defining delay function
void delay(unsigned int d)
{
while(d!=0)
d--;
}
//subprogram to send various commands to LCD
void lcd_cmd(unsigned char c)
{
delay(300);
LCD=c;
RS=0;
EN=1;
EN=0;
}
//subprogram too initialize LCD
void lcd_init(void)
{
lcd_cmd(0x01);
lcd_cmd(0x38);
lcd_cmd(0x0C);
}
//subprogram to set cursor position
void cursor_position(unsigned char p)
{
lcd_cmd(0x80+p);
}
//subprogram to display data on LCD
void display(unsigned char h)
{
delay(300);
LCD=h;
RS=1;
EN=1;
EN=0;
}

[35]
C CODE FOR STRING DISPLAY ON LCD:
void main()
{
while(1)
{
unsigned char name[]={"hello&"};
unsigned char group[]={"Group 3&"};
lcd_init();
cursor_position(0);
string_display(name);
cursor_position(40); //to display string on second row of LCD
string_display(group);
}
}
//function to display string
void string_display(unsigned char *s)
{
while(*s!='&')
{
display(*s);
delay(0xffff);
s++;
}
}

[36]
5.2.3 SEVEN SEGMENT DISPLAY
The 7 segment display is used as a numerical indicator on many types of test equipment.

Fig:-3.4-Basic Diagram Of A Seven Segment Display

It is an assembly of light emitting diodes which can be powered individually. They most commonly
emit red light. They are arranged and labeled as shown in the figure 3.4.
Powering all the segments will display the number 8. Powering a,b,c d and g will display the number
3. Numbers 0 to 9 can be displayed. The d.p represents a decimal point. The one shown is a common
anode display since all anodes are joined together and go to the positive supply. The cathodes are
connected individually to zero volts. Resistors must be placed in series with each diode to limit the
current through each diode to a safe value.
Early wrist watches used this type of display but they used so much current that the display was
normally switched off. To see the time you had to push a button. Common cathode displays where all
the cathodes are joined are also available. Liquid crystal displays do a similar job and consume much
less power. Alphanumeric displays are available which can show letters as well as numbers
C CODE TO INTERFACE SEVEN SEGMENT WITH AT89S52 AND DISPLAY NUMBERS 0
TO 99
#include"at89s8252.h"
void delay(unsigned int d);
void bcd(unsigned int x);
void main()
{
unsigned char i;
while(1)
{
for(i=0;i<100;i++)
{

[37]
bcd(i);
}
}
}
void delay(unsigned int d)
{
while(d!=0)
{
d--;
}
}
5.2.4 RELAY INTERFACING

The electromagnetic relay consists of a multi-turn coil, wound on an iron core, to form an
electromagnet. When the coil is energised, by passing current through it, the core becomes
temporarily magnetised.

Fig:-3.5-Basic Relay Circuit
The magnetized core attracts the iron armature. The armature is pivoted which causes it to operate one
or more sets of contacts. When the coil is de-energized the armature and contacts are released. The
coil can be energized from a low power source such as a transistor while the contacts can switch high
powers such as the mains supply. The relay can also be situated remotely from the control source.
Relays

can

generate

a

very

high

voltage

across

the

coil

when

switched

off.

This can damage other components in the circuit. To prevent this a diode is connected across the coil.
The cathode of the diode is connected to the most positive end of the coil.

[38]
Fig:-3.6-Basic Relay Leads
The spring sets (contacts) can be a mixture of normally open , normally closed and change over.The
actual contact points on the springsets are available for high current and low current operation. Relays
are devices which allow low power circuits to switch a relatively high Current/Voltage ON/OFF. For a
relay to operate a suitable pull-in & holding current should be passed through its coil. Generally relay
coils are designed to operate from a particular voltage often its 5V or 12V.
The function of relay driver circuit is to provide the necessary current (typically 25 to 70ma) to
energize the relay coil.

Fig:-3.7- Basic Relay Interfacing With At89s8252

Figure 3.7 shows the basic relay driver circuit. As you can see an NPN transistor BC547 is being used
to control the relay. The transistor is driven into saturation (turned ON) when a LOGIC 1 is written on
the PORT PIN thus turning ON the relay. The relay is turned OFF by writing LOGIC 0 on the port
pin.

[39]
5.2.5 MOTORS INTERFACING
4.1 L293D DUAL H-BRIDGE MOTOR DRIVER
L293D is a dual H-Bridge motor driver, So with one IC we can interface two DC motors which can be
controlled in both clockwise and counter clockwise direction and if you have motor with fix direction
of motion the you can make use of all the four I/Os to connect up to four DC motors. L293D has
output current of 600mA and peak output current of 1.2A per channel. Moreover for protection of
circuit from back EMF output diodes are included within the IC. The output supply (VCC2) has a
wide range from 4.5V to 36V, which has made L293D a best choice for DC motor driver.

.
Fig 4.1- Interfacing A Dc Motor Using L293d
As you can see in the circuit, three pins are needed for interfacing a DC motor (A, B, Enable). If you
want the o/p to be enabled completely then you can connect Enable to VCC and only 2 pins needed
from controller to make the motor work.
As per the truth mentioned in the image above its fairly simple to program the microcontroller. Its also
clear from the truth table of BJT circuit and L293D the programming will be same for both of them,
just keeping in mind the allowed combinations of A and B. We will discuss about programming in C
as well as assembly for running motor with the help of a microcontroller
.

[40]
C CODE FOR INTERFACING STEPPER MOTOR
#include<8051.h>
#define s4 P0_0
#define s2 P0_1
#define s3 P0_2
#define s1 P0_3
void delay(unsigned int a);
void full_stepping(void);
void main()
{
P0=0x00;
while(1)
{
full_stepping();
}

}
void full_stepping(void)
{
s1=1;s2=1;s3=0;s4=0;
delay(1500);
s1=0;s2=1;s3=1;s4=0;
delay(1500);
s1=0;s2=0;s3=1;s4=1;
delay(1500);
s1=1;s2=0;s3=0;s4=1;
delay(1500);
}
void delay(unsigned int a)
{
while(a!=0)
{
a--;
}
}

[41]
5.2.6 INTERFACING CONVERTERS (ADC)
5.1 ADC-0804 INTERFACING WITH AT89S52:
The ADC0804 family is CMOS 8-Bit, successive-approximation A/D converters which use a modified
potentiometer ladder and are designed to operate with the 8080A control bus via three-state outputs.
These converters appear to the processor as memory locations or I/O ports, and hence no interfacing
logic is required. The differential analog voltage input has good common mode- rejection and permits
offsetting the analog zero-input voltage value. In addition, the voltage reference input can be adjusted
to allow encoding any smaller analog voltage span to the full 8 bits of resolution.
5.1.1 Features
• 80C48 and 80C80/85 Bus Compatible - No Interfacing Logic Required
• Conversion Time < 100us
• Easy Interface to Most Microprocessors
• Differential Analog Voltage Inputs
• TTL Compatible Inputs and Outputs
• On-Chip Clock Generator
• 0V to 5V Analog Voltage Input Range (Single + 5V Supply)
• No Zero-Adjust Required
5.1.2 ADC-0804 PIN DIAGRAM

Fig.-5.1-adc-0804 pin diagram

[42]
Hardware interfacing of ADC-0804

CON16_0

VCC VCC

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

LCD
C13
104

RS EN

R55
56E

R2
10K

11
30
29
16
10
17

40

2

R6
220E

20

P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15

21
22
23
24
25
26
27
28

P3.1/TXD
ALE/PROG
15
PSEN
P3.5/T1
P3.6/WR P3.2/INT0 12
P3.0/RXD
P3.7/RD

18
17
16
15
14
13
12
11

EOC

5

SOC

DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7

+IN
-IN
VREF/2
CLKR
CLKIN

INTR

CS
RD
WR

C9
CAP

3

U4
ADC0804

1

6
7

R5
10K

2

VCC

P0.7/AD7
P0.6/AD6
P0.5/AD5
P0.4/AD4
P0.3/AD3
P0.2/AD2
P0.1/AD1
P0.0/AD0

AT89S8252

VCC

VCC

P3.3/INT1
P3.4/T0

VCC/VREF

32
33
34
35
36
37
C6
38
10uF 16V 39

1

VCC

GND

VCC

13
14

VCC

R53
1k

AGND

RS
EN

RST

GND

OUTPUT

8

9

1
2
3
4
5
6
7
8

U21
TL431

C14
1uf /16v

9
19
4
C8
1uf /16v

1
2
3

10

C5

XTAL1
XTAL2

P1.0/T2
P1.1/T2-EX
P1.2
P1.3
P1.4/SS
P1.5/MOSI
P1.6/MISO
P1.7/SCK

GND

33pF

19
18

U22 LM35/SO
3

20

3

EA/VPP

4

12

33pF C4
Y2

31

VCC
CRY STAL U2

R17
10K
C7
150pF

Temprature monitoring

system

Fig.-5.2- hardware interfacing of adc-0804 for temperature monitoring
When interfacing is being done then

gets lowered then only it allows the controller to read the

data, otherwise controller can not read the data.
is always grounded.
is software controlled.
C- CODE FOR TEMPERATURE MONITORING SYSTEM
#include <at89s8252.h>
#define SOC P3_2
#define EOC P3_5
unsigned char read_adc(void);
void disp_dec(unsigned int digit);
code unsigned char table[16]={'0','1','2','3','4','5','6','7','8','9'};
void main(void)
{
unsigned char e;
P2=0xff;
Init_lcd();
while(1)
{
[43]
cursor_position(0x00);
e=read_adc();
disp_dec(e);
}
}
unsigned char read_adc(void)
{
unsigned char n;
SOC=0;
SOC=1;
while(EOC==1)
{
n=P2;
}
return n;
}

void disp_dec(unsigned int digit)
{
unsigned int temp;
if(digit<100)
{
temp=digit/10;
display(table[temp]);
temp=digit-temp*10;
display(table[temp]);
}
if(digit>99 && digit<1000)
{
temp=digit/100;
display(table[temp]);
digit=digit-(temp*100);
temp=digit/10;
display(table[temp]);
digit=digit-(temp*10);
temp=digit;
display(table[temp]); }

[44]
5.2.7 COMMUNICATION
6.1 Serial communication between At89s52 and PC
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.
6.1.1 SETTING THE SERIAL PORT MODE 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:

Bit Name

Bit
Address

Explanation of Function

7

SM0

9Fh

Serial port mode bit 0

6

SM1

9Eh

Serial port mode bit 1.

5

SM2

9Dh

Mutliprocessor Communications Enable (explained later)

4

REN

9Ch

3

TB8

9Bh

Transmit bit 8. The 9th bit to transmit in mode 2 and 3.

2

RB8

9Ah

Receive bit 8. The 9th bit received in mode 2 and 3.

1

TI

99h

Transmit Flag. Set when a byte has been completely transmitted.

0

RI

98h

Receive Flag. Set when a byte has been completely received.

Receiver Enable. This bit must be set in order to receive
characters.

Table 6.1-Scon Register

[45]
SERIAL TRANSMISSION INTERFACING

12
13
14
15

40
VCC

XTAL1
XTAL2
RST
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1

P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15

VCC

1
2
3
4
5
6
7
8

P3.7/RD
P1.0/T2
P3.6/WR
P1.1/T2-EX
PSEN
P1.2
ALE/PROG
P1.3
P3.1/TXD
P1.4/SS
P3.0/RXD
P1.5/MOSI
P1.6/MISO
P1.7/SCK

AT89S8252

GND

R4
10K

17
16
29
30
11
10

U6

C23
104

VCC
11
12
7
8

C20
10UF/16V

1
3
2

VCC

T1IN
R1OUT

J7

R1IN
T1OUT

T2OUT
R2IN
T2IN
C1+
C1V+

C21
10UF/16V

20

C18
10uF 16V

21
22
23
24
25
26
27
28

16

9

39
38
37
36
35
34
33
32

VCC

19
18

P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7

R2OUT
GND

3
C17

C19
104

15

12

Y4
4

33pF

EA/VPP

CRY STAL U5
33pF C16

31

VCC VCC

C2+
C2V-

13
14
10

SPT TXD

1
2
3

SPT RXD

SERIAL PORT OF PC

C24 10UF/16V
9
4
5
6
C22

MAX232

10UF/16V

Fig.7.1-Max232 Interfacing With At89s52 For Serial Transmission
C- CODE FOR SERIAL TRANSMISSION(FROM MICROCONTROLLER TO PC)
#include<at89s8252.h>
void Init_SPT(void);
void transmit_serial(unsigned char a);
void delay(unsigned int i);
void main(void)
{
Init_SPT();
while(1)
{
delay(0XFFFF);
transmit_serial('N');
delay(0XFFFF);
transmit_serial('E');
delay(0XFFFF);
transmit_serial('T');
delay(0XFFFF);
transmit_serial('M');
delay(0XFFFF);
[46]
transmit_serial('A');
delay(0XFFFF);
transmit_serial('X');
delay(0XFFFF);
}
}
void Init_SPT(void)
{
TMOD=0x20;
TH1=0xfd;
TR1=1;
SCON=0x40;
}
void transmit_serial(unsigned char a)
{
SBUF=a;
delay(500);
TI=0;
}
void delay(unsigned int i)
{
while(i!=0)
{
i--;
}
}

[47]
ELECTRONIC VOTING MACHINE USING 8051
MICROCONTROLLER
List of Contents
Abstract

50

1. Background

51

2. Microcontroller

56

2.1 Introduction

56

2.2 History

56

2.3 Definition of a Microcontroller

58

2.4 Microcontrollers vs Microprocessors

58

2.5 Memory Unit

58

2.6 Central Processing Unit

59

2.7 Bus

59

2.8 Input Output Unit

59

2.9 Serial Communication

60

2.10 Timer Unit

60

2.11 Watch Dog

61

2.12 Analog to Digital Converter

61

3. Introduction to 16X2 LCD Display

63

3.1 Pin description

63

3.2 DDRAM - Display Data RAM

64

3.3 BF - Busy Flag

64

3.4 Instruction Register (IR) and Data Register (DR)

64

3.5 Commands and Instruction set

64

3.6 Sending Commands to LCD

64

4. Project Description

65

4.1 Block diagram

65

4.2 General working

65

4.3 C language code

68

[48]
5. Project Methodology

72

5.1 Components

72

5.2 Software used

72

5.3 Equipments used

72

6. Result and Conclusion

73

7. Applications

73

8. Future Scope

73

9. References and Bibliography

74

[49]
ABSTRACT
India

is

world’s

largest

democracy.

It

is

perceived

to

be

charismatic

one

as

it

accommodates cultural, regional, economical, social disparities and still is able to stand on its own.
Fundamental right to vote or simply voting in elections forms the basis of Indian democracy.
In India all earlier elections be it state elections or centre elections a voter used to cast his/her
vote to his/her favorite candidate by putting the stamp against his/her name and then folding the
ballot paper as per a prescribed method before putting it in the Ballot box. This is a long, timeconsuming process and very much prone to errors. This situation continued till election scene was
completely changed by electronic voting machine. No more ballot paper, ballot boxes, stamping,
etc. all this condensed into a simple box called ballot unit of the electronic voting machine.
EVM is capable of saving considerable printing stationery and transport of large volumes of electoral
material. It is easy to transport, store, and maintain. It completely rules out the chance of invalid
votes. Its use results in reduction of polling time, resulting in fewer problems in electoral
preparations, law and order, candidates expenditure, etc. and easy and accurate counting without any
mischief at the counting centre. It is also eco friendly. Our EVM consists of one microcontroller
AT89S52. The unit consists of one LCD, 6 push buttons, couple of switches, an LED and a buzzer,
etc. The port 0 of microcontroller is used for interfacing the led, port 2 is used for control
switches, port 3 is used for Interfacing push buttons for voting.

[50]
BACKGROUND
Democracy and Voting
Democracy has come to be accepted as the most preferred form of political system all over the
world. However, the success of a democratic structure is to be judged by the successes that can be
solely attributed to this system. There are various challenges before democracy. These are
foundational challenges, challenge of expansion and deepening of democracy. All of these are
dependent on how the democracy is perceived by people who form the government, participate in
formation of government and are benefited by it. As we all know that India is world’s largest
democracy. It is perceived to be charismatic one as it accommodates cultural, regional, economical,
social

disparities

and

still

is

able

to stand on its own. India follows a federal form of government. It means that governance power is
not residing with one authority, but is distributed at various levels. In India power is distributed
between states and central authority.
What

forms

the

basis

of

such

vast

and

complex

system

of

governance?

One needs not to be an Einstein to guess the answer. It is fundamental right to vote or
simply voting in elections.
Indian constitution provide every adult above the age of 18 years irrespective of his/her
religion, region, caste, creed, color, economic status, education and sex the essential right
to vote and elect her/his candidate to represent her/him.
Hence voting can be termed as backbone of not just democracy in India but all around the
world. Voting can be done in various ways. In early Roman Empire voting used to be
done by raising hands in favor or against. In board rooms voting is done in similar way,
some write their vote down, some choose to speak, some choose to cast vote using latest
technology.
Voting Techniques
In India all earlier elections be it state elections or centre elections

a voter used to cast

his/her vote to his/her favorite candidate by putting the stamp against his/her name and
then folding the ballot paper as per a prescribed method before putting it in the Ballot
box. This is a long, time-consuming process and very much prone to errors.
This method wanted voters to be skilled voters to know how to put a stamp, and
methodical folding of ballot paper. Millions of paper would be printed and heavy ballot
boxes would be loaded and unloaded to and from ballot office to polling station. All this
continued till election scene was completely changed by electronic voting machine. No
more ballot paper, ballot boxes, stamping, etc. all this condensed into a simple box called
ballot unit of the electronic voting machine.

[51]
The marking system of voting was introduced in 1962 to make it possible for a
substantial number of illiterate voters to indicate easily their preferences in choosing their
representatives. Over the years, there was a pronounced increase in the volume of work:
crores of ballot papers had to be printed and lakhs of ballot boxes had to be prepared,
transported, and kept in storage; and a great amount of time was taken up by the conduct
of elections. To overcome these difficulties, the Election Commission of India (ECI)
thought

of

Hyderabad,

electronic
and

gadgets.

Bharat

The

Electronics

Electronics
Ltd.

(BEL),

Corporation
Bangalore,

of

India

developed

Ltd.
the

(ECIL),
electronic

voting machine in 1981.

The Electronic Voting Machine
The complete EVM consists mainly of two units - (a) Control Unit and (b) Balloting Unit
with cable for connecting it with Control unit. A Balloting Unit caters upto 16 candidates.
Four Balloting Units linked together catering in all to 64 candidates can be used with one
control unit. The control unit is kept with the Presiding Officer and the Balloting Unit is
used by the voter for polling.
The Balloting Unit of EVM is a small Box-like device, on top of which each candidate
and his/her election symbol is listed like a big ballot paper. Against each candidate's
name, a red LED and a blue button is provided. The voter polls his vote by pressing the
blue button against the name of his desired candidate.
How the Vote is cast with this EVM?
The entire process is very easy to understand:
•

Like in earlier system, your name is called and you are asked to sign or put your

thumb impression in a register.
•

After your identification is done by Election Officer, an ink mark is put on your

finger, same as earlier.
•

Then the Election Officer gives you a slip that bears the Voter register number

where you signed or put your thumb impression.
•

You hand over this slip to the presiding officer who confirms the serial number

and permits you to vote by pressing the button of the Control Unit of EVM.
•

You are not given any ballot thereafter, and are sent to the EV Machine placed

behind a card board in a corner. The machine is placed in such a way that your
polled vote will be a secret. On the Balloting Unit of EVM, you press the button placed in front
of your favorite candidate and release.

[52]
Compare and Contrast: Paper Voting and EVM
We have so far discussed three different voting systems. These systems are being used or
considered obsolete because of certain positive and negative points. These are
summarized as follows:
Device type
Ballot paper

: Papers and boxes

EVM

: Embedded system with Assembly code

Visual Output
Ballot paper

: Stamp on paper

EVM

: Single LED against each candidate's name

Operating System/ Software
Ballot paper

: No operating system

EVM

: None, the Assembly code to register number of votes is all it has

Hence it is simple automation of voting, no complexities.
Records/ Audits
Ballot paper : Manual counting to be done by officials, lengthy, time consuming
Process. Inaccurate due to human errors.
EVM : The Voting unit doesn't store anything, the control unit records the number of votes cast for
each candidate against his serial number.
No record to link person-to-vote.
Control and Operation
Ballot paper: Manual operation
EVM

: Automatic operation. The control Unit accumulates the votes, it is a device with flash

storage and seven segment LED displays. The ballot unit has a button to issue a ballot for a voter.
Security Issues
Ballot paper

: No security provided by the system, neither during polling nor during voting.

EVM

: During polling, a facility is provided to seal the machine in case of booth
capturing. No further voting can be done afterwards.

Ballot Issue
Ballot paper

: Ballot paper is issued by Electoral officer on which voter could cast his vote.

EVM

: Ballot is issued by Electoral officer by pressing a button on the control Unit.

It allows the voter to press any button on the ballot unit to cast his vote.

[53]
Storage of Votes
Ballot paper

: In ballot boxes assigned for the purpose of storing votes, highly insecure method

of storage.
EVM

: In Internal Non removable memory of the Control Units. No transfer over

network. Security increases with this feature. Moreover these results cant be accessed by authorized
personnel
only at commissioned offices..
Cost of the System
Ballot paper

: High cost of paper printing in millions and low speed of the whole process.

EVM

: About 12000 INR (300$) for one EVM.

Power Supply
Ballot paper

: No power supply required.

EVM

: 6V alkaline batteries or electricity.

Capacity
Ballot paper

: As much a ballot box can hold.

EVM

: 3840 Votes .

Existing System
But this electronic voting machine has its disadvantages too. These areas of deficiency
are not much of a concern to a layman, but for an intelligent voter this must be eliminated
for a secure election. The few technical disadvantages are given as:
•

Microprocessor based design, which requires a no. of supporting components like

memory, peripheral interface, etc.
•

No security against illegal viewing of results, as presiding officer can view the

results without any difficulty.
•

Less user friendly due to two seven segment displays

•

Existing system costs high.

Proposed System
All these faults motivated us to make this new enhanced EVM. The faults which are
eliminated are summarized as follows:
•

Microcontroller replaced microprocessor, which made the EVM closer to real
time operation making it faster, more reliable and unique.

•

More user friendly and interactive LCD display

•

Proposed system costs less.

[54]
•

As soon as the button is pressed, the LED indicator lights off and a whistle sound

comes from the machine. This signifies that your vote has been casted rightly.
Now you can come out.
•

In case of LED not not being turned off, press the button firmly again. If finding it

difficult, consult the Presiding Officer.
•

Your vote is complete safe and secret and there is no room for error as well. You

can rest assured that your vote is not going to be invalid in any case.
•

The Voting Machine is attached to the 'Control Unit'. When the user presses the

button, his vote is registered in the control unit and the number of votes for the
respective candidates is calculated automatically.
Booth Capture
A remarkable advantage is that rigging is not possible with the EVMs. In the ballot paper
system, the intruders can mark hundreds of ballots and put them into the ballot box in a
matter of a few minutes. This is not possible in voting machines as the machine is
designed to cast only one vote and for the next vote to be casted the presiding officer
should make it ready by pressing the related button. Thus the presiding officer can have a
complete control of voting and avoid any kind of malpractices
The EVMs have following advantages:
•

the saving of considerable printing stationery and transport of large volumes of

electoral material,
•

easy transportation, storage, and maintenance,

•

no invalid votes,

•

reduction in polling time, resulting in fewer problems in electoral preparations,

law and order, candidates' expenditure, etc. and
•

easy and accurate counting without any mischief at the counting centre

•

eco friendly.

[55]
2. MICROCONTROLLERS

2.1 Introduction
Circumstances that we find ourselves in today in the field of microcontrollers had their
beginnings in the development of technology of integrated circuits. This development has
made it possible to store hundreds of thousands of transistors into one chip. That was a
prerequisite for production of microprocessors, and the first computers were made by
adding external peripherals such as memory, input-output lines, timers and other. Further
increasing of the volume of the package resulted in creation of integrated circuits. These
integrated circuits contained both processor and peripherals. That is how the first chip
containing a microcomputer, or what would later be known as a microcontroller came
about.
2.2 History
It was year 1969, and a team of Japanese engineers from the BUSICOM Company
arrived to United States with a request that a few integrated circuits for calculators be
made using their projects. The proposition was set to INTEL, and Marcian Hoff was
responsible for the project. Since he was the one who has had experience in working with
a computer (PC) PDP8, it occurred to him to suggest a fundamentally different solution
instead of the suggested construction. This solution presumed that the function of the
integrated circuit is determined by a program stored in it. That meant that configuration
would be simpler, but that it would require far more memory than the project that was
proposed by Japanese engineers would require. After a while, though Japanese engineers
tried finding an easier solution, Marcian's idea won, and the first microprocessor was
born. In transforming an idea into a ready made product, Frederico Faggin was a major
help to INTEL. He transferred to INTEL, and in only 9 months had succeeded in making
a product from its first conception. INTEL obtained the rights to sell this integral block in
1971. First, they bought the license from the BUSICOM Company who had no idea what
treasure they had. During that year, there appeared on the market a microprocessor called
4004. That was the first 4-bit microprocessor with the speed of 6 000 operations per second.
Not

long

after

that,

American

company

CTC

requested

from

INTEL

and

Texas

Instruments to make an 8-bit microprocessor for use in terminals. Even though CTC gave
up this idea in the end, Intel and Texas Instruments kept working on the microprocessor
and in April of 1972, first 8-bit microprocessor appeared on the market under a name
8008.

[56]
2.3 Definition of a Microcontroller
Microcontroller, as the name suggests, are small controllers. They are like single chip
computers

that

are

often

embedded

into

other

systems

to

function

as

processing/controlling unit. For example, the remote control you are using probably has
microcontrollers inside that do decoding and other controlling functions. They are also
used in automobiles, washing machines, microwave ovens, toys ... etc, where automation
is needed.
The key features of microcontrollers include:
•

High Integration of Functionality

•

Microcontrollers sometimes are called single-chip computers because they have
on-chip memory and I/O circuitry and other circuitries that enable them to
function as small standalone computers without other supporting circuitry.

•

Field Programmability, Flexibility

•

Microcontrollers often use EEPROM or EPROM as their storage device to allow
field programmability so they are flexible to use. Once the program is tested to be
correct then large quantities of microcontrollers can be programmed to be used in
embedded systems.

•

Easy to Use

[57]
2.4 Microcontrollers versus Microprocessors
Microcontroller differs from

a

microprocessor

in

many ways.

First

and

the

most

important is its functionality. In order for a microprocessor to be used, other components
such as memory, or components for receiving and sending data must be added to it. In
short that means that microprocessor is the very heart of the computer. On the other hand,
microcontroller is designed to be all of that in one. No other external components are
needed for its application because all necessary peripherals are already built into it. Thus,
we save the time and space needed to construct devices.
2.5 Memory unit
Memory

is

part

of

the

microcontroller

whose

function

is

to

store

data.

The easiest way to explain it is to describe it as one big closet with lots of drawers. If we
suppose that we marked the drawers in such a way that they cannot be confused, any of
their contents will then be easily accessible. It is enough to know the designation of the
drawer and so its contents will be known to us for sure.

Typically, the amount of ROM type memory will vary between around 512 bytes and
4096 bytes, although some 16 bit microcontrollers such as the Hitachi H8/3048 can have
as much as 128 Kbytes of ROM type memory. ROM type memory, as has already been mentioned,
is used to store the program code. ROM memory can be ROM (as in One Time Programmable
memory), EPROM, or EEPROM. The amount of RAM memory is usually somewhat smaller,
typically ranging between 25 bytes to 4 Kbytes.
management tasks.

RAM is used for data storage and stack

It is also used for register stacks (as in the microchip PIC range of

microcontrollers).
[58]
2.6 Central Processing Unit
Let add 3 more memory locations to a specific block that will have a built in capability to
multiply, divide, subtract, and move its contents from one memory location onto another.
The part we just added in is called "central processing unit" (CPU). Its memory locations
are called registers.

2.7 Bus
That "way" is called "bus". Physically, it represents a group of 8, 16, or more wires.
There are two types of buses: address and data bus. The first one consists of as many
lines as the amount of memory we wish to address and the other one is as wide as data, in
our case 8 bits or the connection line. First one serves to transmit address from CPU
memory,

and

the

second

to

connect

all

blocks

inside

the

microcontroller.

Figure2.4: Showing connection between memory and central unit using buses
2.8 Input-output unit
Those locations we've just added are called "ports". There are several types of ports:
input, output or bidirectional ports. When working with ports, first of all it is necessary to
choose which port we need to work with, and then to send data to, or take it from the
port.
2.9 Serial communication

[59]
Beside

stated

above

we've

added

to

the

already

existing

unit

the

possibility

of

communication with an outside world. However, this way of communicating has its
drawbacks. One of the basic drawbacks is the number of lines which need to be used in
order to transfer data. What if it is being transferred to a distance of several kilometers?
The number of lines times’ number of kilometers doesn't promise the economy of the
project. It leaves us having to reduce the number of lines in such a way that we don't
lessen its functionality. Suppose we are working with three lines only, and that one line is
used for sending data, other for receiving, and the third one is used as a reference line for
both the input and the output side. In order for this to work, we need to set the rules of
exchange of data. These rules are called protocol. Protocol is therefore defined in
advance

so

there

wouldn't

be

any

misunderstanding

between

the

sides

that

are

communicating with each other. For example, if one man is speaking in French, and the
other in English, it is highly unlikely that they will quickly and effectively understand
each other. Let's suppose we have the following protocol. The logical unit "1" is set up on
the transmitting line until transfer begins.

Figure2.6: Serial unit sending data through three lines only
2.10 Timer unit
Since we have the serial communication explained, we can receive, send and process
data. However, in order to utilize it in industry we need a few additionally blocks. One of those
is the timer block which is significant to us because it can give us information about time,
duration, protocol etc. The basic unit of the timer is a free-run counter which is in fact a
register whose numeric value increments by one in even intervals, so that by taking its
value during periods T1 and T2 and on the basis of their difference we can determine
how much time has elapsed. This is a very important part of the microcontroller whose
understanding requires most of ourtime.
2.12 Analog to Digital Converter
[60]
As

the

peripheral

signals

usually

are

substantially

different

from

the

ones

that

microcontroller can understand (zero and one), they have to be converted into a pattern
which can be comprehended by a microcontroller. This task is performed by a block for
analog to digital conversion or by an ADC. This block is responsible for converting an
information about some analog value to a binary number and for follow it through to a
CPU block so that CPU block can further process it.

Figure2.9: Block for converting an analog input to digital output
Finally, the microcontroller is now completed, and all we need to do now is to assemble it
into an electronic component where it will access inner blocks through the outside pins.
The picture below shows what a microcontroller looks like inside.

Figure2.10: Physical configuration of the interior of a microcontroller
Thin lines which lead from the center towards the sides of the microcontroller represent
wires connecting inner blocks with the pins on the housing of the microcontroller so
called bonding lines. Chart on the following page represents the center section of a
microcontroller.

[61]
Figure2.11: Microcontroller outline with basic elements and internal connections
2.13 AT89S52 microcontroller:
The AT89S52 is a low-power, high-performance CMOS 8-bit microcontroller with 8K
bytes

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 pinout. 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 AT89S52 is a powerful microcontroller which provides a
highly-flexible and cost-effective solution to many embedded control applications.

[62]
3. INTRODUCTION TO 16X2 LCD DISPLAY
LCD stands for Liquid Crystal Display. The most commonly used LCDs found in the
market today are 1 Line, 2 Line or 4 Line LCDs which have only 1 controller and support
at most of 80 characters.
3.1 Pin Description
Most LCDs with two controllers has 16 Pins. Pin description is shown in the table
below.

Pin No.

Name Description

Pin no. 1

D7 Data bus line 7 (MSB)

Pin no. 2

D6 Data bus line 6

Pin no. 3

D5 Data bus line 5

Pin no. 4

D4 Data bus line 4

Pin no. 5

D3 Data bus line 3

Pin no. 6

D2 Data bus line 2

Pin no. 7

D1 Data bus line 1

Pin no. 8

D0 Data bus line 0 (LSB)

Pin no. 9

EN1 Enable signal for row 0 and 1 (1stcontroller)

Pin no. 12

VEE Contrast adjust

Pin no. 13

VSS Power supply (GND)

Pin no. 14

VCC Power supply (+5V)

Pin no. 15

EN2 Enable signal for row 2 and 3 (2ndcontroller)

Pin no. 16

NC Not Connected

Table No.3.1: Pin description of the LCD

[63]
3.2 DDRAM - Display Data RAM
Display data RAM (DDRAM) stores display data represented in 8-bit character codes. Its
extended capacity is 80 X 8 bits, or 80 characters. The area in display data RAM
(DDRAM) that is not used for display can be used as general data RAM. So whatever
you send on the DDRAM is actually displayed on the LCD.
3.3 BF - Busy Flag
Busy Flag is a status indicator flag for LCD. When we send a command or data to the
LCD for processing, this flag is set (i.e. BF =1) and as soon as the instruction is executed
successfully this flag is cleared (BF = 0). This is helpful in producing and exact amount
of delay. For the LCD processing. To read Busy Flag, the condition RS = 0 and R/W = 1
must be met and The MSB of the LCD data bus (D7) act as busy flag. When BF = 1
means LCD is busy and will not accept next command or data and BF = 0 means LCD is
ready for the next command or data to process.
3.4 Instruction Register (IR) and Data Register (DR)
There are two 8-bit registers

controller Instruction and Data register. Instruction register

corresponds to the register where you send commands to LCD e.g. LCD shift command,
LCD clear, LCD address etc. and Data register is used for storing data which is to be
displayed on LCD. When send the enable signal of the LCD is asserted, the data on the
pins is latched in to the data register and data is then moved automatically to the
DDRAM and hence is displayed on the LCD.
3.5 Commands and Instruction set
Only the instruction register (IR) and the data register (DR) of the LCD can be controlled
by the MCU. Before starting the internal operation of the LCD, control information is
temporarily stored into these registers to allow interfacing with various MCUs, which
operate at different speeds, or various peripheral control devices. The internal operation
of the LCD is determined by signals sent from the MCU.
3.6 Sending Commands to LCD
To send commands we simply need to select the command register. Everything is same
as we have done in the initialization routine. But we will summarize the common steps
and put them in a single subroutine.
Following are the steps:
Move data to LCD port
Select command register
select write operation
send enable signal
[64]
PROJECT DESCRIPTION:BLOCK DIAGRAM

GENERAL WORKING:1. Initially when the switch is closed, allows the evm to take the vote. the vote is taken only
when push button is pressed and led D1 is switched ON.

[65]
2. A push button is assigned to each party. When the push button of the desired party is
pressed, the led is switched off which indicates that the vote is cast and the buzzer gives a
beep.

Again the push button is pressed so that the evm is ready to take the next vote which
isindicated through the led D1.The same process is repeated until all the voters cast theirvotes.
3. To view the results of each respective party, the switch must be opened

[66]
4. To know the result of the party, the push button of the respective party must be pressed so that the
number of votes cast for the party is displayed on the lcd screen.

P

RW

in no. 10 /
This process is repeated to know the results of each party.
R
P
1
in no. 11 S
= Data input

[67]
4.3 C LANGUAGE CODING:
#include<reg51.h>
sfr input=0x90;
sfr ldata=0xa0;
sbit rs=P0^7;
sbit rw=P0^6;
sbit en=P0^5;
sbit m=P3^0;
sbit n=P3^1;
sbit buzz=P3^2;
sbit on=P3^3;
void delay(int );
void lcdcmd(char );
void lcddata1(char *);
void lcddata(char);
void lcd();
int i1,i11,i12,i2,i21,i22,i3,i31,i32,i4,i41,i42,i5,i51,i52=0;
void main()
{ on=0;
P1=0;P3=0;
while(1)
{
lcdcmd(0x38);
delay(10);
lcdcmd(0x0e) ;
delay(10);
lcdcmd(0x01);
lcdcmd(0x06) ;
delay(20)
;
lcddata1("Vote");
if(n==1)
on=1;
if(m==1&on==1)
{
if (input==0x01)
{
buzz=1;
while (input == 0x01);
i1=i1 + 1;
if(i1>=10)
i11=i1/10;
i12=i1%10;
on=0;
buzz=0;
//ready=0;
}
[68]
if (input==0x02)
{buzz=1;
while (input == 0x02);
{
i2=i2 + 1;
if(i2>=10)
i21=i2/10;
i22=i2%10;
on=0;
buzz=0;
}
}
if (input==0x04)
{
buzz=1;
while (input ==0x04);
{
i3=i3 + 1;
if(i3>=10)
i31=i3/10;
i32=i3%10;
on=0;
buzz=0;
}
}
if (input==0x08)
{
buzz=1;
while (input == 0x08);
{
i4=i4 + 1;
if(i4>=10)
i41=i4/10;
i42=i4%10;
on=0;
buzz=0;
}
}
if (input==0x10)
{
buzz=1;
while (input == 0x10);
{
i5=i5 + 1;
if(i5>=10)
i51=i5/10;
[69]
i52=i5%10;
on=0;
buzz=0;
}
}}
if(m==0)//else
{
if (input==0x01)
{
lcddata1(" CONGRESS=");
lcddata(i11+0x30);
lcddata(i12+0x30);
delay(100);
}
if (input==0x02)
{
lcdcmd(0x01);
lcddata1(" BJP=");
lcddata(i21+0x30);
lcddata(i22+0x30);
delay(100);
}
if (input==0x04)
{
lcdcmd(0x01);
lcddata1(" CPM&CPI=");
lcddata(i31+0x30);
lcddata(i32+0x30);
delay(100);
}
if (input==0x08)
{
lcdcmd(0x01);
lcddata1(" TDP=");
lcddata(i41+0x30);
lcddata(i42+0x30);
delay(100);
}
if(input==0x10)
{
lcdcmd(0x01);
lcddata1(" PRP=");
lcddata(i51+0x30);
lcddata(i52+0x30);
delay(100);
}
[70]
else{
//lcdcmd(0x01);
lcddata1("result");
delay(100) ;
}}
}}
void delay(int time)
{
int i,j;
for(i=0;i<time;i++)
for(j=0;j<900;j++);
}
void lcdcmd(char value)
{
ldata=value;
rs=0;
rw=0;
en=1;
delay(2);
en=0;
}
void lcddata1(char *value)
{
int i;
for(i=0;value[i]!='0';i++)
{
ldata=value[i];
rs=1;
rw=0;
en=1;
delay(1);
en=0;
}
}
void lcddata(char value)
{
ldata=value;
rs=1;
rw=0;
en=1;
delay(1);
en=0;

[71]
5. PROJECT METHODOLOGY
5.1 Components:
Component Name

Quantity

Microcontroller IC (AT89S52)
Transistor (L78O5CV)
Resistor
Diodes
Port Connectors
LED
Resistors
LCD (16X2 characters)
Buzzer
contrast controller
push switches
crystal oscillator

1
1
7
4
4
3
7
1
1
1
10
1

5.2 Software's used:
1. Keil uVision3.
2. Eclipse

5.3 Equipments used:
1. Soldering iron, solder, flux.
2. Personal computer.
3. DB25 connector.

6. RESULT AND CONCLUSION
The EVM consists of a microcontroller AT89S52 16×2 LCD display, LED ,push buttons, relay
and a buzzer.
[72]
•

In

•

The EVM is ready for voting only after ready to vote button is pressed and the led is

voting

mode,

the

voting

mode

switch

is

in

on

condition.

on. The led turns off after a vote is casted along with a buzzer.
Counting the votes for individual candidate (5 in number) is done simultaneously
along with the voting and total number of votes cast to that individual can be checked
at anytime.
•

In

•

In result mode, the UNIT displays the votes of individual candidate, whenever the

result

mode,

the

voting

mode

switch

is

in

off

position.

“Result Button” of the corresponding individual is pressed.
In total, the complete system (including all the hardware components and software
routines) is working as per the initial specifications and requirements of our project.
Because of the creative nature of the design, and due to lack of time, some features could
not be fine-tuned and are not working properly. So certain aspects of the system can be
modified as operational experience is gained with it. As the users work with the system,
they develop various new ideas for the development and enhancement of the project.
7. APPLICATIONS
Fast

track

voting

which

could

be

used

in

small

scale

elections,

like

resident

welfare association, “panchayat” level election and other society level elections. It could also be
used

to

conduct

opinion

polls

during

annual

share

holders

meeting. It could also be used to conduct general assembly elections where number of
candidates are less than or equal to eight in the current situation.
8. FUTURE SCOPE
Number of candidates could be increased by using other microcontroller or an 8255
IC. It could be interfaced with printer to get the hard copy of the result almost instantly
from the machine itself. It could also be interfaced with the personal computer and result could be
stored in the central server and its backup could be taken on the other backend servers. Again, once
the

result

is

on

the

server

it

could

be

relayed

on

the

network

to

various

offices of the election conducting authority. Thus our project could make the result
available any corner of the world in a matter of seconds

9. REFRENCES AND BIBLOGRAPHY

[73]
Muhammad Ali Mazidi , Janice Gillispie Mazidi, Rolin D. Mckinlay.
Second edition, “THE 8051 MICROCONTROLLER AND EMBEDDED
SYSTEM”
K. J. Ayala. Third edition, “The 8051 MICROCONTROLLER”
General information about electronic voting machine
www.eci.gov.in
www.eci.gov.in/faq/evm.asp
ww.eci.gov.in/Audio_VideoClips/presentation/EVM.ppt
www.rajasthan.net/election/guide/evm.htm
www.indian-elections.com/electoralsystem/electricvotingmachine.html
Tutorial on microcontroller:
www.8051projects.net/microcontroller_tutorials/
Tutorial on LCD:
www.8051projects.net/lcd-interfacing/

[74]

More Related Content

What's hot

Introduction to Basic Electronics
Introduction to Basic ElectronicsIntroduction to Basic Electronics
Introduction to Basic ElectronicsCiel Rampen
 
Plc (PROGRAMMABLE LOGIC CONTROLLER)
Plc (PROGRAMMABLE LOGIC CONTROLLER)Plc (PROGRAMMABLE LOGIC CONTROLLER)
Plc (PROGRAMMABLE LOGIC CONTROLLER)Urval Chotalia
 
Voltage Regulators ppt
Voltage Regulators pptVoltage Regulators ppt
Voltage Regulators pptGurkirat Singh
 
AVR_Course_Day1 basic electronics
AVR_Course_Day1 basic electronicsAVR_Course_Day1 basic electronics
AVR_Course_Day1 basic electronicsMohamed Ali
 
CMOS Topic 6 -_designing_combinational_logic_circuits
CMOS Topic 6 -_designing_combinational_logic_circuitsCMOS Topic 6 -_designing_combinational_logic_circuits
CMOS Topic 6 -_designing_combinational_logic_circuitsIkhwan_Fakrudin
 
Different electronics circuit design process
Different electronics circuit design processDifferent electronics circuit design process
Different electronics circuit design processelprocus
 
Latches and flip flop
Latches and flip flopLatches and flip flop
Latches and flip flopShuaib Hotak
 
Experiment write-vhdl-code-for-realize-all-logic-gates
Experiment write-vhdl-code-for-realize-all-logic-gatesExperiment write-vhdl-code-for-realize-all-logic-gates
Experiment write-vhdl-code-for-realize-all-logic-gatesRicardo Castro
 
Report on PCB designing and fabrication by Prince Rohan
Report on PCB designing and fabrication by Prince RohanReport on PCB designing and fabrication by Prince Rohan
Report on PCB designing and fabrication by Prince RohanRohan Das
 
Power Electronics - DIAC & TRIAC
Power Electronics - DIAC & TRIACPower Electronics - DIAC & TRIAC
Power Electronics - DIAC & TRIACBurdwan University
 
programmable logic controller presentation
programmable logic controller presentationprogrammable logic controller presentation
programmable logic controller presentationAshutosh Verma
 
MOSFET Discription Presentation
MOSFET Discription PresentationMOSFET Discription Presentation
MOSFET Discription PresentationPrashant Soni
 
CMOS N P Twin Tub Well Formation
CMOS N P Twin Tub Well FormationCMOS N P Twin Tub Well Formation
CMOS N P Twin Tub Well Formationazmathmoosa
 
Printed circuit Board Description
Printed circuit Board DescriptionPrinted circuit Board Description
Printed circuit Board DescriptionRUBY DIKSHIT
 

What's hot (20)

Lab - 03
Lab - 03Lab - 03
Lab - 03
 
Introduction to Basic Electronics
Introduction to Basic ElectronicsIntroduction to Basic Electronics
Introduction to Basic Electronics
 
Arduino uno
Arduino unoArduino uno
Arduino uno
 
Plc (PROGRAMMABLE LOGIC CONTROLLER)
Plc (PROGRAMMABLE LOGIC CONTROLLER)Plc (PROGRAMMABLE LOGIC CONTROLLER)
Plc (PROGRAMMABLE LOGIC CONTROLLER)
 
Cmos fabrication
Cmos fabricationCmos fabrication
Cmos fabrication
 
Clipper and clampers
Clipper and clampersClipper and clampers
Clipper and clampers
 
Voltage Regulators ppt
Voltage Regulators pptVoltage Regulators ppt
Voltage Regulators ppt
 
AVR_Course_Day1 basic electronics
AVR_Course_Day1 basic electronicsAVR_Course_Day1 basic electronics
AVR_Course_Day1 basic electronics
 
CMOS Topic 6 -_designing_combinational_logic_circuits
CMOS Topic 6 -_designing_combinational_logic_circuitsCMOS Topic 6 -_designing_combinational_logic_circuits
CMOS Topic 6 -_designing_combinational_logic_circuits
 
Different electronics circuit design process
Different electronics circuit design processDifferent electronics circuit design process
Different electronics circuit design process
 
Latches and flip flop
Latches and flip flopLatches and flip flop
Latches and flip flop
 
Ujt uni junction transistor - basics
Ujt   uni junction transistor - basicsUjt   uni junction transistor - basics
Ujt uni junction transistor - basics
 
Experiment write-vhdl-code-for-realize-all-logic-gates
Experiment write-vhdl-code-for-realize-all-logic-gatesExperiment write-vhdl-code-for-realize-all-logic-gates
Experiment write-vhdl-code-for-realize-all-logic-gates
 
Report on PCB designing and fabrication by Prince Rohan
Report on PCB designing and fabrication by Prince RohanReport on PCB designing and fabrication by Prince Rohan
Report on PCB designing and fabrication by Prince Rohan
 
igbt and its characteristics
igbt and its characteristicsigbt and its characteristics
igbt and its characteristics
 
Power Electronics - DIAC & TRIAC
Power Electronics - DIAC & TRIACPower Electronics - DIAC & TRIAC
Power Electronics - DIAC & TRIAC
 
programmable logic controller presentation
programmable logic controller presentationprogrammable logic controller presentation
programmable logic controller presentation
 
MOSFET Discription Presentation
MOSFET Discription PresentationMOSFET Discription Presentation
MOSFET Discription Presentation
 
CMOS N P Twin Tub Well Formation
CMOS N P Twin Tub Well FormationCMOS N P Twin Tub Well Formation
CMOS N P Twin Tub Well Formation
 
Printed circuit Board Description
Printed circuit Board DescriptionPrinted circuit Board Description
Printed circuit Board Description
 

Viewers also liked

P 4812--cell phone based voting machine
P 4812--cell phone based voting machineP 4812--cell phone based voting machine
P 4812--cell phone based voting machinechrahulr27
 
Project on Electronic voting machine
Project on Electronic   voting   machineProject on Electronic   voting   machine
Project on Electronic voting machineDeepak Kumar
 
Solution manual 8051 microcontroller by mazidi
Solution manual 8051 microcontroller by mazidiSolution manual 8051 microcontroller by mazidi
Solution manual 8051 microcontroller by mazidiMuhammad Abdullah
 
Question paper with solution the 8051 microcontroller based embedded systems...
Question paper with solution  the 8051 microcontroller based embedded systems...Question paper with solution  the 8051 microcontroller based embedded systems...
Question paper with solution the 8051 microcontroller based embedded systems...manishpatel_79
 
8051 Microcontroller Notes
8051 Microcontroller Notes8051 Microcontroller Notes
8051 Microcontroller NotesDr.YNM
 
Electronic voting machine using mcu 89s52
Electronic voting machine using mcu 89s52Electronic voting machine using mcu 89s52
Electronic voting machine using mcu 89s52Saurav Kumar
 
Industrial training report of embedded system and robotics
Industrial training report of embedded system and roboticsIndustrial training report of embedded system and robotics
Industrial training report of embedded system and roboticsPallavi Bharti
 
Cellphone based voting machine project report
Cellphone based voting machine project reportCellphone based voting machine project report
Cellphone based voting machine project reportDiLip ChauDhary
 
Gesture based vehicle movements control and alerting system .
Gesture based vehicle movements control and alerting system .Gesture based vehicle movements control and alerting system .
Gesture based vehicle movements control and alerting system .Vignan Munna
 
Training Report on Embedded System
Training Report on Embedded SystemTraining Report on Embedded System
Training Report on Embedded SystemRoshan Mani
 
electronic voting machine document
electronic voting machine documentelectronic voting machine document
electronic voting machine documentmani akuthota
 
Electronic voting machine using RFID
Electronic voting machine using RFIDElectronic voting machine using RFID
Electronic voting machine using RFIDBharath Chapala
 
temperature dependent dc fan speed controller withou using micrcontroller
temperature dependent dc fan speed controller withou using micrcontrollertemperature dependent dc fan speed controller withou using micrcontroller
temperature dependent dc fan speed controller withou using micrcontrollerDeepak Yadav
 
Temp based fan speed control
Temp based fan speed controlTemp based fan speed control
Temp based fan speed controlSai Malleswar
 

Viewers also liked (20)

P 4812--cell phone based voting machine
P 4812--cell phone based voting machineP 4812--cell phone based voting machine
P 4812--cell phone based voting machine
 
Project on Electronic voting machine
Project on Electronic   voting   machineProject on Electronic   voting   machine
Project on Electronic voting machine
 
Solution manual 8051 microcontroller by mazidi
Solution manual 8051 microcontroller by mazidiSolution manual 8051 microcontroller by mazidi
Solution manual 8051 microcontroller by mazidi
 
Question paper with solution the 8051 microcontroller based embedded systems...
Question paper with solution  the 8051 microcontroller based embedded systems...Question paper with solution  the 8051 microcontroller based embedded systems...
Question paper with solution the 8051 microcontroller based embedded systems...
 
8051 Microcontroller Notes
8051 Microcontroller Notes8051 Microcontroller Notes
8051 Microcontroller Notes
 
Evm commissioning
Evm commissioningEvm commissioning
Evm commissioning
 
Evm
EvmEvm
Evm
 
Electronic voting machine using mcu 89s52
Electronic voting machine using mcu 89s52Electronic voting machine using mcu 89s52
Electronic voting machine using mcu 89s52
 
Important questions
Important questionsImportant questions
Important questions
 
Industrial training report of embedded system and robotics
Industrial training report of embedded system and roboticsIndustrial training report of embedded system and robotics
Industrial training report of embedded system and robotics
 
8085 micro processor
8085 micro processor8085 micro processor
8085 micro processor
 
Cellphone based voting machine project report
Cellphone based voting machine project reportCellphone based voting machine project report
Cellphone based voting machine project report
 
Evm electronic voting machine
Evm electronic voting machineEvm electronic voting machine
Evm electronic voting machine
 
Gesture based vehicle movements control and alerting system .
Gesture based vehicle movements control and alerting system .Gesture based vehicle movements control and alerting system .
Gesture based vehicle movements control and alerting system .
 
Training Report on Embedded System
Training Report on Embedded SystemTraining Report on Embedded System
Training Report on Embedded System
 
electronic voting machine document
electronic voting machine documentelectronic voting machine document
electronic voting machine document
 
Electronic voting machine using RFID
Electronic voting machine using RFIDElectronic voting machine using RFID
Electronic voting machine using RFID
 
temperature dependent dc fan speed controller withou using micrcontroller
temperature dependent dc fan speed controller withou using micrcontrollertemperature dependent dc fan speed controller withou using micrcontroller
temperature dependent dc fan speed controller withou using micrcontroller
 
Writing a Literature Review- handout
Writing a Literature Review- handout Writing a Literature Review- handout
Writing a Literature Review- handout
 
Temp based fan speed control
Temp based fan speed controlTemp based fan speed control
Temp based fan speed control
 

Similar to Introduction to Embedded Systems and Software Development

137.gsm, fprs ,keypad_based_atm_security_(doc)
137.gsm, fprs ,keypad_based_atm_security_(doc)137.gsm, fprs ,keypad_based_atm_security_(doc)
137.gsm, fprs ,keypad_based_atm_security_(doc)Karteek Irukulla
 
Digital Design With Systemc (with notes)
Digital Design With Systemc (with notes)Digital Design With Systemc (with notes)
Digital Design With Systemc (with notes)Marc Engels
 
Integrating sensors to sensor processing boards.docx
Integrating sensors to sensor processing boards.docxIntegrating sensors to sensor processing boards.docx
Integrating sensors to sensor processing boards.docxSVITSEEERK
 
Introduction to embeded system
Introduction to embeded systemIntroduction to embeded system
Introduction to embeded systemharman1991
 
Computer Fundamentals
Computer FundamentalsComputer Fundamentals
Computer Fundamentalsmaclather
 
Advanced Security System using PIC through Bluetooth
Advanced Security System using PIC through BluetoothAdvanced Security System using PIC through Bluetooth
Advanced Security System using PIC through Bluetoothijtsrd
 
Comparison of ESP programming platforms
Comparison of ESP programming platformsComparison of ESP programming platforms
Comparison of ESP programming platformsCSITiaesprime
 
Ic sskills new_ecdl_syllabus_2013
Ic sskills new_ecdl_syllabus_2013Ic sskills new_ecdl_syllabus_2013
Ic sskills new_ecdl_syllabus_2013Ahmed Tahir
 
Embedded systems- nanocdac
Embedded systems- nanocdacEmbedded systems- nanocdac
Embedded systems- nanocdacnanocdac
 
Home automation using dtmf
Home automation using dtmfHome automation using dtmf
Home automation using dtmfAjay Naidu Jami
 
Language for embedded system
Language for embedded systemLanguage for embedded system
Language for embedded systemvkrhanjeeth .
 
Language for Embedded System
Language for Embedded System Language for Embedded System
Language for Embedded System vkrhanjeeth .
 
Electronic Nameplate System
Electronic Nameplate SystemElectronic Nameplate System
Electronic Nameplate SystemIRJET Journal
 

Similar to Introduction to Embedded Systems and Software Development (20)

137.gsm, fprs ,keypad_based_atm_security_(doc)
137.gsm, fprs ,keypad_based_atm_security_(doc)137.gsm, fprs ,keypad_based_atm_security_(doc)
137.gsm, fprs ,keypad_based_atm_security_(doc)
 
Digital Design With Systemc (with notes)
Digital Design With Systemc (with notes)Digital Design With Systemc (with notes)
Digital Design With Systemc (with notes)
 
Integrating sensors to sensor processing boards.docx
Integrating sensors to sensor processing boards.docxIntegrating sensors to sensor processing boards.docx
Integrating sensors to sensor processing boards.docx
 
Introduction to embeded system
Introduction to embeded systemIntroduction to embeded system
Introduction to embeded system
 
Hardware
HardwareHardware
Hardware
 
embedded systems
embedded systemsembedded systems
embedded systems
 
Computer Fundamentals
Computer FundamentalsComputer Fundamentals
Computer Fundamentals
 
Advanced Security System using PIC through Bluetooth
Advanced Security System using PIC through BluetoothAdvanced Security System using PIC through Bluetooth
Advanced Security System using PIC through Bluetooth
 
Comparison of ESP programming platforms
Comparison of ESP programming platformsComparison of ESP programming platforms
Comparison of ESP programming platforms
 
Lenovo S10-3
Lenovo S10-3Lenovo S10-3
Lenovo S10-3
 
Ic sskills new_ecdl_syllabus_2013
Ic sskills new_ecdl_syllabus_2013Ic sskills new_ecdl_syllabus_2013
Ic sskills new_ecdl_syllabus_2013
 
CSS-PPT-W3-D1.pdf
CSS-PPT-W3-D1.pdfCSS-PPT-W3-D1.pdf
CSS-PPT-W3-D1.pdf
 
Embedded systems- nanocdac
Embedded systems- nanocdacEmbedded systems- nanocdac
Embedded systems- nanocdac
 
Home automation using dtmf
Home automation using dtmfHome automation using dtmf
Home automation using dtmf
 
Language for embedded system
Language for embedded systemLanguage for embedded system
Language for embedded system
 
Language for Embedded System
Language for Embedded System Language for Embedded System
Language for Embedded System
 
Electronic Nameplate System
Electronic Nameplate SystemElectronic Nameplate System
Electronic Nameplate System
 
Embeddedsystems 091130091010-phpapp02
Embeddedsystems 091130091010-phpapp02Embeddedsystems 091130091010-phpapp02
Embeddedsystems 091130091010-phpapp02
 
ORIGINAL PROJECT
ORIGINAL PROJECTORIGINAL PROJECT
ORIGINAL PROJECT
 
Embedded Systems
Embedded SystemsEmbedded Systems
Embedded Systems
 

Recently uploaded

ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfSpandanaRallapalli
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17Celine George
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxEPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxRaymartEstabillo3
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon AUnboundStockton
 
Planning a health career 4th Quarter.pptx
Planning a health career 4th Quarter.pptxPlanning a health career 4th Quarter.pptx
Planning a health career 4th Quarter.pptxLigayaBacuel1
 
AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.arsicmarija21
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxOH TEIK BIN
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomnelietumpap1
 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Celine George
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceSamikshaHamane
 
Romantic Opera MUSIC FOR GRADE NINE pptx
Romantic Opera MUSIC FOR GRADE NINE pptxRomantic Opera MUSIC FOR GRADE NINE pptx
Romantic Opera MUSIC FOR GRADE NINE pptxsqpmdrvczh
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 

Recently uploaded (20)

ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdf
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxEPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon A
 
OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...
 
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
 
Planning a health career 4th Quarter.pptx
Planning a health career 4th Quarter.pptxPlanning a health career 4th Quarter.pptx
Planning a health career 4th Quarter.pptx
 
AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptx
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choom
 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in Pharmacovigilance
 
Romantic Opera MUSIC FOR GRADE NINE pptx
Romantic Opera MUSIC FOR GRADE NINE pptxRomantic Opera MUSIC FOR GRADE NINE pptx
Romantic Opera MUSIC FOR GRADE NINE pptx
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 

Introduction to Embedded Systems and Software Development

  • 1. 1. INTRODUCTION TO EMBEDDED SYSTEMS An embedded system is a special-purpose system in which the computer is completely encapsulated by the device it controls. Unlike a general-purpose computer, such as a personal computer, an embedded system performs pre-defined tasks, usually with very specific requirements. Since the system is dedicated to a specific task, design engineers can optimize it, reducing the size and cost of the product. Embedded systems are often mass-produced, so the cost savings may be multiplied by millions of items. Physically, embedded systems range from portable devices such as digital watches and MP3 players, to large stationary installations like traffic lights, factory controllers. 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. Embedded systems contain processing cores that are either microcontrollers or digital signal processors (DSP). The key characteristic, however, is being dedicated to handle a particular task. Since the embedded system is dedicated to specific tasks, design engineers can optimize it to reduce the size and cost of the product and increase the reliability and performance. Some embedded systems are mass-produced, benefiting from economies of scale. Robotics and automation are a part of embedded systems itself. Robot development and automation needs study of embedded systems. Examples of Embedded System:I. II. automatic teller machines (ATMs) avionics, such as inertial guidance systems, flight control hardware/software and other integrated systems in aircraft and missiles III. cellular telephones and telephone switches IV. computer equipment such as routers and printers V. VI. engine controllers and antilock brake controllers for automobiles home automation products, like thermostats, air conditioners, sprinklers, and security monitoring systems VII. VIII. handheld calculators household appliances, including microwave ovens, washing machines, television sets IX. medical equipment X. handheld computers XI. videogame consoles [1]
  • 2. 2.SOFTWARE DEVELOPEMENT 2.1 ECLIPSE 2.1.1 INTRODUCTION Developing programs using a text editor such as TextPad is simple and straightforward.While such editors allow students to begin programming with a minimum of distractions, asprograms become larger and more complicated, a more sophisticated tool for developingprograms is quite valuable. In this chapter, we examine one particular tool for developinglarge programs, the Eclipse system. Eclipse can be used to develop programs in Java and inC/C++ (plus various other languages as well). In this chapter, we examine how to install Eclipse. 2.2 INTERACTIVE DEVELOPMENT ENVIRONMENTS Interactive development environments (IDE) provide a wealth of features to support the programmer that are not available in a simple editor. There are many IDE’s currently available, some are shareware and some must be purchased and are often expensive. Most IDE’s provide similar facilities, such as the ability to view different classes at the same time, debuggers that step through a program line-byline in order to assist in locating errors, etc. One of the newest and most popular IDE’s is the Eclipse IDE which is available at no cost from the Eclipse website (http://www.eclipse.org/). 2.3 THE ECLIPSE IDE Eclipse is an IDE (actually it is more than an IDE but we will concentrate on Eclipse as an IDE) that was initially controlled by IBM but then IBM released the source code for Eclipse, making the project open source. Eclipse development is taking place in several cities, including Winnipeg, Ottawa, and Zurich, although there is also a large community of programmers who provide extensions to Eclipse in order to improve the Eclipse environment. The facilities in Eclipse can be extended by defining “plugins” which provide additional features or support additional languages.. Eclipse runs on most operating systems, including Unix, Linux, Windows, and Mac OS X. [2]
  • 3. 2. 4 TINA PRO :THE COMPLETE ELECTRONICS LAB FOR WINDOWS INTRODUCTION:-TINA is a powerful yet affordable software package for designing, simulating and analyzing electronic circuits. It works equally well with linear and nonlinear analog circuits, digital and mixed circuits. Analysis results can be displayed as sophisticated diagrams or on a range of virtual instruments. Comprehensive DTP tools and powerful text and equation editors can be used to produce professional reports and presentations. The standard library contains over 20000 components and can be extended by the user. Electronics engineers will find TINA an invaluable, easy to use and high performance tool. TINA can also be used in the training environment. It includes unique tools for testing students’ knowledge, monitoring progress and introducing troubleshooting techniques. With optional hardware it can be used to test real circuits for comparison with the results obtained from simulation. Of great importance to educators, the package includes all the tools needed to prepare educational materials. The circuit diagrams and the calculated or measured results can be printed or saved to files in standard Windows WMF format. These output files can be processed by a number of well known software packages (Microsoft Word, Corel Draw etc.). Net lists can be exported and imported in Pspice format and also to drive popular PCB packages such as ORCAD, TANGO, PCAD, PROTEL, REDAC and EDS. TINA has special operating modes for training and for examination. In these modes, under TINA’S control, the students solve problems assigned by the teacher. The solution format depends on the types of problems: they can be selected from a list, calculated numerically, or given in symbolic form. The interpreter - providing a number of solution tools - can also be used for problem solving. If the student cannot solve the problem, he/she can turn to the multi-level Advisor. The package includes all the tools needed to produce educational materials. A collection of examples and problems worked out by teachers is also part of the package. Another special educational function of TINA is the software or hardware simulation of circuit faults to practice troubleshooting. Using TINA, you can transform existing PC classrooms into contemporary electronics training labs at low cost. [3]
  • 4. THE BASIC SCREEN FORMAT:- 1. The menu bar 2. The cursor or pointer 3. The Schematic window 4. The Tool bar 5. 6. 7. 8. 9. The Component bar Find component tool Open files tab The TINA Task bar The Help line 3.PCB DESIGNING 3.1 INTRODUCTION:- [4]
  • 5. PCB Stands for "Printed Circuit Board." A PCB is a thin board made of fiberglass, composite epoxy, or other laminate material. Conductive pathways are etched or "printed" onto board, connecting different components on the PCB, such as transistors, resistors, and integrated circuits. PCBs are used in both desktop and laptop computers. They serve as the foundation for many internal computer components, such as video cards, controller cards, network interface cards, and expansion cards. These components all connect to the motherboard, which is also a printed circuit board. While PCBs are often associated with computers, they are used in many other electronic devices besides PCs. Most TVs, radios, digital cameras, cell phones, and tablets include one or more printed circuit boards. While the PCBs found in mobile devices look similar to those found in desktop computers and large electronics, they are typically thinner and contain finer circuitry. HISTORY : The inventor of the printed circuit was the Austrian engineer Paul Eisler (1907–1995) who, while working in England, made one circa 1936 as part of a radio set. MATERIAL: Conducting layers are typically made of thin copper foil. Insulating layers dielectric are typically laminated together with epoxy resin prepreg. The board is typically coated with a solder mask that is green in color. Other colors that are normally available are blue and red. There are quite a few different dielectrics that can be chosen to provide different insulating values depending on the requirements of the circuit. Some of these dielectrics are polytetrafluoroethylene (Teflon), FR-4, FR-1, CEM-1 or CEM-3. Well known prepreg materials used in the PCB industry are FR-2 (Phenolic cotton paper), FR-3 (Cotton paper and epoxy), FR-4 (Woven glass and epoxy), FR-5 (Woven glass and epoxy), FR-6(Matte glass and polyester), G-10(Woven glass and epoxy), CEM1 (Cotton paper and epoxy), CEM-2 (Cotton paper and epoxy), CEM-3 (Woven glass and epoxy),CEM-4 (Woven glass and epoxy), CEM-5 (Woven glass and polyester). Thermal expansion is an important consideration especially with BGA and naked die technologies, and glass fiber offers the best dimensional stability. 3.2 TYPES OF PRINTED CIRCUIT BOARDS Single Sided Board:-This is the least complex of the Printed Circuit Boards, since there is only a single layer of substrate. All electrical parts and components are fixed on one side and copper traces are on the other side. Double Sided Board:-This is the most common type of board, where parts and components are attached to both sides of the substrate. In such cases, double-sided PCBs that have connecting traces on both the sides are used. Double-sided Printed Circuit Boards usually use through-hole construction for assembly of components. [5]
  • 6. Multi Layered Board:-Multi layered PCB consists of several layers of substrate separated by insulation. Most common multilayer boards are: 4 layers, 6 layers, 8 layers, and 10 layers. However, the total number of layers that can be manufactured can exceed over 42 layers. These types of boards are used in extremely complex electronic circuits. 3.3 PCB DESIGN STEPS IN OrCad 10.5 3.3.1 ENTRY OF SCHEMATIC DIAGRAM Schematic diagram provides the functional flow and the graphical representation of an electronic circuit. The entry of schematic diagram is the first step in PCB design using OrCad. A schematic diagram consists of:Electrical connections(nets) Junctions Integrated circuits symbols Discrete components symbols like resistors, capacitors etc. Input / output connectors Power and ground symbols Buses No connection symbols Components reference names Text 3.3.2 THE SCHEMATIC PAGE EDITOR: The schematic page editor is used to display and edit schematic pages. So that one can parts; wires; buses and draw graphics. The schematic page editor has a tool palette that you can use to draw and place everything you need to create a schematic page. One can print from within the schematic page editor, or from the project window. [6]
  • 7. Fig 7.1 Schematic Page Editor 3.3.3 THE PART EDITOR: The part editor is used to create and edit parts. From the view menu of the part editor you can choose either part or package. In part view one can:Create and edit parts and symbols, then store in new or existing libraries. Create and edit power and ground symbols, off-page connector symbols, and title block Use the tool palette’s electrical tools to place pins on parts, and its drawing tools to draw parts and symbols. 3.3.4 THE SESSION LOG: The session log lists the events that have occurred during the current Capture session, includes message resulting from using capture’s tools. To display context-sensitive help for an error message, put the cursor in the error message line in the session log press F1.The ruler along the top appears in either inches or mill meters, depending on which measurement system is selected in the window panel. Your tab setting are saved and used each time you start capture. [7]
  • 8. Fig 7.2 Session Log window One can search for information in the session log using the find command on the Edit menu. You can also save the contents of the of the session log to a file, which is useful when working with Orcad’s technical support to solve technical problems. The default filename is SESSION.TXT. 3.3.5 THE TOOLBAR:Capture’s toolbar is dock able (that means you can select and drag the toolbar to new location) as well as resizable, and displays tool tips for each tool; by choosing a tool button you can quickly perform a task. If tool button is dimmed, you can’t perform that task in the current situation. Fig 7.3 Toolbar Some of the tools operate only on what you have selected, while others give you a choice of either operating on what is selected or expanding the scope to entire project. You can hide the toolbar, then display it again when u need it. For hiding select from the schematic page editor’s view menu, choose TOOLBAR. 3.3.6 THE TOOL PALETTE:Capture has two tool palettes: one for the schematic page editor and one for the part editor. Both tool palettes are dock able and resizable. They can also display tool tips that identify each tool. The drawing tools on the two tool palettes are identical, however, each tool palette has different electrical tools after you choose a tool, and you press the right mouse button to display a context- sensitive pop-up menu. [8]
  • 9. 3.3.7 THE SCHEMATIC PAGE EDITOR TOOL PALETTE: The first group of tools on the tool palette is electrical tools, used to place electrical connectivity objects. The second group of tools is Drawing tools, used to create graphical objects without electrical connectivity. Fig7.4 schematic page editor tool palette 3.3.8 THE PART EDITOR TOOL PALETTE: The first group of tools on the part palette is electrical tools, used to place pins and symbols. They have been already explained above within the schematic page editor tools. The second group of tools is drawing tools, used to create graphical objects without objects any electrical connectivity and is described: Pin Tools: Place pins on part Pin Array: Place multiple pins on part 3.4 CREATING NET LIST FILE Net-list file is a document file which contains information about the logical interconnections between signals and pins. Before one create a net list file, be sure one’s project is completed, annotated and it is free from electrical rule violations. A net list file consists of nets, components, connectors, junctions, no connection symbol, power and ground symbols. 3.4.1 CREATION OF NET LIST IN CAPTURE: Select your design in the project manager. From the tools, choose create net list. The net list dialog box displays. Choose a net list format tab. If necessary, set the part value and PCB foot print combined property strings to reflect the information you want in the net list. Click ok to create the net list. In the net list file text box, enter a name for the output file. If the selected format creates an additional file, enter its file name in the second text box. [9]
  • 10. 3.5 LAYOUT PLUS Layout plus is one part for the PCB design in which we place as well as route the components an set unit of measurement, grids, and spacing in OrCad. Within other soft wares you also have to place and route the components in similar way. For the placement and routing of the components we normally use auto-placement and auto-routing. Unfortunately, in a lot of soft wares some critical signals have to be routed manually before auto-routing. In layout plus we also define the layer stacks, pad stacks and via's. 3.5.1 STEPS FOR BOARD DESIGN: At first, we have created a net list from our schematic diagram by using capture. Layout plus includes design rules in order to guide logical placement and routing. That means, load the net list into layout to create the board. At the same time you have to specify the board parameters. Specify board parameters: Specifying global setting for the board, including nits of measurements, grid, and spacing Place components: Use the components tool in order to place manually the components which are fixed by the system designer on the board or otherwise use auto-placement. Route the board: Use different routing technologies to route the board and take advantage of push and shove (a routing technology), which moves track you are currently routing as well as you can also auto route the board. Provide finishing of the board: Layout supplies an ordered progression of commands on the auto menu for finishing your design. These commands include design rule check, cleanup design, rename components, back annotate, run post processor, and create reports. 3.5.2 THE DESIGN WINDOW: The design window provides a graphical display of printed circuit board, it is primary window you use when designing your board. It also provides tools to facilitate the design process such as to update components and design rule violation. [10]
  • 11. Fig 7.5 design window 3.5.3 MAIN WINDOW: Method to create a board with Layout Plus: Ensure that net list with all footprints and necessary information has been created. Create a directory in which the schematic design, net list, and boar will co-exit and put the schematic design and net list. OrCad provides a directory for this purpose. From the layout session frame’s file menu, choose New. The load template file in the dialog box displayed. Fig 7.6 main window [11]
  • 12. 3.5.4 DESIGN STEPS: Select the technology template (.TCH), then choose the open button and load the net list in other box. Then apply the auto ECO. If necessary, respond to link footprints to component dialog. Draw the board outline by using the obstacle tool in the tool bar. 3.5.5 SETTING BOARD PARAMETERS: There is some parameter which should be set before placing the components on board. They are as follows:Set Datum Create a board outline Set units of measurements Set system grid Add mount holes 3.5.6 CREATING OF BOARD OUTLINE: Board outline is the graphical representation of the size of the actual PCB board. So it is the main step in layout, to draw the board outline of the actual size of PCB board. 3.5.7 PLACEMENT OF COMPONENTS: Placement of components means that to place the components in designed box. A designer should follow the following steps before going for it:Optimize the board for component placement. Load the placement strategy file. Place components on the board. Optimize placement using various placements Components can be placed by using two techniques:1) Manual placement of components 2) Auto placement of components Choose the components tool bar button. From the pop up men, choose the queue for placement. The components selection criteria dialog box appears. Enter the reference designator of the components that you want to place in the appropriate text box, and click ok. Drag the components to desired location, place it there. [12]
  • 13. 3.5.8 CONDUCTOR ROUTING IN LAYOUT:After placing all the components the other main step is to route the board from the electrical connections between the components. One may route board manually or automatically by auto router. 100% auto routing can be achieved only when components are placed in the order of functional flow of electronic circuit. The main routing tool available in OrCad is as flow:Add/edit route mode Edit segment mode Shove track mode Auto path route mode 3.5.9 DESIGN RULE CHECK:In manual designs every thing was checked as a possible source of error. Components sizes, hole sizes, conductor widths and clearance, land-to-hole-ratio, board areas to be free of components, clearance to the edges, positional accuracy and of course electrical interconnections had tad to be personally reviewed with a great deal of care. After completing the design of printed circuit board with the help of an EDA-Tool, a designer has again to verify the PCB in order to find out errors. [13]
  • 14. 4.THE 8051 MICROCONTROLLER 4.1 INTRODUCTION The microcontroller incorporates all the features that are found in microprocessor. The microcontroller has built in ROM, RAM, Input Output ports, Serial Port, timers, interrupts and clock circuit. 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. 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 microcontroller has on chip peripheral devices. In this unit firstly we differentiate microcontroller from microprocessor then we will discuss about Hardware details of 8051 and then introduce the Assembly level language in brief. MICROCONTROLLERS Microcontroller (MC) may be called computer on chip since it has basic features of microprocessor with internal ROM, RAM, Parallel and serial ports within single chip. Or we can say microprocessor with memory and ports is called as microcontroller. This is widely used in washing machines, vcd player, microwave oven, robotics or in industries. Microcontroller can be classified on the basis of their bits processed like 8bit MC, 16bit MC. 8 bit microcontroller, means it can read, write and process 8 bit data. Ex. 8051 microcontroller. Basically 8 bit specifies the size of data bus. 8 bit microcontroller means 8 bit data can travel on the data bus or we can read, write process 8 bit data. [14]
  • 15. 4.2 MICROCONTROLLER FAMILIES 8051- These microcontrollers are old but still trendy and most of the companies fabricate these microcontrollers. The older types of 8051 have 12 clocks per instruction that make it sluggish whereas the recent 8051 have 6 clocks per instruction. The 8051 microcontroller does not have an in built memory bus and A/D converters. In 1980, Intel fabricated the single chip microcontroller 8051 with Harvard architecture. PIC- Programmable Interface Controller is usually referred as PIC. They are slightly older than 8051 microcontrollers but excel cause of their small low pin count devices. They perform well and are affordable. The Microchip technology fabricated the single chip microcontroller PIC with Harvard architecture. The programming part is very tedious and hence it is not recommended for beginners. AVR(Advanced Version RISC) - In 1996, Atmel fabricated this single chip microcontroller with a modified Harvard Architecture. This chip is loaded with C- compiler, Free IDE and many more features. This microcontroller is a bit difficult for the starters to handle. 4.3 DIFFERENCE BETWEEN MICROCONTROLLER AND MICROPROCESSOR:- It is very clear from figure that in microprocessor we have to interface additional circuitry for providing the function of memory and ports, for example we have to interface external RAM for data storage, ROM for program storage, programmable peripheral interface (PPI) 8255 for the Input Output ports, 8253 for timers, Sartor serial port. While in the microcontroller RAM, ROM, I/O ports, timers and serial communication ports are in built. Because of this it is called as “system on chip”. So in micro-controller there is no necessity of additional circuitry which is interfaced in the microprocessor because memory and input output ports are inbuilt in the microcontroller. Microcontroller gives the satisfactory performance for small applications. But for large applications the memory requirement is limited because only 64 KB memory is available for program storage. So for large applications we prefer microprocessor than microcontroller due to its high processing speed. [15]
  • 16. 4.4 PIN DIAGRAM OF 8051:- Pins 1-8 (Port 1) - Each of these pins can be configured as an input or an output. Pin 9 (Reset) - A logic one on this pin disables the microcontroller and clears the contents of most registers. In other words, the positive voltage on this pin resets the microcontroller. By applying logic zero to this pin, the program starts execution from the beginning. Pins 10- 17 (Port 3) -Similar to port 1, each of these pins can serve as general input or output. Besides, all of them have alternative functions: Pin 10 (RXD) - Serial asynchronous communication input or Serial synchronous communication output. Pin 11(TXD) - Serial asynchronous communication output or Serial synchronous communication clock output. Pin 12 (INT 0) - Interrupt 0 input. [16]
  • 17. Pin 13(INT 1) - Interrupt 1 input. Pin 14(T0) - Counter 0 clock input. Pin 15(T1) - Counter 1 clock input. Pin 16(WR) -Write to external (additional) RAM. Pin 17 (RD) -Read from external RAM. Pin 18 and 19(X1, X2) - Internal oscillator input and output. A quartz crystal which specifies operating frequency is usually connected to these pins. Instead of it, miniature ceramics resonators can also be used for frequency stability. Later versions of microcontrollers operate at a frequency of 0 Hz up to over 50 Hz. Pin 20 (GND) - Ground. Pin 21-28 (Port 2) - If there is no intention to use external memory then these port pins are configured as general inputs/outputs. In case external memory is used, the higher address byte, i.e. addresses A8A15 will appear on this port. Even though memory with capacity of 64Kb is not used, which means that not all eight port bits are used for its addressing, the rest of them are not available as inputs/outputs. Pin 29 (PSEN) - If external ROM is used for storing program then a logic zero (0) appears on it every time the microcontroller reads a byte from memory. Pin 30 (ALE) - Prior to reading from external memory, the microcontroller puts the lower address byte (A0-A7) on P0 and activates the ALE output. After receiving signal from the ALE pin, the external register memorizes the state of P0 and uses it as a memory chip address. Immediately after that, the ALU pin is returned its previous logic state and P0 is now used as a Data Bus. As seen, port data multiplexing is performed by means of only one additional (and cheap) integrated circuit. In other words, this port is used for both data and address transmission. Pin 31 (EA) - By applying logic zero to this pin, P2 and P3 are used for data and address transmission with no regard to whether there is internal memory or not. It means that even there is a program written to the microcontroller, it will not be executed. Instead, the program written to external ROM will be executed. By applying logic one to the EA pin, the microcontroller will use both memories, first internal then external (if exists). Pin 32-39 (Port 0) - Similar to P2, if external memory is not used, these pins can be used as general inputs/outputs. Otherwise, P0 is configured as address output (A0-A7) when the ALE pin is driven high (1) or as data output (Data Bus) when the ALE pin is driven low (0). Pin 40 (Vcc) - +5V power supply. [17]
  • 18. 4.5 MICROCONTROLLER 8051 ARCHITECTURE It is 8-bit microcontroller, means MC 8051 can Read, Write and Process 8 bit data. This is mostly used microcontroller in the robotics, home appliances likemp3 player, washing machines, electronic iron and industries. Mostly used blocks in the architecture of 8051 are as follows: Address bus-For a device (memory or I/O) to be recognized by the CPU, it must be assigned an address. The address assigned to a given device must be unique. The CPU puts the address on the address bus, and the decoding circuitry finds the device. Data bus-The CPU either gets data from the device or sends data to it. Control bus-Provides read or write signals to the device to indicate if the CPU is asking for information or sending it information . [18]
  • 19. 4.6 Memory and Registers The 8051 microcontroller has a total of 256 bytes of RAM in which 128 is visible or useraccessible and extra 128 is for special function registers. The user accessible RAM is used for temporary data storage. The user accessible RAM is from the address range 00 to 7Fh.From the user accessible RAM, 32 bytes of RAM is used for registers and rest for Stack operations. The 32 Bytes of RAM is divided into four register Banks i.e. Bank0, Bank 1, Bank 2, Bank3. Each of these banks have 8 Registers i.e. R0 to R7 each. RAM locations from 0 to 7 are set aside for bank 0 of R0 – R7 where R0 is RAM location 0, Rl is RAM location 1, and R2 is location 2, and so on, until memory location 7, which belongs to R7 of bank 0. 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. Generally for normal operations, Register bank Bank0 is set by default. But we can switch to other banks by using PSW Commands. [19]
  • 20. SFRs (Special Function Register) - These Registers are in extra 128 bytes of the memory. This part of memory is not user accessible and these registers are used for special purposes. These registers range from 80h to FFh. There are a total of only 21 SFRs in this range and all other addresses from 80h to FFh are invalid and there use can cause errors and not valuable results. Some of the SFRs are TCON, SBUF, ACC, B, SCON, TMOD SP, P0, PSW, TL0, and TL1. These all the registers have some specific function that has to be performed after they are programmed. Byte Addressable SFR with byte address SP – Stack printer – 81H DPTR – Data pointer 2 bytes DPL – Low byte – 82H DPH – High byte – 83H TMOD – Timer mode control – 89H TH0 – Timer 0 Higher order bytes – 8CH TL0 – Timer 0 Low order bytes – 8AH TH1 – Timer 1 High bytes = 80H TL1 – Timer 1 Low order byte = 86H SBUF – Serial data buffer = 99H PCON – Power control – 87H. DPTR - Data Pointer in 8051 16 bit register; it is divided into two parts DPH and DPL. DPH for Higher order 8 bits, DPL for lower order 8 bits. DPTR, DPH, DPL these all are SFRs in 8051. [20]
  • 21. 4.7 Timers and Counters: The 8051 has two timers T0 and T1, which may be configured and used individually. The 8052 has an additional Timer T2.All these counters count up on negative going edges at their inputs. These can be used as event counters (where they count the number of negative transitions on a pin connected to some external source), or as Timers, where they count up once every twelfth clock cycle. A special use of timers is for generating baud rates for the serial port. The usage of these timers is somewhat different from common general purpose timer/counters such as the 8253 and 8254. This difference stems partly from the fact that we cannot afford to have a large numbers of pins dedicated to the functioning of these timer counters. Thus, just two multifunction pins are used as external inputs in 8051. Gating is accomplished by control bits in the special function registers, and using the external interrupt pins as gate inputs. There are no output pins associated with the timers. The processor can be interrupted by the timers and as a part of the interrupt service routine, the processor can performing IO function through its ports. When used as baud rate generators, the output goes directly to the serial port hardware within the microcomputer. 8051 timers always count up. Each counter has a 16 bit count register in the SFR area. The low and high count bytes rolls can over from be the accessed maximum as count separate to 0000, bytes. they set When the their corresponding timer flag (TF1 or TF0) in TCON. The 8051 can be set up so that an interrupt occurs whenever TF1 or TF0 is set. when 8051 branches to the interrupt vector, it automatically clears the TF flag. Timer means which can give the delay of particular time between some events. For example on or off the lights after every 2 sec. This delay can be provided through some assembly program but in microcontroller two hardware pins are available for delay generation. These hardware pins can be also used for counting some external events. How much times a number is repeated in the given table is calculated by the counter. • In MC8051, two timer pins are available T0 and T1, by these timers we can give the delay of particular time if we use these in timer mode. • We can count external pulses at these pins if we use these pins in counter mode. • 16 bits timers are available. Means we can generate delay between 0000H [21]
  • 22. to FFFFH. • Two special function registers are available. • In the same way for T1. • TMOD, TCON registers are used for controlling timer operation. Basic registers of the timer Timer 0 and Timer 1 are 16 bits wide each 16-bit timer is accessed as two separate registers of low byte and high byte. Timer 0 registers low byte register is called TL0 (Timer 0 low byte) and the high byte register is referred to as TH0 (Timer 0 high byte) can be accessed like any other register, such as A, B, R0, R1, R2, etc. "MOV TL0, #4 FH" moves the value 4FH into TL0 "MOV R5, TH0" saves TH0 (high byte of Timer 0) in R5 Timer 1 registers also 16 bits split into two bytes TL1 (Timer 1 low byte) and TH1 (Timer 1 high byte) accessible in the same way as the registers of Timer 0. TMOD (timer mode) register timers 0 and 1 use TMOD register to set operation modes (only learn Mode 1 and 2) 8-bit register lower 4 bits are for Timer 0 [22]
  • 23. upper 4 bits are for Timer 1 lower 2 bits are used to set the timer mode (only learn Mode 1 and 2) upper 2 bits to specify the operation (only learn timer operation) Clock source for timer timer needs a clock pulse to tick if C/T = 0, the crystal frequency attached to the 8051 is the source of the clock for the timer frequency for the timer is always 1/12th the frequency of the crystal attached to the 8051 XTAL = 11.0592 MHz allows the 8051 system to communicate with the PC with no errors In our case, the timer frequency is 1MHz since our crystal frequency is 12MHz Using Windows calculator to find TH, TL Windows scientific calculator can be use to find the TH, TL values Lets say we would like to find the TH, TL values for a time delay that uses 35,000 clocks of 1.085ms open scientific calculator and select decimal [23]
  • 24. enter 35,000 select hex - converts 35,000 to hex 88B8H select +/- to give -35000 decimal (7748H) the lowest two digits (48) of this hex value are for TL and the next two (77) are for TH C/T bit in TMOD register used as a timer, the 8051's crystal is used as the source of the frequency used as a counter, pulse outside the 8051 increments the TH, TL registers counter mode, TMOD and TH, TL registers are the same as for the timer timer modes are the same as well C/T bit in TMOD register C/T bit in the TMOD register decides the source of the clock for the timer C/T = 0, timer gets pulses from crystal C/T = 1, the timer used as counter and gets pulses from outside the 8051 C/T = 1, the counter counts up as pulses are fed from pins 14 and 15 pins are called T0 (Timer 0 input) and T1 (Timer 1 input) these two pins belong to port 3 Timer 0, when C/T = 1, pin P3.4 provides the clock pulse and the counter counts up for each clock pulse coming from that pin Timer 1, when C/T = 1 each clock pulse coming in from pin P3.5 makes the counter count up [24]
  • 25. TCON register TR0 and TR1 flags turn on or off the timers bits are part of a register called TCON (timer control) upper four bits are used to store the TF and TR bits of both Timer 0 and Timer 1 lower four bits are set aside for controlling the interrupt bits "SETB TRl" and "CLR TRl“ "SETB TCON. 6" and "CLR TCON. 6“ Timer Functions When used as timers, the 8051 timers count up every 12th clock cycle. This is selected by clearing the corresponding C/T flags in the TMOD special function register, placed at the address 89H. [25]
  • 26. Timer modes The timers may operate in one of four modes: Mode 0 In this mode, the timers act as 13 bit counters. This mode is largely meant for providing compatibility with an older microcontroller from Intel(8048). This mode is practically never used in fresh designs. Except for the counter size, this mode is identical to mode 1. Mode 1 In this mode, the timers are 16 bits in size. This is a commonly used mode. It is common to configured the timer to cause an interrupt when it overflows. The interrupt routine then reloads the timer. Mode 2 This mode provides an 8 bit counter with auto-reload. It uses the high byte of the count register to store the count value and the low byte as the actual counter. The counter is automatically re-loaded from TH when it overflows. Thus, there is no software overhead for re-loading the registers. This is convenient for generating baud rates etc. The timing resolution is much lower in this mode (only 8 bits). Therefore crystal frequencies have to be carefully chosen to generate accurate baud rates. Crystals of 11.059MHz are often used rather than 12 MHz for this reason. Mode 3 In this mode Timers T0 and T1 behave quite divergently. T0 acts as two independent 8 bit counters. Count register TL0 uses the resources (such as the RUN flag, overflows flag) in TCON, TMOD etc. meant for T0. Similarly,TH0 uses the resources meant for T1. Thus, TR1 will enable running the 8 bit counter made up of TH0. TF1 will be set whenever TH0 overflows.T1 now has no control bits at all! It can only be used for services which require no control, no gating and no interrupts. Thus, T1 can be used for Baud rate generation, while we still have two timers available (both with 8 bit resolution). Serial Port • There are two pins available for serial communication TXD and RXD. • Normally TXD is used for transmitting serial data which is in SBUF register, RXD is used for receiving the serial data. • SCON register is used for controlling the operation. • There are four modes of serial communication which has been discussed in next chapter. [26]
  • 27. OSSCILLATORS It is used for providing the clock to MC8051 which decides the speed orbaud rate of MC. We use crystal which frequency vary from 4MHz to 30 MHz, normally we use 11.0592 MHz frequency. INTERRUPTS Interrupts are defined as requests because they can be refused (masked) if they are not used, that is when an interrupt is acknowledged. A special set of events or routines are followed to handle the interrupts. These special routines are known as interrupt handler or interrupt service routines (ISR). These are located at a special location in memory. INT0 and INT1 are the pins for external interrupts. [27]
  • 28. ARCHUTECTURE OF 8051:- ALU Arithmetic Logical Unit: This unit is used for the arithmetic calculations. Accumulator: This register is used for arithmetic operations. This is also bit addressable and 8 bit register. B-Register: This register is used in only two instructions MUL AB and DIV AB. This is also bit addressable and 8 bit register. PC-Program Counter • Points to the address of next instruction to be executed from ROM • It is 16 bit register means the 8051 can access program address from 0000H to FFFFH. A total of 64KB of code. 16 bit register means. [28]
  • 30. 5.PROGRAMMING AND INTERFACING:5.1 INPUT DEVICES INTERFACING 5.1.1 SWITCH Fig-2.1-Various Types Of Switches Fig. 1 Switches are used to open/close a circuit Fig. 2  S1 is a "single pole on/off" switch in the off position Fig. 3 This is a "2 pole on/off" switch which completely isolates the lamp from the supply in the off position. This may be important if it is a high voltage supply. The dotted line indicates that S1a and S1b are part of the same switch "ganged" together and operate simultaneously. Fig. 4 This is a "single pole changeover" switch. Either lamp 1 or lamp 2 is on. Fig. 5this is a "2 pole changeover" switch. The unlit lamp is completely isolated from the supply. Again S1a and S1b are part of the same switch Fig. 6this is a "single pole 5 way" switch. It can select 1 of 5 circuits. You can have 2p 5w, 3p 4w etc Fig. 8 This is a "changeover" slide switch. When operated a-b opens and b-c closes [30]
  • 31. 1 INTERFACING WITH AT89S52In 8051 PORT 1, PORT 2 & PORT 3 have internal 10k Pull-up resistors whereas this Pull-up resistor is absent in PORT 0. Hence PORT 1, 2 & 3 can be directly used to interface a switch whereas we have to use an external 10k pull-up resistor for PORT 0 to be used for switch interfacing or for any other input. Figure 2.2 shows switch interfacing for PORT 1, 2 & 3. Figure 2.3 shows switch interfacing to PORT 0. Fig 2.2 - Switch Interfacing For Port 1, 2 & 3 For any pin to be used as an INPUT PIN a HIGH (1) should be written to the pin if you don’t do this the pin will always be read as LOW.In the above figure when the switch is not pressed the 10k resistor provides the current needed for LOGIC 1 closure of switch provides LOGIC 0 to the controller PIN.Let's write a small program where whenever a switch is pressed a LED is turned ON. Consider that switch is connected to P2.0 & an LED connected to P2.1. Program of switch interfacingMain() { P2_0==1; SETB P2_1==0; While(1) { If(P2_0==0) { P2_1==1; } Else { P2_1==0; } } [31]
  • 32. OUTPUT DEVICES INTERFACING 5.2.1 LED INTERFACING C CODE FOR BLINKING LEDS CONNECTED ON PORT2: #include<at89s8252.h> void delay(unsigned int i); void main(void) { While(1) { P2=0x00; Delay(0xffff); P2=0x00; Delay(0xff); } } void delay(unsigned int i) { while(i!=0) { i--; } } Fig:-3.1-Hardware Interfacing Of Led With At89s52 [32]
  • 33. 3.1.2 C CODE FOR RUNNING LED CONNECTED ON PORT2: #include<at89s8252.h> void delay(unsigned int i); void main () { P0=0x00; while (1) { delay(0xffff); P2_0=1; delay(0xffff); P2_0=0; P2_1=1; delay(0xffff); P2_1=0; P2_2=1; delay(0xffff); P2_2=0; P2_3=1; delay(0xffff); P2_3=0; P2_4=1; delay(0xffff); P2_4=0; P2_5=1; delay(0xffff); P2_5=0; P2_6=1; delay(0xffff); P2_6=0; P2_7=1; delay(0xffff); P2_7=0; P2_0=1 } }void delay(unsigned int i) { while (i!=0) { i--; } } [33]
  • 34. 5.2.2 LCD(JHD162A) INTERFACING: On most displays, the pins are numbered on the LCD’s printed circuit board, but if not, it is quit easy to locate pin1. Since the pin is connected to ground, it often has a thicker PCB track connected to it, and it is generally connected to the metal work at some point. Fig:-3.2-Jhd162a LCD(16x2) Three command control inputs. When this line is low, data bytes transferred to the display are treated as commands, and data bytes read from the display indicate its status. By setting the RS line high, character data can be transferred to and from the module. Pin 5 is (R/W) line. This line is pulled low in order to write commands or character data to the module, or pulled high to read character data or status information from its registers. Pin 6 is Enable (E) line. This input is used to initiate the actual transfer of commands or character data between the module and the data lines. When writing to the display, data is transferred only on the high to low transition of this signal. However, when reading from the display, data will become available shortly after the low to high transition and remain available until the signal falls low again C CODE FOR LCD DISPLAY //Program to study basics of LCD #include"AT89S8252.h" //macro directives of LCD #define LCD P1 #define RS P3_3 #define EN P3_4 //prototyping various functions of LCD void delay(unsigned int d); void lcd_cmd(unsigned char c); void lcd_init(void); void cursor_position(unsigned char p); void display(unsigned char h); //program to display character 'A' void main() { [34]
  • 35. lcd_init(); cursor_position(0); display('A'); } //defining delay function void delay(unsigned int d) { while(d!=0) d--; } //subprogram to send various commands to LCD void lcd_cmd(unsigned char c) { delay(300); LCD=c; RS=0; EN=1; EN=0; } //subprogram too initialize LCD void lcd_init(void) { lcd_cmd(0x01); lcd_cmd(0x38); lcd_cmd(0x0C); } //subprogram to set cursor position void cursor_position(unsigned char p) { lcd_cmd(0x80+p); } //subprogram to display data on LCD void display(unsigned char h) { delay(300); LCD=h; RS=1; EN=1; EN=0; } [35]
  • 36. C CODE FOR STRING DISPLAY ON LCD: void main() { while(1) { unsigned char name[]={"hello&"}; unsigned char group[]={"Group 3&"}; lcd_init(); cursor_position(0); string_display(name); cursor_position(40); //to display string on second row of LCD string_display(group); } } //function to display string void string_display(unsigned char *s) { while(*s!='&') { display(*s); delay(0xffff); s++; } } [36]
  • 37. 5.2.3 SEVEN SEGMENT DISPLAY The 7 segment display is used as a numerical indicator on many types of test equipment. Fig:-3.4-Basic Diagram Of A Seven Segment Display It is an assembly of light emitting diodes which can be powered individually. They most commonly emit red light. They are arranged and labeled as shown in the figure 3.4. Powering all the segments will display the number 8. Powering a,b,c d and g will display the number 3. Numbers 0 to 9 can be displayed. The d.p represents a decimal point. The one shown is a common anode display since all anodes are joined together and go to the positive supply. The cathodes are connected individually to zero volts. Resistors must be placed in series with each diode to limit the current through each diode to a safe value. Early wrist watches used this type of display but they used so much current that the display was normally switched off. To see the time you had to push a button. Common cathode displays where all the cathodes are joined are also available. Liquid crystal displays do a similar job and consume much less power. Alphanumeric displays are available which can show letters as well as numbers C CODE TO INTERFACE SEVEN SEGMENT WITH AT89S52 AND DISPLAY NUMBERS 0 TO 99 #include"at89s8252.h" void delay(unsigned int d); void bcd(unsigned int x); void main() { unsigned char i; while(1) { for(i=0;i<100;i++) { [37]
  • 38. bcd(i); } } } void delay(unsigned int d) { while(d!=0) { d--; } } 5.2.4 RELAY INTERFACING The electromagnetic relay consists of a multi-turn coil, wound on an iron core, to form an electromagnet. When the coil is energised, by passing current through it, the core becomes temporarily magnetised. Fig:-3.5-Basic Relay Circuit The magnetized core attracts the iron armature. The armature is pivoted which causes it to operate one or more sets of contacts. When the coil is de-energized the armature and contacts are released. The coil can be energized from a low power source such as a transistor while the contacts can switch high powers such as the mains supply. The relay can also be situated remotely from the control source. Relays can generate a very high voltage across the coil when switched off. This can damage other components in the circuit. To prevent this a diode is connected across the coil. The cathode of the diode is connected to the most positive end of the coil. [38]
  • 39. Fig:-3.6-Basic Relay Leads The spring sets (contacts) can be a mixture of normally open , normally closed and change over.The actual contact points on the springsets are available for high current and low current operation. Relays are devices which allow low power circuits to switch a relatively high Current/Voltage ON/OFF. For a relay to operate a suitable pull-in & holding current should be passed through its coil. Generally relay coils are designed to operate from a particular voltage often its 5V or 12V. The function of relay driver circuit is to provide the necessary current (typically 25 to 70ma) to energize the relay coil. Fig:-3.7- Basic Relay Interfacing With At89s8252 Figure 3.7 shows the basic relay driver circuit. As you can see an NPN transistor BC547 is being used to control the relay. The transistor is driven into saturation (turned ON) when a LOGIC 1 is written on the PORT PIN thus turning ON the relay. The relay is turned OFF by writing LOGIC 0 on the port pin. [39]
  • 40. 5.2.5 MOTORS INTERFACING 4.1 L293D DUAL H-BRIDGE MOTOR DRIVER L293D is a dual H-Bridge motor driver, So with one IC we can interface two DC motors which can be controlled in both clockwise and counter clockwise direction and if you have motor with fix direction of motion the you can make use of all the four I/Os to connect up to four DC motors. L293D has output current of 600mA and peak output current of 1.2A per channel. Moreover for protection of circuit from back EMF output diodes are included within the IC. The output supply (VCC2) has a wide range from 4.5V to 36V, which has made L293D a best choice for DC motor driver. . Fig 4.1- Interfacing A Dc Motor Using L293d As you can see in the circuit, three pins are needed for interfacing a DC motor (A, B, Enable). If you want the o/p to be enabled completely then you can connect Enable to VCC and only 2 pins needed from controller to make the motor work. As per the truth mentioned in the image above its fairly simple to program the microcontroller. Its also clear from the truth table of BJT circuit and L293D the programming will be same for both of them, just keeping in mind the allowed combinations of A and B. We will discuss about programming in C as well as assembly for running motor with the help of a microcontroller . [40]
  • 41. C CODE FOR INTERFACING STEPPER MOTOR #include<8051.h> #define s4 P0_0 #define s2 P0_1 #define s3 P0_2 #define s1 P0_3 void delay(unsigned int a); void full_stepping(void); void main() { P0=0x00; while(1) { full_stepping(); } } void full_stepping(void) { s1=1;s2=1;s3=0;s4=0; delay(1500); s1=0;s2=1;s3=1;s4=0; delay(1500); s1=0;s2=0;s3=1;s4=1; delay(1500); s1=1;s2=0;s3=0;s4=1; delay(1500); } void delay(unsigned int a) { while(a!=0) { a--; } } [41]
  • 42. 5.2.6 INTERFACING CONVERTERS (ADC) 5.1 ADC-0804 INTERFACING WITH AT89S52: The ADC0804 family is CMOS 8-Bit, successive-approximation A/D converters which use a modified potentiometer ladder and are designed to operate with the 8080A control bus via three-state outputs. These converters appear to the processor as memory locations or I/O ports, and hence no interfacing logic is required. The differential analog voltage input has good common mode- rejection and permits offsetting the analog zero-input voltage value. In addition, the voltage reference input can be adjusted to allow encoding any smaller analog voltage span to the full 8 bits of resolution. 5.1.1 Features • 80C48 and 80C80/85 Bus Compatible - No Interfacing Logic Required • Conversion Time < 100us • Easy Interface to Most Microprocessors • Differential Analog Voltage Inputs • TTL Compatible Inputs and Outputs • On-Chip Clock Generator • 0V to 5V Analog Voltage Input Range (Single + 5V Supply) • No Zero-Adjust Required 5.1.2 ADC-0804 PIN DIAGRAM Fig.-5.1-adc-0804 pin diagram [42]
  • 43. Hardware interfacing of ADC-0804 CON16_0 VCC VCC 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 LCD C13 104 RS EN R55 56E R2 10K 11 30 29 16 10 17 40 2 R6 220E 20 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 21 22 23 24 25 26 27 28 P3.1/TXD ALE/PROG 15 PSEN P3.5/T1 P3.6/WR P3.2/INT0 12 P3.0/RXD P3.7/RD 18 17 16 15 14 13 12 11 EOC 5 SOC DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 +IN -IN VREF/2 CLKR CLKIN INTR CS RD WR C9 CAP 3 U4 ADC0804 1 6 7 R5 10K 2 VCC P0.7/AD7 P0.6/AD6 P0.5/AD5 P0.4/AD4 P0.3/AD3 P0.2/AD2 P0.1/AD1 P0.0/AD0 AT89S8252 VCC VCC P3.3/INT1 P3.4/T0 VCC/VREF 32 33 34 35 36 37 C6 38 10uF 16V 39 1 VCC GND VCC 13 14 VCC R53 1k AGND RS EN RST GND OUTPUT 8 9 1 2 3 4 5 6 7 8 U21 TL431 C14 1uf /16v 9 19 4 C8 1uf /16v 1 2 3 10 C5 XTAL1 XTAL2 P1.0/T2 P1.1/T2-EX P1.2 P1.3 P1.4/SS P1.5/MOSI P1.6/MISO P1.7/SCK GND 33pF 19 18 U22 LM35/SO 3 20 3 EA/VPP 4 12 33pF C4 Y2 31 VCC CRY STAL U2 R17 10K C7 150pF Temprature monitoring system Fig.-5.2- hardware interfacing of adc-0804 for temperature monitoring When interfacing is being done then gets lowered then only it allows the controller to read the data, otherwise controller can not read the data. is always grounded. is software controlled. C- CODE FOR TEMPERATURE MONITORING SYSTEM #include <at89s8252.h> #define SOC P3_2 #define EOC P3_5 unsigned char read_adc(void); void disp_dec(unsigned int digit); code unsigned char table[16]={'0','1','2','3','4','5','6','7','8','9'}; void main(void) { unsigned char e; P2=0xff; Init_lcd(); while(1) { [43]
  • 44. cursor_position(0x00); e=read_adc(); disp_dec(e); } } unsigned char read_adc(void) { unsigned char n; SOC=0; SOC=1; while(EOC==1) { n=P2; } return n; } void disp_dec(unsigned int digit) { unsigned int temp; if(digit<100) { temp=digit/10; display(table[temp]); temp=digit-temp*10; display(table[temp]); } if(digit>99 && digit<1000) { temp=digit/100; display(table[temp]); digit=digit-(temp*100); temp=digit/10; display(table[temp]); digit=digit-(temp*10); temp=digit; display(table[temp]); } [44]
  • 45. 5.2.7 COMMUNICATION 6.1 Serial communication between At89s52 and PC 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. 6.1.1 SETTING THE SERIAL PORT MODE 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: Bit Name Bit Address Explanation of Function 7 SM0 9Fh Serial port mode bit 0 6 SM1 9Eh Serial port mode bit 1. 5 SM2 9Dh Mutliprocessor Communications Enable (explained later) 4 REN 9Ch 3 TB8 9Bh Transmit bit 8. The 9th bit to transmit in mode 2 and 3. 2 RB8 9Ah Receive bit 8. The 9th bit received in mode 2 and 3. 1 TI 99h Transmit Flag. Set when a byte has been completely transmitted. 0 RI 98h Receive Flag. Set when a byte has been completely received. Receiver Enable. This bit must be set in order to receive characters. Table 6.1-Scon Register [45]
  • 46. SERIAL TRANSMISSION INTERFACING 12 13 14 15 40 VCC XTAL1 XTAL2 RST P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 VCC 1 2 3 4 5 6 7 8 P3.7/RD P1.0/T2 P3.6/WR P1.1/T2-EX PSEN P1.2 ALE/PROG P1.3 P3.1/TXD P1.4/SS P3.0/RXD P1.5/MOSI P1.6/MISO P1.7/SCK AT89S8252 GND R4 10K 17 16 29 30 11 10 U6 C23 104 VCC 11 12 7 8 C20 10UF/16V 1 3 2 VCC T1IN R1OUT J7 R1IN T1OUT T2OUT R2IN T2IN C1+ C1V+ C21 10UF/16V 20 C18 10uF 16V 21 22 23 24 25 26 27 28 16 9 39 38 37 36 35 34 33 32 VCC 19 18 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 R2OUT GND 3 C17 C19 104 15 12 Y4 4 33pF EA/VPP CRY STAL U5 33pF C16 31 VCC VCC C2+ C2V- 13 14 10 SPT TXD 1 2 3 SPT RXD SERIAL PORT OF PC C24 10UF/16V 9 4 5 6 C22 MAX232 10UF/16V Fig.7.1-Max232 Interfacing With At89s52 For Serial Transmission C- CODE FOR SERIAL TRANSMISSION(FROM MICROCONTROLLER TO PC) #include<at89s8252.h> void Init_SPT(void); void transmit_serial(unsigned char a); void delay(unsigned int i); void main(void) { Init_SPT(); while(1) { delay(0XFFFF); transmit_serial('N'); delay(0XFFFF); transmit_serial('E'); delay(0XFFFF); transmit_serial('T'); delay(0XFFFF); transmit_serial('M'); delay(0XFFFF); [46]
  • 48. ELECTRONIC VOTING MACHINE USING 8051 MICROCONTROLLER List of Contents Abstract 50 1. Background 51 2. Microcontroller 56 2.1 Introduction 56 2.2 History 56 2.3 Definition of a Microcontroller 58 2.4 Microcontrollers vs Microprocessors 58 2.5 Memory Unit 58 2.6 Central Processing Unit 59 2.7 Bus 59 2.8 Input Output Unit 59 2.9 Serial Communication 60 2.10 Timer Unit 60 2.11 Watch Dog 61 2.12 Analog to Digital Converter 61 3. Introduction to 16X2 LCD Display 63 3.1 Pin description 63 3.2 DDRAM - Display Data RAM 64 3.3 BF - Busy Flag 64 3.4 Instruction Register (IR) and Data Register (DR) 64 3.5 Commands and Instruction set 64 3.6 Sending Commands to LCD 64 4. Project Description 65 4.1 Block diagram 65 4.2 General working 65 4.3 C language code 68 [48]
  • 49. 5. Project Methodology 72 5.1 Components 72 5.2 Software used 72 5.3 Equipments used 72 6. Result and Conclusion 73 7. Applications 73 8. Future Scope 73 9. References and Bibliography 74 [49]
  • 50. ABSTRACT India is world’s largest democracy. It is perceived to be charismatic one as it accommodates cultural, regional, economical, social disparities and still is able to stand on its own. Fundamental right to vote or simply voting in elections forms the basis of Indian democracy. In India all earlier elections be it state elections or centre elections a voter used to cast his/her vote to his/her favorite candidate by putting the stamp against his/her name and then folding the ballot paper as per a prescribed method before putting it in the Ballot box. This is a long, timeconsuming process and very much prone to errors. This situation continued till election scene was completely changed by electronic voting machine. No more ballot paper, ballot boxes, stamping, etc. all this condensed into a simple box called ballot unit of the electronic voting machine. EVM is capable of saving considerable printing stationery and transport of large volumes of electoral material. It is easy to transport, store, and maintain. It completely rules out the chance of invalid votes. Its use results in reduction of polling time, resulting in fewer problems in electoral preparations, law and order, candidates expenditure, etc. and easy and accurate counting without any mischief at the counting centre. It is also eco friendly. Our EVM consists of one microcontroller AT89S52. The unit consists of one LCD, 6 push buttons, couple of switches, an LED and a buzzer, etc. The port 0 of microcontroller is used for interfacing the led, port 2 is used for control switches, port 3 is used for Interfacing push buttons for voting. [50]
  • 51. BACKGROUND Democracy and Voting Democracy has come to be accepted as the most preferred form of political system all over the world. However, the success of a democratic structure is to be judged by the successes that can be solely attributed to this system. There are various challenges before democracy. These are foundational challenges, challenge of expansion and deepening of democracy. All of these are dependent on how the democracy is perceived by people who form the government, participate in formation of government and are benefited by it. As we all know that India is world’s largest democracy. It is perceived to be charismatic one as it accommodates cultural, regional, economical, social disparities and still is able to stand on its own. India follows a federal form of government. It means that governance power is not residing with one authority, but is distributed at various levels. In India power is distributed between states and central authority. What forms the basis of such vast and complex system of governance? One needs not to be an Einstein to guess the answer. It is fundamental right to vote or simply voting in elections. Indian constitution provide every adult above the age of 18 years irrespective of his/her religion, region, caste, creed, color, economic status, education and sex the essential right to vote and elect her/his candidate to represent her/him. Hence voting can be termed as backbone of not just democracy in India but all around the world. Voting can be done in various ways. In early Roman Empire voting used to be done by raising hands in favor or against. In board rooms voting is done in similar way, some write their vote down, some choose to speak, some choose to cast vote using latest technology. Voting Techniques In India all earlier elections be it state elections or centre elections a voter used to cast his/her vote to his/her favorite candidate by putting the stamp against his/her name and then folding the ballot paper as per a prescribed method before putting it in the Ballot box. This is a long, time-consuming process and very much prone to errors. This method wanted voters to be skilled voters to know how to put a stamp, and methodical folding of ballot paper. Millions of paper would be printed and heavy ballot boxes would be loaded and unloaded to and from ballot office to polling station. All this continued till election scene was completely changed by electronic voting machine. No more ballot paper, ballot boxes, stamping, etc. all this condensed into a simple box called ballot unit of the electronic voting machine. [51]
  • 52. The marking system of voting was introduced in 1962 to make it possible for a substantial number of illiterate voters to indicate easily their preferences in choosing their representatives. Over the years, there was a pronounced increase in the volume of work: crores of ballot papers had to be printed and lakhs of ballot boxes had to be prepared, transported, and kept in storage; and a great amount of time was taken up by the conduct of elections. To overcome these difficulties, the Election Commission of India (ECI) thought of Hyderabad, electronic and gadgets. Bharat The Electronics Electronics Ltd. (BEL), Corporation Bangalore, of India developed Ltd. the (ECIL), electronic voting machine in 1981. The Electronic Voting Machine The complete EVM consists mainly of two units - (a) Control Unit and (b) Balloting Unit with cable for connecting it with Control unit. A Balloting Unit caters upto 16 candidates. Four Balloting Units linked together catering in all to 64 candidates can be used with one control unit. The control unit is kept with the Presiding Officer and the Balloting Unit is used by the voter for polling. The Balloting Unit of EVM is a small Box-like device, on top of which each candidate and his/her election symbol is listed like a big ballot paper. Against each candidate's name, a red LED and a blue button is provided. The voter polls his vote by pressing the blue button against the name of his desired candidate. How the Vote is cast with this EVM? The entire process is very easy to understand: • Like in earlier system, your name is called and you are asked to sign or put your thumb impression in a register. • After your identification is done by Election Officer, an ink mark is put on your finger, same as earlier. • Then the Election Officer gives you a slip that bears the Voter register number where you signed or put your thumb impression. • You hand over this slip to the presiding officer who confirms the serial number and permits you to vote by pressing the button of the Control Unit of EVM. • You are not given any ballot thereafter, and are sent to the EV Machine placed behind a card board in a corner. The machine is placed in such a way that your polled vote will be a secret. On the Balloting Unit of EVM, you press the button placed in front of your favorite candidate and release. [52]
  • 53. Compare and Contrast: Paper Voting and EVM We have so far discussed three different voting systems. These systems are being used or considered obsolete because of certain positive and negative points. These are summarized as follows: Device type Ballot paper : Papers and boxes EVM : Embedded system with Assembly code Visual Output Ballot paper : Stamp on paper EVM : Single LED against each candidate's name Operating System/ Software Ballot paper : No operating system EVM : None, the Assembly code to register number of votes is all it has Hence it is simple automation of voting, no complexities. Records/ Audits Ballot paper : Manual counting to be done by officials, lengthy, time consuming Process. Inaccurate due to human errors. EVM : The Voting unit doesn't store anything, the control unit records the number of votes cast for each candidate against his serial number. No record to link person-to-vote. Control and Operation Ballot paper: Manual operation EVM : Automatic operation. The control Unit accumulates the votes, it is a device with flash storage and seven segment LED displays. The ballot unit has a button to issue a ballot for a voter. Security Issues Ballot paper : No security provided by the system, neither during polling nor during voting. EVM : During polling, a facility is provided to seal the machine in case of booth capturing. No further voting can be done afterwards. Ballot Issue Ballot paper : Ballot paper is issued by Electoral officer on which voter could cast his vote. EVM : Ballot is issued by Electoral officer by pressing a button on the control Unit. It allows the voter to press any button on the ballot unit to cast his vote. [53]
  • 54. Storage of Votes Ballot paper : In ballot boxes assigned for the purpose of storing votes, highly insecure method of storage. EVM : In Internal Non removable memory of the Control Units. No transfer over network. Security increases with this feature. Moreover these results cant be accessed by authorized personnel only at commissioned offices.. Cost of the System Ballot paper : High cost of paper printing in millions and low speed of the whole process. EVM : About 12000 INR (300$) for one EVM. Power Supply Ballot paper : No power supply required. EVM : 6V alkaline batteries or electricity. Capacity Ballot paper : As much a ballot box can hold. EVM : 3840 Votes . Existing System But this electronic voting machine has its disadvantages too. These areas of deficiency are not much of a concern to a layman, but for an intelligent voter this must be eliminated for a secure election. The few technical disadvantages are given as: • Microprocessor based design, which requires a no. of supporting components like memory, peripheral interface, etc. • No security against illegal viewing of results, as presiding officer can view the results without any difficulty. • Less user friendly due to two seven segment displays • Existing system costs high. Proposed System All these faults motivated us to make this new enhanced EVM. The faults which are eliminated are summarized as follows: • Microcontroller replaced microprocessor, which made the EVM closer to real time operation making it faster, more reliable and unique. • More user friendly and interactive LCD display • Proposed system costs less. [54]
  • 55. • As soon as the button is pressed, the LED indicator lights off and a whistle sound comes from the machine. This signifies that your vote has been casted rightly. Now you can come out. • In case of LED not not being turned off, press the button firmly again. If finding it difficult, consult the Presiding Officer. • Your vote is complete safe and secret and there is no room for error as well. You can rest assured that your vote is not going to be invalid in any case. • The Voting Machine is attached to the 'Control Unit'. When the user presses the button, his vote is registered in the control unit and the number of votes for the respective candidates is calculated automatically. Booth Capture A remarkable advantage is that rigging is not possible with the EVMs. In the ballot paper system, the intruders can mark hundreds of ballots and put them into the ballot box in a matter of a few minutes. This is not possible in voting machines as the machine is designed to cast only one vote and for the next vote to be casted the presiding officer should make it ready by pressing the related button. Thus the presiding officer can have a complete control of voting and avoid any kind of malpractices The EVMs have following advantages: • the saving of considerable printing stationery and transport of large volumes of electoral material, • easy transportation, storage, and maintenance, • no invalid votes, • reduction in polling time, resulting in fewer problems in electoral preparations, law and order, candidates' expenditure, etc. and • easy and accurate counting without any mischief at the counting centre • eco friendly. [55]
  • 56. 2. MICROCONTROLLERS 2.1 Introduction Circumstances that we find ourselves in today in the field of microcontrollers had their beginnings in the development of technology of integrated circuits. This development has made it possible to store hundreds of thousands of transistors into one chip. That was a prerequisite for production of microprocessors, and the first computers were made by adding external peripherals such as memory, input-output lines, timers and other. Further increasing of the volume of the package resulted in creation of integrated circuits. These integrated circuits contained both processor and peripherals. That is how the first chip containing a microcomputer, or what would later be known as a microcontroller came about. 2.2 History It was year 1969, and a team of Japanese engineers from the BUSICOM Company arrived to United States with a request that a few integrated circuits for calculators be made using their projects. The proposition was set to INTEL, and Marcian Hoff was responsible for the project. Since he was the one who has had experience in working with a computer (PC) PDP8, it occurred to him to suggest a fundamentally different solution instead of the suggested construction. This solution presumed that the function of the integrated circuit is determined by a program stored in it. That meant that configuration would be simpler, but that it would require far more memory than the project that was proposed by Japanese engineers would require. After a while, though Japanese engineers tried finding an easier solution, Marcian's idea won, and the first microprocessor was born. In transforming an idea into a ready made product, Frederico Faggin was a major help to INTEL. He transferred to INTEL, and in only 9 months had succeeded in making a product from its first conception. INTEL obtained the rights to sell this integral block in 1971. First, they bought the license from the BUSICOM Company who had no idea what treasure they had. During that year, there appeared on the market a microprocessor called 4004. That was the first 4-bit microprocessor with the speed of 6 000 operations per second. Not long after that, American company CTC requested from INTEL and Texas Instruments to make an 8-bit microprocessor for use in terminals. Even though CTC gave up this idea in the end, Intel and Texas Instruments kept working on the microprocessor and in April of 1972, first 8-bit microprocessor appeared on the market under a name 8008. [56]
  • 57. 2.3 Definition of a Microcontroller Microcontroller, as the name suggests, are small controllers. They are like single chip computers that are often embedded into other systems to function as processing/controlling unit. For example, the remote control you are using probably has microcontrollers inside that do decoding and other controlling functions. They are also used in automobiles, washing machines, microwave ovens, toys ... etc, where automation is needed. The key features of microcontrollers include: • High Integration of Functionality • Microcontrollers sometimes are called single-chip computers because they have on-chip memory and I/O circuitry and other circuitries that enable them to function as small standalone computers without other supporting circuitry. • Field Programmability, Flexibility • Microcontrollers often use EEPROM or EPROM as their storage device to allow field programmability so they are flexible to use. Once the program is tested to be correct then large quantities of microcontrollers can be programmed to be used in embedded systems. • Easy to Use [57]
  • 58. 2.4 Microcontrollers versus Microprocessors Microcontroller differs from a microprocessor in many ways. First and the most important is its functionality. In order for a microprocessor to be used, other components such as memory, or components for receiving and sending data must be added to it. In short that means that microprocessor is the very heart of the computer. On the other hand, microcontroller is designed to be all of that in one. No other external components are needed for its application because all necessary peripherals are already built into it. Thus, we save the time and space needed to construct devices. 2.5 Memory unit Memory is part of the microcontroller whose function is to store data. The easiest way to explain it is to describe it as one big closet with lots of drawers. If we suppose that we marked the drawers in such a way that they cannot be confused, any of their contents will then be easily accessible. It is enough to know the designation of the drawer and so its contents will be known to us for sure. Typically, the amount of ROM type memory will vary between around 512 bytes and 4096 bytes, although some 16 bit microcontrollers such as the Hitachi H8/3048 can have as much as 128 Kbytes of ROM type memory. ROM type memory, as has already been mentioned, is used to store the program code. ROM memory can be ROM (as in One Time Programmable memory), EPROM, or EEPROM. The amount of RAM memory is usually somewhat smaller, typically ranging between 25 bytes to 4 Kbytes. management tasks. RAM is used for data storage and stack It is also used for register stacks (as in the microchip PIC range of microcontrollers). [58]
  • 59. 2.6 Central Processing Unit Let add 3 more memory locations to a specific block that will have a built in capability to multiply, divide, subtract, and move its contents from one memory location onto another. The part we just added in is called "central processing unit" (CPU). Its memory locations are called registers. 2.7 Bus That "way" is called "bus". Physically, it represents a group of 8, 16, or more wires. There are two types of buses: address and data bus. The first one consists of as many lines as the amount of memory we wish to address and the other one is as wide as data, in our case 8 bits or the connection line. First one serves to transmit address from CPU memory, and the second to connect all blocks inside the microcontroller. Figure2.4: Showing connection between memory and central unit using buses 2.8 Input-output unit Those locations we've just added are called "ports". There are several types of ports: input, output or bidirectional ports. When working with ports, first of all it is necessary to choose which port we need to work with, and then to send data to, or take it from the port. 2.9 Serial communication [59]
  • 60. Beside stated above we've added to the already existing unit the possibility of communication with an outside world. However, this way of communicating has its drawbacks. One of the basic drawbacks is the number of lines which need to be used in order to transfer data. What if it is being transferred to a distance of several kilometers? The number of lines times’ number of kilometers doesn't promise the economy of the project. It leaves us having to reduce the number of lines in such a way that we don't lessen its functionality. Suppose we are working with three lines only, and that one line is used for sending data, other for receiving, and the third one is used as a reference line for both the input and the output side. In order for this to work, we need to set the rules of exchange of data. These rules are called protocol. Protocol is therefore defined in advance so there wouldn't be any misunderstanding between the sides that are communicating with each other. For example, if one man is speaking in French, and the other in English, it is highly unlikely that they will quickly and effectively understand each other. Let's suppose we have the following protocol. The logical unit "1" is set up on the transmitting line until transfer begins. Figure2.6: Serial unit sending data through three lines only 2.10 Timer unit Since we have the serial communication explained, we can receive, send and process data. However, in order to utilize it in industry we need a few additionally blocks. One of those is the timer block which is significant to us because it can give us information about time, duration, protocol etc. The basic unit of the timer is a free-run counter which is in fact a register whose numeric value increments by one in even intervals, so that by taking its value during periods T1 and T2 and on the basis of their difference we can determine how much time has elapsed. This is a very important part of the microcontroller whose understanding requires most of ourtime. 2.12 Analog to Digital Converter [60]
  • 61. As the peripheral signals usually are substantially different from the ones that microcontroller can understand (zero and one), they have to be converted into a pattern which can be comprehended by a microcontroller. This task is performed by a block for analog to digital conversion or by an ADC. This block is responsible for converting an information about some analog value to a binary number and for follow it through to a CPU block so that CPU block can further process it. Figure2.9: Block for converting an analog input to digital output Finally, the microcontroller is now completed, and all we need to do now is to assemble it into an electronic component where it will access inner blocks through the outside pins. The picture below shows what a microcontroller looks like inside. Figure2.10: Physical configuration of the interior of a microcontroller Thin lines which lead from the center towards the sides of the microcontroller represent wires connecting inner blocks with the pins on the housing of the microcontroller so called bonding lines. Chart on the following page represents the center section of a microcontroller. [61]
  • 62. Figure2.11: Microcontroller outline with basic elements and internal connections 2.13 AT89S52 microcontroller: The AT89S52 is a low-power, high-performance CMOS 8-bit microcontroller with 8K bytes 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 pinout. 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 AT89S52 is a powerful microcontroller which provides a highly-flexible and cost-effective solution to many embedded control applications. [62]
  • 63. 3. INTRODUCTION TO 16X2 LCD DISPLAY LCD stands for Liquid Crystal Display. The most commonly used LCDs found in the market today are 1 Line, 2 Line or 4 Line LCDs which have only 1 controller and support at most of 80 characters. 3.1 Pin Description Most LCDs with two controllers has 16 Pins. Pin description is shown in the table below. Pin No. Name Description Pin no. 1 D7 Data bus line 7 (MSB) Pin no. 2 D6 Data bus line 6 Pin no. 3 D5 Data bus line 5 Pin no. 4 D4 Data bus line 4 Pin no. 5 D3 Data bus line 3 Pin no. 6 D2 Data bus line 2 Pin no. 7 D1 Data bus line 1 Pin no. 8 D0 Data bus line 0 (LSB) Pin no. 9 EN1 Enable signal for row 0 and 1 (1stcontroller) Pin no. 12 VEE Contrast adjust Pin no. 13 VSS Power supply (GND) Pin no. 14 VCC Power supply (+5V) Pin no. 15 EN2 Enable signal for row 2 and 3 (2ndcontroller) Pin no. 16 NC Not Connected Table No.3.1: Pin description of the LCD [63]
  • 64. 3.2 DDRAM - Display Data RAM Display data RAM (DDRAM) stores display data represented in 8-bit character codes. Its extended capacity is 80 X 8 bits, or 80 characters. The area in display data RAM (DDRAM) that is not used for display can be used as general data RAM. So whatever you send on the DDRAM is actually displayed on the LCD. 3.3 BF - Busy Flag Busy Flag is a status indicator flag for LCD. When we send a command or data to the LCD for processing, this flag is set (i.e. BF =1) and as soon as the instruction is executed successfully this flag is cleared (BF = 0). This is helpful in producing and exact amount of delay. For the LCD processing. To read Busy Flag, the condition RS = 0 and R/W = 1 must be met and The MSB of the LCD data bus (D7) act as busy flag. When BF = 1 means LCD is busy and will not accept next command or data and BF = 0 means LCD is ready for the next command or data to process. 3.4 Instruction Register (IR) and Data Register (DR) There are two 8-bit registers controller Instruction and Data register. Instruction register corresponds to the register where you send commands to LCD e.g. LCD shift command, LCD clear, LCD address etc. and Data register is used for storing data which is to be displayed on LCD. When send the enable signal of the LCD is asserted, the data on the pins is latched in to the data register and data is then moved automatically to the DDRAM and hence is displayed on the LCD. 3.5 Commands and Instruction set Only the instruction register (IR) and the data register (DR) of the LCD can be controlled by the MCU. Before starting the internal operation of the LCD, control information is temporarily stored into these registers to allow interfacing with various MCUs, which operate at different speeds, or various peripheral control devices. The internal operation of the LCD is determined by signals sent from the MCU. 3.6 Sending Commands to LCD To send commands we simply need to select the command register. Everything is same as we have done in the initialization routine. But we will summarize the common steps and put them in a single subroutine. Following are the steps: Move data to LCD port Select command register select write operation send enable signal [64]
  • 65. PROJECT DESCRIPTION:BLOCK DIAGRAM GENERAL WORKING:1. Initially when the switch is closed, allows the evm to take the vote. the vote is taken only when push button is pressed and led D1 is switched ON. [65]
  • 66. 2. A push button is assigned to each party. When the push button of the desired party is pressed, the led is switched off which indicates that the vote is cast and the buzzer gives a beep. Again the push button is pressed so that the evm is ready to take the next vote which isindicated through the led D1.The same process is repeated until all the voters cast theirvotes. 3. To view the results of each respective party, the switch must be opened [66]
  • 67. 4. To know the result of the party, the push button of the respective party must be pressed so that the number of votes cast for the party is displayed on the lcd screen. P RW in no. 10 / This process is repeated to know the results of each party. R P 1 in no. 11 S = Data input [67]
  • 68. 4.3 C LANGUAGE CODING: #include<reg51.h> sfr input=0x90; sfr ldata=0xa0; sbit rs=P0^7; sbit rw=P0^6; sbit en=P0^5; sbit m=P3^0; sbit n=P3^1; sbit buzz=P3^2; sbit on=P3^3; void delay(int ); void lcdcmd(char ); void lcddata1(char *); void lcddata(char); void lcd(); int i1,i11,i12,i2,i21,i22,i3,i31,i32,i4,i41,i42,i5,i51,i52=0; void main() { on=0; P1=0;P3=0; while(1) { lcdcmd(0x38); delay(10); lcdcmd(0x0e) ; delay(10); lcdcmd(0x01); lcdcmd(0x06) ; delay(20) ; lcddata1("Vote"); if(n==1) on=1; if(m==1&on==1) { if (input==0x01) { buzz=1; while (input == 0x01); i1=i1 + 1; if(i1>=10) i11=i1/10; i12=i1%10; on=0; buzz=0; //ready=0; } [68]
  • 69. if (input==0x02) {buzz=1; while (input == 0x02); { i2=i2 + 1; if(i2>=10) i21=i2/10; i22=i2%10; on=0; buzz=0; } } if (input==0x04) { buzz=1; while (input ==0x04); { i3=i3 + 1; if(i3>=10) i31=i3/10; i32=i3%10; on=0; buzz=0; } } if (input==0x08) { buzz=1; while (input == 0x08); { i4=i4 + 1; if(i4>=10) i41=i4/10; i42=i4%10; on=0; buzz=0; } } if (input==0x10) { buzz=1; while (input == 0x10); { i5=i5 + 1; if(i5>=10) i51=i5/10; [69]
  • 70. i52=i5%10; on=0; buzz=0; } }} if(m==0)//else { if (input==0x01) { lcddata1(" CONGRESS="); lcddata(i11+0x30); lcddata(i12+0x30); delay(100); } if (input==0x02) { lcdcmd(0x01); lcddata1(" BJP="); lcddata(i21+0x30); lcddata(i22+0x30); delay(100); } if (input==0x04) { lcdcmd(0x01); lcddata1(" CPM&CPI="); lcddata(i31+0x30); lcddata(i32+0x30); delay(100); } if (input==0x08) { lcdcmd(0x01); lcddata1(" TDP="); lcddata(i41+0x30); lcddata(i42+0x30); delay(100); } if(input==0x10) { lcdcmd(0x01); lcddata1(" PRP="); lcddata(i51+0x30); lcddata(i52+0x30); delay(100); } [70]
  • 71. else{ //lcdcmd(0x01); lcddata1("result"); delay(100) ; }} }} void delay(int time) { int i,j; for(i=0;i<time;i++) for(j=0;j<900;j++); } void lcdcmd(char value) { ldata=value; rs=0; rw=0; en=1; delay(2); en=0; } void lcddata1(char *value) { int i; for(i=0;value[i]!='0';i++) { ldata=value[i]; rs=1; rw=0; en=1; delay(1); en=0; } } void lcddata(char value) { ldata=value; rs=1; rw=0; en=1; delay(1); en=0; [71]
  • 72. 5. PROJECT METHODOLOGY 5.1 Components: Component Name Quantity Microcontroller IC (AT89S52) Transistor (L78O5CV) Resistor Diodes Port Connectors LED Resistors LCD (16X2 characters) Buzzer contrast controller push switches crystal oscillator 1 1 7 4 4 3 7 1 1 1 10 1 5.2 Software's used: 1. Keil uVision3. 2. Eclipse 5.3 Equipments used: 1. Soldering iron, solder, flux. 2. Personal computer. 3. DB25 connector. 6. RESULT AND CONCLUSION The EVM consists of a microcontroller AT89S52 16×2 LCD display, LED ,push buttons, relay and a buzzer. [72]
  • 73. • In • The EVM is ready for voting only after ready to vote button is pressed and the led is voting mode, the voting mode switch is in on condition. on. The led turns off after a vote is casted along with a buzzer. Counting the votes for individual candidate (5 in number) is done simultaneously along with the voting and total number of votes cast to that individual can be checked at anytime. • In • In result mode, the UNIT displays the votes of individual candidate, whenever the result mode, the voting mode switch is in off position. “Result Button” of the corresponding individual is pressed. In total, the complete system (including all the hardware components and software routines) is working as per the initial specifications and requirements of our project. Because of the creative nature of the design, and due to lack of time, some features could not be fine-tuned and are not working properly. So certain aspects of the system can be modified as operational experience is gained with it. As the users work with the system, they develop various new ideas for the development and enhancement of the project. 7. APPLICATIONS Fast track voting which could be used in small scale elections, like resident welfare association, “panchayat” level election and other society level elections. It could also be used to conduct opinion polls during annual share holders meeting. It could also be used to conduct general assembly elections where number of candidates are less than or equal to eight in the current situation. 8. FUTURE SCOPE Number of candidates could be increased by using other microcontroller or an 8255 IC. It could be interfaced with printer to get the hard copy of the result almost instantly from the machine itself. It could also be interfaced with the personal computer and result could be stored in the central server and its backup could be taken on the other backend servers. Again, once the result is on the server it could be relayed on the network to various offices of the election conducting authority. Thus our project could make the result available any corner of the world in a matter of seconds 9. REFRENCES AND BIBLOGRAPHY [73]
  • 74. Muhammad Ali Mazidi , Janice Gillispie Mazidi, Rolin D. Mckinlay. Second edition, “THE 8051 MICROCONTROLLER AND EMBEDDED SYSTEM” K. J. Ayala. Third edition, “The 8051 MICROCONTROLLER” General information about electronic voting machine www.eci.gov.in www.eci.gov.in/faq/evm.asp ww.eci.gov.in/Audio_VideoClips/presentation/EVM.ppt www.rajasthan.net/election/guide/evm.htm www.indian-elections.com/electoralsystem/electricvotingmachine.html Tutorial on microcontroller: www.8051projects.net/microcontroller_tutorials/ Tutorial on LCD: www.8051projects.net/lcd-interfacing/ [74]