Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 105

WIRELESS EVM SYSTEM

SYNOPSIS

SUBMITTED TOWARDS PARTIAL FULFILLMENT OF THE


REQUIREMENT FOR THE AWARD OF THE DEGREE OF

B.TECH

( Dept.of Electronics and Communication Engineering)

SUBMITTED BY

MUKESH KUMAR

University Roll No-

Under the supervision of

MR. SACHIN

(Department of ECE)

MERI – COLLEGE OF ENGINEERING & TECHNOLOGY

Sampla

(Affiliated to Maharshi Dayanand University, Rohtak)


June -2015
ABSTRACT
IN THIS PROJECT WE SHOW THE NEW IDEA AND CONCEPT IN
VOTING MACHINE. WITH THE HELP OF THIS CONCEPT ANY
VOTER CAST HIS VOTE FROM ANY PLACE WITH ANY PHONE
and without phone.

 In this projeect we use two mode of evm.


 Keypad mode: in this mode we use a special keypad that
use for enter the id and cast the vote for different part.
When any person want to cast the vote then system
demand the id. In case of valid id and proper vote then
user can cast the vote.

TO ACTIVATE THIS SYSTEM IN REAL LIFE, WE MUST ISSUE ONE


UNIQUE ID NUMBER TO EACH VOTER. FIRST OF ALL PERSON
DIAL THE NUMBER, AND PRESS THE HASH BUTTON FROM
MOBILE OR LANDLINE. AS VOTER PRESS THE HASH BUTTON,
VOICE RESPONSE SYSTEM RESPOND WITH PREDEFINED
MESSAGE ON THE PHONE. WITH THE HELP OF VOICE
COMMAND SYSTEM VOTER ENTER ITS UNIQUE ID AND SYSTEM
COMPARE THE ID WITH DATA BASE. IF THE DATA BASE IS
EQUIPPED WITH THIS ID THE SYSTEM DEMAND A PASSWORD.
VOTER ENTER THE PASSWORD AND SYSTEM COMPARE THE
PASSWORD. IF THE PASSWORD IS OK THEN VOTER CAST A
VOTE BY PRESSING A SWITCH OPTION.AS THE VOTER CAST
THE VOTE , CAST VOTE IS SAVE IN THE EXTERNAL MEMORY
FOR STORAGE. AT THE RECEIVER END WE CHECK THE TOTAL
VOTE AND INDIVIDUAL VOTE BY PRESSING A SWITCH.
MODE OF PROJECT:
There are three mode of this project

 Manual mode: in this mode user caste the vote at evm


plateform. .

 Wireless mode:in this mode we use wireless gsm


technology that use and cast the vote from remote location.

Components:
Components:

1. Microcontroller (at89c52).

2. keypad.

3. Dtmf8870.

4. Ls74154.

5. Lcd(2x16).

6. Transformer(9-0-9).

7. Diode(in4007).

8. Resistor(1k,470ohm,10k,270ohm).

9. Capacitor(10uf,1000uf,27pf).

10. Regulator(7805).

11. Npnbc-547,and bc-557pnp.

12. Led.

13. Pcb.

14. Battery .
15. Gsm mobile.

16. Switch.

MODE OF PROJECT

 Power supply.

 Dtmf module interfacing.


 Lcd interfacing optional

 Keypad interface.

 Buzzer interfacing.

 Encoder and decoder.

 Programming (assembly language).


Power supply lcd

Microcon
troller
Pnp Npn
74154 At89s52 transitor transistor buzze
8870 r

dtmf

Keypad

Gsm mobile
U?
7805 LCD?
TR? D? LM016L
1 3
VI VO

GND
DIODE
R?
C? 10k
C? 10p

2
10p R?

VDD
VSS

VEE

RW
D?

RS

D0
D1
D2
D3
D4
D5
D6
D7
10k

E
DIODE D?

1
2
3

4
5
6

7
8
9
10
11
12
13
14
TRAN-2P2S LED

U?
8 17
P1.7 P3.7/RD
7 16
P1.6 P3.6/WR
6 15
P1.5 P3.5/T1
5 14
P1.4 P3.4/T0
4 13
3

P1.3 P3.3/INT1
3 12
P1.2 P3.2/INT0
2 11
3 2 1 A
1
P1.1/T2EX
P1.0/T2
P3.1/TXD
P3.0/RXD
10 BUZ1
28
P2.7/A15
C? 27 D3 D4
6 5 4 B
10p 31
EA
P2.6/A14
P2.5/A13
26 DIODE LED BUZZER
30 25
ALE P2.4/A12
29 24
PSEN P2.3/A11
23
9 8 7 C P2.2/A10
P2.1/A9
22
P2.0/A8
21 Q4
R? NPN
9 32
# 0 D 10k RST P0.7/AD7
P0.6/AD6
33 Q3
34 PNP
C? P0.5/AD5
35
P0.4/AD4
18 36
XTAL2 P0.3/AD3
X? P0.2/AD2
37
10p 38
C? P0.1/AD1
19 39
XTAL1 P0.0/AD0
AT89C52
CRYSTAL
10p
U?
7805 LCD?
TR? D? LM016L
1 3
VI VO

GND
DIODE
R?
C? 10k
C? 10p

2
10p R?

VDD
VSS

VEE

RW
D?

RS

D0
D1
D2
D3
D4
D5
D6
D7
10k

E
DIODE D?

1
2
3

4
5
6

7
8
9
10
11
12
13
14
TRAN-2P2S LED

U1 U?
1 15
A Y0 8 17
2 14 P1.7 P3.7/RD
B Y1 7 16
3 13 P1.6 P3.6/WR
C Y2 6 15
12 P1.5 P3.5/T1
Y3 5 14
11 P1.4 P3.4/T0
Y4 4 13
6 10 P1.3 P3.3/INT1
E1 Y5 3 12
4
E2 Y6
9
2
P1.2 P3.2/INT0
11 BUZ1
5 7 P1.1/T2EX P3.1/TXD
E3 Y7 1 10
P1.0/T2 P3.0/RXD
74ALS138
28
D3 D4
P2.7/A15 DIODE LED BUZZER
C? P2.6/A14
27
31 26
10p
30
EA P2.5/A13
25 Q4
ALE P2.4/A12 NPN
29 24
PSEN P2.3/A11
23
P2.2/A10
22 Q3
P2.1/A9 PNP
21
P2.0/A8
DTMF 8870 R?
10k 9 32
RST P0.7/AD7
33
P0.6/AD6
34
C? P0.5/AD5
35
P0.4/AD4
18 36
XTAL2 P0.3/AD3
X? P0.2/AD2
37
10p 38
C? P0.1/AD1
19 39
XTAL1 P0.0/AD0
AT89C52
CRYSTAL
10p

3
A 1 2 3
HANDSFREE B 4 5 6
C 7 8 9
D 0 #

ADVANTAGE: and application do your self.


1. This system applicable in industry, home, college and
other place.
2. This concept applicable in ac fan and induction motor.
PROBLEM CONTENT:

 Components availability.
 How to decide value of components.
 Circuit designing.
 How to give the effort of soldering properly.
 Programming of sensor,
 signal sending and.

LEARNING OBJECTIVE:

 circuit designing on proteus software.


 Pcb layout on ARES software.
 Programming language embedded c and assembly.
 How to use keil software.
 Generate the hel file.
 How toburn the ic.
 How to do the soldering.

TECHNICAL PROSPECTIVE IDEA:

 Printed circuit board size: 9x5.


 Mdf board size 18x12.
 Height 5cm.

PROJECT PRAPOSAL METHODOLOGY:


We make a project in different mode:
1. Ist mode:
In this mode we design over all frame script such as
 Idea of project,
 Components list,
 Circuit diagram.
2. 2nd mode:
In this mode we calculate the value of
 Components.
 Decide the component rating.
 Name of components that may be use in project.
 Purchase the components.
3. 3rd Mode:
 In this mode we design a circuit on pcb.
 Assemble the components.
 Test the soldering dry or not.
4. 4th mode:
in this mode we software for coding.
 We use keil software.
 We design a code in assembly or embedded c.
 We create the hex file.

5. 5th mode:
 in this mode we design a circuit diagram on proteus
for simulation
 try to simulation on proteus.

6. 6th mode:
 In this mode we use the top-win software.
 We programmed the ic.
7. 7th mode :in this mode we test the features of project.
TESTING TOOL:

 Multi-meter.
 Switch.
 Battery.
 Cro.
 Scope.
 Led indication.

CIRCUIT DIAGRAM:

Software used:

 Proteus software. For circuit designing.

 Kiel software. for coding

 Topwin 2008: for ic programmed to ic.


 ARES :for pcb design.

TESTING TOOL:

 Multi-meter.
 Switch.
 Battery.
 Cro.
 Scope.
 Led indication.
COST INDEX

 Microcontroller at89s52(120).
use for coding and create the logic or different type of
module interfacing such as lcd.

 Pullup resistor(10).
For provide of external resistor at port p0.

 Crystal oscillator(45).
To provide machine cycle or clock pulse.
 Ceramic capacitor(5).
To stabilize in frequency of crystal oscillator.
 Transformer(250).
To give the power supply(1amp ,12 voltage)
 Diode (5).
Use for rectification.
 Led(1).
Used for indication.
 Electrolyte capacitor(5).
To remove the noise in power supply.
 Regulator 7805(35).
Regulator provide 12 v to 5 voltage .
 Lcd (2x16) (210).
For display purpose.
 Variable resistor(5).
To give the reference voltage
 Npn and pnp transistor(5).
For driver circuit it means darlington pair of transitor.
 Pcb (90).
For circuit assembling.
 Iron (230).
For soldering.
 Soldering wire(150).
For connection.
 Kit(1200).
For need of designing a hardware.

INTRODUCTION--

Making a Printed Circuit Board is the first step towards building electronic equipment
by any electronic industry. A number of methods are available for making P.C.B., the
simplest method is of drawing pattern on a copper clad board with acid resistant
(etchants) ink or paint or simple nail polish on a copper clad board and do the etching
process for dissolving the rest of copper pattern in acid liquid.
MATERIAL REQUIRED

The apparatus needs for making a P.C.B. is :-

* Copper Clad Sheet

* Nail Polish or Paint

* Ferric Chloride Powder. (Fecl)

* Plastic Tray

* Tap Water etc.


PROCEDURE

The first and foremost in the process is to clean all dirt from copper sheet with say spirit
or trichloro ethylene to remove traces grease or oil etc. and then wash the board under
running tap water. Dry the surface with forced warm air or just leave the board to dry
naturally for some time.

Making of the P.C.B. drawing involves some preliminary consideration such as thickness
of lines/ holes according to the components. Now draw the sketch of P.C.B. design
(tracks, rows, square) as per circuit diagram with the help of nail polish or enamel paint
or any other acid resistant liquid. Dry the point surface in open air, when it is completely
dried, the marked holes in P.C.B. may be drilled using 1Mm drill bits. In case there is any
shorting of lines due to spilling of paint, these may be removed by scraping with a blade
or a knife, after the paint has dried.

After drying, 22-30 grams of ferric chloride in 75 ml of water may be heated to about 60
degree and poured over the P.C.B. , placed with its copper side upwards in a plastic tray
of about 15*20 cm. Stirring the solution helps speedy etching. The dissolution of
unwanted copper would take about 45 minutes. If etching takes longer, the solution
may be heated again and the process repeated. The paint on the pattern can be
removed P.C.B. may then be washed and dried. Put a coat of varnish to retain the shine.
Your P.C.B. is ready.
REACTION

Fecl3 + Cu ----- CuCl3 + Fe

Fecl3 + 3H2O --------- Fe (OH)3 + 3HCL

PRECAUTION

1. Add Ferric Chloride (Fecl3) carefully, without any splashing. Fecl3 is irritating to
the skin and will stain the clothes.

2. Place the board in solution with copper side up.


3. Try not to breathe the vapours. Stir the solution by giving see-saw motion to the
dish and solution in it.

4. Occasionally warm if the solution over a heater-not to boiling. After some time
the unshaded parts change their colour continue to etch. Gradually the base
material will become visible. Etch for two minutes more to get a neat pattern.

5. Don't throw away the remaining Fecl3 solution. It can be used again for next
Printed Circuit Board P.C.B.

USES

Printed Circuit Board are used for housing components to make a circuit for
compactness, simplicity of servicing and case of interconnection. Thus we can define the
P.C.B. as : Prinked Circuit Boards is actually a sheet of bakelite (an insulating material) on
the one side of which copper patterns are made with holes and from another side, leads
of electronic components are inserted in the proper holes and soldered to the copper
points on the back. Thus leads of electronic components terminals are joined to make
electronic circuit.
In the boards copper cladding is done by pasting thin copper foil on the boards during
curing. The copper on the board is about 2 mm thick and weights an ounce per square
foot.

The process of making a Printed Circuit for any application has the following steps
(opted professionally):

* Preparing the layout of the track.

* Transferring this layout photographically M the copper.

* Removing the copper in places which are not needed, by the process of etching
(chemical process)

* Drilling holes for components mounting.

PRINTED CIRCUIT BOARD


Printed circuit boards are used for housing components to make a circuit, for
comactness, simplicity of servicing and ease of interconnection. Single sided, double
sided and double sided with plated-through-hold (PYH) types of p.c boards are common
today.

Boards are of two types of material (1) phenolic paper based material (2) Glass
epoxy material. Both materials are available as laminate sheets with copper cladding.

Printed circuit boards have a copper cladding on one or both sides. In both
boards, pasting thin copper foil on the board during curing does this. Boards are
prepared in sizes of 1 to 5 metre wide and upto 2 metres long. The thickness of the
boards is 1.42 to 1.8mm. The copper on the boards is about 0.2 thick and weighs and
ounce per square foot.
HARDWARE/COMPONENTS DETAIL:

 POWER SUPPLY
All digital circuits require regulated power supply. In this article we are going to learn how to get
a regulated positive supply from the mains supply.

Figure 1 shows the basic block diagram of a fixed regulated power supply. Let us go through
each block.

TRANSFORMER

A transformer consists of two coils also called as “WINDINGS” namely PRIMARY &
SECONDARY.

They are linked together through inductively coupled electrical conductors also called as CORE.
A changing current in the primary causes a change in the Magnetic Field in the core & this in
turn induces an alternating voltage in the secondary coil. If load is applied to the secondary then
an alternating current will flow through the load. If we consider an ideal condition then all the
energy from the primary circuit will be transferred to the secondary circuit through the magnetic
field.

So

The secondary voltage of the transformer depends on the number of turns in the Primary as well as in the
secondary..

Rectifier

A rectifier is a device that converts an AC signal into DC signal. For rectification purpose we use
a diode, a diode is a device that allows current to pass only in one direction i.e. when the anode
of the diode is positive with respect to the cathode also called as forward biased condition &
blocks current in the reversed biased condition.

Rectifier can be classified as follows:

1) Half Wave rectifier.


This is the simplest type of rectifier as you can see in the diagram a half wave rectifier consists
of only one diode. When an AC signal is applied to it during the positive half cycle the diode is
forward biased & current flows through it. But during the negative half cycle diode is reverse
biased & no current flows through it. Since only one half of the input reaches the output, it is
very inefficient to be used in power supplies.

2) Full wave rectifier.

Half wave rectifier is quite simple but it is very inefficient, for greater efficiency we would like
to use both the half cycles of the AC signal. This can be achieved by using a center tapped
transformer i.e. we would have to double the size of secondary winding & provide connection to
the center. So during the positive half cycle diode D1 conducts & D2 is in reverse biased
condition. During the negative half cycle diode D2 conducts & D1 is reverse biased. Thus we get
both the half cycles across the load.

One of the disadvantages of Full Wave Rectifier design is the necessity of using a center tapped
transformer, thus increasing the size & cost of the circuit. This can be avoided by using the Full
Wave Bridge Rectifier.

3) Bridge Rectifier.
As the name suggests it converts the full wave i.e. both the positive & the negative half cycle
into DC thus it is much more efficient than Half Wave Rectifier & that too without using a center
tapped transformer thus much more cost effective than Full Wave Rectifier.

Full Bridge Wave Rectifier consists of four diodes namely D1, D2, D3 and D4. During the
positive half cycle diodes D1 & D4 conduct whereas in the negative half cycle diodes D2 & D3
conduct thus the diodes keep switching the transformer connections so we get positive half
cycles in the output.
If we use a center tapped transformer for a bridge rectifier we can get both positive & negative
half cycles which can thus be used for generating fixed positive & fixed negative voltages.

FILTER CAPACITOR

Even though half wave & full wave rectifier give DC output, none of them provides a constant
output voltage.For this we require to smoothen the waveform received from the rectifier. This
can be done by using a capacitor at the output of the rectifier this capacitor is also called as
“FILTER CAPACITOR” or “SMOOTHING CAPACITOR” or “RESERVOIR CAPACITOR”.
Even after using this capacitor a small amount of ripple will remain.

We place the Filter Capacitor at the output of the rectifier the capacitor will charge to the peak voltage during
each half cycle then will discharge its stored energy slowly through the load while the rectified voltage drops
to zero, thus trying to keep the voltage as constant as possible.
If we go on increasing the value of the filter capacitor then the Ripple will decrease. But then the costing will
increase. The value of the Filter capacitor depends on the current consumed by the circuit, the frequency of
the waveform & the accepted ripple.

Where,
Vr= accepted ripple voltage.( should not be more than 10% of the voltage)
I= current consumed by the circuit in Amperes.
F= frequency of the waveform. A half wave rectifier has only one peak in one cycle so F=25hz
whereas a full wave rectifier has Two peaks in one cycle so F=100hz.

VOLTAGE REGULATOR

A Voltage regulator is a device which converts varying input voltage into a constant regulated
output voltage. voltage regulator can be of two types

1) Linear Voltage Regulator

Also called as Resistive Voltage regulator because they dissipate the excessive voltage
resistively as heat.

2) Switching Regulators.

They regulate the output voltage by switching the Current ON/OFF very rapidly. Since their
output is either ON or OFF it dissipates very low power thus achieving higher efficiency as
compared to linear voltage regulators. But they are more complex & generate high noise due to
their switching action. For low level of output power switching regulators tend to be costly but
for higher output wattage they are much cheaper than linear regulators.

The most commonly available Linear Positive Voltage Regulators are the 78XX series where the
XX indicates the output voltage. And 79XX series is for Negative Voltage Regulators.
After filtering the rectifier output the signal is given to a voltage regulator. The maximum input voltage that
can be applied at the input is 35V.Normally there is a 2-3 Volts drop across the regulator so the input voltage
should be at least 2-3 Volts higher than the output voltage. If the input voltage gets below the Vmin of the
regulator due to the ripple voltage or due to any other reason the voltage regulator will not be able to produce
the correct regulated voltage
DIODE

The simplest semiconductor device is made up of a sandwich of P-type


semiconducting material, with contacts provided to connect the p-and n-type layers to
an external circuit. This is a junction Diode. If the positive terminal of the battery is
connected to the p-type material (cathode) and the negative terminal to the N-type
material (Anode), a large current will flow. This is called forward current or forward
biased.

If the connections are reversed, a very little current will flow. This is
because under this condition, the p-type material will accept the
electrons from the negative terminal of the battery and the N-type
material will give up its free electrons to the battery, resulting in the state
of electrical equilibrium since the N-type material has no more electrons.
Thus there will be a small current to flow and the diode is called Reverse
biased.

Thus the Diode allows direct current to pass only in one direction
while blocking it in the other direction. Power diodes are used in
concerting AC into DC. In this, current will flow freely during the first half
cycle (forward biased) and practically not at all during the other half cycle
(reverse biased). This makes the diode an effective rectifier, which
convert ac into pulsating dc. Signal diodes are used in radio circuits for
detection. Zener diodes are used in the circuit to control the voltage.
Some common diodes are:-

1. Zener diode.

2. Photo diode.

3. Light Emitting diode.

1. ZENER DIODE:-

A zener diode is specially designed junction diode, which can


operate continuously without being damaged in the region of reverse
break down voltage. One of the most important applications of zener
diode is the design of constant voltage power supply. The zener diode is
joined in reverse bias to d.c. through a resistance R of suitable value.
2. PHOTO DIODE:-

A photo diode is a junction diode made from photo- sensitive


semiconductor or material. In such a diode, there is a provision to allow
the light of suitable frequency to fall on the p-n junction. It is reverse
biased, but the voltage applied is less than the break down voltage. As
the intensity of incident light is increased, current goes on increasing till
it becomes maximum. The maximum current is called saturation current.

3. LIGHT EMITTING DIODE (LED):-

When a junction diode is forward biased, energy is released at the


junction diode is forward biased, energy is released at the junction due to
recombination of electrons and holes. In case of silicon and germanium
diodes, the energy released is in infrared region. In the junction diode
made of gallium arsenate or indium phosphide, the energy is released in
visible region. Such a junction diode is called a light emitting diode or
LED.

HOW LIGHT EMITTING DIODES WORK

Light emitting diodes, commonly called LEDs do dozens of different jobs and are found in all kinds of
devices. Among other things, they form the numbers on digital clocks, transmit information from
remote controls, light up watches and tell you when your appliances are turned on. Collected together,
they can form images on a jumbo television screen or illuminate a traffic light.

Basically, LEDs are just tiny light bulbs that fit easily into an electrical circuit. But unlike ordinary
incandescent bulbs, they don't have a filament that will burn out, and they don't get especially hot. They
are illuminated solely by the movement of electrons in a semiconductor material, and they last just as
long as a standard transistor.

DIODE

A diode is the simplest sort of semiconductor device. A semiconductor is a material with a varying ability
to conduct electrical current. Most semiconductors are made of a poor conductor that has had
impurities (atoms of another material) added to it. The process of adding impurities is called doping.

In the case of LEDs, the conductor material is typically aluminum-gallium-arsenide (AlGaAs). In pure
aluminum-gallium-arsenide, all of the atoms bond perfectly to their neighbors, leaving no free electrons
(negatively-charged particles) to conduct electric current. In doped material, additional atoms change
the balance, either adding free electrons or creating holes where electrons can go. Either of these
additions makes the material more conductive.

A semiconductor with extra electrons is called N-type material, since it has extra negatively charged
particles. In N-type material, free electrons move from a negatively charged area to a positively charged
area.

A semiconductor with extra holes is called P-type material, since it effectively has extra positively
charged particles. Electrons can jump from hole to hole, moving from a negatively charged area to a
positively charged area. As a result, the holes themselves appear to move from a positively charged area
to a negatively charged area.
A diode comprises a section of N-type material bonded to a section of P-type material, with electrodes
on each end. This arrangement conducts electricity in only one direction. When no voltage is applied to
the diode, electrons from the N-type material fill holes from the P-type material along the junction
between the layers, forming a depletion zone. In a depletion zone, the semiconductor material is
returned to its original insulating state - all of the holes are filled, so there are no free electrons or
empty spaces for electrons, and charge can't flow.

At the junction, free electrons from the N-type material fill holes from the P-type
material. This creates an insulating layer in the middle of the diode called the depletion
zone.

To get rid of the depletion zone, electrons should move from the N-type area to the P-type area and
holes should move in the reverse direction. This is done by connecting the N-type side of the diode to
the negative end of a circuit and the P-type side to the positive end. The free electrons in the N-type
material are repelled by the negative electrode and drawn to the positive electrode. The holes in the P-
type material move the other way. When the voltage difference between the electrodes is high enough,
the electrons in the depletion zone are boosted out of their holes and begin moving freely again. The
depletion zone disappears, and charge moves across the diode.
When the negative end of the circuit is hooked up to the N-type layer and the positive
end is hooked up to P-type layer, electrons and holes start moving and the depletion
zone disappears.

If current is run the other way, with the P-type side connected to the negative end of the circuit and the
N-type side connected to the positive end, current will not flow. The negative electrons in the N-type
material are attracted to the positive electrode. The positive holes in the P-type material are attracted
to the negative electrode. No current flows across the junction because the holes and the electrons are
each moving in the wrong direction. The depletion zone increases.
When the positive end of the circuit is hooked up to the N-type
layer and the negative end is hooked up to the P-type layer, free
electrons collect on one end of the diode and holes collect on the
other. The depletion zone gets bigger.

The interaction between electrons and holes in this setup has an interesting side effect - it generates
light.

HOW CAN A DIODE PRODUCE LIGHT?

Light is a form of energy that can be released by an atom. It is made up of many small particle-like
packets that have energy and momentum but no mass. These particles, called photons, are the most
basic units of light.

Photons are released as a result of moving electrons. In an atom, electrons move in orbitals around the
nucleus. Electrons in different orbitals have different amounts of energy. Electrons with greater energy
move in orbitals farther away from the nucleus.

For an electron to jump from a lower orbital to a higher orbital, something has to boost its energy level.
Conversely, an electron releases energy when it drops from a higher orbital to a lower one. This energy
is released in the form of a photon. A greater energy drop releases a higher-energy photon, which is
characterized by a higher frequency.

As free electrons moving across a diode can fall into empty holes from the P-type layer. This involves a
drop from the conduction band to a lower orbital, so the electrons release energy in the form of
photons. This happens in any diode, but the photons are seen when the diode is composed of certain
material. The atoms in a standard silicon diode, for example, are arranged in such a way that the
electron drops a relatively short distance. As a result, the photon's frequency is so low that it is invisible
to the human eye - it is in the infrared portion of the light spectrum. This isn't necessarily a bad thing, of
course: Infrared LEDs are ideal for remote controls, among other things.

Visible light-emitting diodes (VLEDs), such as the ones that light up numbers in a digital clock, are made
of materials characterized by a wider gap between the conduction band and the lower orbitals. The size
of the gap determines the frequency of the photon -- in other words, it determines the color of the light.

While all diodes release light, most don't do it very effectively. In an ordinary diode, the semiconductor
material itself ends up absorbing a lot of the light energy.

LEDs are specially constructed to release a large number of photons outward. Additionally, they are
housed in a plastic bulb that concentrates the light in a particular direction. Most of the light from the
diode bounces off the sides of the bulb, traveling on through the rounded end.
LEDs have several advantages over conventional incandescent lamps. For one thing, they don't have a
filament that will burn out, so they last much longer. Additionally, their small plastic bulb makes them a
lot more durable. They also fit more easily into modern electronic circuits.

But the main advantage is efficiency. In conventional incandescent bulbs, the light-production process
involves generating a lot of heat (the filament must be warmed). is completely wasted energy, unless
the lamp is used as a heater, because a huge portion of the available electricity isn't going toward
producing visible light. LEDs generate very little heat, relatively. A much higher percentage of the
electrical power is going directly to generating light, which cuts down on the electricity demands
considerably.

Up until recently, LEDs were too expensive to use for most lighting applications because they're built
around advanced semiconductor material. The price of semiconductor devices has plummeted over the
past decade, however, making LEDs a more cost-effective lighting option for a wide range of situations.
While they may be more expensive than incande front, their lower cost in the long run can make them a
better buy. In the future, they will play an even bigger role in the world of technology.

CAPACITORS
It is an electronic component whose function is to accumulate
charges and then release it.

To understand the concept of capacitance, consider a pair of metal plates which


all are placed near to each other without touching. If a battery is connected to these
plates the positive pole to one and the negative pole to the other, electrons from the
battery will be attracted from the plate connected to the positive terminal of the
battery. If the battery is then disconnected, one plate will be left with an excess of
electrons, the other with a shortage, and a potential or voltage difference will exists
between them. These plates will be acting as capacitors. Capacitors are of two types: -
(1) fixed type like ceramic, polyester, electrolytic capacitors-these names refer to the
material they are made of aluminium foil. (2) Variable type like gang condenser in radio
or trimmer. In fixed type capacitors, it has two leads and its value is written over its
body and variable type has three leads. Unit of measurement of a capacitor is farad
denoted by the symbol F. It is a very big unit of capacitance. Small unit capacitor are
pico-farad denoted by pf (Ipf=1/1000,000,000,000 f) Above all, in case of electrolytic
capacitors, it's two terminal are marked as (-) and (+) so check it while using capacitors
in the circuit in right direction. Mistake can destroy the capacitor or entire circuit in
operational.

RESISTANCE

Resistance is the opposition of a material to the current. It is


measured in Ohms (). All conductors represent a certain amount of
resistance, since no conductor is 100% efficient. To control the
electron flow (current) in a predictable manner, we use resistors.
Electronic circuits use calibrated lumped resistance to control the
flow of current. Broadly speaking, resistor can be divided into two
groups viz. fixed & adjustable (variable) resistors. In fixed resistors,
the value is fixed & cannot be varied. In variable resistors, the
resistance value can be varied by an adjuster knob. It can be divided
into (a) Carbon composition (b) Wire wound (c) Special type. The
most common type of resistors used in our projects is carbon type.
The resistance value is normally indicated by colour bands. Each
resistance has four colours, one of the band on either side will be
gold or silver, this is called fourth band and indicates the tolerance,
others three band will give the value of resistance (see table). For
example if a resistor has the following marking on it say red, violet,
gold. Comparing these coloured rings with the colour code, its value
is 27000 ohms or 27 kilo ohms and its tolerance is ±5%. Resistor
comes in various sizes (Power rating). The bigger, the size, the more
power rating of 1/4 watts. The four colour rings on its body tells us
the value of resistor value as given below.

COLOURS CODE

Black------------------------- 0

Brown ------------------------ 1

Red -------------------------- 2

Orange ----------------------- 3
Yellow ----------------------- 4

Green ------------------------ 5

Blue ------------------------- 6

Violet ------------------------ 7

Grey ------------------------- 8

White ------------------------ 9

The first rings give the first digit. The second ring gives the
second digit. The third ring indicates the number of zeroes to be
placed after the digits. The fourth ring gives tolerance (gold ±5%,
silver ± 10%, No colour ± 20%).
In variable resistors, we have the dial type of resistance boxes.
There is a knob with a metal pointer. This presses over brass pieces
placed along a circle with some space b/w each of them.

Resistance coils of different values are connected b/w the


gaps. When the knob is rotated, the pointer also moves over the
brass pieces. If a gap is skipped over, its resistance is included in
the circuit. If two gaps are skipped over, the resistances of both
together are included in the circuit and so on.

A dial type of resistance box contains many dials depending


upon the range, which it has to cover. If a resistance box has to read
upto 10,000, it will have three dials each having ten gaps i.e. ten
resistance coils each of resistance 10. The third dial will have ten
resistances each of 100.

The dial type of resistance boxes is better because the contact


resistance in this case is small & constant.

THE ADAPTING 3-TERMINAL VOLTAGE REGULATORS


FOR CONSTANT HIGH VOLTAGE POWER SUPPLIES
One can get a constant high-voltage power supply using
inexpensive 3-terminal voltage regulators through some simple
techniques described below. Depending upon the current requirement, a
reasonable load regulation can be achieved. Line regulation in all cases is
equal to that of the voltage regulator used.

Though high voltage can be obtained with suitable voltage boost


circuitry using ICs like LM 723, some advantages of the circuits presented
below are: simplicity, low cost, and practically reasonable regulation
characteristics. For currents of the order of 1A or less, only one zener
and some resistors and capacitors are needed. For higher currents, one
pass transistor such as ECP055 is needed.

Before developing the final circuits, let us first understand the 3-terminal type
constant voltage regulators. Let us see the schematic in Fig. where 78XX is a 3-terminal
voltage regulator.
Schematic
for obtaining
low- voltage
regulated
output using 3-
terminal
voltage regulators.

Rectified and filtered unregulated voltage is applied at V IN and a


constant voltage appears between pins 2 and 2 of the voltage regulator.
*The distribution of two currents in the circuit (IBIAS and ILOAD) is as
shown.
* It is highly recommended to use the two capacitors as shown.
Electrically regulator will be at a distance from the rectifier supply. Thus,
a tantalum grade capacitor of 5mf and rated voltage is good. Electrolytic
capacitor is not suitable for it is poor in response to load transients,
which have high frequency components. At the output side a 0.22mf disc
ceramic capacitor is useful to eliminate spurious oscillations, which the
regulator might break into because of its internal high gain circuitry.

These voltage regulators have a typical bias current of 5 mA, which


is reasonably constant. By inserting a small resistor Rx between pin 2 and
ground, the output voltage in many cases. By this method voltage
increment of 5 to 10 per cent is practically feasible. However, if a high-
value resistance is used to obtain a higher output voltage, a slight
variation in bias current will result in wide variation of the output voltage.

Now let us see that what can be done to get a higher but constant
output voltage. If to the circuit of Fig. resistor RY and zener V z are added
as shown in Fig., the output voltage is now given by

VOUT=VR+VZ + IBIAS RX

A constant current flows through RY** because VOUT is constant, and


small variations in IBIAS do not change practically the operating point of
Vz. This situation is like constant current biasing of zener, which results
in a very accurate setting of the zener voltage.

** As long a sVIN>VOUT+2 volts, VOZ is constant from the reasoning


of Fig, and thus current through RY is constant.

VOZ=VR + IBIAS Rx

Here the pin 2 of the regulator is raised above ground by

Vz + IBIAS Rx. Thus, any combination of zener with a proper selection of


RY can be used.

For example, Let VR=+15 V for 7815

IBIAS=5mA

VZ=39V (standard from ECIL)

For a standard 400mW zener of ECIL make, IZMAX=10 mA. Thus, if


we let pass 5mA through RY to make a 55-volt supply

55 - 39
RY = ---------------=3.2k»3.3k

5 x 10-3

55 - 39 - 15 1

RX = ---------------------= ---------- = 200 ohm

IBIAS 5 x 10-3

Schematic for constant high-voltage power supplies

It should be noted here that the maximum input voltage allowed for
78XX regulators is 35V between pins 1 and 2. We see that the actual
voltage betweens pin 1 and 2 of the regulator in this circuit is

VIN - VZ - IBIAS RX

It is therefore necessary that VIN be so chosen that voltage between


pins 1 and 2 of the IC does not exceed the maximum rating. Also, a high
input-output differential voltage VIN-VOUT means more power dissipation
in the series-pass element, the regulator. Thus, with proper selection of
the input transformer voltage and capacitor, this should be minimized.

For example, if 7805 is used, VR equals + 5V and VZ is 40V, so


VOUT=45 volts. For 7805, the maximum input voltage is 35 V and the
minimum 7V.

Therefore,

VIN MAX = 45 + 35 - 5 = 75 VOLTS

VIN MIN = 45 + 7 - 5 = 47 VOLTS

Thus, from no-load to full-load condition, the unregulated input


voltage-including peak ripple-should be within these limits. This gives a
margin of 75-47, i.e. 28 volt. Hence, the designer can work out the
maximum transformer voltage from the no-load input voltage chosen on
the upper side.

The capacitor's value can be determined from the full load


unregulated voltage chosen. Roughly, per 100mA current, 100mf
capacitor gives 1-volt peak-to-peak ripple. Hence, capacitor's value can
be determined for the desired current.

This circuit will have an excellent load and line regulation. For shot-
circuit protection, it is recommended to use a fast-blow fuse of suitable
value. Although the regulator has inherent short-circuit protection, the
maximum current differs from device to device. Adequate heat sink
should be used with the regulator.

Schematic for constant high-voltage power supplies providing currents in excess of one ampere

Now if currents in excess of 1A are needed, the circuit shown in fig.


is useful. This circuit is similar to that in Fig. except that a pass transistor
ECP055 is added besides a 0.5-ohm or more resistor. This transistor
bypasses the excessive current. By selecting proper Rz the ratio of two
currents passing through the regulator and transistor can be altered.

This circuit will show load and live regulation within 1% and will
function properly for VIN-VOUT as low as 4 volt. For short-circuit
protection, a fast blow fuse is recommended as this circuit does not have
inherent short-circuit protection. Adequate heat sink is to be used for the
pass transistors. For negative voltages, use 79XX series regulators and
ECN055 as the pass transistor. Some advantages of the circuits described
above are: the lowest cost among comparable performance circuits,
ability to work at low input-output differential, and flexibility in design
for various applications.

So audio enthusiasts, if you are troubled by hum emanating from


your power amplifier, try this inexpensive alternative for power supply.

2.1.1 MICROCONTROLLER:

A microcontroller is a single chip that contains the processor (the CPU), non-volatile memory for the
program (ROM or flash), volatile memory for input and output (RAM), a clock and an I/O control unit.
Also called a "computer on a chip," billions of microcontroller units (MCUs) are embedded each year in a
myriad of products from toys to appliances to automobiles. For example, a single vehicle can use 70 or
more microcontrollers.

MICROCONTROLLER vs. GENERAL PURPOSE


MICROPROCESSOR:

What is the difference between a microprocessor and microcontroller? Microprocessor is the general
purpose microprocessor such as Intel’s x86 family (8086, 80386, 80486, and the Pentium) or Motorola’s
680x0 family (68000, 68010, 68020, 68040, etc.). These microprocessors contain no RAM, no ROM, and
no I/O ports needed to fit the task at hand. This is not the case with microcontrollers .A microcontroller
has a CPU (a microprocessor )in addition to a fixed amount of RAM ,ROM,I/O ports, and a timer, all on a
single chip .In other words ,the processor, RAM, ROM, I/O PORTS AND TIMER are all embedded
together on one chip ; therefore, the designer cannot add any external memory, I/O ,or timer to it. The
fixed amount of on-chip RAM, ROM, and number of I/O ports in microcontrollers make them ideal for
many applications.
INTEL MCS -51:
The Intel MCS-51 Harvard architecture single chip microcontroller (µC) series was developed
by Intel in 1980 for use in embedded systems. Intel's original versions were popular in the 1980s
and early 1990s, but has today largely been superseded by a vast range of faster and/or
functionally enhanced 8051-compatible devices manufactured by more than 20 independent
manufacturers including Atmel, Infineon Technologies(formerly Siemens AG),Maxim Integrated
Products (via its Dallas Semiconductor subsidiary), NXP (formerly Philips Semiconductor),
Nuvoton (formerly Win bond ), ST Microelectronics , Silicon Laboratories (formerly
Cygnal),Texas Instruments and Cypress Semiconductor.

Intel's original MCS-51 family was developed using NMOS technology, but later versions,
identified by a letter C in their name (e.g., 80C51) used CMOS technology and were less power-
hungry than their NMOS predecessors. This made them more suitable for battery-powered
devices.

2.1.2 IMPORTANT FEATURES AND APPLICATIONS OF


80C51:
It provides many functions (CPU, RAM, ROM, I/O, interrupt logic, timer, etc.) in a
single package

 8-bit ALU, Accumulator and 8-bit Registers; hence it is an 8 bit microcontroller


 8-bit data bus – It can access 8 bits of data in one operation
 16-bit address bus – It can access 216 memory locations – 64 KB (65536 locations) each of RAM and
ROM
 On-chip RAM – 128 bytes (data memory)
 On-chip ROM – 4 Kbyte (program memory)
 Four byte bi-directional input/output port
 UART (serial port)
 Two 16-bit Counter/timers
 Two-level interrupt priority
 Power saving mode (on some derivatives)

A particularly useful feature of the 8051 core is the inclusion of a Boolean processing engine which
allows bit-level Boolean logic operations to be carried out directly and efficiently on
internal registers and RAM. This feature helped cement the 8051's popularity in industrial control
applications. Another valued feature is that it has four separate register sets, which can be used to
greatly reduce interrupt latency compared to the more common method of storing interrupt context on
a stack.

The MCS-51 UARTs make it simple to use the chip as a serial communications interface. External pins
can be configured to connect to internal shift registers in a variety of ways, and the internal timers can
also be used, allowing serial communications in a number of modes, both synchronous and
asynchronous. Some modes allow communications with no external components. A mode compatible
with an RS-485 multi-point communications environment is achievable, but the 8051's real strength is
fitting in with existing ad-hoc protocols (e.g., when controlling serial-controlled devices).

Once a UART, and a timer if necessary, have been configured, the programmer needs only to write a
simple interrupt routine to refill the send shift register whenever the last bit is shifted out by the UART
and/or empty the full receive shift register (copy the data somewhere else). The main program then
performs serial reads and writes simply by reading and writing 8-bit data to stacks.

MCS-51 based microcontrollers typically include one or two UARTs, two or three timers, 128 or 256
bytes of internal data RAM (16 bytes of which are bit-addressable), up to 128 bytes of I/O, 512 bytes to
64 Kb of internal program memory, and sometimes a quantity of extended data RAM (ERAM) located in
the external data space. The original 8051 core ran at 12 clock cycles per machine cycle, with most
instructions executing in one or two machine cycles. With a 12 MHz clock frequency, the 8051 could
thus execute 1 million one-cycle instructions per second or 500,000 two-cycle instructions per second.
Enhanced 8051 cores are now commonly used which run at six, four, two, or even one clock per
machine cycle, and have clock frequencies of up to 100 MHz, and are thus capable of an even greater
number of instructions per second. All SILabs, some Dallas and a few Atmel devices have single cycle
cores.

Common features included in modern 8051 based microcontrollers include built-in reset timers with
brown-out detection, on-chip oscillators, self-programmable Flash ROM program memory, boot loader
code in ROM, EEPROM non-volatile data storage, I²C, SPI, and USB host interfaces, CAN or LIN
bus, PWM generators, analog comparators, A/D and D/A converters, RTCs, extra counters and timers, in-
circuit debugging facilities, more interrupt sources, and extra power saving modes.
MEMORY ARCHITECTURE:

The MCS-51 has four distinct types of memory – internal RAM, special function registers, program
memory, and external data memory.

Internal RAM (IRAM) is located from address 0 to address 0xFF. IRAM from 0x00 to 0x7F can be accessed
directly, and the bytes from 0x20 to 0x2F are also bit-addressable. IRAM from 0x80 to 0xFF must be
accessed indirectly, using the @R0 or @R1 syntax, with the address to access loaded in R0 or R1.

Special function registers (SFR) are located from address 0x80 to 0xFF, and are accessed directly using
the same instructions as for the lower half of IRAM. Some of the SFR's are also bit-addressable.

Program memory (PMEM, though less common in usage than IRAM and XRAM) is located starting at
address 0. It may be on- or off-chip, depending on the particular model of chip being used. Program
memory is read-only, though some variants of the 8051 use on-chip flash memory and provide a method
of re-programming the memory in-system or in-application. Aside from storing code, program memory
can also store tables of constants that can be accessed by MOVC A, @DPTR, using the 16-bit special
function register DPTR.

External data memory (XRAM) also starts at address 0. It can also be on- or off-chip; what makes it
"external" is that it must be accessed using the MOVX (Move external) instruction. Many variants of the
8051 include the standard 256 bytes of IRAM plus a few KB of XRAM on the chip. If more XRAM is
required by an application, the internal XRAM can be disabled, and all MOVX instructions will fetch from
the external bus.

INSTRUCTION SET:
The MCS-51 instruction set offers several addressing modes, including

 direct register, using ACC (the accumulator) and R0-R7


 direct memory, which access the internal RAM or the SFR's, depending on the address
 indirect memory, using R0, R1, or DPTR to hold the memory address. The instruction used may vary
to access internal RAM, external RAM, or program memory.
 individual bits of a range of IRAM and some of the SFR's

Many of the operations allow any addressing mode for the source or the destination, for example, MOV
020h, 03fh will copy the value in memory location 0x3f in the internal RAM to the memory location
0x20, also in internal RAM. Because the 8051 is an accumulator-based architecture, all arithmetic
operations must use the accumulator, e.g. ADD A, 020h will add the value in memory location 0x20 in
the internal RAM to the accumulator.

One does not need to master these instructions to program the 8051. With the availability of good
quality C compilers, including open source virtually all programs can be written with high level language.
2.1.3 P89V51RD2
(8-bit 80C51 5 V low power 64 kB Flash microcontroller with 1 kB RAM)
GENERAL DESCRIPTION:

The P89V51RD2 is an 80C51 microcontroller with 64 kB Flash and 1024 bytes of data RAM.

A key feature of the P89V51RD2 is its X2 mode option. The design engineer can choose to run the
application with the conventional 80C51 clock rate (12 clocks per machine cycle) or select the X2 mode
(6 clocks per machine cycle) to achieve twice the throughput at the same clock frequency. Another way
to benefit from this feature is to keep the same performance by reducing the clock frequency by half,
thus dramatically reducing the EMI.

The Flash program memory supports both parallel programming and in serial

In-System Programming (ISP). Parallel programming mode offers gang-programming at high speed,
reducing programming costs and time to market. ISP allows a device to be reprogrammed in the end
product under software control. The capability to field/update the application firmware makes a wide
range of applications possible.

The P89V51RD2 is also In-Application Programmable (IAP), allowing the Flash

Program memory to be reconfigured even while the application is running.

FEATURES:

 80C51 Central Processing Unit


 5 V Operating voltage from 0 to 40 MHz
 64 Kb of on-chip Flash program memory with ISP (In-System Programming) and IAP (In-
Application Programming)
 Supports 12-clock (default) or 6-clock mode selection via software or ISP
 SPI (Serial Peripheral Interface) and enhanced UART
 PCA (Programmable Counter Array) with PWM and Capture/Compare functions
 Four 8-bit I/O ports with three high-current Port 1 pins (16 mA each)
 Three 16-bit timers/counters
 Programmable Watchdog timer (WDT)
 Eight interrupt sources with four priority levels
 Second DPTR register
 Low EMI mode (ALE inhibit)
 TTL- and CMOS-compatible logic levels
 Brown-out detection
 Low power modes
 Power-down mode with external interrupt wake-up
 Idle mode
 PDIP40, PLCC44 and TQFP44 packages

2.1.4 BLOCK DIAGRAM:


2.1.5 PIN DESCRIPTION:
SYMBOL PIN TYPE DESCRIPTION

Port 0: Port 0 is an 8-
P0.0 to P0.7 39 to 32 I/O bit open drain bi-
directional I/O Port.
Port 0 pins that have
‘1’s written to them
float, and in this state
can be used as high-
impedance inputs.
Port 0 is also the
multiplexed low-order
address and
data bus during
accesses to external
code and data
memory. In this
application, it uses
strong internal pull-ups
when transitioning to
‘1’s. Port 0 also
receives
the code bytes during
the external host mode
programming, and
outputs the code bytes
during the external host
mode verification.
External pull-ups are
required during
program verification or
as a general purpose
I/O port.

Port 1: Port 1 is an 8-
PI.0 to P1.7 1 to 8 I/O with bit bi-directional I/O
internal pull-up port with
internal pull-ups. The
Port 1 pins are pulled
high by the
internal pull-ups when
‘1’s are written to them
and can
be used as inputs in
this state. As inputs,
Port 1 pins that
are externally pulled
LOW will source
current (IIL)
because of the internal
pull-ups. P1.5, P1.6,
P1.7 have
high current drive of 16
mA. Port 1 also
receives the
low-order address
bytes during the
external host mode
programming and
verification

T2: External count


P1.0 1 I/O input to Timer/Counter
2 or Clock-out
from Timer/Counter 2

T2EX: Timer/Counter 2
P1.1 2 I capture/reload trigger
and
direction control

ECI: External clock


P1.2 3 I input. This signal is the
external
clock input for the PCA.

CEX0:
P1.3 4 I/O Capture/compare
external I/O for PCA
Module 0.
Each capture/compare
module connects to a
Port 1 pin
for external I/O.
When not used by the
PCA, this pin can
handle standard I/O.

SS: Slave port select


P1.4 5 I/O input for SPI
CEX1:
Capture/compare
external I/O for PCA
Module 1

MOSI: Master Output


P1.5 6 I/O Slave Input for SPI
CEX2:
Capture/compare
external I/O for PCA
Module 2

MISO: Master Input


P1.6 7 I/O
Slave Output for SPI
CEX3:
Capture/compare
external I/O for PCA
Module 3

SCK: Master Output


P1.7 8 I/0 Slave Input for SPI
CEX4:
Capture/compare
external I/O for PCA
Module 4

Port 2: Port 2 is an 8-
P2.0 to P2.7 21 to 28 I/O bit bi-directional I/O
with internal port with
internal pull-ups. Port 2
pull-up pins are pulled HIGH
by the
internal pull-ups when
‘1’s are written to them
and can
be used as inputs in
this state. As inputs,
Port 2 pins that
are externally pulled
LOW will source
current (IIL)
because of the internal
pull-ups. Port 2 sends
the
high-order address
byte during fetches
from external
program memory and
during accesses to
external Data
Memory that use 16-bit
address
(MOVX@DPTR). In
this
application, it uses
strong internal pull-ups
when
transitioning to ‘1’s.
Port 2 also receives
some control
signals and a partial of
high-order address bits
during
Port 3: Port 3 is an 8-
P3.0 to P3.7 10 to 17 I/O bit bidirectional I/O port
with internal pull- with
internal pull-ups. Port 3
up pins are pulled HIGH
by the
internal pull-ups when
‘1’s are written to them
and can
be used as inputs in
this state. As inputs,
Port 3 pins that
are externally pulled
LOW will source
current (IIL)
because of the internal
pull-ups. Port 3 also
receives
some control signals
and a partial of high-
order address
bits during the external
host mode
programming and
verification.

RXD: serial input port


P3.0 10 I
P3.1
TXD: serial output port
11 O
------
INT0: external interrupt
P3.2 12 I 0 input
------
INT1: external interrupt
P3.3 13 I 1 input

T0: external count input


P3.4 14 I to Timer/Counter 0

T1: external count input


P3.5 15 I to Timer/Counter 1
-----
WR: external data
P3.6 16 O memory write strobe
-----
RD: external data
P3.7 17 O memory read strobe
-----
---------
PSEN 29 I/O Program Store Enable:
PSEN is the read
strobe for
external program
memory. When the
device is executing
from internal program
memory, PSEN is
inactive
(HIGH). When the
device is executing
code from
external program
memory, PSEN is
activated twice each
machine cycle, except
that two PSEN
activations are
skipped during each
access to external data
memory. A
forced HIGH-to-LOW
input transition on the
PSEN pin
while the RST input is
continually held HIGH
for more
than 10 machine cycles
will cause the device to
enter
external host mode
programming.

Reset: While the


RST 9 I oscillator is running, a
HIGH logic state
on this pin for two
machine cycles will
reset the device. If
the PSEN pin is driven
by a HIGH-to-LOW
input
transition while the
RST input pin is held
HIGH, the
device will enter the
external host mode,
otherwise the
device will enter the
normal operation
mode.
----
External Access
EA 31 I Enable: EA must be
connected to VSS
in order to enable the
device to fetch code
from the
external program
memory. EA must be
strapped to VDD
for internal program
execution. However,
Security lock
level 4 will disable EA,
and program execution
is only
possible from internal
program memory. The
EA pin can
tolerate a high voltage
of 12 V.
-------
Address Latch Enable:
PROG/ALE 30 I/O ALE is the output
signal for
latching the low byte of
the address during an
access to
external memory. This
pin is also the
programming
pulse input (PROG) for
flash programming.
Normally the
ALE is emitted at a
constant rate of 16 the
crystal
frequencyand can be
used for external timing
and
clocking. One ALE
pulse is skipped during
each access
to external data
memory. However, if
AO is set to ‘1’,
ALE is disabled.

No Connect
NC - I/O

Crystal 1: Input to the


XTAL1 19 I inverting oscillator
amplifier and
input to the internal
clock generator
circuits.

Crystal 2: Output from


XTAL2 18 0 the inverting oscillator
amplifier.

POWER SUPPLY
VDD 40

GROUND
VSS 20

DRIVING LCD

INTRODUCTION:

The LCD is a dot matrix liquid crystal display that displays alphanumeric,
Kana (Japanese) character and symbols. The built - in controller & driver
LSIs provide convenient connectively between a dot matrix LCD and most 4
or 8 bit microprocessors or microcontrollers. All the functions required for
dot matrix liquid crystal display drive are internally provided. Internal
refresh is provided by the LCD. The CMOS technology makes the device ideal
for application in hand held, portable and other battery powered instruments
with low power consumption.

FEATURES:

 Easy interface with a 4-bit or 8-bit MPU.


 Built-in dot matrix LCD controller with font 5 X 7 or 5 X 10 dots.
 Display data RAM for 80 characters (80 X 8bits).
 Character generator ROM, which provides 160 characters with font
5 X 7 dots and 32 characters with font 5 X 10 dots.

 Both display data and character generator RAMs can be read from
the
MPU.

 Internal automatic reset circuit at power ON.


 Built-in oscillator circuit (No extra clock required).
 Wide range of instruction functions: Clear display, cursor home,
Display ON/OFF, Cursor Shift, Display Shift.

OPERATIONAL OVERVIEW:

1. BUSY FLAG (BF):

When the busy flag is HIGH level, it indicates that the controller is in the
internal operation mode and the next instruction will not be accepted. When
R/W is ‘1’ and Rs is ‘0’, the busy flag is output from DB7. The next instruction
must be written after the busy flag goes low.

2. ADDRESS COUNTER (AC):

The address counter (AC) generates the address for the DD RAM, the CG
RAM and for the cursor display. When an instruction code for DD or CG RAM
address is written to the controller, after deciding whether it is DD RAM or
CG RAM, the address information is transferred to AC. After writing into DD
or CG RAM display data, AC is automatically incremented (or decremented).
The data of AC is output DB0~DB0 when RS is’0’ and R/W is’1’.

3. CHARACTER GENERATOR ROM (CG ROM):

The character generator ROM generates 5 X 7 dot or 5 X10 dot character


pattern from 8-bit character codes. It can generate 160 types of 5 X7 dot
character pattern and 32 types of 5 X 10 dot character patterns. When the
8-bit character code of a CG ROM is written to the DD RAM, the character
pattern of the CG ROM corresponding to the code is displayed on the LCD
display position corresponding to the DD RAM.

4. CHARACTER GENERATOR RAM (CG RAM):

The character generator RAM (CG RAM) is the RAM with which the user can
generate character patterns by program. The CG RAM has the capacity to
store 8 kinds of 5 X 7 dots or 4 kinds of 5 X 10 dots. Programming of this
character patterns is explained in CG RAM programming.

5. DISPLAY DATA RAM (DD RAM):


The display data RAM (DD RAM) stores display data represented in 8-bit
(hexadecimal) character codes. Its capacity is 80 X 8 bits, or 80 characters.
The display data RAM (DD RAM) that is not used for display can be used as
general data RAM. Depending on the 8-bit character code that is written into
the DD RAM. LCD will select the character pattern either from Character
Generator RAM (CG RAM) or from Character Generator ROM (CG ROM).

1-line Display (N=O)

1 2 3 4 5 78 79 80 Display position

00 01 02 03 04 -- -- -- 4D 4E 4F
Line-1 DD RAM address

When the display characters are less than 80, the display begins at the
home position. For example, 8 characters X 1 line will be like:

1 2 3 4 5 6 7 8 Display position

00 01 02 03 04 05 06 07
DD RAM address

When the display shift operation is performed, the DD RAM address moves
as:

00 01 02 03 04 05 06 07 (Left shift display)

(Right shift display)


00 01 02 03 04 05 06 07
2-line Display (N=1)

1 2 3 4 5 6 -- -- 39 40 Display position

00 01 02 03 04 05 -- -- 26 27
Line-1

DD RAM address
40 41 42 43 44 45 -- -- 66 67
Note that the first line end address and the second line start address are not
consecutive. When the capacity is less than 40 X 2, the 2 lines are displayed
from the home position.

For example 16 characters X 2 lines will be like:

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

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
position

Line-1

40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
DDRAM

Line-2
address

When display shift is performed, the DD RAM address move as:


01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10

Left
41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50
shift

27 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E

67 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E
Right shift
display

INSTRUCTION CODE:

The instruction code is a command set through which the LCD is controlled
by the MPU. Prior to internal execution of the instruction code, control
information is temporally stored in the internal resisters of the LCD, to allow
interface from LCD’s internal operation to various types of MPUs, which
operate at different speeds or allow to interface to peripheral control ICs.
The LCD begins operation upon receipt of the instruction code input from the
MPU. There are four types of instruction, those that:

1. Designate LCD functions such as display format, data length, etc.


2. Define internal RAM address.
3. Perform data transfer with internal RAM.
4. Others.
Normally the, 3rd category of instruction are used frequently, Automatic
incrementing (or decrementing) of LCD internal RAM address after each data
write lessens the MPU program load. The display shift is performed
concurrently with display data write, enabling the user to develop system in
minimum time with maximum programming efficiency. When an instruction
is executing during internal operation, no instruction other than busy
flag/address read instruction will be executed.

The busy flag is set to’1’ while the LCD is internally processing an
instruction. LCD signals that it is ready to accept the instruction by resetting
the Busy flag. It is therefore to be ensured that the instructions are written
to the LCD only while the busy flag is ‘0’. There are two ways of doing this:

1. Read the Busy flag and ensure it is ‘0’ before writing any instruction to
the LCD.

2. Provide a sufficiently large delay between instructions to the LCD.


INSTRUCTION TABLE:

Instru Code Description Execut


-ction e time
(max)
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1
DB0

Clear 0 0 0 0 0 0 0 0 Clears all display and returns cursor to home 1.64mS


display 0 1 position (address 0).

Cursor 0 0 0 0 0 0 0 0 Returns the cursor to the home position 1.64mS


at 1 * (address 0). Also returns the display being

home shifted to original position. DDRAM contents


remain unchanged.

Entry 0 0 0 0 0 0 0 1 I/D Sets the cursors move direction and specifies 40S
mode S shift of display. These operations are

set performed during data write and read.


Display 0 0 0 0 0 0 1 D Sets ON/OFF of all display (D) cursor 40S
ON/OFF C B ON/OFF (C), and blink of cursor position

control character (B).

Cursor/ 0 0 0 0 0 1 S/C R/L Moves the cursor and shifts the display 40S
display * * without changing DDRAM contents.

shift

Functio 0 0 0 0 1 DL N F Sets interface data length (DL) number of 40S


n set * * display lines (L) and character font (F).

CGRAM 0 0 0 1 ACG Sets the CGRAM address. CGRAM data is 40S


address sent and received after this setting.

set

DDRAM 0 0 1 ADD Sets the DDRAM address. 40S


address DDRAM data is sent and
set received after this setting.

Busy 0 1 BF AC Reads busy flag (BF) indicating 40S


flag/ad internal operations are being
d-ress performed and reads address
read counter contents.
CGRAM 1 0 Write data Writes data into DDRAM or 40S
/DDRA CGRAM.
M
write

CGRAM 1 1 Read data Reads data from DDRAM or 40S


/DDRA CGRAM.
M read

DESCRIPTION OF INSTRUCTION CODE:

1. CLEAR DISPLAY:

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0 0 0 0 0 0 0 0 1

When this instruction is executed, the LCD display cleared and returned to
its original status if it is shifted. The cursor goes to left edge of the display
(the left end of the first line if 2-line mode). Space code ‘20’ (hexadecimal)
(character pattern for character code ‘20’ is blank pattern) is written into all
DD RAM addresses. Sets DD RAM address 0 in address counter (AC). Sets
I/D = ‘1’ (Increment Mode) of Entry Mode. S of Entry Mode Doesn’t change.
2. RETURN HOME:

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0 0 0 0 0 0 0 0 *
Code

Higher order bits Lower order bits

* NO effect

The cursor or blink goes to the left edge of the display (to the left end of the
first line in the 2 line display mode). The display returns to its original status
if it was shifted. DD RAM contents do not change. Sets the DD RAM address
0 in address counter.

3. ENTRY MODE SET:

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0 0 0 0 0 0 1 I/D S
Code

Higher order bits Lower order bits

I/D: when the I/D is set, the 8-bit character code is written or read to and
from the DD RAM, the cursor shifts to the right by 1 character position (I/D
= ‘1’; increment) or to the left by 1 character position (I/D =’0’;
decrement). The address is incremented (I/D = ‘1’) or decremented (I/D
=’0’) by 1 at this time. Even after the character pattern code is written or
read to end from the CG RAM, the address counter (A/C) is incremented (I/D
= ‘1’) or decremented (I/D = ‘0’) by 1.

S: Shift the entire to the right or to the left when s is 1; to the left when I/D
=1 and to the right when I/D = 0. Thus it looks as if the cursor stands still
the display moves. The display does not shift when reading from the DD
RAM when or when writing in to or reading out from the CG RAM when S=0.

4. DISPLAY ON/OFF CONTROL:

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0 0 0 0 0 1 D C B
Code

Higher order bits Lower order bits

D: The display is ON when D = ‘1’ and OFF when D = ‘0’. When off due to D
= ‘0’, display data remains in the DD RAM. It can be displayed immediately
by setting d = ‘1’.

C: The cursor is displayed when C = ‘1’ and goes off when C = ‘0’. Even if
the cursor disappears, the function of I/D, etc. does not change during
display data write. The cursor is displayed using 5 dots in the 8 th line when
the 5x7 dot character font is selected and 5 dots in the 11 th line when the
5x10 dot character font is selected.
B: The character indicated by the cursor blinks when B = ‘1’. The blink is
displayed by switching all black dots and display characters at 409.6 ms
interval when fCP or fOSC = 250 kHz. The cursor and the blink can be set to
display simultaneously. (The blink interval changes according to the
reciprocal of fCP or fOSC. 409.6 X 250/270 = 379.2 ms when fCP + 270kHz).

5. CURSOR OR DISPLAY SHIFT:

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0 0 0 0 1 S/C R/L * *
Code

Higher order bits Lower order bits

* No effect

Shifts cursor position or display to the right or left without writing or


reading display data. This function is used to correct or search for the
display. In a 2-line display, the cursor moves to the second line when it is
passes the 40th digit of the 1st list. Notice that the 1st and 2nd line
displays will shift at the same time. When the displayed data is shifted
repeatedly each line only moves horizontally. The 2nd line display does

not shift into the 1st line position.


S/C R/L

0 0 Shifts the cursor position to the left.

(AC is decremented by one).

0 1 Shifts the cursor position to the right

(AC is incremented by one).

1 0 Shifts the entire display to the left.

The cursor follows the display shift.

1 1 Shifts the entire display to the right.

The cursor follows the display shift.

Address counter (AC) contents do not change if the only action performed is
shift display.

6. FUNCTION SET:

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0 0 0 1 DL N F * *
Code

Higher order bits Lower order bits

* No effect

DL: Sets interface data length


When DL =’1’, the data input/output to and from the MPU is carried out by
means of 8 bits DB7 to DB0. When DL =`0’, the data input/output to and

from the MPU is carried out in two steps through the 4 bits DB7 to DB4.

N: Sets number of display lines

The 2-line display mode of the LCD is selected when N =’1’, while the 1-Line
display mode is selected when N = ‘0’

F: Sets character font

The 5x7 dots character font is selected when F =’0’, while the 5x10 dots
character font is selected when F = ‘1’1 and N =’0’.

7. SET CG RAM ADDRESS:

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0 0 1 A5 A4 A3 A2 A1 A0
Code

Higher order bits Lower order bits

Sets CG RAM address in to the Address Counter in binary A5 to A0. In the 5


X 10 font mode A5 & A4 define the CG RAM block number while A3-Ao
define the row with in the block. In the 5 X 7 font mode the CG RAM block is
defined by A5-A3 while A2- A0 define the row.
8. SET DD RAM ADDRESS:

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0 1 B6 B5 B4 B3 B2 B1 B0
Code

Higher order bits Lower order bits

Sets the DD RAM address into the address counter in binary B6 to B0. Data
then written or read from the LCD pertains to the DD RAM. However, when
N= ‘0’ (1-line display), B6 to B0 is ‘00’~ ‘4F’ (hexa). When N = ‘1’ (2-line
display), B6 to B0 is ‘00’ ~ ‘27’ (hexa) for the first line, and ‘40’~’67’ (hexa)
for the second line.

9. READ BUSY FLAG AND ADDRESS:

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 1 BF C6 C5 C4 C3 C2 C1 C0
Code

Higher order bits Lower order bits

Reads the busy flag (BF) that indicates the system is now internally
executing a previously received instruction. BF = ‘1’ indicates that internal
operation is in progress. The next instruction will not be accepted until BF
goes ‘0’. Check the BF status before the next write operation.

At the same time, the value of the address counter expressed in binary C6
toC0 is read. The address counter is used by both CG and DD RAM
addresses, and its value is determined by the previous instruction.

10. WRITE DATA TO CG TO DD RAM:


RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

1 0 D D D D D D D D
Code

Higher order bits Lower order bits

Writes binary 8 data DDDDDDDD to the CG or the DD RAM. Whether the CG


or DD RAM is to be written in to is determined by previous specification of
CG RAM or DD RAM address setting. After write, the address is automatically
incremented or decremented by 1 according to entry mode. The entry mode
also determines display shift.

11. READ DATA FROM CG OR DD RAM:

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

1 1 D D D D D D D D
Code

Higher order bits Lower order bits

Reads binary 8 bit data DDDDDDDD from the CG or DD RAM. The previous
designation determines whether the CG or DD RAM is to be read. Before
entering the read instruction, you must execute either the CG RAM or DD
RAM address set instruction. If you do not, the first read data would be
invalid.

SOFTWARE:

.1 Appendix 1:

How to compile the demo program?

1. Start the software Keil uVision4.

2. In the menu, select Project -> New Project.


4. Select Device for Target. Click Philips -> P89V51RD2, click OK.
6. Project -> Options for Target. Select tab “Output”. Click check box

“Create HEX File”. Click OK.


7. You can press F7 or select Project -> Build Target to compile the C

program and link the object file to HEX file.


8. If everything is OK, a Hex file should be created and a message

creating new file from “main” will prompt out.


C51 COMPILER V9.50a EVM 09/09/2015 18:24:02 PAGE 1

C51 COMPILER V9.50a, COMPILATION OF MODULE EVM

OBJECT MODULE PLACED IN evm.OBJ

COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE evm.c BROWSE DEBUG OBJECTEXTEND TABS(2)


line level source

1 /***********************************************************

2 name : Mr.mukesh raj;

3 project name : Electronic voting machine by gsm technonlogy;

4 components : microcontroller at-89s52,

5 apr9600,lcd,

6 buzzer

7 *********************************************************/

48 2 lcd_gotoxy(1,16);

49 2 lcddata(party3+0x30);

50 2 delay(50000);

51 2 }

52 1 else if(count==5)

53 1 {

54 2 lcd_gotoxy(1,3);

55 2 lcdstring("Party4 Votes: ");


C51 COMPILER V9.50a EVM 09/09/2015 18:24:02 PAGE 2

56 2 lcd_gotoxy(1,16);

57 2 lcddata(party4+0x30);

58 2 delay(50000);

59 2 }

60 1 if(count>=6)

61 1 {

62 2 count=0;

63 2 lcdclr();

64 2 lcd_gotoxy(1,2);

65 2 lcdstring("GSM EVM SYSTEM");

66 2 delay(50000);

67 2 }

68 1 }

69

70 void main()

71 {

72 1 P0=0XFF;

73 1 P1=0XFF;

74 1 P2=0XFF;

75 1 P3=0XFF;

76 1 IT0=1;

77 1 EX0=1;

78 1 EA=1;
79 1 lcdinit();

80 1 delay(50000);

81 1 lcdinit();

82 1 delay(20000);

83 1

84 1 lcdclr();

85 1 lcd_gotoxy(1,2);

86 1 lcdstring("GSM EVM SYSTEM");

87 1 while(1)

88 1 {

89 2 keycheck();

90 2 keyaction();

91 2 voteaction();

92 2 }

93 1 }

94 void voteaction()

95 {

96 1 if(flag_pass==0)

97 1 {

98 2 if(BJP==0)

99 2 {

100 3 party1++;

101 3 T++;

102 3 buzzer=0;

103 3 apr4=0;
104 3 flag_pass=1;

105 3 lcdclr();

106 3 lcd_gotoxy(1,4);

107 3 lcdstring("VOTE CASTED");

108 3 delay(60000);

109 3 lcd_gotoxy(2,6);

110 3 lcdstring("NEXT");

111 3 apr4=1;

112 3 buzzer=1;

113 3 }

114 2 else if(UPA==0)

115 2 {

116 3 party2++;

117 3 T++;
155 3 lcdstring("VOTE CASTED");

156 3 delay(60000);

157 3 lcd_gotoxy(2,6);

158 3 lcdstring("NEXT");

159 3 buzzer=1;

160 3 apr4=1;

161 3 }

162 2 }

163 1 }

164

165 void keycheck(void)

166 {

167 1 keyno=0xff;

168 1

169 1 if(sw1==0)

170 1 {

171 2 keyno=1;

172 2 }

173 1 if(sw2==0)

174 1 {

175 2 keyno=2;

176 2 }

177 1 if(sw3==0)

178 1 {

179 2 keyno=3;
195 2 flag=1;

196 2 }

197 1 }

198

199 void keyaction()

200 {

201 1 if(keyno==9)

202 1 {

203 2 apr1=0;

204 2 flag1=0;

205 2 lcdclr();

206 2 lcd_gotoxy(1,1);

207 2 lcdstring("Enter V.ID*Pass:");

208 2 delay(60000);

209 2 apr1=1;

210 2 }

211 1 else if(keyno==0)

212 1 {

213 2 if(flag1==0)

214 2 location=0;

215 2 pass_fail();

216 2 }

217

231 3 lcddata(keyno+0x30);

232 3 delay(40000);
233 3 }

234 2 }

235 1 }

236

237 void pass_fail()

238 {

239 1

240 1 if(unit==1 && tens==1 && hund==1 && thou==1)

241 1 {
C51 COMPILER V9.50a EVM 09/09/2015 18:24:02 PAGE 5

242 2 if(flag_cand1==1)

243 2 {

244 3 pass();

245 3 flag_cand1=0;

246 3 }

247 2 else

248 2 {

249 3 sorry();

250 3 }

251 2 }

252 1 else if(unit==2 && tens==2 && hund==2 && thou==2)

288 1 else

289 1 fail();

290 1 }

291

292 void pass()

293 {

294 1 flag_pass=0;

295 1 flag1=1;

296 1 apr2=0;

297 1 buzzer=0;

298 1 lcdclr();

299 1 lcd_gotoxy(1,3);
300 1 lcdstring("V.Id valid");

301 1 delay(40000);

302 1 lcd_gotoxy(2,3);

303 1 lcdstring("Cast the vote");


C51 COMPILER V9.50a EVM 09/09/2015 18:24:02 PAGE 6

304 1 delay(50000);

305 1 apr2=1;

306 1 buzzer=1;

307 1 }

308

309 void sorry()

310 {

311 1

316 1 lcdstring("Sorry");

317 1 delay(50000);

318 1 apr3=1;

319 1 }

320 void fail()

321 {

322 1 flag1=1;

323 1 apr3=0;

324 1 flag_pass=1;

325 1 lcdclr();

326 1 lcd_gotoxy(1,1);

327 1 lcdstring("V.Id not valid");

328 1 delay(50000);

329 1 lcd_gotoxy(2,5);

330 1 lcdstring("NEXT");
331 1 delay(50000);

332 1 apr3=1;

333 1 }

334

335

336 void lcdinit()

337

372 1 delay(15);

373 1 }

374

375 void lcdcmd(unsigned char temp)

376 {

377 1 unsigned char data1,data2;

378 1

379 1 data2=lcdport;

380 1 data2=data2 & 0x0f;

381 1 data1=temp;

382 1 data1=data1 & 0xf0;

383 1 lcdport=data1 | data2;

384 1

385 1 lcdrs=0;

386 1 lcden=1;

387 1 delay(150);

388 1 lcden=0;

389 1 delay(15);
390 1

391 1 data2=lcdport;

392 1 data2=data2 & 0x0f;

393 1 data1=temp<<4;

394 1 data1=data1 & 0xf0;

395 1 lcdport=data1 | data2;

396 1

397 1 lcdrs=0;

398 1 lcden=1;

399 1 delay(150);

400 1 lcden=0;

401 1 delay(15);

402 1 }

403

404 void lcddata(unsigned char temp)

405 {

406 1 unsigned char data1,data2;

407 1

408 1 data2=lcdport;

409 1 data2=data2 & 0x0f;

410

424 1 lcdport=data1 | data2;

425 1

426 1 lcdrs=1;

427 1 lcden=1;
C51 COMPILER V9.50a EVM 09/09/2015 18:24:02 PAGE 8

428 1 delay(15);

429 1 lcden=0;

430 1 delay(15);

431 1 }

432

433 void lcdclr()

434 {

435 1 lcdcmd(0x01);

436 1 delay(15);

437 1 }

438

439 void lcd_gotoxy(unsigned char row,unsigned char col)

440 {

441 1 unsigned char j;

442 1 delay(10);

443 1 if(row==1)

444

452

453 void lcdstring(unsigned char *ptr)

454 {

455 1 while(*ptr!=0)

456 1 {

457 2
458 2 ptr++;

459 2 }

460 1 }

461

462 void delay(unsigned int i)

463 {

464 1 while(i--);

465 1 }

MODULE INFORMATION: STATIC OVERLAYABLE

CODE SIZE = 1262 ----

CONSTANT SIZE = 186 ----

XDATA SIZE = ---- ----

PDATA SIZE = ---- ----

DATA SIZE = 14 8

IDATA SIZE = ---- ----

BIT SIZE = 5 ----

END OF MODULE INFORMATION.

C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)

You might also like