You are on page 1of 173

ABSTRACT

This project aims at designing and executing the car parking system. This
automatic multistoried car parking system helps to minimize the car parking area.
In the modern world, where parking-space has become a very big problem and in
the era of miniaturization, it has become a very crucial necessity to avoid the
wastage of space, big companies and apartments etc. In places where more than
100 cars need to be parked, this system proves to be useful in reducing wastage
of space. This Automatic Car Parking System enables the parking of vehicles,
floor after floor and thus reducing the space used. Here any number of cars can
be parked according to the requirement. These makes the systems modernized
and even a space-saving one.
In our embedded based application we are developing an automatic
system. Here when a vehicle enter he has to enter the vehicle number by using
Hex keypad, and that vehicle will be carried to floor where the parking space is
available. There are IR sensors to sense the entry/ exit of the vehicles. While
leaving if he enters the vehicle number it shows floor number in which floor the
vehicle is parked. This can be displayed on the LCD.One more advance feature
in this project using RFID technology parking fare will be deducted from the
card.The parking area will be reserved in advance by the management using RF
wireless communication.
The programming language used for developing the software to the
microcontroller is Embedded/Assembly. The KEIL cross compiler is used to edit,
compile and debug this program. Here in our application we are using AT89C51
microcontroller which is Flash Programmable IC.AT represents the Atmel
Corporation represents CMOS technology is used for designing the IC.
INDEX

1. INTRODUCTION
 OBJECTIVE OF THE PROJECT
 BLOCK DIAGRAM
2. DESCRIPTION OF THE PROJECT
 BLOCK DIAGRAM DESCRIPTION
 SCHEMATIC
 SCHEMATIC EXPLANATION
3. HARDWARE DESCRIPTION
 DCMOTOR
 L293D
 IR SENSOR
 HEX KEYPAD
 MICROCONTROLLER
 MAX232
 RFID READER
 DB9 CONNECTOR
 SERIAL COMMUNICATION
 LCD DISPLAY
 POWER SUPPLY
 PRINTED CIRCUIT BOARD
4. SOFTWARE DESCRIPTION
 FLOW CHART
 ASSEMBLY LANGUAGE PROGRAM
5. FUTURE ENHANCEMENTS
6. CONCLUSION

7. BIBLIOGRAPHY
INTRODUCTION

Objective: The main aim of this embedded application is to minimize the


parking area by developing multistoried car parking system.

Block Diagram

Tx:
For Transmitter Selection
s1
RF
s2 Micro Transmitter
Controller Encoder
Module
HT12E
Rx:

KEYPAD
Display unit

MCU

SENSO
RFID
R
READER

Driver
DECODER Circuit

DC
MOTOR

POWER SUPPLY CIRCUIT

Power supply to all


Step sections
Bridge Filter
down Regulator
Rectifier Circuit
T/F
Description: This application is in the area of embedded systems.

An embedded system is some combination of computer hardware and

software, either fixed in capability or programmable, that is specifically designed

for a particular function

Since the embedded system is dedicated to specific tasks, design engineers

can optimize it reducing the size and cost of the product and increasing the

reliability and performance. Embedded systems are controlled by one or more

main processing cores that is typically either a microcontroller or a digital signal

processor (DSP). Embedded systems control many devices in common use today.

The Keil C51 C Compiler for the 8051 microcontroller is the most popular

8051 C compiler in the world. It provides more features than any other 8051 C

compiler available today.The C51 Compiler allows you to write 8051

microcontroller applications in C that, once compiled, have the efficiency and

speed of assembly language. Language extensions in the C51 Compiler give you

full access to all resources of the 8051.

The C51 Compiler translates C source files into relocatable object modules

which contain full symbolic information for debugging with the µVision Debugger

or an in-circuit emulator. In addition to the object file, the compiler generates a

listing file which may optionally include symbol table and cross reference

information.
Embedded C is an extension for the programming language C to support

embedded processors, enabling portable and efficient application programming

for embedded systems

The AT89C51 is a low-power, high-performance CMOS 8-bit microcomputer with

4K

bytes of Flash programmable and erasable read only memory (PEROM). The

device

is manufactured using Atmel’s high-density nonvolatile memory technology and is

compatible with the industry-standard MCS-51 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 Flash

on a monolithic chip, the Atmel AT89C51 is a powerful microcomputer which

provides

a highly-flexible and cost-effective solution to many embedded control

applications.

A display is provided at the ground floor which is basically a counter that

displays floor number in which floor parking space is available. It informs whether

the floors are fully filled with the cars or is it having place in a particular floor or

not. There is facility of lift to carry the car to up . Movement of Lift is controlled by

DC motor. In this project we have provided three floors of a building for car

parking. Maximum storage capacity of each floor is given as three. Storage

capacity can be changed according to the requirement. Vehicles are allowed only
after entering the car number through the hex keypad. While leaving if he enters

his car number it will display the floor number in which floor his car is parked.

There are IR sensors for sensing the entry and exit of vehicles. With these sensors

the database regarding the number of cars in the building will be maintained.

When the car enters the lift it will automatically carry the car to the particular floor

where the parking space is available. After this process the lift will come back to

the normal position ie., to the ground floor. In this we are using IR transmitter and

IR receiver for sensing the entry and exit of the vehicles. The infrared frequency is

26Khz.The arrangement is in such a way where IR receiver continuously receives

the IR frequency signals. Here we are using 16*2 LCD where 16 characters will be

displayed in each row.

The one more advanced feature in this application is to reserve the parking

area in advance. This can be done only by using RF communication (434

MHz).Only the management has the authority to reserve the parking area in

advance. The switches are provided at the transmitter end with the encoder and

RF module for transmitting the data wirelessly.s

SCHEMATIC:
CAR PARKING SYSTEM
D14 D9
R10
Vcc DB9 Connector
J1 RV4 LED-BLUE
330R
LED-YELLOW
5 POT
9
D13 D7
4
R9
8
RV3 330R
3 LED-BLUE LED-YELLOW
7 POT
2
MAX232 6 D12 D6
1 3 U4 1
R8

C1+ C1- CONN-D9M RV2 LED-BLUE


330R
LED-YELLOW
POT
11 14 LCD
12
T1IN T1OUT
13 D11 D8
10
R1OUT
T2IN
R1IN
T2OUT
7 AT89C51 R7
9 8
R2OUT R2IN U1 RV1 LED-BLUE
330R LCD1
LED-YELLOW
2 19 39 POT LM016L
VS+ XTAL1 P0.0/AD0
6 38
VS- P0.1/AD1
37
P0.2/AD2
18 36
C2+ C2- XTAL2 P0.3/AD3
35
P0.4/AD4
34
P0.5/AD5
4 5 MAX232 33
P0.6/AD6
9 32
RST P0.7/AD7

VDD
VSS

VEE

RW
RS

D0
D1
D2
D3
D4
D5
D6
D7
E
21
P2.0/A8
22
P2.1/A9

1
2
3

4
5
6

7
8
9
10
11
12
13
14
23
P2.2/A10
29 24
PSEN P2.3/A11
30 25
ALE P2.4/A12
31 26
EA P2.5/A13
27
P2.6/A14
28
keypad P2.7/A15
1 10
P1.0 P3.0/RXD
2 11
3
P1.1 P3.1/TXD
12 Vcc
P1.2 P3.2/INT0
4 13
5
P1.3 P3.3/INT1
14 16 8 U2
P1.4 P3.4/T0
6 15
7
P1.5 P3.5/T1
16 2 3 DC Motor
P1.6 P3.6/WR IN1 VSS VS OUT1
8 17 7 6
P1.7 P3.7/RD IN2 OUT2
1
1

EN1
AT89C51
A
1 2 3 9
EN2
10 11
IN3 OUT3
15 14
IN4 GND GND OUT4
B
4 5 6
L293D

C 7 8 9 L293D

D
0 #

PORT 0:

Port 0 can act as both input as well as output port also for addressing the
external memory.In this we are connecting the IR sensor receivers to sense the
entry and exit of vehicles.
PORT 2:
Port 1 can act as both input as well as output port. The 8 pins of Port 1 is
connected to the eight data pins of LCD. We are using 16 pin LCD. The data is
send through these pins if we selected the data register in LCD otherwise
command code will be send if we selected command code register.

PORT 1:
Port 2 can act as both input as well as output port. The microcontroller port 2 pins
are connected to the 4*3 hex keypad. If any key is pressed the input will be taken
by the port pin and the microcontroller will display the data according to the key
pressed.

PORT 3:
Port 3 is also called as communication port. It can be used as both input as well
as output port. The control pins of LCD are connected to Port 3 first three pins.
We have three control pins in the LCD ie. RS (register select), R/W, Enable pin.
The Register select is used to select the registers present internally to the LCD.
We are having two registers data register and command code register. If RS=0
then we are selecting data register, if RS=1 then we are going for command code
register. This RS is connected to P3.0 pin. The R/W pin is connected to P3.1.
This pin is used for reading and writing the data. Next is Enable pin which is
connected to P3.2 and it is used to latch the information present in the data pins.
In this we are also using the serial communication to interface with the RFID
reader .so, RXD and TXD pins of port3 are used for serial communication.

HEX KEYPAD

A general 3×2 matrix keypad contains only 0-9 keys.Whereas a hex keypad
contains 0-9 keys and also it contains A,B,C,D,E,F keys.So it provides more
number of combination of Passwords to the firms.
A keypad-matrix is very nice.

• For a 3 X 4 keypad you need 7 I/O-pins.


• Such a keypad wants pullup resistors.
• So, you have to realise that in hardware, or you are forced to a port that
has software pullups.
• The scanning of a matrix is, for a controller, a time wasting task.

That has to be different, and that's why I made a matrix decoder that reads the
matrix, and transforms it to a 4-bits binary code.

This code matches with the printing on the key's of a 3 X 4 keypad. These 4 bits
can be placed in the upper region of portB, so your interrupt lines (B0 and B1)
are free again. Now you don't need pullups anymore, so you can use other ports
as well for the keypad.

The Schematic

Please remember that every individual keypad can have it's own connections, so
pay attention to this !!

Pin 1 from the keypad stands for row 3


Pin 2 ---> row 2
Pin 3 ---> column 1
pin 4 ---> row 1
pin 5 --->column 3
pin 6 ---> row 4
Pin 7 --->column 2

The PIC runs on its internal oscillator, so we spare out a crystal and 2 caps.

A 4-bit code can be taken from the middle 4 pins of J2. The outer pins must be
connected to a 5 volt supply and GND.

If no key is pressed, the output has the value 15 (bin 1111). If a key is pressed,
the output gives the corresponding value of that key. The * gets the value 10, and
the # gets the value 11. Every keypress gives a friendly beep. Additionally a
negative 1 ms pulse is given on J4. You can use this pulse as an interrupt trigger,
if you wish. This pulse is generated after the data has arrived at the port. The
data stays on the port until the key is released.

If you've chosen the serial configuration, then the data-signal can be taken from
RA0 (pin 5 of the header).
The signal has a reverse polarity, is 9600 baud, 8 bits wide, and has no parity
(9600, 8, n, 1)
There's also an interrupt pulse here, too. This is sent by RA1 (pin 4 of the
header).
This pulse is generated before the data is sent, giving the main-controller the
chance to anticipate it.

In both configurations (parallel & serial) you are free to use the interrupt pulse.
There is no requirement for it.

DC Motor
DC motors are configured in many types and sizes, including brush less, servo,
and gear motor types. A motor consists of a rotor and a permanent magnetic field
stator. The magnetic field is maintained using either permanent magnets or
electromagnetic windings. DC motors are most commonly used in variable speed
and torque.
Motion and controls cover a wide range of components that in
some way are used to generate and/or control motion. Areas within this category
include bearings and bushings, clutches and brakes, controls and drives, drive
components, encoders and resolves, Integrated motion control, limit switches,
linear actuators, linear and rotary motion components, linear position sensing,
motors (both AC and DC motors), orientation position sensing, pneumatics and
pneumatic components, positioning stages, slides and guides, power
transmission (mechanical), seals, slip rings,solenoids,springs.

Motors are the devices that provide the actual speed and torque
in a drive system. This family includes AC motor types (single and multiphase
motors, universal, servo motors, induction, synchronous, and gear motor) and
DC motors (brush less, servo motor, and gear motor) as well as linear, stepper
and air motors, and motor contactors and starters.
In any electric motor, operation is based on simple electromagnetism. A current-
carrying conductor generates a magnetic field; when this is then placed in an
external magnetic field, it will experience a force proportional to the current in the
conductor, and to the strength of the external magnetic field. As you are well
aware of from playing with magnets as a kid, opposite (North and South)
polarities attract, while like polarities (North and North, South and South) repel.
The internal configuration of a DC motor is designed to harness the magnetic
interaction between a current-carrying conductor and an external magnetic field
to generate rotational motion.

Let's start by looking at a simple 2-pole DC electric motor (here red represents a
magnet or winding with a "North" polarization, while green represents a magnet
or winding with a "South" polarization).

Every DC motor has six basic parts -- axle, rotor (a.k.a., armature), stator,
commutator, field magnet(s), and brushes. In most common DC motors (and all
that Beamers will see), the external magnetic field is produced by high-strength
permanent magnets1. The stator is the stationary part of the motor -- this includes
the motor casing, as well as two or more permanent magnet pole pieces. The
rotor (together with the axle and attached commutator) rotates with respect to the
stator. The rotor consists of windings (generally on a core), the windings being
electrically connected to the commutator. The above diagram shows a common
motor layout -- with the rotor inside the stator (field) magnets.

The geometry of the brushes, commutator contacts, and rotor windings are such
that when power is applied, the polarities of the energized winding and the stator
magnet(s) are misaligned, and the rotor will rotate until it is almost aligned with
the stator's field magnets. As the rotor reaches alignment, the brushes move to
the next commutator contacts, and energize the next winding. Given our example
two-pole motor, the rotation reverses the direction of current through the rotor
winding, leading to a "flip" of the rotor's magnetic field, and driving it to continue
rotating.

In real life, though, DC motors will always have more than two poles (three is a
very common number). In particular, this avoids "dead spots" in the commutator.
You can imagine how with our example two-pole motor, if the rotor is exactly at
the middle of its rotation (perfectly aligned with the field magnets), it will get
"stuck" there. Meanwhile, with a two-pole motor, there is a moment where the
commutator shorts out the power supply (i.e., both brushes touch both
commutator contacts simultaneously). This would be bad for the power supply,
waste energy, and damage motor components as well. Yet another disadvantage
of such a simple motor is that it would exhibit a high amount of torque” ripple"
(the amount of torque it could produce is cyclic with the position of the rotor).
So since most small DC motors are of a three-pole design, let's tinker with the
workings of one via an interactive animation (JavaScript required):

You'll notice a few things from this -- namely, one pole is fully energized at a time
(but two others are "partially" energized). As each brush transitions from one
commutator contact to the next, one coil's field will rapidly collapse, as the next
coil's field will rapidly charge up (this occurs within a few microsecond). We'll see
more about the effects of this later, but in the meantime you can see that this is a
direct result of the coil windings' series wiring:
There's probably no better way to see how an average dc motor is put together,
than by just opening one up. Unfortunately this is tedious work, as well as
requiring the destruction of a perfectly good motor.
This is a basic 3-pole dcmotor, with 2 brushes and three commutator contacts.

PWM technique:

A pulse width modulator (PWM) is a device that may be used as an efficient light
dimmer or DC motor speed controller. A PWM works by making a square wave
with a variable on-to-off ratio; the average on time may be varied from 0 to 100
percent. In this manner, a variable amount of power is transferred to the load.
The main advantage of a PWM circuit over a resistive power controller is the
efficiency, at a 50% level, the PWM will use about 50% of full power, almost all of
which is transferred to the load, a resistive controller at 50% load power would
consume about 71% of full power, 50% of the power goes to the load and the
other 21% is wasted heating the series resistor. Load efficiency is almost always
a critical factor in solar powered and other alternative energy systems. One
additional advantage of pulse width modulation is that the pulses reach the full
supply voltage and will produce more torque in a motor by being able to
overcome the internal motor resistances more easily. Finally, in a PWM circuits,
common small potentiometers may be used to control a wide variety of loads
whereas large and expensive high power variable resistors are needed for
resistive controllers.
Pulse width modulation consists of three signals, which are modulated by a
square wave. The duty cycle or high time is proportional to the amplitude of the
square wave. The effective average voltage over one cycle is the duty cycle
times the peak-to-peak voltage. Thus, the average voltage follows a square
wave. In fact, this method depends on the motor inductance to integrate out the
PWM frequency.
A very simply off line motor drive can be built using a TRIAC and a control IC.
This circuit can control the speed of a universal motor. A universal motor is a
series wound DC motor. The circuit uses phase angle control to vary the effective
motor voltage.

A micro controller can also be used to control a triac. A PNP of transistor may be
used to drive the triac. As shown, the MCU ground is connected to the AC line.
The gate trigger current is lower if instead the MCU 5V supply is connected to the
AC line. The MCU must have some means of detecting zero crossing and a
timer, which can control the triac firing. A general-purpose timer with one input
capture and one output compare makes an ideal phase angle control.
8051 Micro controller

The first microprocessor introduced in 1981/1971, was made possible by high


levels of integration of digital circuits. Continued integration of peripherals and
memory on the same integrated circuit as the microprocessor core led to the
creation of micro controllers. A micro controller is an integrated circuit composed
of a CPU, various peripheral devices, and typically memory, all in one chip. Using
one chip that contains all the necessary functions in place of a microprocessor
and multiple peripheral chips has reduced the size and the power consumption of
control oriented applications.A micro controller is different from a microprocessor
both in hardware and software. In hardware it includes peripherals such as I/O,
memory, and analog and digital interface. Micro controllers are more suited for
small applications with specific control functions requiring specialized peripherals
and interfaces. They are designed for process control and are required to
interface to the real world processes. Many of the peripheral devices integrated
on a micro controller are for that specific purpose. Analog to digital converters
perform the task of converting an analog signal to digital for use by the CPU, and
digital to analog converters perform the task of converting digital data into analog
value and waveforms to control analog functions. In addition to the analog
interface, micro controllers contain peripheral devices that enable them to
communicate to other digital components within a system or to monitor and
control digital functions. Communication interfaces, digital I/O and interrupt
controllers fall into this category of peripheral devices. Other peripheral devices
often included on the same chip include clocks and timers.

In terms of the software, micro controllers have a more compact set of


instructions with commands more suited to process control such as input and
output from. Single bit operations such as set and reset, bit-wise logical functions
or branching instructions that depend on a single bit are commonly available as
part of the instruction set to allow for reading input switch status or on/off control
of an external event. Since in a given application the micro controller is
programmed for one task, it only has one control program. In a microprocessor
based system various programs are stored in a mass storage device and then
loaded into the RAM for execution. In contrast the micro controller program is
typically stored in a ROM or PROM and RAM is used for temporary storage of
data.

Compared with discrete implementation of a system, the micro controller based


approach provides shorter system development time, reduced implementation
cost, lower power consumption, and higher reliability. The only drawback, which
is often not important, is the lower speed of execution. For example, for a micro
controller system to perform a logical operation, several clock cycles are needed
to read the inputs, perform the function and output the results. The same
operation when implemented with discrete components will provide the results as
soon as the signals have propagated through the logic gates.

Micro-controllers are used in a variety of process control applications, replacing


complex digital circuits and sometimes-analog functions while providing more
flexibility due to their programmability. Portable electronic devices such as
personal audio devices (CD players, MP3 players), mobile telephones, digital
cameras and video camcorders rely heavily on the reduced size and low power
consumption of micro controller based electronics. These features are crucial to
applications like implantable medical devices such as pacemakers, or personal
medical monitoring devices like glucometers (electronic devices used for the
measurement of blood glucose). In other applications such as appliances, home
audio and video, automotive, power management, and temperature control,
using a micro controller results in reduced board level circuit complexity and
consequently reduced cost. With the growing number of applications using micro
controllers, it is not surprising that there are such a wide variety of these
components. In addition to those commonly available, many manufacturers
custom-design a micro controller to suit a specific application.

Architecture

Architecturally all micro controllers share certain features. They all contain a
CPU, memory and I/O on the same chip. Another common feature is the interrupt
handling capability. What sets them apart from one another is the choice of CPU,
the structure of memory, and choice of peripheral devices, I/O and interrupt
handling hardware. The major distinguishing architectural characteristic of micro
controllers is the word size. Micro-controllers are available in 4, 8, 16, or 32 bit
wide words. The width of the data path impacts several features of the micro
controller. The complexity of the instruction set (number of available instructions
and addressing modes), program efficiency (code generation and storage
space), execution speed, as well as chip implementation and interfacing
complexity are all influenced by the width of the data path.

For simple control tasks 4-bit, and for a vast number of control and measurement
applications 8-bit micro controllers would be sufficient. For higher precision and
speed applications like speech and video processing, or complex
instrumentation, 16-bit and 32-bit micro controllers are more appropriate.

Another distinction between micro controllers is the instruction set. Micro-


controllers with complex instruction set (CISC) provide capability to perform
complex computations rapidly. The extensive set of instructions, allow complex
operations to be performed with few instructions. On the other hand reduced
instruction set computers (RISC) decrease program execution time by having
fewer less complex instructions. Fewer available instructions results in faster
execution due to smaller size of the op-code and less decoding time needed for
each instruction. The trade-off depends on the complexity of operations needed
for a specific application. In simple control applications a RISC based micro
controller is more suitable because of its lower overhead for each instruction. In
more complex applications, the availability of a more diverse instruction set
results in a more efficient and faster executing code because fewer instructions
are needed to accomplish a complicated task. For micro controller applications
the instruction set should include common computational instructions plus
instructions optimized for the specific application at hand.

Just as in microprocessors, micro controllers are also differentiated according to


their memory structure. Von Neumann architecture maps the data and program
to same memory address space. In the Harvard architecture the instructions are
stored in a separate memory space than that used for data storage. Another
memory related architectural characteristic of a processor is the addressing
scheme. In linear addressing there is a one to one correspondence between an
address and a memory location. So with an 8-bit address register, 28 distinct
address locations can be accessed. In segmented addressing a separate register
is used to point to a segment in memory, and the address register is used to
point to an offset from that segment’s start point. This way if all of the program or
data are in the same segment, in order to access them, only the address register
need to be used and the segment register can remain pointing to the start point
of that segment.

Widely used group of micro controllers is Intel’s MCS51 family. These micro
controllers are also 8-bit processors, but with a separate 64Kbyte of data and
64Kbyte of program memory space. As implied by this statement, devices in the
MCS51 utilize Harvard architecture. All of I/O addresses as well as CPU registers
and various peripheral devices’ registers are mapped in the same space as the
data. The 8051, which is one of the options in this family, has 5 interrupt sources,
2 external, two timer interrupts and one serial port interrupt. Interrupt priority is
resolved through a priority scheme and ranking in the polling sequence. The
priority scheme allows each interrupt to be programmed to one of two priority
levels. Furthermore if two interrupts with the same priority occur simultaneously,
they are serviced based on their rank in the polling sequence. Other
manufacturers such as AMD, Dallas Semiconductor, Fujitsu and Philips also
supply micro controllers in the MCS51 family. Dallas Semiconductor’s DC87C550
provides increased performance over Intel’s 8051 while maintaining instruction
set compatibility. Many instructions that execute in 12 CPU clock cycles in an
8051, will execute in only 4 clocks for the DC87C550 therefore resulting in
increased execution speeds of up to three times. Additionally, the DC87C550 has
a power management mode that allows slowing of the processor in order to
reduce power consumption. This mode can be utilized in battery operated or
otherwise low power applications. The architecture of the instruction set varies
greatly from one micro controller to another. The choices made in designing the
instruction set impact program memory space usage, code execution speed, and
ease of programming.
BLOCK DIAGRAM:
Fig. 6.2.1 Block Diagram of AT89C51 Microcontroller
PIN CONFIGURATION:

Fig Pin Configuration of AT89C51


Pin Description:

VCC:
Supply voltage.

GND:
Ground.

Port 0:
Port 0 is an 8-bit open-drain bi-directional I/O port. As an output port, each pin
can sink eight TTL inputs. When 1sare written to port 0 pins, the pins can be
used as high impedance inputs. Port 0 may also be configured to be the
multiplexed low order address/data bus during accesses to external program and
data memory. In this mode P0 has internal pull-ups. Port 0 also receives the
code bytes during Flash programming, and outputs the code bytes during
program verification. External pull-ups are required during program verification.
Port 1:
Port 1 is an 8-bit bi-directional I/O port with internal pull-ups. The Port 1 output
buffers can sink/source four TTL inputs. When 1s are written to Port 1 pins they
are pulled high by the internal pull-ups and can be used as inputs. As inputs, Port
1 pins that are externally being pulled low will source current (IIL) because of the
internal pull-ups. Port 1 also receives the low-order address bytes during Flash
programming and verification.
Port 2:
Port 2 is an 8-bit bi-directional I/O port with internal pull-ups. The Port 2 output
buffers can sink/source four TTL inputs. When 1s are written to Port 2 pins they
are pulled high by the internal pull-ups and can be used as inputs. As inputs, Port
2 pins that are externally being pulled low will source current (IIL) because of the
internal pull-ups. Port 2 emits the high-order address byte during fetches from
external program memory and during accesses to external data memories that
use 16-bit addresses (MOVX @DPTR). In this application, it uses strong internal
pull-ups when emitting 1s. During accesses to external data memories that use
8-bit addresses (MOVX @ RI), Port 2 emits the contents of the P2 Special
Function Register. Port 2 also receives the high-order address bits and some
control signals during Flash programming and verification.
Port 3:
Port 3 is an 8-bit bi-directional I/O port with internal pullups.The Port 3 output
buffers can sink/source four TTL inputs. When 1s are written to Port 3 pins they
are pulled high by the internal pull-ups and can be used as inputs. As inputs, Port
3 pins that are externally being pulled low will source current (IIL) because of the
pull-ups.
Port 3 also serves the functions of various special features of the AT89C51 as
listed below:
Port 3 also receives some control signals for Flash programming and verification

Tab 6.2.1 Port pins and their alternate functions


RST:
Reset input. A high on this pin for two machine cycles while the oscillator is
running resets the device.

ALE/PROG:
Address Latch Enable output pulse for latching the low byte of the address during
accesses to external memory. This pin is also the program pulse input (PROG)
during Flash programming. In normal operation ALE is emitted at a constant rate
of 1/6the oscillator frequency, and may be used for external timing or clocking
purposes. Note, however, that one ALE pulse is skipped during each access to
external Data Memory.
If desired, ALE operation can be disabled by setting bit 0 of SFR location 8EH.
With the bit set, ALE is active only during a MOVX or MOVC instruction.
Otherwise, the pin is
weakly pulled high. Setting the ALE-disable bit has no effect if the microcontroller
is in external execution mode.
PSEN:
Program Store Enable is the read strobe to external program memory. When the
AT89C51 is executing code from external program memory, PSEN is activated
twice each machine cycle, except that two PSEN activations are skipped during
each access to external data memory.
EA/VPP:
External Access Enable. EA must be strapped to GND in order to enable the
device to fetch code from external program memory locations starting at 0000H
up to FFFFH.
Note, however, that if lock bit 1 is programmed, EA will be internally latched on
reset.
EA should be strapped to VCC for internal program executions. This pin also
receives the 12-volt programming enable voltage (VPP) during Flash
programming, for parts that require 12-volt VPP.
XTAL1:
Input to the inverting oscillator amplifier and input to the internal clock operating
circuit.
XTAL2:
Output from the inverting oscillator amplifier.
Oscillator Characteristics:
XTAL1 and XTAL2 are the input and output, respectively, of an inverting amplifier
which can be configured for use as an on-chip oscillator, as shown in Figs 6.2.3.
Either a quartz crystal or ceramic resonator may be used. To drive the device
from an external clock source, XTAL2 should be left unconnected while XTAL1 is
driven as shown in Figure 6.2.4.There are no requirements on the duty cycle of
the external clock signal, since the input to the internal clocking circuitry is
through a divide-by-two flip-flop, but minimum and maximum voltage high and
low time specifications must be observed.

Fig 6.2.3 Oscillator Connections Fig 6.2.4 External Clock Drive


Configuration

Notes:
1. Under steady state (non-transient) conditions, IOL must be externally
limited as follows:
• Maximum IOL per port pin: 10 mA
• Maximum IOL per 8-bit port: Port 0: 26 mA
• Ports 1, 2, 3: 15 mA
• Maximum total IOL for all output pins: 71 mA
• If IOL exceeds the test condition, VOL may exceed the related
specification. Pins are not guaranteed to sink current greater than the
listed test conditions.
2. Minimum VCC for Power-down is 2V.

AC CHARACTERISTICS
Under operating conditions, load capacitance for Port 0, ALE/PROG, and PSEN
= 100pF; load capacitance for all other outputs = 80pF
Hardware

There are a variety of peripheral devices that are often integrated on a micro
controller chip. Many of these peripheral devices are the same as those that may
be included in a microprocessor while those that make a micro controller
distinguishable from a microprocessor are the ones that deal with external
interface and communication. Here is a brief description of the hardware
components of a micro controller:

1. Interrupt Handlers

An interrupt is an event (internal or external to the chip) that occurs


asynchronously with other functions and requires immediate response from the
micro controller. Such events can be detected if the micro controller constantly or
periodically monitors their status. But such polling techniques could slow the
operation of other functions. To detect and prioritize interrupts, interrupt handling
hardware is often included on the micro controller chip. Interrupt handlers usually
provide multiple interrupt inputs, with different levels of priority and the means to
mask certain interrupts. An example of interrupts is power failure in a hand held
thermometer. Should the battery voltage drop below acceptable limits at any
time, the device should inform the user of the condition and possibly perform
preventive measures before returning control to the interrupted program.

2. I/O ports

I/O ports provide means of digital data transfer to and from the micro controller.
I/O ports are usually configured as a parallel interface where digital data can be
simultaneously written to or read from a port address. In micro controller
applications it is often possible to use the I/O ports with bit wise instructions. I/O
ports can be used for crude user interface functions such as reading of switch
settings or displaying some results using LED’s. It is also possible to use I/O
ports for more sophisticated interface options. An I2C interface, which is a serial
communications protocol, can be emulated using two bits of an I/O port.

3. Digital to Analog Converters (DAC)

DAC’s provide continuous time output capability by converting a digital word to a


proportional voltage or current. Different DAC architectures provide trade-offs in
design complexity, resolution, accuracy, and speed. Creating the audio
waveforms from the data in a high-end digital audio player requires a high
resolution DAC with moderate conversion rate, while creating the waveforms to
drive an analog display requires lower resolution at higher conversion rate.

4. Analog to Digital Converters (ADC)

ADC’s are used to enable the micro controller to receive continuous time signals
representing physical parameters. Temperature, sound, light intensity, color,
liquid or gas flow, position and speed are all examples physical parameters that
may be used by a micro controller. These data are first converted to a voltage or
current waveform using appropriate transducers. It is then the function of the
ADC to convert the voltage or current to digital form for processing by the
microprocessor. There are different types of ADC’s and the choice depends on
the required accuracy, sampling rate and cost.

A) Flash Converters

In a flash ADC multiple analog comparators are used to evaluate the analog
input voltage. All the bits of the output digital word are evaluated at once. The
only delay in this conversion is that of the analog comparators and the logic used
to encode the digital word. This is therefore the fastest method of analog to
digital conversion. The resolution is usually limited to 8-bits because of the large
number of comparators needed. High speed video processing is an application
where flash converters are well suited.

b) Successive Approximation Register (SAR)

In this type of converter, the digital output is evaluated one-bit at a time starting
at the most significant bit. This type of ADC provides good resolution (10-12 bits)
at relatively fast conversion rate. For a 10-bit conversion, 10 clock cycles are
needed, where the maximum clock rate depends on the comparator settling and
digital delays in the SAR circuit. The ADC circuit requires a high speed precise
DAC. This is the most commonly used ADC in micro controller applications.

c) Dual Slope ADC

For high resolution conversions dual slope converters provide a reasonable


tradeoff at the expense of conversion speed. The conversion of an analog input
to digital is performed by first converting the input voltage to time, and then
measuring time using a clock. Because of the architecture of dual slope
converters, non-ideal behavior of analog circuits is avoided and high resolutions
(12-16 bits) and accuracies are achievable. This approach is most useful in
applications where precise measurements of slow signals are needed. Medical
instrumentation and monitoring is an area that fits these criteria.

d) Over-sampling ADC

Precision analog circuits used in conventional ADC’s are sometimes difficult to


implement in micro controller integrated circuits because of the highly noisy
environment and process limitations associated with high levels of integration.
The alternative is using over-sampling converters which can use simple but
robust analog circuits along with fast and complex digital circuits. These
converters sample the data with low resolution at much higher frequency than
what is needed based on Nyquist theorem and use feedback to improve the
effective resolution. Because of the required over-sampling, the effective
sampling rate is limited. Digitization of voice-band signals in telecommunication
systems is often performed using over-sampling techniques.

5. Serial Communication Interface

Through the use of serial communication the micro controller can be used with
various system level peripherals. Here is a brief description of some the serial
communication peripherals commonly integrated on a micro controller chip.

a SFRs:
The 8051 is a flexible micro controller with a relatively large number of
modes of operations. Your program may inspect and/or change the operating
mode of the 8051 by manipulating the values of the 8051's Special Function
Registers (SFRs). SFRs are accessed as if they were normal Internal RAM. The
only difference is that Internal RAM is from address 00h through 7Fh whereas
SFR registers exist in the address range of 80h through FFh. Each SFR has an
address (80h through FFh) and a name. The following chart provides a graphical
presentation of the 8051's SFRs, their names, and their address.
Tab 6.2.3a Chart of 8051 SFRs and their addresses
As we can see, although the address range of 80h through FFh offer 128
possible addresses, there are only 21 SFRs in a standard 8051. All other
addresses in the SFR range (80h through FFh) are considered invalid. Writing to
or reading from these registers may produce undefined values or behavior.

SFR Types
As mentioned in the chart itself, the SFRs that have a blue background
are SFRs related to the I/O ports. The 8051 has four I/O ports of 8 bits, for a total
of 32 I/O lines. Whether a given I/O line is high or low and the value read from
the line are controlled by the SFRs in green. The SFRs with yellow backgrounds
are SFRs which in some way control the operation or the configuration of some
aspect of the 8051.
For example, TCON controls the timers, SCON controls the serial port. The
remaining SFRs, with green backgrounds, are "other SFRs." These SFRs can be
thought of as auxiliary SFRs in the sense that they don't directly configure the
8051 but obviously the 8051 cannot operate without them. For example, once the
serial port has been configured using SCON, the program may read or write to
the serial port using the SBUF register.
SFR Descriptions
This section will endeavor to quickly overview each of the standard SFRs
found in the above SFR chart map. It is not the intention of this section to fully
explain the functionality of each SFR--this information will be covered in
separate chapters of the tutorial. This section is to just give you a general
idea of what each SFR does.

P0 (Port 0, Address 80h, Bit-Addressable): This is input/output port 0. Each bit


of this SFR corresponds to one of the pins on the microcontroller. For example,
bit 0 of port 0 is pin P0.0, bit 7 is pin P0.7. Writing a value of 1 to a bit of this SFR
will send a high level on the corresponding I/O pin whereas a value of 0 will bring
it to a low level.
SP (Stack Pointer, Address 81h): This is the stack pointer of the
microcontroller. This SFR indicates where the next value to be taken from the
stack will be read from in Internal RAM.
If you push a value onto the stack, the value will be written to the address of SP
+ 1. That is to say, if SP holds the value 07h, a PUSH instruction will push the
value onto the stack at address 08h. This SFR is modified by all instructions
which modify the stack, such as PUSH, POP, LCALL, RET, RETI, and whenever
interrupts are provoked by the microcontroller.
DPL/DPH (Data Pointer Low/High, Addresses 82h/83h): The SFRs DPL and
DPH work together to represent a 16-bit value called the Data Pointer. The data
pointer is used in operations regarding external RAM and some instructions
involving code memory. Since it is an unsigned two-byte integer value, it can
represent values from 0000h to FFFFh (0 through 65,535 decimal).
PCON (Power Control, Addresses 87h): The Power Control SFR is used to
control the 8051's power control modes. Certain operation modes of the 8051
allow the 8051 to go into a type of "sleep" mode which requires much less power.
These modes of operation are controlled through PCON. Additionally, one of the
bits in PCON is used to double the effective baud rate of the 8051's serial port.
TCON (Timer Control, Addresses 88h, and Bit-Addressable): The Timer
Control SFR is used to configure and modify the way in which the 8051's two
timers operate. This SFR controls whether each of the two timers is running or
stopped and contains a flag to indicate that each timer has overflowed.
Additionally, some non-timer related bits are located in the TCON SFR. These
bits are used to configure the way in which the external interrupts are activated
and also contain the external interrupt flags which are set when an external
interrupt has occurred.
TMOD (Timer Mode, Addresses 89h): The Timer Mode SFR is used to
configure the mode of operation of each of the two timers. Using this SFR your
program may configure each timer to be a 16-bit timer, an 8-bit auto reload timer,
a 13-bit timer, or two separate timers. Additionally, you may configure the timers
to only count when an external pin is activated or to count "events" that are
indicated on an external pin.
TL0/TH0 (Timer 0 Low/High, Addresses 8Ah/8Bh): These two SFRs, taken
together, represent timer 0. Their exact behavior depends on how the timer is
configured in the TMOD SFR; however, these timers always count up. What is
configurable is how and when they increment in value.
TL1/TH1 (Timer 1 Low/High, Addresses 8Ch/8Dh): These two SFRs, taken
together, represent timer 1. Their exact behavior depends on how the timer is
configured in the TMOD SFR; however, these timers always count up. What is
configurable is how and when they increment in value.
P1 (Port 1, Address 90h, Bit-Addressable): This is input/output port 1. Each bit
of this SFR corresponds to one of the pins on the microcontroller. For example,
bit 0 of port 1 is pin P1.0, bit 7 is pin P1.7. Writing a value of 1 to a bit of this SFR
will send a high level on the corresponding I/O pin whereas a value of 0 will bring
it to a low level.
SCON (Serial Control, Addresses 98h, Bit-Addressable): The Serial Control
SFR is used to configure the behavior of the 8051's on-board serial port. This
SFR controls the baud rate of the serial port, whether the serial port is activated
to receive data, and also contains flags that are set when a byte is successfully
sent or received.
SBUF (Serial Control, Addresses 99h): The Serial Buffer SFR is used to send
and receive data via the on-board serial port. Any value written to SBUF will be
sent out the serial port's TXD pin. Likewise, any value which the 8051 receives
via the serial port's RXD pin will be delivered to the user program via SBUF. In
other words, SBUF serves as the output port when written to and as an input port
when read from.
P2 (Port 2, Address A0h, Bit-Addressable): This is input/output port 2. Each bit
of this SFR corresponds to one of the pins on the microcontroller. For example,
bit 0 of port 2 is pin P2.0, bit 7 is pin P2.7. Writing a value of 1 to a bit of this SFR
will send a high level on the corresponding I/O pin whereas a value of 0 will bring
it to a low level.
IE (Interrupt Enable, Addresses A8h): The Interrupt Enable SFR is used to
enable and disable specific interrupts. The low 7 bits of the SFR are used to
enable/disable the specific interrupts, where as the highest bit is used to enable
or disable ALL interrupts.
Thus, if the high bit of IE is 0 all interrupts are disabled regardless of whether an
individual interrupt is enabled by setting a lower bit.
P3 (Port 3, Address B0h, Bit-Addressable): This is input/output port 3. Each bit
of this SFR corresponds to one of the pins on the microcontroller. For example,
bit 0 of port 3 is pin P3.0, bit 7 is pin P3.7. Writing a value of 1 to a bit of this SFR
will send a high level on the corresponding I/O pin whereas a value of 0 will bring
it to a low level.
IP (Interrupt Priority, Addresses B8h, Bit-Addressable): The Interrupt Priority
SFR is used to specify the relative priority of each interrupt. On the 8051, an
interrupt may either be of low (0) priority or high (1) priority. An interrupt may only
interrupt interrupts of lower priority. For example, if we configure the 8051 so that
all interrupts are of low priority except the serial interrupt, the serial interrupt will
always be able to interrupt the system, even if another interrupt is currently
executing. However, if a serial interrupt is executing no other interrupt will be able
to interrupt the serial interrupt routine since the serial interrupt routine has the
highest priority.
PSW (Program Status Word, Addresses D0h, Bit-Addressable): The
Program Status Word is used to store a number of important bits that are set and
cleared by 8051 instructions. The PSW SFR contains the carry flag, the auxiliary
carry flag, the overflow flag, and the parity flag. Additionally, the PSW register
contains the register bank select flags which are used to select which of the "R"
register banks are currently selected.
ACC (Accumulator, Addresses E0h, Bit-Addressable): The Accumulator is
one of the most used SFRs on the 8051 since it is involved in so many
instructions. The Accumulator resides as an SFR at E0h, which means the
instruction MOV A, #20h is really the same as MOV E0h,#20h. However, it is a
good idea to use the first method since it only requires two bytes whereas the
second option requires three bytes.
B (B Register, Addresses F0h, Bit-Addressable): The "B" register is used in
two instructions: the multiply and divide operations. The B register is also
commonly used by programmers as an auxiliary register to temporarily store
values.
Basic Registers
The Accumulator
The Accumulator, as its name suggests, is used as a general register to
accumulate the results of a large number of instructions. It can hold an 8-bit
(1-byte) value and is the most versatile register the 8051 has due to the shear
number of instructions that make use of the accumulator. More than half of
the 8051’s 255 instructions manipulate or use the accumulator in some way.
For example, if we add the number 10 and 20, the resulting 30 will be stored
in the accumulator.

The "R" registers


The "R" registers are a set of eight registers that are named R0, R1, etc. up to
and including R7. These registers are used as auxiliary registers in many
operations. To continue with the above example, perhaps you are adding 10 and
20. The original number 10 may be stored in the Accumulator whereas the value
20 may be store
in, say, register R4. To process the addition you would execute the command:
ADD A,R4 After executing this instruction the Accumulator will contain the value
30.
The "R" registers as very important auxiliary, or "helper", registers. The
Accumulator alone would not be very useful if it were not for these "R" registers.
The "R" registers are also used to temporarily store values.
MOV A, R3; Move the value of R3 into the accumulator
ADD A, R4; Add the value of R4
MOV R5, A; Store the resulting value temporarily in R5
MOV A, R; Move the value of R1 into the accumulator
ADD A,R2 ;Add the value of R2
SUBB A,R5 ;Subtract the value of R5 (which now contains R3 + R4)
In the above example we used R5 to temporarily hold the sum of R3 and R4. Of
course, this isn’t the most efficient way to calculate (R1+R2) - (R3 +R4) but it
does illustrate the use of the "R" registers as a way to store values temporarily.
The "B" Register
The "B" register is very similar to the Accumulator in the sense that it may hold
an 8-bit (1-byte) value. The "B" register is only used by two 8051 instructions:
MUL AB and DIV AB. Thus, if you want to quickly and easily multiply or divide A
by another number, you may store the other number in "B" and make use of
these two instructions.
Aside from the MUL and DIV an instruction, the “B” register is often used as yet
another temporary storage register much like a ninth "R" register.
The Data Pointer (DPTR)
The Data Pointer (DPTR) is the 8051’s only user-accessible 16-bit (2-byte)
register. The Accumulator, "R" registers, and "B" register are all 1-byte values.
DPTR, as the name suggests, is used to point to data. It is used by a number of
commands which allow the 8051 to access external memory. When the 8051
accesses external memory it will access external memory at the address
indicated by DPTR. While DPTR is most often used to point to data in external
memory, many programmers often take advantage of the fact that it’s the only
true 16-bit register available. It is often used to store 2-byte values which have
nothing to do with memory locations.

The Program Counter (PC)


The Program Counter (PC) is a 2-byte address which tells the 8051 where the
next instruction to execute is found in memory.
When the 8051 is initialized PC always starts at 0000h and is incremented each
time an instruction is executed. It is important to note that PC isn’t always
incremented by one. Since some instructions require 2 or 3 bytes the PC will be
incremented by 2 or 3 in these cases. The Program Counter is special in that
there is no way to directly modify its value. That is to say, you can’t do something
like PC=2430h. On the other hand, if you execute LJMP 2340h you’ve effectively
accomplished the same thing. It is also interesting to note that while you may
change the value of PC (by executing a jump instruction, etc.) there is no way to
read the value of PC. That is to say, there is no way to ask the 8051.
Events that Trigger Interrupts
The 8051 can be configured so that any of the following events will cause an
interrupt:
• Timer 0 Overflow.
• Timer 1 Overflow.
• Reception/Transmission of Serial Character.
• External Event 0.
• External Event 1.
In other words, we can configure the 8051 so that when Timer 0 overflows or
when a character is sent/received, the appropriate interrupt handler routines are
called. Obviously we need to be able to distinguish between various interrupts
and executing different code depending on what interrupt was triggered. This is
accomplished by jumping to a fixed address when a given interrupt occurs.

Tab 6.2.4 Interrupt Handler Address and the Interrupts associated to them

By consulting the above chart we see that whenever Timer 0 overflows (i.e., the
TF0 bit is set), the main program will be temporarily suspended and control will
jump to 00BH. It is assumed that we have code at address 0003H that handles
the situation of Timer 0 overflowing.
Setting up Interrupts
By default at power up, all interrupts are disabled. This means that even if, for
example, the TF0 bit is set, the 8051 will not execute the interrupt. Your program
must specifically tell the 8051 that it wishes to enable interrupts and specifically
which interrupts it wishes to enable. Your program may enable and disable
interrupts by modifying the IE SFR (A8h):

Tab 6.2.5 Setting up Interrupts


For example, to enable Timer 1 Interrupt, you would execute either:
MOV IE, #08h || SETB ET1
Both of the above instructions set bit 3 of IE, thus enabling Timer 1 Interrupt.
Once Timer 1 Interrupt is enabled, whenever the TF1 bit is set, the 8051 will
automatically put "on hold" the main program and execute the Timer 1 Interrupt
Handler at address 001Bh. However, before Timer 1 Interrupt (or any other
interrupt) is truly enabled, you must also set bit 7 of IE. Bit 7, the Global Interrupt
Enable/Disable, enables or disables all interrupts simultaneously. That is to say,
if bit 7 is cleared then no interrupts ill occur, even if all the other bits of IE are set.
Setting bit 7 will enable all the interrupts that have been selected by setting other
bits in IE. This is useful in program execution if you have time-critical code that
needs to execute.
In this case, you may need the code to execute from start to finish without any
interrupt getting in the way. Accomplish this you can simply clear bit 7 of IE (CLR
EA) and then set it after your timecriticial code is done. So, to sum up what has
been stated in this section, to enable the Timer 1 Interrupt the most common
approach is to execute the following two Instructions:
SETB ET1
SETB EA
Thereafter, the Timer 1 Interrupt Handler at 01Bh will automatically be called
whenever the TF1 bit is set (upon Timer 1 overflow).
Interrupt Priorities
The 8051 offer two levels of interrupt priority: high and low. By using interrupt
priorities you may assign higher priority to certain interrupt conditions. For
example, you may have enabled Timer 1 Interrupt, which is automatically called
every time Timer 1 overflows. Additionally, we may have enabled the Serial
Interrupt, which is called every time a character is received via the serial port.
However, you may consider that receiving a character is much more important
than the timer interrupt. In this case, if Timer 1 Interrupt is already executing you
may wish that the serial interrupt itself interrupts the Timer 1 Interrupt.
When the serial interrupt is complete, control passes back to Timer 1 Interrupt
and finally back to the main program. You may accomplish this by assigning a
high priority to the Serial Interrupt and a low priority to the Timer 1 Interrupt.
Interrupt priorities are controlled by the IP SFR (B8h).
The IP SFR has the following format:

Tab 6.2.6 Interrupt Priorities


Bit Name Bit Address Explanation of Function
7 - - Undefined
6 - - Undefined
5 - - Undefined
4 PS BCh Serial Interrupt Priority
3 PT1 BBh Timer 1 Interrupt Priority
2 PX1 BAh External 1 Interrupt Priorities
1 PT0 B9h Timer 0 Interrupt Priority
0 PX0 B8h External 0 Interrupt Priority
When considering interrupt priorities, the following rules apply:
• Nothing can interrupt a high-priority interrupt-- not even another high priority
interrupt.
• A high-priority interrupt may interrupt a low priority interrupt.
• A low-priority interrupt may only occur if no other interrupt is already executing.
• If two interrupts occur at the same time, the interrupt with higher priority will
execute first. If both interrupts are of the same priority the interrupt, which is
serviced first by polling sequence, will be executed first.
When an interrupt is triggered, the following actions are taken automatically by
the Micro controller:
• The current Program Counter is saved on the stack, low-byte first.
• Interrupts of the same and lower priority are blocked.
• In the case of Timer and External interrupts, the corresponding interrupt flag is
set.
• Program execution transfers to the corresponding interrupt handler vector
address.
• The Interrupt Handler Routine executes. Take special note of the third step: If
the Interrupt being handled is a Timer or External interrupt; the micro controller
automatically clears the interrupt flag before passing control to your interrupt
handler routine.
An interrupt ends when your program executes the RETI instruction. When the
RETI Instruction is executed the micro controller takes the following actions:
• Two bytes are popped off the stack into the Program Counter to restore normal
program Execution.
• Interrupt status is restored to its pre-interrupt status.
Serial Interrupts
Serial Interrupts are slightly different than the rest of the interrupts. This is due to
the fact that there is two interrupt flags: RI and TI. If either flag is set, a serial
interrupt is triggered. As you will recall from the section on the serial port, the RI
bit is set when a byte is received by the serial port and the TI bit is set when a
byte has been sent. This means that when your serial interrupt is executed, it
may have been triggered because the RI flag was set or because the TI flag was
set-- or because both flags were set.
Thus, the routine must check the status of these flags to determine that action is
appropriate. Also, since the 8051 does not automatically clear the RI and TI flags
You must clear these bits in your interrupt handler.
INT_SERIAL: JNB RI, CHECK_TI; if the RI flag is not set, we jump to check TI
MOV A, SBUF; If we got to this line, it’s because the RI bit *was* set
CLR RI; Clear the RI bit after we’ve processed it
CHECK_TI: JNB TI, EXIT_INT; if the TI flag is not set, we jump to the exit point
CLR TI; Clear the TI bit) Universal Asynchronous Receive Transmit (UART)

The UART provides means of asynchronous serial communication between


devices or systems. It is essentially a parallel to serial and serial to parallel
converter that conforms to a certain protocol for coding the data and interface
specifications.

b) Serial Peripheral Interface (SPI)

SPI is used for synchronous serial communication. Because of its synchronous


nature it uses a separate connection for clock. Additionally it requires a transmit
data, receive data, and enable. SPI interfaces run as fast as 10MHz,which is why
high density EEPROM are increasingly using this serial interface method.

c) I2C

I2C uses a bi-directional 3-wire (including ground) bus for communication


between multiple devices. Communication protocol is based on a master/slave
relationship. The maximum number of devices is limited by the 16K address
space of the protocol and the maximum allowable capacitance on the lines
(400pF). The original standard had a 100kHz maximum clock speed. The low pin
count associated with the I2C has made it the industry standard for serial
interface to EEPROM chips. The drawback with I2C interface is its inherent
intolerance to noise. Enhanced I2C schemes extend the address space to about
512K and the maximum clock speed to about 400kHz.

e) Other serial interface standards

Other serial interfaces have been developed that specialize in certain


functionality. Controller Area Network (CAN) was designed to operate in noisy
environments such as in automobiles and industrial applications. Universal Serial
Bus (USB) and IEEE 1394 are two serial interface standards that address
interface speed issues. USB 2.0 supports data rates as high as 480 Mbps and
IEEE 1394b supports data rates greater than 1Gbps.

6. Timers and Clocks

a) General Purpose Timer : A free running timer can be used to keep


track of time of day and the date. A timer can also be used for precise
measurement of time. For example, using an onboard timer and digital I/O, A
dual slope ADC can be externally implemented using few analog components
where the timer is used to set the integration period and measure the de-
integration time.

b) Watch Dog Timer (WDT) : A timer can be used to verify proper


operation of the CPU. This is typically done using a WDT. WDT operates by
continuously incrementing a count value stored in the WDT register. If the value
in the WDT register reaches a preset final count, an interrupt is generated which
indicates a fault condition. During normal operation, the software should prevent
the WDT register from reaching its final count by periodically resetting it to zero.
For development or testing activities the WDT should be disabled.

c) Real Time Clock (RTC) : RTC is a programmable timer that is used


to perform a certain task at regular intervals. For example to sample an analog
waveform at regular intervals with an Analog to Digital Converter, an RTC can be
programmed to generate interrupts at the sampling rate. The interrupt service
routine will then activate the ADC and after completion of each conversion stores
the result in an array.

7. Memory : Most often all the memory required for the operation of a
micro controller is included on board. Program is usually stored in non-volatile
memory such as ROM. In that situation the program has to be fully tested before
committing it to silicon. Micro controllers are usually equipped with an emulation
mode that enables access to external memory. This mode of operation can be
used for program development or debugging. Other forms of memory used in
micro controllers include EEPROM and RAM. EEPROM is used for non-volatile
storage of variables such as calibration data and system settings. RAM is used
for temporary storage of variables.
External Device Drivers

a) LCD Interface: Liquid Crystal Display drivers consisting of logic,


signal level generation and row and column drivers may be included on the micro
controller chip. LCD interface usually involves a large number of pins for the LCD
row and column drivers. Including LCD driver on the chip results in a significant
increase in the package pin count.

b) LED Interface: LED’s are used for status indicator or signal


transmission. Special high current drivers are needed to handle the large current
required by the LED. Integrating the driver on the micro controller simplifies
system level design but the large currents can complicate the design of the chip.

FEATURES OF 8051 MICRO CONTROLLER

The features of the micro controller are as follows:

• Compatible with MCS-51 ™ Products

• 4K Bytes of In-System Reprogrammable Flash Memory

– Endurance: 1,000 Write/Erase Cycles

• Fully Static Operation: 0 Hz to 24 MHz

• Three-level Program Memory Lock

• 128 x 8-bit Internal RAM

• 32 Programmable I/O Lines

• Two 16-bit Timer/Counters

• Six Interrupt Sources

• Programmable Serial Channel

• Low-power Idle and Power-down Modes

Status of External Pins During Idle and Power-down Modes

Mode Program Memory ALE PSEN PORT0 PORT1 PORT2 PORT3


Idle Internal 1 1 Data Data Data Data

Idle External 1 1 Float Data Address Data

Power Internal 0 0 Data Data Data Data

down

Power External 0 0 Float Data Data Data

down

Figure 2. External Clock Drive Configuration

Power-down Mode

In the power-down mode, the oscillator is stopped, and the instruction that
invokes power-down is the last instruction executed. The on-chip RAM and
Special Function Registers retain their values until the power-down mode is
terminated. The only exit from power-down is a hardware reset. Reset redefines
the SFRs but does not change the on-chip RAM. The reset should not be
activated before V CC is restored to its normal operating level and must be held
active long enough to allow the oscillator to restart and stabilize.

Program Memory Lock Bits

On the chip are three lock bits that can be left unprogrammed (U) or can be
programmed (P) to obtain the additional features listed in the table below. When
lock bit 1 is programmed, the logic level at the EA pin is sampled and latched
during reset. If the device is powered up without a reset, the latch initializes to a
random value, and holds that value until reset is activated. It is necessary that
the latched value of EA be in agreement with the current logic level at that pin in
order for the device to function properly.

Lock Bit Protection Modes

Program Lock Bits

LB1 LB2 LB3 Protection Type

1 U U U No program lock features

2 P U U MOVC instructions executed from

external program memory are

disabled from fetching code bytes

from internal memory, EA is

sampled and latched on reset

and further programming of the

Flash is disabled

3 P P U Same as mode 2, also verify is

disabled

4 P P P Same as mode 3, and also external

execution is disabled

INTERRUPT PROGRAMMING WITH 8051


An interrupt is an external or internal event that interrupts the micro controller to
inform it that a device needs its service. In the interrupt method, whenever any
device needs its service, the device notifies the micro controller by sending it an
interrupt signal. Upon receiving an interrupt signal, the micro controller interrupts
whatever it is doing and serves the device. For every interrupt, there must be an
service routine called as interrupt service routine (ISR) or interrupt handler. There
is a fixed location in memory that holds the address of its ISR. The group of
memory locations set aside to hold the addresses of ISRs is called the vector
table.

Steps in executing an interrupt

Upon activation of an interrupt in a micro controller, it follows the following steps:

It finishes the instruction it is executing and saves the address of the next
instruction on the stack.

It also saves the current status of all interrupts internally.

It jumps to a fixed location in memory called vector table that holds the address
of the interrupt service routine.

The micro controller gets the address of the ISR from the interrupt vector table
and jumps to it. It starts to execute the interrupt service subroutine until it reaches
the last instruction of the subroutine, which is RETI (Return from Interrupt).Upon
executing the RETI instruction, the micro controller returns to the place where it
was interrupted. First, it gets the program counter (PC) address from the stack by
popping the top two bytes of the stack into the PC. Then it starts execute from
that address.

SIX INTERRUPTS IN 8051

There are really five interrupts available to the user in the 8051 but many
manufacturer’s data sheets state that there are six interrupts since they include
RESET.

RESET: When the reset pin is activated, the 8051 jumps to address location
0000. This is the power-up reset.
Two interrupts are set aside for the timers: one for timer0 and one for timer1.
Memory locations 000BH and 001BH in the interrupt vector table belong to
timer0 and timer1, respectively.

Two interrupts are set aside for hardware external hardware interrupts. Pin
numbers 12 (P3.2) and 13 (P3.3) in port34 are for the external hardware
interrupts INT0 and INT1, respectively. Memory locations 0003H and 0013H in
the interrupt vector table are assigned to INT0 and INT1, respectively.

Serial communication has a single interrupt that belongs to both receive and
transfer. The interrupt vector table location 0023H belongs to this interrupt.

Table 1: Interrupt Vector Table for the 8051

INTERRUPT ROM Locatio (Hex) Pin


Reset 0000 9
interrupt 0 (INT0) 0003 P3.2 (12)
Timer 0 000B
interrupt 1 (INT1) 0013 P3.3 (13)
Timer 1 001B
SerialCOMinterrupt 0023

Enabling and disabling an interrupt

Upon rest, all interrupts are disabled (masked), meaning that none will be
responded to by the micro controller if they are activated. The interrupts must be
enabled by software in order for the micro controller to respond to them. There is
a register called INTERRUPT ENABLE (IE) that is responsible for enabling and
disabling the interrupts.

IE (Interrupt Enable) Register

EA - ET2 ES ET1 EX1 ET0 EX0


1. EA IE.7 Disables all interrupts. If EA=0, no interrupt is acknowledged. If
ea=1, each interrupt source is individually enabled or disabled by setting or
clearing its enable bit.

2. -- IE.6 Not implemented, reserved for future use.*

3. ET2 IE.5 Enables or disables timer2 overflow or capture interrupt.

4. ES IE.4 Enables or disables the serial port interrupt.

5. ET1 IE.3 Enables or disables timer1 overflow interrupt.

6. EX1 IE.2 Enables or disables external interrupt1.

7. ET0 IE.1 Enables or disables timer0 overflow interrupt.

6. EX0 IE.0 Enables or disables external interrupt0.

NOTE: * User software should not write 1s to reserved bits. These bits may be
used in future Flash micro controllers to invoke new features.

Steps in enabling an interrupt

To enable an interrupt, we take the following steps:

Bit D7 of the TE register must be set to high to allow the rest of register to take
effect.

If EA=1, interrupts are enabled and will be responded to if their corresponding


bits in IE are high. If EA=0, no interrupt will be responded to, even if the
associated bit in the IE register is high.

The block diagram of the system is as shown in the fig. The system basically
consists of a

RF transmitter:

General Description:
The ST-TX01-ASK is an ASK Hybrid transmitter module.
ST-TX01-ASK is designed by the Saw Resonator, with an
effective low cost, small size, and simple-to-use for designing.
Frequency Range:315 / 433.92 MHZ.
Supply Voltage: 3~12V.
Output Power : 4~16dBm
Circuit Shape: Saw

Applications

*Wireless security systems


*Car Alarm systems
*Remote controls.
*Sensor reporting
*Automation systems

Absolute Maximum Ratings


Specification
Parameter Symbol Condition
Min. Typical Max.
Unit
Operation Voltage 3V 5V 12V V
315MHz 4 10 16 dBm
Supply current 11 20 57 mA
434MHz 4 10 16 dBm
Output power
Psens
DATA 5V
1Kbps Data Rate
Supply current 11 22 59 mA
Tune on Time Ton Data start out by Vcc turn on 10 20 ms
Data Rate 200 1k 3k bps
Input duty Vcc=5V; 1kbps data rate 40 60 %
Temperature -20 +80 .

Fig 3.3 Transmitter Module


Fig 3.4 Transmitter Interface with micro controller unit

RF module (Receiver):
Description:
General Description:
The ST- RX04-ASK is an ASK superhet receiver module with PLL synthesizer and
crystal oscillator.
The circuit shape is: PLL.
Receiver Frequency: 315 / 433.92 MHZ
Operation Voltage 5V
IF Frequency: 500k
Typical sensitivity: -105dBm
Supply Current: 2.3mA
Applications:
1 �Car security system
2 �Wireless security systems
3 �Sensor reporting
4 �Automation system
5 �Remote Keyless entry
Features
1 �Low power consumption.
2 �Easy for application.
3 �On-Chip VCO with integrated PLL using crystal oscillator reference.
4 �Integrated IF and data filters.
5 �Operation temperature range : ﹣10℃~+60℃
6 �Operation voltage : 5 Volts.
7 �Available frequency at : 315/434 MHz
Remark:
1. Antenna length about :23cm for 315 MHz
17cm for 434 MHz

Fig 3.5 Receiver Module


Fig 3.6 RF receiver interface with Micro controller unit:

Table 3.1 Electrical characteristics:


Encoder HT12E

The encoders are a series of CMOS LSIs for remote control system
applications. They are capable of encoding information, which consists of N address bits
and 12_N data bits. Each address/data input can be set to one of the two logic states.

The programmed addresses/data are transmitted together with the header bits
via an RF or an infrared transmission medium upon receipt of a trigger signal. The
capability to select a TE trigger on the HT12E.
Fig 3.7 PIN diagram

Fig 3.8 pin diagram


Table 3.2 Pin description
Functional Description
Operation
The encoders begin a 4-word transmission cycle upon receipt of a transmission enable
(TE for the HT12E, active low). This cycle will repeat itself as long as the transmission
enable TE is held low. Once the transmission enable returns high the encoder output
completes its final cycle and then stops as shown below.

Transmission Enable
For the HT12E encoders, applying a low signal to the TE pin enables transmission.

Fig 3.9 transmission timing Diagram


Address/Data Programming (Preset)
The status of each address/data pin can be individually pre-set to logic _high_ or _low_.
If a transmission-enable signal is applied, the encoder scans and transmits the status of
the 12 bits of address/data serially in the order A0 to AD11 for the HT12E encoder
During information transmission these bits are transmitted with a preceding
synchronization bit. If the trigger signal is not applied, the chip enters the standby mode
and consumes a reduced current of less than 1_A for a supply voltage of 5V.
Usual applications preset the address pins with individual security codes using
DIPswitches or PCB wiring, while the data is selected by push buttons or electronic
switches.
Fig 3.9.1 Address and data flow diagram

Flow chart:

Table3.3 Electrical characteristics


Receiver section:

In the receiver section we are using RF receiver for receiving the data now the Decoder

HT12D can decode received data. This decoded data will be fed into the

Port 1 of micro controller from the Address/data lines of the Decoder IC. This Receiving

data send through port2 of micro controller to the data lines of the LCD (D0-D7) .now

the data displayed on the LCD.This output data can be displayed on an LCD.

LCD: Most of the character type LCD modules have parallel bus for interfacing with in
the embedded controls it has an eight bit bus, a module select signal (cs), a read/write
signal and another line A0 it selects the address so the micro controller has to spare 11
I/O lines to display the given Data on the LCD.

Decoder HT 12D

General Description
The decoders are a series of CMOS LSIs for remote Control system applications.
For proper operation, a pair of encoder/decoder with the same number of addresses and
data format should be chosen. The decoders receive serial addresses and data from
programmed encoders. Which are transmitted by a carrier using an RF or an IR
transmission medium. They compare the serial input data three times continuously with
their local addresses.
If no error or unmatched Codes are found the input data codes are decoded
and then transferred to the output pins. The VTpin also goes high to indicate a valid
transmission. of decoders are capable of decoding Information that consists of N bits of
address and 12_NBits of data of this series, the HT12D is arranged to provide8 address
bits and 4 data bits, and HT12F is used to Decode 12 bits of address information.
Fig 3.9.2 Internal Block diagram
Fig 4.0 Receiver circuit:

FIG 4.1 PIN DIAGRAM


Functional Description
Operation
The 212 series of decoders provides various combinations of addresses and data pins in
different packages so as to pair with the 212 series of encoders. The decoders receive data
that are transmitted by an encoder and interpret the first N bits of code period as
Addresses and the last 12_N bits as data, where N is the address code number. A signal
on the DIN pin activates the oscillator, which in turn decodes the incoming address
and data. The decoders will then check the received address three times continuously. If
the received address codes all match the contents of the decoder_slocal address, the 12_N
bits of data are decoded to activate the output pins and the VT pin is set high to indicate a
valid transmission. This will last unless the address code is incorrect or no signal is
received. The output of the VT pin is high only when the transmissionis valid. Otherwise
it is always low.
Decoder timing

L293D IC(DC MOTOR DRIVER)


FIGURE: L293 & L293D Driver ICs
The L293 and L293D are quadruple high-current half-H drivers. The L293 is
designed to provide bidirectional drive currents of up to 1 A at voltages from 4.5
V to 36 V. The L293D is designed to provide bidirectional drive currents of up to
600-mA at voltages from 4.5 V to 36 V. Both devices are designed to drive
inductive loads such as relays, solenoids, dc and bipolar stepping motors, as well
as other high-current/high-voltage loads in positive-supply applications. All inputs
are TTL compatible. Each output is a complete totem-pole drive circuit, with a
Darlington transistor sink and a pseudo-Darlington source. Drivers are enabled in
pairs, with drivers 1 and 2 enabled by 1,2EN and drivers 3 and 4 enabled by
3,4EN.
When an enable input is high, the associated drivers are enabled and their
outputs are active and in phase with their inputs. When the enable input is low,
those drivers are disabled and their outputs are off and in the high-impedance
state. With the proper data inputs, each pair of drivers forms a full-H (or bridge)
reversible drive suitable for solenoid or motor applications. On the L293, external
high-speed output clamp diodes should be used for inductive transient
suppression. A VCC1 terminal, separate from VCC2, is provided for the logic
inputs to minimize device power dissipation. The L293and L293D are
characterized for operation from 0°C to 70°C.
Use of Infrared Detectors Basics

Principle :

IR LED emits infrared radiation. This radiation illuminates the surface in front of
LED. Surface reflects the infrared light. Depending on reflectivity of the surface,
amount of light reflected varies. This reflected light is made incident on reverse
biased IR sensor. When photons are incident on reverse biased junction of this
diode, electron-hole pairs are generated, which results in reverse leakage
current. Amount of electron-hole pairs generated depends on intensity of incident
IR radiation. More intense radiation results in more reverse leakage current. This
current can be passed through a resistor so as to get proportional voltage. Thus
as intensity of incident rays varies, voltage across resistor will vary accordingly.

This voltage can then be given to OPAMP based comparator. Output of the
comparator can be read by uC. Alternatively, you can use on-chip ADC in AVR
microcontroller to measure this voltage and perform comparison in software.

IR LED and IR sensor :

IR LED is used as a source of infrared rays. It comes in two packages 3mm or


5mm. 3mm is better as it is requires less space. IR sensor is nothing but a diode,
which is sensitive for infrared radiation.

This infrared transmitter and receiver is called as IR TX-RX


pair. It can be obtained from any decent electronics
component shop and costs less than 10Rs. Following snap shows 3mm and
5mm IR pairs.

Colour of IR transmitter and receiver is different. However you may come across
pairs which appear exactly same or even has opposite colours than shown in
above pic and it is not possible to distinguish between TX and RX visually. In
case you will have to take help of multimeter to distinguish between them.
An infrared emitter is an LED made from gallium arsenide, which emits near-
infrared energy at about 880nm.
The infrared phototransistor acts as a transistor with the base voltage determined
by the amount of light hitting the transistor.
Hence it acts as a variable current source. Greater amount of IR light cause
greater currents to flow through the collector-emitter leads.
As shown in the diagram below, the phototransistor is wired in a similar
configuration to the voltage divider.
The variable current traveling through the resistor causes a voltage drop in the
pull-up resistor. This voltage is measured as the output of the device.
Photo IR reflectance sensors contain a matched infrared transmitter and infrared
receiver pair.
These devices work by measuring the amount of light that is reflected into the
receiver.
Because the receiver also responds to ambient light, the device works best when
well shielded from abient light, and when the distance between the sensor and
the reflective surface is small(less than 5mm).
IR reflectance sensors are often used to detect white and black surfaces. White
surfaces generally reflect well, while black surfaces reflect poorly. One of such
applications is the line follower of a robot.

How Infrared Trans Rex detectors work ?


Schematic Diagram for a Single Pair of Infrared Transmitter and Receiver

Theory of Sensor Circuit


To get a good voltage swing , the value of R1 must be carefully chosen. If
Rsensor = a when no light falls on it and Rsensor = b when light falls on it. The
difference in the two potentials is:

Vcc * { a/(a+R1) - b/(b+R1) }


Relative voltage swing = Actual Voltage Swing / Vcc
= Vcc * { a/(a+R1) - b/(b+R1) } / Vcc
= a/(a+R1) - b/(b+R1)

The resistance of the sensor decreases when IR light falls on it. A good sensor
will have near zero resistance in presence of light and a very large resistance in
absence of light. We have used this property of the sensor to form a potential
divider. The potential at point ‘2’ is Rsensor / (Rsensor + R1). Again, a good
sensor circuit should give maximum change in potential at point ‘2’ for no-light
and bright-light conditions. This is especially important if you plan to use an ADC
in place of the comparator.

To get a good voltage swing , the value of R1 must be carefully chosen. If


Rsensor = a when no light falls on it and Rsensor = b when light falls on it. The
difference in the two potentials is:
Vcc * { a/(a+R1) - b/(b+R1) }

Relative voltage swing = Actual Voltage Swing / Vcc


= Vcc * { a/(a+R1) - b/(b+R1) } / Vcc
= a/(a+R1) - b/(b+R1)

Description of operation of a typical circuit


If the emitter and detector (aka phototransistor) are not blocked, then the output
on pin 2 of the 74LS14 will be high (apx. 5 Volts).
When they are blocked, then the output will be low (apx. 0 Volts). The 74LS14 is
a Schmitt triggered hex inverter.
A Schmitt trigger is a signal conditioner. It ensures that above a threshold value,
we will always get "clean" HIGH and LOW signals.
Not Blocked Case: Pin 2 High Current from Vcc flows through the detector. The
current continues to flow through the base of Q2.
Current from Vcc also flows through R2, and Q2's Drain and Emitter to ground.
As a result of this current path, there will be no current flowing through Q1's
base.
The signal at U1's pin 1 will be low, and so pin 2 will be high. Blocked Case: Pin
2 Low Current "stops" at the detector.
Q2's base is not turned on. The current is re-routed passing through R2 and into
the base of Q1.
This allows current to flow from Q1's detector and exiting out Q1's emitter. Pin 1
is thus high and pin 2 will be low.
To detect a line to be followed, we are using two or more number of poto-
reflectors.
Its output current that proportional to reflection rate of the floor is converted to
voltage with a resister and tested it if the line is detected or not.
However the threshold voltage cannot be fixed to any level because optical
current by ambent light is added to the output current.
Most photo-detecting modules are using modurated light to avoid interference by
the ambient light.
The detected signal is filtered with a band pass filter and disused signals are
filtered out.
Therefore only the modurated signal from the light emitter can be detected.
Of course the detector must not be saturated by ambient light, this is effective
when the detector is working in linear region.
The line position is compeared to the center value to be tracked, the position
error is processed with Proportional/Integral/Diffence filters
to generate steering command. The line following robot tracks the line in PID
control that the most popular algorithm for servo control.
The proportional term is the commom process in the servo system. It is only a
gain amplifier without time dependent process.
The differential term is applied in order to improve the response to disturbance,
and it also compensate phase lag at the controlled object.
The D term will be required in most case to stabilize tracking motion. The I term
that boosts DC gain is applied in order to remove left offset error,
however, it often decrease servo stability due to its phase lag.
When any line sensing error has occurred for a time due to getting out of line or
end of line, the motors are stopped and
the microcontroller enters sleep state of zero power consumption.
Typical Examples of infrared Transmitter and Receiver installation
SERIAL COMMUNICATION

BASICS OF SERIAL COMMUNICATION

Computer transfers data in two ways these are

1. Parallel: Often 8 or more lines (wire conductors) are used to transfer data
to a device that is only few feet away.
2. Serial: To transfer to a device located many meters away, the serial
method is used. The data is sent one bit at a time.
Fig: Mode of Communication

At the transmitting end, the byte of data must be converted to serial bits using
parallel-in-serial-out shift register. At the receiving end, there is a serial-in-
parallel-out shift register to receive the serial data and pack them into byte. When
the distance is short, the digital signal can be transferred as it is on a simple wire
and requires no modulation. If data is to be transferred on the telephone line, it
must be converted from 0s and 1s to audio tones. This conversion is performed
by a device called a modem, “Modulator/demodulator”.

Serial data communication uses two methods. First are synchronous method
transfers a block of data at a time. Second is an asynchronous method transfer a
single byte at a time.

It is possible to write software to use either of these methods, but the


programs can be tedious and long. There are special IC chips made by many
manufacturers for serial communications namely UART (universal asynchronous
Receiver-transmitter) & USART (universal synchronous-asynchronous Receiver-
transmitter).
Fig: Diagrammatic Simplex & Duplex Transmission

A protocol is a set of rules agreed by both the sender and receiver.


Asynchronous serial data communication is widely used for character-oriented
transmissions where each character is placed in between start and stop bits, this
is called framing and block-oriented data transfers use the synchronous method.
The start bit is always one bit, but the stop bit can be one or two bits the start bit
is always a 0 (low) and the stop bit(s) is 1 (high).

Fig: Transmissions of Data

Due to the extended ASCII characters, 8-bit ASCII data is common in modern
PCs the use of one stop bit is standard. Assuming that we are transferring a text
file of ASCII characters using 1 stop bit, we have a total of 10 bits for each
character. In some systems in order to maintain data integrity, the parity bit of the
character byte is included in the data frame. The rate of data transfer in serial
data communication is stated in bps (bits per second).

Another widely used terminology for bps is baud rate. As far as the conductor
wire is concerned, the baud rate and bps are the same, and we use the terms
interchangeably. The data transfer rate of given computer system depends on
communication ports incorporated into that system.

An interfacing standard RS232 was set by the Electronics Industries


Association (EIA) in 1960. The standard was set long before the advent of the
TTL logic family, its input and output voltage levels is not TTL compatible where
a 1 is represented by -3 ~ -25 V, while a 0 bit is +3 ~ +25 V, making -3 to +3
undefined.

8051 has two pins that are used specifically for transferring and receiving data
serially. These two pins are called TxD and RxD and are part of the port 3 group
(P3.0 and P3.1).These pins are TTL compatible; therefore, they require a line
driver to make them RS232 compatible. To allow data transfer between the PC
and an 8051 system without any error, we must make sure that the baud rate of
8051 system matches the baud rate of the PC’s COM port.

REGISTER STRUCTURE

SBUF Register: This is an 8-bit register used solely for serial communication. For
a byte data to be transferred via the TxD line, it must be placed in the SBUF
register. The moment a byte is written into SBUF, it is framed with the start and
stop bits and transferred serially via the TxD line. SBUF holds the byte of data
when it is received by 8051 RxD line. When the bits are received serially via
RxD, the 8051 defames it by eliminating the stop and start bits, making a byte out
of the data received, and then placing it in SBUF.

SCON Register: SCON is an 8-bit register used to program the start bit, stop bit,
and data bits of data framing, among other things.

Table Functions of various bits in SCON register

SM0, SM1: They determine the framing of data by specifying the number of bits
per character, and the start and stop bits.

Table Mode selection using SM0 & SM1

SM2: This enables the multiprocessing capability of the 8051.

REN (receive enable): It is a bit-addressable register. When it is high, it allows


8051 to receive data on RxD pin. If low, the receiver is disables (transmit
interrupt). When 8051 finishes the transfer of 8-bit character. It raises TI flag to
indicate that it is ready to transfer another byte. TI bit is raised at the beginning of
the stop bit RI (receive interrupt). When 8051 receives data serially via RxD, it
gets rid of the start and stop bits and places the byte in SBUF register. It raises
the RI flag bit to indicate that a byte has been received and should be picked up
before it is lost. RI is raised halfway through the stop bit.

History and technology background

An RFID vosough tag used for electronic toll collection.

In 1945 Leon Theremin invented an espionage tool for the Soviet Union which
retransmitted incident radio waves with audio information. Sound waves vibrated
a diaphragm which slightly altered the shape of the resonator, which modulated
the reflected radio frequency. Even though this device was a covert listening
device, not an identification tag, it is considered to be a predecessor of RFID
technology, because it was likewise passive, being energized and activated by
electromagnetic waves from an outside source.

Similar technology, such as the IFF transponder invented in the United Kingdom
in 1915, was routinely used by the allies in World War II to identify aircraft as
friend or foe. Transponders are still used by most powered aircraft to this day.
Another early work exploring RFID is the landmark 1948 paper by Harry
Stockman, titled "Communication by Means of Reflected Power" (Proceedings of
the IRE, pp 1196–1204, October 1948). Stockman predicted that "... considerable
research and development work has to be done before the remaining basic
problems in reflected-power communication are solved, and before the field of
useful applications is explored."
Mario Cardullo's U.S. Patent 3,713,148 in 1973 was the first true ancestor of
modern RFID; a passive radio transponder with memory. The initial device was
passive, powered by the interrogating signal, and was demonstrated in 1971 to
the New York Port Authority and other potential users and consisted of a
transponder with 16 bit memory for use as a toll device. The basic Cardullo
patent covers the use of RF, sound and light as transmission media. The original
business plan presented to investors in 1969 showed uses in transportation
(automotive vehicle identification, automatic toll system, electronic license plate,
electronic manifest, vehicle routing, vehicle performance monitoring), banking
(electronic check book, electronic credit card), security (personnel identification,
automatic gates, surveillance) and medical (identification, patient history).

A very early demonstration of reflected power (modulated backscatter) RFID


tags, both passive and semi-passive, was performed by Steven Depp, Alfred
Koelle, and Robert Freyman at the Los Alamos National Laboratory in 1973. The
portable system operated at 915 MHz and used 12-bit tags. This technique is
used by the majority of today's UHFID and microwave RFID tags. The first patent
to be associated with the abbreviation RFID was granted to Charles Walton in
1983 U.S. Patent 4,384,288.

The largest deployment of active RFID is the US Department of Defense use of


Savi active tags on every one of its more than a million shipping containers that
travel outside of the continental United States (CONUS). The largest passive
RFID deployment is the Defense Logistics Agency (DLA) deployment across 72
facilities implemented by ODIN who also performed the global roll-out for Airbus
consisting of 13 projects across the globe.

What is RFID?
RFID is short for Radio Frequency Identification. Generally a RFID system
consists of 2 parts. A Reader, and one or more Transponders, also known as
Tags. RFID systems evolved from barcode labels as a means to automatically
identify and track products and people. You will be generally familiar with RFID
systems as seen in:
Contact less Payment Systems:

RFID tags used to carry payment information. RFIDs are particular suited to
electronic Toll collection systems. Tags attached to vehicles, or carried by
people transmit payment information to a fixed reader attached to a Toll station.
Payments are then routinely deducted from a users account, or information is
changed directly on the RFID tag.

Access Control:
RFID Readers placed at entrances that require a person to pass their proximity
card (RF tag) to be "read' before the access can be made.
Product Tracking and Inventory Control:

RFID systems are commonly used to track and record the movement of ordinary
items such as library books, clothes, factory pallets, electrical goods and
numerous items.

How do RFIDs work?

Shown below is a typical RFID system. In every RFID system the transponder
Tags contain information. This information can be as little as a single binary bit ,
or be a large array of bits representing such things as an identity code, personal
medical information, or literally any type of information that can be stored in
digital binary format.
Shown is a RFID transceiver that communicates with a passive Tag. Passive
tags have no power source of their own and instead derive power from the
incident electromagnetic field. Commonly the heart of each tag is a microchip.
When the Tag enters the generated RF field it is able to draw enough power from
the field to access its internal memory and transmit its stored information. When
the transponder Tag draws power in this way the resultant interaction of the RF
fields causes the voltage at the transceiver antenna to drop in value. This effect
is utilized by the Tag to communicate its information to the reader. The Tag is
able to control the amount of power drawn from the field and by doing so it can
modulate the voltage sensed at the Transceiver according to the bit pattern it
wishes to transmit.

COMPONENTS OF RFID

A basic RFID system consists of three components:

• An antenna or coil

• A transceiver (with decoder)

• A transponder (RF tag) electronically programmed with unique


information

These are described below:

1. ANTENNA

The antenna emits radio signals to activate the tag and read and write data to it.
Antennas are the conduits between the tag and the transceiver, which controls
the system's data acquisition and communication. Antennas are available in a
variety of shapes and sizes; they can be built into a door frame to receive tag
data from persons or things passing through the door, or mounted on an
interstate tollbooth to monitor traffic passing by on a freeway. The
electromagnetic field produced by an antenna can be constantly present when
multiple tags are expected continually. If constant interrogation is not required, a
sensor device can activate the field.
Often the antenna is packaged with the transceiver and decoder to become a
reader (a.k.a. interrogator), which can be configured either as a handheld or a
fixed-mount device. The reader emits radio waves in ranges of anywhere from
one inch to 100 feet or more, depending upon its power output and the radio
frequency used. When an RFID tag passes through the electromagnetic zone, it
detects the reader's activation signal. The reader decodes the data encoded in
the tag's integrated circuit (silicon chip) and the data is passed to the host
computer for processing.

2. TAGS (Transponders)

An RFID tag is comprised of a microchip containing identifying information and


an antenna that transmits this data wirelessly to a reader. At its most basic, the
chip will contain a serialized identifier, or license plate number, that uniquely
identifies that item,
similar to the way many bar codes are used today. A key difference, however is
that RFID tags have a higher data capacity than their bar code counterparts.
This increases the options for the type of information that can be encoded on the
tag, including the manufacturer, batch or lot number, weight, ownership,
destination and history (such as the temperature range to which an item has
been exposed). In fact, an unlimited list of other types of information can be
stored on RFID tags, depending on application needs. An RFID tag can be
placed on individual items, cases or pallets for identification purposes, as well as
on fixed assets such as trailers, containers, totes, etc.
Tags come in a variety of types, with a variety of capabilities. Key variables
include:
"Read-only" versus "read-write"
There are three options in terms of how data can be encoded on tags: (1) Read-
only tags contain data such as a serialized tracking number, which is pre-written
onto them by the tag manufacturer or distributor. These are generally the least
expensive tags because they cannot have any additional information included as
they move throughout the supply chain. Any updates to that information would
have to be maintained in the application software that tracks SKU movement and
activity. (2) "Write once" tags enable a user to write data to the tag one time in
production or distribution processes. Again, this may include a serial number, but
perhaps other data such as a lot or batch number. (3) Full "read-write" tags allow
new data to be written to the tag as needed—and even written over the original
data. Examples for the latter capability might include the time and date of
ownership transfer or updating the repair history of a fixed asset. While these are
the most costly of the three tag types and are not practical for tracking
inexpensive items, future standards for electronic product codes (EPC) appear to
be headed in this direction.

RFID TAGS

Data capacity
The amount of data storage on a tag can vary, ranging from 16 bits on the low
end to as much as several thousand bits on the high end. Of course, the greater
the storage capacity, the higher the price per tag.
Form factor
The tag and antenna structure can come in a variety of physical form factors and
can either be self-contained or embedded as part of a traditional label structure
(i.e., the tag is inside what looks like a regular bar code label—this is termed a
'Smart Label') companies must choose the appropriate form factors for the tag
very carefully and should expect to use multiple form factors to suit the tagging
needs of different physical products and units of measure. For example, a pallet
may have an RFID tag fitted only to an area of protected placement on the pallet
itself.
On the other hand, cartons on the pallet have RFID tags inside bar code labels
that also provide operators human-readable information and a back-up should
the tag fail or pass through non RFID-capable supply chain links.

Passive versus active


“Passive” tags have no battery and "broadcast" their data only when energized
by a reader. That means they must be actively polled to send information.
"Active" tags are capable of broadcasting their data using their own battery
power. In general, this means that the read ranges are much greater for active
tags than they are for passive tags—perhaps a read range of 100 feet or more,
versus 15 feet or less for most passive tags. The extra capability and read
ranges of active tags, however, come with a cost; they are several times more
expensive than passive tags. Today, active tags are much more likely to be used
for high-value items or fixed assets such as trailers, where the cost is minimal
compared to item value, and very long read ranges are required.
Most traditional supply chain applications, such as the RFID-based tracking and
compliance programs emerging in the consumer goods retail chain, will use the
less expensive passive tags.
Frequencies
Like all wireless communications, there are a variety of frequencies or spectra
through which RFID tags can communicate with readers. Again, there are trade-
offs among cost, performance and application requirements. For instance, low-
frequency tags are cheaper than ultra high-frequency (UHF) tags, use less power
and are better able to penetrate non-metallic substances. They are ideal for
scanning objects with high water content, such as fruit, at close range. UHF
frequencies typically offer better range and can transfer data faster. But they use
more power and are less likely to pass through some materials. UHF tags are
typically best suited for use with or near wood, paper, cardboard or clothing
products. Compared to low-frequency tags, UHF tags might be better for
scanning boxes of goods as they pass through a bay door into a warehouse.

While the tag requirements for compliance mandates may be narrowly defined, it
is likely that a variety of tag types will be required to solve specific operational
issues. You will want to work with a company that is very knowledgeable in tag
and reader technology to appropriately identify the right mix of RFID technology
for your environment and applications.

EPC Tags

EPC refers to "electronic product code," an emerging specification for RFID tags,
readers and business applications first developed at the Auto-ID Center at the
Massachusetts Institute of Technology. This organization has provided significant
intellectual leadership toward the use and application of RFID technology. EPC
represents a specific approach to item identification, including an emerging
standard for the tags themselves, including both the data content of the tag and
open wireless communication protocols. In a sense, the EPC movement is
combining the data standards embodied in certain bar code specifications, such
as the UPC or UCC-128 bar code standards, with the wireless data
communication standards that have been developed by ANSI and other groups.
3. RF Transceiver:

The RF transceiver is the source of the RF energy used to activate and power
the passive RFID tags. The RF transceiver may be enclosed in the same cabinet
as the reader or it may be a separate piece of equipment. When provided as a
separate piece of equipment, the transceiver is commonly referred to as an RF
module. The RF transceiver controls and modulates the radio frequencies that
the antenna transmits and receives. The transceiver filters and amplifies the
backscatter signal from a passive RFID tag.
Typical Applications for RFID

• Automatic Vehicle identification


• Inventory Management
• Work-in-Process
• Container/ Yard Management
• Document/ Jewellery tracking
• Patient Monitoring
The Advantages of RFID Over Bar Coding

1. No "line of sight" requirements: Bar code reads can sometimes be


limited or problematic due to the need to have a direct "line of sight"
between a scanner and a bar code. RFID tags can be read through
materials without line of sight

2. More automated reading: RFID tags can be read automatically


when a tagged product comes past or near a reader, reducing the
labor required to scan product and allowing more proactive, real-
time tracking.
3. Improved read rates: RFID tags ultimately offer the promise of
higher read rates than bar codes, especially in high-speed operations such as
carton sortation. Greater data capacity: RFID tags can be easily encoded with
item details such as lot and batch, weight, etc.
5. "Write" capabilities: Because RFID tags can be rewritten with new
data as supply chain activities are completed, tagged products carry updated
information as they move throughout the supply chain.

Potential uses

RFID can be used in a variety of applications such as

• Access management
• Tracking of goods and RFID in retail
• Tracking of persons and animals
• Toll collection and contactless payment
• Machine readable travel documents
• Smart dust (for massively distributed sensor networks)
• Location-based services
• Tracking Sports memorabilia to verify authenticity
• Airport Baggage Tracking Logistics
RFID chips

Future technology

Radio frequency identification (RFID), the technology of the future,has long


established itself in our everyday lives. It is already deployed in various areas
ranging from efficient inventory management and road toll collection through to
timing the performance of individual participants in mass sporting events. Given
RFID’s enormous potential it is only right that it is on everyone’s lips.RFID chips
combine the physical world of a product with the virtual world of digital data. The
technology meets the needs of companies cooperating in a closely knit value
chain.

RFID will soon be considered an indispensable part of the chain.Inefficiencies in


the value chain and efforts to shore up internal security are driving demand for
RFID. The retail trade is playing a decisive part in the broad-based roll-out of
RFID projects. RFID represents an all-encompassing structural business concept
that far transcends simply superseding the bar code. Speed of processing,
reading error frequency, data protection and privacy issues, progress in
standardization, and investment costs are still challenges that will ultimately
decide the potential of RFID. RFID projects focused on transparency, reliability or
speed of processing are particularly successful. RFID systems will rapidly
continue to gain significance. This holds especially in areas where they can be
used to manage processes within the value chain.
All told, the market for RFID systems is likely to grow globally fromEUR 1.5 bn to
EUR 22 bn between 2004 and 2010 (average growth rate: +57% p.a.). During
the same period, the RFID market in the EU-15 is expected to expand from EUR
0.4 bn to EUR 4 bn (+47% p.a.).
MAX 232

The MAX232 is an integrated circuit that converts signals from an RS-232 serial
port to signals suitable for use in TTL compatible digital logic circuits. The
MAX232 is a dual driver/receiver and typically converts the RX, TX, CTS and
RTS signals. The drivers provide RS-232 voltage level outputs (approx. ± 7.5 V)
from a single + 5 V supply via on-chip charge pumps and external capacitors.
This makes it useful for implementing RS-232 in devices that otherwise do not
need any voltages outside the 0 V to + 5 V range, as power supply design does
not need to be made more complicated just for driving the RS-232 in this case.

The receivers reduce RS-232 inputs (which may be as high as ± 25 V), to


standard 5 V TTL levels. These receivers have a typical threshold of 1.3 V, and a
typical hysteresis of 0.5 V.The later MAX232A is backwards compatible with the
original MAX232 but may operate at higher baud rates and can use smaller
external capacitors – 0.1 μF in place of the 1.0 μF capacitors used with the
original device. The newer MAX3232 is also backwards compatible, but operates
at a broader voltage range, from 3 to 5.5V. Voltage levels It is helpful to
understand what occurs to the voltage levels. When a MAX232 IC receives a
TTL level to convert, it changes a TTL Logic 0 to between +3 and +15V, and
changes TTL Logic 1 to between -3 to -15V, and vice versa for converting from
RS232 to TTL. This can be confusing when you realize that the RS232 Data
Transmission voltages at a certain logic state are opposite from the RS232
Control Line voltages at the same logic state. To clarify the matter, see the table
below. For more information seeRS-232 Voltage Levels

RS232 TTL Voltage to/from


RS232 Line Type & Logic Level
Voltage MAX232

Data Transmission (Rx/Tx) Logic 0 +3V to +15V 0V

Data Transmission (Rx/Tx) Logic 1 -3V to -15V 5V

Control Signals
-3V to -15V 5V
(RTS/CTS/DTR/DSR) Logic 0
Control Signals
+3V to +15V 0V
(RTS/CTS/DTR/DSR) Logic 1

SCHEMATIC OF MAX 232


DB9 CONNECTOR:

The DB9 (originally DE-9) connector is an analog 9-pin plug of the D-


Subminiature connector family (D-Sub or Sub-D).

The DB9 connector is mainly used for serial connections, allowing for the
asynchronous transmission of data as provided for by standard RS-232 (RS-
232C).

Note that there are DB9-DB25 adapters for easily converting a DB9 plug into a
DB25, and vice versa.
PINS

Pin
number Name
1 CD - Carrier Detect
2 RXD - Receive Data
3 TXD - Transmit Data
DTR - Data Terminal
4 Ready

5 GND - Signal Ground


6 DSR - Data Set Ready
7 RTS - Request To Send
8 CTS - Clear To Send
9 RI - Ring Indicator
Shield

REGULATED POWER SUPPLY

DESCRIPTION

A variable regulated power supply, also called a variable bench power supply, is
one where you can continuously adjust the output voltage to your requirements.
Varyingthe output of the power supply is the recommended way to test a project
after having double checked parts placement against circuit drawings and the
parts placement guide.
This type of regulation is ideal for having a simple variable bench power supply.
Actually this is quite important because one of the first projects a hobbyist should
undertake is the construction of a variable regulated power supply. While a
dedicated supply is quite handy e.g. 5V or 12V, it's much handier to have a
variable supply on hand, especially for testing.

Most digital logic circuits and processors need a 5-volt power supply. To use
these parts we need to build a regulated 5-volt source. Usually you start with an
unregulated power supply ranging from 9 volts to 24 volts DC (A 12 volt power
supply is included with the Beginner Kit and the Microcontroller Beginner Kit.). To
make a 5 volt power supply, we use a LM7805 voltage regulator IC (Integrated
Circuit). The IC is shown below.

The LM7805 is simple to use. You simply connect the positive lead of your
unregulated DC power supply (anything from 9VDC to 24VDC) to the Input pin,
connect the negative lead to the Common pin and then when you turn on the
power, you get a 5 volt supply from the Output pin.

CIRCUIT FEATURES:
Brief description of operation: Gives out well regulated +5V output, output
current capability of 100 mA
Circuit protection: Built-in overheating protection shuts down output when
regulator IC gets too hot
Circuit complexity: Very simple and easy to build
Circuit performance: Very stable +5V output voltage, reliable operation
Availability of components: Easy to get, uses only very common basic
components
Design testing: Based on datasheet example circuit, I have used this circuit
succesfully as part of many electronics projects
Applications: Part of electronics devices, small laboratory power supply
Power supply voltage: Unreglated DC 8-18V power supply
Power supply current: Needed output current + 5 mA
Component costs: Few dollars for the electronics components + the input
transformer cost.
BLOCK DIAGRAM:
CIRCUIT DIAGRAM:

Fig 3.2.13: Power Supply Circuit Diagram

This 5V dc acts as Vcc to the microcontroller. The excess voltage is dissipated


as heat via an Aluminum heat sink attached to the voltage regulator.
Bridge Rectifier:
A diode bridge is an arrangement of four diodes connected in a bridge
circuit as shown below, that provides the same polarity of output voltage for any
polarity of the input voltage. When used in its most common application, for
conversion of alternating current (AC) input into direct current (DC) output, it is
known as a bridge rectifier. The diagram describes a diode-bridge design known
as a full-wave rectifier. This design can be used to rectify single phase AC when
no transformer center tap is available. A bridge rectifier makes use of four
diodes in a bridge arrangement to achieve full-wave rectification. This is a widely
used configuration, both with individual diodes wired as shown and with single
component bridges where the diode bridge is wired internally.

Typical Bridge Rectifier

For both positive and negative swings of the transformer, there is a


Forward path through the diode bridge. Both conduction paths cause
Current to flow in the same direction through the load resistor,
accomplishing full-wave rectification. While one set of diodes is
forward biased, the other set is reverse biased and effectively eliminated
from the circuit.

Current Flow in the Bridge Rectifier


Current in Bridge Rectifier for +ve half cycle

Current in Bridge Rectifier for -ve half cycle

LM7805
3-Terminal 1A Positive Voltage Regulator
Features
• Output Current up to 1A
• Thermal Overload Protection
• Short Circuit Protection
• Output Transistor Safe Operating Area Protection

Description
The MC7805 three terminal positive regulators are available in the TO-
220/D-PAK package and with several fixed output voltages, making them useful
in a wide range of applications. Each type employs internal current limiting,
thermal shut down and safe operating area protection, making it essentially
indestructible. If adequate heat sinking is provided, they can deliver over 1A
output current. Although designed primarily as fixed voltage regulators, these
devices can be used with external components to obtain adjustable voltages and
currents.

Fig 6.1.4 Different Packages

Internal Block Diagram


Absolute Maximum Ratings

Electrical Characteristics of MC7805/LM7805


Note:
Load and line regulation are specified at constant junction temperature.
Changes in Vo due to heating effects must be taken into account separately.
Pulse testing with low duty is used.
Electrical Characteristics of MC7805A

Note:
Load and line regulation are specified at constant junction temperature. Change
in VO due to heating effects must be taken into account separately. Pulse testing
with low duty is used.
Quiescent Current Peak Output Current

Output Voltage Quiescent Current

Typical Performance Characteristics


LIQUID CRYSTAL DISPLAY (LCD)

LCD is a type of display used in digital watches and many portable computers.
LCD displays utilize to sheets of polarizing material with a liquid crystal solution
between them. An electric current passed through the liquid causes the crystals
to align so that light cannot pass through them. LCD technology has advanced
very rapidly since its initial inception over a decade ago for use in laptop
computers. Technical achievement has resulted in brighter displace, higher
resolutions, reduce response times and cheaper manufacturing process.

The liquid crystals can be manipulated through an applied electric voltage so that
light is allowed to pass or is blocked. By carefully controlling where and what
wavelength (color) of light is allowed to pass, the LCD monitor is able to display
images. A backlight provides LCD monitor’s brightness.

Over the years many improvements have been made to LCD to help enhance
resolution, image, sharpness and response times. One of the latest such
advancements is TFT or Thin Film Transistor. TFT-LCD’s make use of a very thin
transistor that is applied to glass during acts as switch allowing control of light at
the pixel level, greatly enhancing image sharpness and resolution. This has been
particularly important for improving LCD’s ability to display small-sized fonts and
image clearly.

Other advances have allowed LCD’s to greatly reduce liquid crystal cell response
times. Response time is basically the amount of time it takes for a pixel to
“change colors”. In reality response time is the amount of time it takes a liquid
crystal cell to go from being active to inactive.
LCD interfacing with 8052 is a real-world application. In recent years the LCD is
finding widespread use replacing LEDs (seven segment LEDs or other
multisegment LEDs). This is due to following reasons:

The declining prices of LCDs.

The ability to display numbers, characters and graphics. This is in contrast to


LEDs, which are limited to numbers and a few characters. An intelligent LCD
display of two lines, 20 characters per line, that is interfaced to the 8051.

Incorporation of a refreshing controller into the LCD, thereby relieving the CPU to
keep displaying the data.

Ease of programming for characters and graphics.

PIN DIAGRAM

Most of the LCD modules conform to a standard interface specification. A 14pin


access is provided having eight data lines, three control lines and three power
lines. The connections are laid out in one of the two common configurations,
either two rows of seven pins, or a single row of 14 pins.

One of the, pins are numbered on the LCD’s print circuit board (PCB), but if not,
it is quite easy to locate pin1. Since this pin is connected to ground, it often has a
thicker PCB track, connected to it, and it is generally connected to metalwork at
same point.

G +5V -5V

1 2 3

07 08 09 10 11 12 13 14 4 5 6
D0 D1 D2 D3 D4 D5 D6 D7 RS R/W EN

PIN DESCRIPTIONS

Vcc, Vss and Vee

While Vcc and Vss provide +5V and ground respectively, Vee is used for
controlling LCD contrast.

RS, register select

There are two very important registers inside the LCD. The RS pin is used for
their selection as follows.

If RS=0, the instruction command code register is selected, allowing the user to
send a command such as clear display, cursor at home, etc.,

If RS=1 the data register is selected, allowing the user to send data to be
displayed on the LCD.

R/W, read/write

R/W input allows the user to write information to the LCD or read information
from it. R/W=1 when reading; R/W=0 when writing.

EN, Enable

The LCD to latch information presented to its data pins uses the enable pin.
When data is supplied to data pins, a high-to-low pulse must be applied to this
pin in order for the LCD to latch in the data present at the data pins. This pulse
must be a minimum of 450ns wide.

D0-D7
The 8-bit data pins, D0-D7, are used to send information to the LCD or read the
contents of the LCD’s internal registers.

To display letters and numbers, we send ASCII codes for the letters A-Z, a-z, and
numbers 0-9 to these pins while making RS=1.

There are also instruction command codes that can be sent to the LCD to clear
the display or force the cursor to the home position or blink the instruction
command codes.

We also use RS=0 to check the busy flag bit to see if the LCD is ready to receive
information. The busy flag is D7 and can be read when R/W=1 and RS=0, as
follows: if R/W=1,RS=0. When D7=1 (busy flag=1), the LCD is busy taking care
of internal operations and will not accept any information.

Basic commands of LCD:

When LCD is powered up, the display should show a series of dark squares,
possibly only on part of display. These characters are actually in their off state,
so the contrast control should be adjusted anti-clockwise until the squares are
just visible. The display module resets itself to an initial state when power is
applied, which curiously has the display blanked off so that even if characters are
entered, they cannot be seen. It is therefore necessary to issue a command at
this point, to switch the display on.

Prototype circuit:

For a LCD module to be used effectively in any piece of equipment, a


microprocessor or a micro controller is usually required to drive it. However,
before attempting to wire the two together, some initial experiments can be
performed by connecting a series of switches to the pins of the module. This can
be a quite beneficial step, if even you are thoroughly conversant with the
workings of microprocessors.
OPERATING INSTRUCTIONS
INSTRUCTION CODE EXPLANATIONS

The two registers 1) Instruction Register (IR) and the 2) Data Register (DR) in the
KS0066 controller chip are directly controlled by the MPU. Control information is
temporarily stored in these registers prior to internal operation start. This allows
interface to various types of MPUs which operate at different speeds from that of
the KS0066, and allows interface from peripheral control ICs. Internal operations
of the KS0066 are determined from the signals sent from the MPU. These
signals, including register selection signals (RS), Read/Write (R/W) and data bus
signals (DBO - DB7) are polled instructions.

Tab 6.6.1 Register Selection


ADDRESS COUNTER (AC)
The counter specifies an address when data is written into DD RAM or CG RAM
and the data stored in DD RAM or CG RAM is read out. If an Address Set
instruction (for DD RAM or CG RAM) is written in the IR, the address information
is transferred from the IR to the AC. When display data is written into or read
from DD RAM or CG RAM, the AC are output to DBO to DB6; refer to above
“Register Selection Table” when RS = 0 and R/W= 1.
Clear all display memory and return the cursor to the home position. In other
words, the cursor returns to the first character block on the first line on all 1, 2,
and 4 line character modules except L4044. If the above is entered on E2 (the
second controller for lines 3 and 4), the cursor will return to the first character on
the third line.

Returns cursor to home position. First line first character blocks on all 1, 2 and 4
line display; except L4044 refer “clear display”: (Address 0; A,, “80”). The
contents of DD RAM remain unchanged.

Display & Clear Instructions


ENTRY MODE SET
I/D: Increments (I/D = 1) or decrements (I/D = 0) the DD RAM address by one
block when writing or reading a character code from DD RAM or CG RAM. The
cursor automatically moves to the right when incremented by one or to the left if
decremented by one.

DISPLAY AND CURSOR ON/OFF CONTROL

D: Display is turned ON when D = 1 and OFF when D =0. When display is OFF,
display data in DD RAM remains unchanged. Information comes back
immediately when D = 1 is entered.
C: Cursor is displayed when C = 1 and not displayed when C = 0. If the cursor
disappears, function of I/D etc.
S: Shifts the entire display to either the right or left when S = 1 (high). When S =
1 and I/D = 1 the display shifts one position to the left. When S = 1 and I/D = 0
the display shifts one position to the right. This right or left shift occurs after each
data write to DD RAM. Display is not shifted when reading from DD RAM.
Display is not shifted when S = 0.
In a 5 x 7 dot matrix there is an eighth line which functions as the cursor.
B: When B = 1, the character at the cursor position starts blinking. When B = 0
the cursor does not blink. The blink is done by stitching between the all black dot
matrix and displayed character at 0.4 second intervals. The cursor and the blink
can be set at the same time (fosc = 250 kHz).

5 X 7 DOT MATRIX
C = 1 (cursor display) B = 1 (blinking)

Cursor Conditions

CURSOR OR DISPLAY SHIFT

Cursor/Display Shift moves the cursor or shifts the display without changing the
DD RAM contents. The cursor position and the AC contents match. This
instruction is available for display correction and retrieval because the cursor
position or display can be shifted without writing or reading display data. In case
of a 2-line display, the cursor is shifted from character block 40 of line 1 to
character block 1 of line 2. Displays of lines 1 and 2 are shifted at the same time.
In case of a 4-line display, the cursor does not move continuously from line 2 to
line 3. The cursor is shifted from character block 40 of line 3 to character block 1
of line 4. Displays of lines 3 and 4 are shifted at the same time. The display
pattern of line 2 or 4 is not shifted to line 1 or 3.
PRINTED CIRCUIT BOARD

Printed circuit boards may be covered in two topics namely

1) Technology
2) Design

Introduction to printed circuit boards:

It is called PCB in short, printed circuit consists of conductive circuit pattern


Applied to one or both sides of an insulating base, depending upon that, it is
called single sided PCB or double-sided PCB.
(SSB and DSB).

Conductor materials available are silver, brass, aluminium and copper. Copper is
most widely used. The thickness of conducting material depends upon the
current carrying capacity of circuit. Thus a thicker copper layer will have more
current carrying capacity.

The printed circuit boards usually serves three distinct functions.

1) it provides mechanical support for the components mounted on it.


2) It provides necessary electrical interconnections.
3) It acts as heat sink that is provides a conduction path leading to removal
of the heat generated in the circuit.

Advantages of PCB

1) When a number of identical assemblies are required. PCB’s provide cost


saving because once a layout is approved there is no need to check the
circuit every time.
2) For large equipments such as computers, the saving on checking
connections or wires is substantial.
3) PCB’s have controllable and predictable electrical and mechanical
properties.
4) A more uniform product is produced because wiring errors are eliminated.
5) The distributed capacitances are constant from one production to another.
6) Soldering is done in one operation instead of connecting discrete
components by wires.
7) The PCB construction lands itself for automatic assembly.
8) Spiral type of inductors may be printed.
9) Weight is less.
10) It has miniaturization potential.
11) It has reproducible performance.
12) All the signals are accessible for testing at any point along conductor
track.

Classifications of laminates :
Laminates

Glass base lamination Paper base lamination

There materials are built from several layers of paper or glass, which are
bound together under heat and pressure to form rigid sheets. The binder is
usually a phenolic resin in the case of glass base.

The copper layer is formed on either side or two sides of the laminate.

Because of the different filters and binding resins the characteristic properties
of copper clad laminates change.

The rigid sheets of filters which form reinforcement use paper in the form of
alpha cellulose, craft or rags. These are cheaper and have easy machinbillity.
Glass filter uses glass fibers which are woven to give cloth like appearance.
This gives a high mechanical strength, they are better moisture resistant than
above type.
Binding resins are either phenolic or epoxy as mentioned before in addition
to these; phenol formaldehyde and polyesters are also used. Of these, Epoxy
resin has
Good electrical and mechanical properties.

Manufacture of cu clad laminate:


The base of laminate is either paper or glass fiber cloth, as mentioned before.
The copper foil is produced by electroplating a thin layer of copper on a large
rotating drum of stainless steel. As the drum runs the deposited copper layer
is peeled off and forms a continuous length, which is coiled into rolls for use.
To ensure good adhesion between copper foils and base material, surface of
copper on the laminate and both are kept under hydraulic press for proper
adhesion.

Types of laminates:
National electrical manufactures association (NEMA) has various grades of
laminates that are obtained by different resins and filters.

(1) Phenolic:
Phenol and formaldehyde produce phenolic paper base laminate has
phenolic resins with proper filter. The co lour of this base material is usually
brown and it is opaque. Certain additives and the grid is called FR grade.

Disadvantages:

(1) They are attacked by alkalis

(2) They have poor are resistance.

(3) Moisture resistant property is poor than other laminates.

(2) Epoxy laminates;


They can be divided into (a) epoxy glass (b) epoxy paper

Epoxy paper: this is also paper base is impregnated with epoxy resin. The co lour
is yellowish white and it is translucent.

Epoxy glass: this base material is more expensive but is combines relative
strength and good is mainly because of glass fiber. The co lour of this material is
usually green and it is semitransparent.

Properties of epoxy laminates:

(a) They are tougher than phenolic and polyesters.

(b) Chemical nature of epoxies gives good adhesion.

(c) They have better mechanical strength as mentioned before due to low
shrinkage.

(d) They have high alkali resistance.

(e) They exhibit good electrical properties over different temperature.

(f) They are moisture resistant.

(3) Polyester laminates:

They are mostly used with glass fiber. Their water resistance is good.

(4) Dilly phthalate laminate:

These are mostly used with glass fiber. Their maximum temperature limit is
165C.

(5) PTEF laminates:

Advantages:
(a)It has low dissipation factor over wide rang of temperature, humidity and
frequency rang.

(b) Electric strength is high.

(c) High insulation resistance.

(6) Melamine laminates:

This is normally used with glass. It has high are resistance.

(7) Silicone laminates:

They have good heat resistance and good electrical properties .However their
mechanical properties are not good.

(8) Polyamide laminates:

This is the best polymer for heat resistance. When used with glass this gives
good mechanical properties. They has better adhesion to copper. Normally used
for military and space applications.

There are a number of specifications that are applicable to copper clad laminated
e.g.

DIN is use for German standard.

IS is used for join Indian standard.

JSS is used for join services specifications (ministry of defence)

MIL is used for military standard (U.S.A)

NEMA National Electrical Manufactory’s Association.

By these standards, following parameters are checked:

(1) Pull off strength

(2) Surface resistively


(3) Permittivity and resistance

(4) Temperature resistance

(5) Blistering after heat shock.

Before any pattern is transferred the copper surface is cleaned.

Oxides, hydroxides and salts normally treated as contaminants on copper


surface. Wet brushing is used after scrubbing. Acid dip may also used.

MANIFACTURING PROCESS OF PRINTED CIRCUIT BOARD

The conductor pattern which is on the master film is transferred on copper clad
laminate by two methods.

(1) Photo resist printing

(2) Screen printing

Photo resist printing:

Photopolymer resist is a light sensitive organic material like KPR (Kodak photo
resist), which is applied to the board as a film. The photo resist when exposed
ultraviolet light hardens ore polymerizes. Once it is polymerized, it becomes
insoluble to certain chemical solvents known as developers.

The developer dissolves the portion which is masked or which is not exposed to
light. Thus the pattern that is to be drawn on PCB is derived from the artwork,
which is a photographical process. This is transferred to a master film on 1:1
scale. This can be reduced to any small size thus miniaturization is possible. The
pattern is transferred to a mask. This mask is kept on PCB. The whole process is
known as image transfer.
Now it is subjected to UV rays. The unpolymerized or masked portion is washed
away in developer leaving wanted copper pattern on board. KPR or photo resist
is then removed

Requirements of photo resist:

(1) It should have good resolution and light sensitivity.

(2) It should be resistant to developers, which are used to remove unwanted


copper.

(3) It should have good possibility to strip after unwanted copper is removed.

(4) Its cost must be less.

Photo resist is normally applied by:

(1) Flow coating or

(2) Roller coating or

(3) Dip coating or

(4) Spraying coating or

(5) Whirl coating.

The light sources that are used for exposure are

(1) Mercury vapour

(2) Lamps

(3) Pulsed xenon lamps

(4) UV fluorescent tubes

(5) Carbon arc lamps.


Screen-printing:

This technique is similar to the used in printing industry. The copper foil is
covered with printing ink where the conduction paths are going to be.

The screen, which is used for pattern, is of either stainless steel or polyester
mesh, which is dimensionally accurate and fine mesh. The open meshes of
screen correspond to the pattern.

squeegee
screen ink

frame

hinge

PCB

Fig.8.1: Screen-printing machine


PCB is placed under the screen. Printing ink is placed at one end of the screen,
and by means of a rubber of a squeegee it is pushed through open meshes.
printed circuit board is then removed for drying.

After drying board is washed in ferric chloride which acts as etchant. Etching is a
chemical process by which unwanted copper is removed. The portion which is
covered by ink is not removed, that is the pattern remains intact. Later ink
stripping is done with tricholoroethylene.

Requirements of inks:

(1) The ink should dry rapidly on PCB.

(2) It should be resistant to chemicals.

(3) It should have the possibility of easy stripping.

As shown in figure

ink ink ink

screen

Cu foil

Base material

After deposition of ink it spreads slightly under the mesh and shows a trapezoidal
shape. The printing ink should not be too thin thick to get proper pattern on the
board.

The time or exposure to light depends upon the properties of ink, distance of
board from light source and humidity also.
Screen printing can be done mechanically also. The screen cleaning is done
from the side on which ink was applied. The cleaning solution is normally a
thinner or a solvent.

Protection of copper tracks:

Copper when exposed to atmosphere for a long time gets tarnished and
problems are created while soldering.

Applying lacquer or varnishes can protect the tracks.

However solder ability again depends on the lacquer or varnish properties, the
thickness of these coatings.

Copper is also protected by plating. There are three methods of plating

(1) Immersion plating

(2) Electronics plating

(3) Electroplating

(1) Immersion plating utilizes tin and its alloys and good. It is done by chemical
replacement from coating material salt solution. This method is simple and less
costly

(2) In electronics copper plating, electric current is not used instead a chemical
reducing agent is used which supplies electrons for reaction in which copper is
reduced from its ionic state.

(3) In electroplating a d.c. Current is passed between two electrodes and a thin
coating is deposited on cathode when immersed in electrolyte.

Etching: removal of unwanted copper, to give final copper pattern is known as


etching.

Solutions, which are used in etching, are known as enchants.


(1) Ferric chloride

(2) Cupric chloride

(3) Chromic acid

(4) Alkaline ammonia

Of these ferric chloride is widely used because it has short etching time and it
can be stored for a longer time rinsing follows etching.

Solders and Soldering Techniques:

Solders are special alloys, which are used to get either a mechanically strong
joint or electric joint of low contact resistance. Solders have low melting points
compared to meals to be joined. Therefore when solder is heated, molten solder
wets the metal, spreads and joins.

Any contamination on the surface of the metal to be joined acts as a barrier and
hampers as action of wetting.

Solders are divided into two groups, soft and hard.

Soft solders have lower melting point and lower tensile strength. soft solders are
largely tin lead alloys with 18%to 19% of tin. Hard solders are copper zinc alloys
and silver base compostions.fluxs are auxiliary materials used while soldering is
done.

(1) They dissolve and remove oxides and contaminants from surface of metals to
be. Soldered.

(2) They protect the metal surface and molten solder from oxidation

(3) They reduce the surface tension of molten solder.

(4) They improve the ability of solder to wet the metal.

Fluxes are divided into four types.


(a) Active or acid fluxes: these are corrosive fluxes, which use hydrochloric
acid, chlorides and fluorides of metals. These are the best fluxes to dissolve
oxide film on the metal surface but because of their corrosive nature, the residue
must be thoroughly removed after soldering.

(b) Acid free fluxes: these are rosin base materials with addition of glycerin and
alcohol.

(c) Activated fluxes: these are rosin base fluxes with activating agents like
hydrochlorides and phosphates of aniline, salicylic acid in small amount.

(d) Corrosion resistant fluxes: these fluxes are based on phosphoric acid with
addition of various organic compositions and solvents.

Soldering is done with either

(1) Soldering iron (manually)

(2) Mass soldering

Soldering iron consists of a bit usally made of copper and an insulated handle
connected to the bit with a metal shank.

The bit is heated which melts solders alongwith flux to make a joint.

Soldering irons of different wattages are available for different kinds of work.
Mass soldering is done in factories or electronic industries where the whole PCB
assembly can be soldered from one side where the component leads come out.

(1) Dip soldering: PCB assembly is lowered vertically in the solder bath as
shown in

fig so that one side makes contact with solder.

(2) Drag soldering: PCB is dragged on the surface of solder bath.


(3) Wave soldering: in this, instead of lowering the board, a small solder wave is
created in the solder bath by
pumping out solder through a narrow slot and PCB side is soldered

PCB

DIP SOLDERING DRAG SOLDERING WAVE SOLDERING

FIG: SOLDERING TECHNIQUES

Since in mass soldering of PCB’s a large number of joints are to be soldered


together following points must be borne in mind.

(1)There should not be different in metal leads that are to be joined

(2) The surface should be clean.

(3) Physical shapes of the joints must be compartable.

(4) PCB must be preheated

(5) All the wire leads must be of same length under the board.
Component mounting on PCB:

solder
Axial mounting Vertical mounting

Fig:8.2 correct way lead bending

Careful mounting of components on PCB increases the reliability of assembly.


(1) Component leads must be cleaned before they are inserted in PCB holes.
Asymmetric lead bending, too close lead bending must be avoided. The bent
leads must fit into holes properly so that they can be soldered.

(2) When the space is to be saved then vertical mounting is preferred. The
vertical lead must have an insulating sleeve.

(3) Where jumper wires cross over conductors, they must be insulated.

(4) For mounting of ICS, TOS, DIP packages, special jigs must be used for easy
insertion.
(5) While mounting transistors, each lead must has insulating sleeve. All the
leads must be cut with sharp cutter to same lengths seen from the surface that is
to be soldered.

Designing of PCB:

Layout and artwork are the most important aspects of designing of PCB

Artwork is normally produced at 1:1 or 2:1 scale. Grid system is also used when
drilling of holes for components while preparing layout, bishop graphics inc. ‘’
puppets’’ or replica of components or IC holders are used.

There are certain standard norms that are to be followed while preparing layout
or network. Component code is also to be standardized.ANSI or American
national standard institute recommends.

R= Resistor

Q=Transistor

C= Capacitor

U= Integrated circuit

T=T transformer

CR= Diode

Similarly certain coding is followed while drawing the sketch.

Conductor width holes

0.5 mm 0.6 mm

1 mm 1.1 mm
2 mm 1.5 mm

4 mm 3.2 m

(1) Current carrying capacity depends upon the track width. Due to high currents,
there is temperature rise caused in conductors. Ideally under normal working
conditions there should not be temperature rise in conductors.

(2) When two conductors are running parallel to each other, depending upon the
dielectric constant of laminate, there exist certain capacitance. Similarly in double
– sided boards when tracks are on either side of board, there is capacitance as
two tracks are considered to be metal conductors with laminate as dielectric.

(3) For fast signals or high-speed logic circuits the tracks or conductors can be
considered as transmission lines, with.

Zo = L1

C1

Where L= inductance / unit length

C= capacitance/ unit length

Thus conductor spacing is a compromise. It depends on break through voltage


also. Minimum spacing specifications are given by certain standards like MIL ( us
military standard),IEEE,NEMA,IEC,etc. the thumb rule is minimum spacing , is
applied only when it is unavoidable.

(4) Mechanical considerations have to be taken into account, like heavy


components like transformer may be given a separate mechanical support

(5) The number of jumper wires should be minimum.

(6) Heat sensitive components must be kept away from heat producing ones.
(7) Sufficient test points must be given and components must have easy
accessibility for replacement.

(8) When two signal lines are running close to each other, there is possibility of
cross talk. To reduce this and electro magnetic interference all unused copper
surfaces are connected to ground. Ground line is made sufficiently broad.

(9) Normally low power level and high power level wires are twisted outside PCB
to protect the circuits from electro magnetic coupling.

ARTWORK AND PREPARATION OF MASTER FILM:

For artwork adhesive tapes may be used which are obtained in various shapes
and sizes.

When conductors are to be routed, available space must be utilized to maximum


extent. Conductor length must be kept to minimum, sharp comers must be
avoided.

The film (either negative or positive) that is used for direct exposure of photo
resist coated PCB is known as master film.

Special types cameras are to be used to reduce the artwork to a certain size.
After exposure the film is developed which can be used as a mask on photo
resist coated PCB to give required pattern.
Tos/8
pads

Dip

Conductor pads

Transistor pad
Conductors

Fig: various shape and sizes of adhesive parts

(c) (e)
(a)

(b) (d) (f)

Fig:8.3 conductor routing

DOUBLE SIDED BOARDS:


Double sided boards are made with or without plated

Through holes plated through holes are more expensive but they do not have the
problem of deburring of holes after drilling. Ordinary DSBs must use jumper wires
for interconnections.

Different types of processes are in vogue while making double sided boards.

(1) Print and etch process: this is similar subtractive process, which is used
single sided board, where master negative film. is used on resist from both the
sides. After exposure, developing, etching and stripping follows. Holes are drilled
for component soldering.

(2) Panel plating process: in this process, holes are drilled first then the whole
panel is plated with the help of electro less plating. Thus holes get a thin layer of
copper on the surface of walls. The board then follows the above print etch
procedure.

(3) Pattern plating process: this is an additive process in the sense the required
pattern is left open with rest of the area covered. Thus after electroplating, the
actual pattern and the holes get electroplated. This is most widely used
procedure.

(4)Tenting process: this is similar to print and etch process, which has plated
through holes.

The positive resists protects the required pattern and holes from etchant attacks,
like a tent and hence the name.

Multilayer boards:
A number of PCB ‘s are stacked together with adhesive and electrical
connections between different conducting layer are done with plated through
holes as shown in figure:

Multilayer boards

Advantages of multiplayer boards:

(1) High components density can be achieved in multiplayer.

(2) Whenever space and volume are of prime importance these boards are used.

(3) Complex interconnections are possible between various components.

(4) Multiplayer provides low impedance of supply lines.

Flexible printed circuits:

In these circuits, laminates base is replaced by thin insulation member such as


fiber or paper.

The main advantages are:

(1) space saving

(2) Ability to fit into irregular area

(3) Multilayer capacity

These are used in:


(a) Computers

(b) Printed flat cables and

(c) Communication devices.

Polyester film flexible insulation has insulation thickness of 1 to 5 mils. Dielectric


constant is 3 and fold endurance at 1 kg. Machine direction cycles is 14000.

Epoxy glass cloth has insulation thickness of 1 to 3 mils. It has dielectric strength
of 2000 volts/mil. And fold endurance of 10,000 cycles.
SOURCE CODE

1. Click on the Keil uVision Icon on DeskTop

2. The following fig will appear

3. Click on the Project menu from the title bar

4. Then Click on New Project


5. Save the Project by typing suitable project name with no extension in u
r own folder sited in either C:\ or D:\

6. Then Click on Save button above.

7. Select the component for u r project. i.e. Atmel……

8. Click on the + Symbol beside of Atmel


9. Select AT89C52 as shown below

10. Then Click on “OK”

11. The Following fig will appear


12. Then Click either YES or NO………mostly “NO”

13. Now your project is ready to USE

14. Now double click on the Target1, you would get another option “Source
group 1” as shown in next page.
15. Click on the file option from menu bar and select “new”

16. The next screen will be as shown in next page, and just maximize it by
double clicking on its blue boarder.
17. Now start writing program in either in “C” or “ASM”

18. For a program written in Assembly, then save it with extension “. asm”
and for “C” based program save it with extension “ .C”

19. Now right click on Source group 1 and click on “Add files to Group
Source”
20. Now you will get another window, on which by default “C” files will
appear.

21. Now select as per your file extension given while saving the file

22. Click only one time on option “ADD”

23. Now Press function key F7 to compile. Any error will appear if so
happen.
24. If the file contains no error, then press Control+F5 simultaneously.

25. The new window is as follows

26. Then Click “OK”

27. Now Click on the Peripherals from menu bar, and check your required
port as shown in fig below
28. Drag the port a side and click in the program file.

29. Now keep Pressing function key “F11” slowly and observe.

30. You are running your program successfully


FLOW CHART

STAR T

CONFIGURING THE SFR


PORTS AND INITIALIZING
VARIABLES

ENTRY IS EXIT
ENTR
Y
/EXIT

WAITING FOR THE CAR WAITING FOR THE CAR


NUMBER ENTRY NUMBER ENTRY
THROUGH KEYPAD THROUGH KEYPAD

NOW THE LIFT WILL FLOOR NUMBER WILL


TAKE THE CAR TO THE BE DISPLAYED ON LCD
FLOOR AND RETURNS
BACK TO GROUND
FLOOR

WAITING FOR THE


CARD TO DEDUCT THE
PARKING CHARGES
Source Code for Transmitter

#include<reg52.h>
#include<lcd.h>
void disp_name() ;
void delay(int x);
void disp_name1();
void disp_name2();
void disp_name3();
void disp_name4();
void disp_name5();
void disp_name6();
void disp_name7();
void disp_name8();
void smoke();
void ldr();
void temp();
void timer_0_load();
char databyte[]={"0123456789"};
unsigned char i;
int a,b,c,j,k,l;

////////////////////////////////////////////////////////////////////
void main()
{

lcd_init();
disp_name();
delay(100);
disp_name1();
delay(100);
disp_name2();
#include<reg52.h>
#include<lcd.h>
void disp_name() ;
void delay(int x);
void disp_name1();
void disp_name2();
void disp_name3();
void disp_name4();
void disp_name5();
void disp_name6();
void disp_name7();
void disp_name8();
void smoke();
void ldr();
void temp();
void timer_0_load();
char databyte[]={"0123456789"};
unsigned char i;
int a,b,c,j,k,l;

////////////////////////////////////////////////////////////////////
void main()
{

lcd_init();
disp_name();
delay(100);
disp_name1();
delay(100);
disp_name2();
delay(100);
disp_name3();
delay(100);
timer_0_load();

while(1)

}
}
////////////////////////////////////////////////////////////////////////
void disp_name()
{
while(1)

}
}
////////////////////////////////////////////////////////////////////////
void disp_name()
{
char i=0;
char databyte[]={" temperature. reading"};
send_command(0x80);
while(databyte[i]!='\0')
{
send_data(databyte[i]);
delay(50);
i++;
}
}
/////////////////////////////////////////////////////////////////
void disp_name1()
{
char i=0;
char databyte[]={" Degree Centegrate"};
send_command(0xC3);
while(databyte[i]!='\0')
{
send_data(databyte[i]);

i++;
}}
////////////////////////////////////////////////////////////
void disp_name2()
{
char i=0;
char databyte[]={"Smoke/LPG "};
send_command(0x94);
while(databyte[i]!='\0')
{
send_data(databyte[i]);

i++;
}}
///////////////////////////////////////////////////////////////////////////////////////////
void disp_name3()
{
char i=0;
char databyte[]={"LIGHT/BULB"};
send_command(0xd4);
while(databyte[i]!='\0')
{
send_data(databyte[i]);

i++;
}}
/////////////////////////////////////////////////////////////////////
void disp_name4()
{
char i=0;
char databyte[]={" is sensed" };
send_command(0x9e);
while(databyte[i]!='\0')
{
send_data(databyte[i]);
i++;
}}
/////////////////////////////////////////////////////////////////////////////////////////////////
void disp_name8()
{
char i=0;
char databyte[]={" " };
send_command(0x9e);
while(databyte[i]!='\0')
{
send_data(databyte[i]);

i++;
}}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void disp_name7()
{
char i=0;
char databyte[]={"prohibited" };
send_command(0x9e);
while(databyte[i]!='\0')
{
send_data(databyte[i]);

i++;
}}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void disp_name5()
{
char i=0;
char databyte[]={"is ON*"};
send_command(0xde);
while(databyte[i]!='\0')
{
send_data(databyte[i]);

i++;
}}
////////////////////////////////////////////////////////////////////////////////////////////
void disp_name6()
{
char i=0;
char databyte[]={"is OFF"};
send_command(0xde);
while(databyte[i]!='\0')
{
send_data(databyte[i]);

i++;
}}
////////////////////////////////////////////////////////////
void timer_0_load()

{ TR0=1;
TCON=0X01;
TMOD=0X01;
TH0=0XEC;
TL0=0X78;
TR0=0;
ET0=1;
EA=1;
}
//////////////////////////////////////////////////////////////////////////
void timet0(void) interrupt 1
{

timer_0_load();

smoke();

////////////////////DELAY////////////////////////////////////////
void delay(int x)

{
int i,j;
for(i=0;i<=x;i++)
{
for(j=0;j<150;j++)
{ }
}
}
///////////////////SMOKE SENSOR///////////////////////////////
void smoke()
{
disp_name7();
if(P37==0)
{

for(k=0;k<1;k++)
{
P21=0;
disp_name4();
delay(100);
P21=1;
disp_name8();
delay(100);
k++;

}
}
////////////////////////////////LDR////////////////////////////////////
void ldr()
{
if(P36==0)
{
P20=1;

lcd_init1();
disp_name6();

}
if(P36==1)
{
P20=0;

lcd_init1();
disp_name5();

}
}
//////////////////TEMPERATURE SENSOR//////////////////////////////////////////////////////////
void temp()
{
i=P0;
a=i%10; b=i/10; c=i/100;
send_command(0xc0);
send_data(databyte[c]);
lcd_init1();
send_command(0xc1);
send_data(databyte[b]);
lcd_init1();
send_command(0xc2);
send_data(databyte[a]);
if(b>2)
{
P22=0;
}
else
{
P22=1;
}
}
///////////////////////////////////////////////////////////////////////////////////////////
Source Code for Receiver

#include<reg52.h>
#include<lcd.h>
void disp_name() ;
void delay(int x);
void disp_name1();
void disp_name2();
void disp_name3();
void disp_name4();
void disp_name5();
void disp_name6();
void temp();
void light();
void timer_0_load();

void main()
{
P0=0x00;
delay(1);
lcd_init();
timer_0_load();
while(1)
{

if(P21==0)
{ lcd_init1();
disp_name2();
P01=1;
}
if(P21==1)
{
lcd_init1();
disp_name3();
P01=0;
}

}
}
/////////////////////////////////////////////////////////////////////
void delay(int x)
{
int i,j;
for(i=0;i<x;i++)
{
for(j=0;j<1000;j++)
{}
}
}
////////////////////////////////////////////////////////////////////
void disp_name()
{
char i=0;
char databyte[]={"BULB ON "};
send_command(0x80);
while(databyte[i]!='\0')
{
send_data(databyte[i]);

i++;
}
}
//////////////////////////////////////////////////////////
void disp_name5()
{
char i=0;
char databyte[]={"BULB OFF**"};
send_command(0x80);
while(databyte[i]!='\0')
{
send_data(databyte[i]);

i++;
}
}
//////////////////////////////////////////////////////////////////////////
void disp_name2()
{
char i=0;
char databyte[]={"SMOKE/LPG SENSED"};
send_command(0xC0);
while(databyte[i]!='\0')
{
send_data(databyte[i]);

i++;
}
}
/////////////////////////////////////////////////////////////////////////////
void disp_name3()
{
char i=0;
char databyte[]={"SMOKE prohibited"};
send_command(0xC0);
while(databyte[i]!='\0')
{
send_data(databyte[i]);

i++;
}
}

///////////////////////////////////////////////////////////////////////////////
void disp_name4()
{
char i=0;
char databyte[]={"*****FAN ON*****"};
send_command(0x80);
while(databyte[i'\0')
{
send_data(databyte[i]);

i++;
}
}
//////////////////////////////////////////////////////////////////////
void disp_name6()
{
char i=0;
char databyte[]={"****FAN**OFF****"};
send_command(0x80);
while(databyte[i]!='\0')
{
send_data(databyte[i]);

i++;
}
}
///////////////////////////////////////////////////////////////////////////////
void timer_0_load()

{ TR0=0;
TCON=0X01;
TMOD=0X02;
TH0=0X0ec;
TL0=0X00;
TR0=1;
ET0=1;
EA=1;
}
//////////////////////////////////////////////////////////////////////////
void timet0(void) interrupt 1
{

timer_0_load();

light();

}
//////////////////////////////////////////////////////////////////////
void temp()
{
if(P22==0)

{
P02=1;
disp_name4();

}
if(P22==1)
{
P02=0;
disp_name6();
}

//////////////////////////////////////////////////////////////////////////////////
void light()
{
if(P20==0)
{
disp_name() ;

P00=1;
}
if(P20==0
{
disp_name5() ;

P01=0;
}}
FUTURE ENHANCEMENT

Wireless is the buzz of communication industry today. The field of wireless


communication is growing leaps and bounds day by day. There have been many
advancements taking place in the semiconductor industry leading to more and
more advancements in wireless technology.
In the present project our main aim is to park the car in multi floors when the car
enters, to enhance this application the parking area will be reserved in advance.
The data will be transferred through RF module HT12E encoder that acts like a
Transmitter. When the data is subjected to transfer the emitter collects it and
sends it into the air, which will then be collected by the RF receiver situated at
the other end. As we talk about the advancements in this module, the data can
be transferred to a particular controller when in a group of them, which we
technically call as Routing.
There is a huge scope for improvement in wireless communication technology.
One of the highly hyped advancement is in Wireless LANS. For example the
data can be transmitted between different LANS by using simple coding
technique and that too very efficiently.

Wireless RF communication is finding a huge development in Satellite


Communications. The RF signals are sensed and reflected back to the earth
stations. These signals contain information about weather forecasting, geological
surveys and other cosmic developments.
CONCLUSION

The project “MULTISTORIED CAR PARKING SYSTEM USING RFID ” has


been successfully designed and tested.
It has been developed by integrating features of all the hardware components
used. Presence of every module has been reasoned out and placed carefully
thus contributing to the best working of the unit.
Secondly, using highly advanced IC’s and with the help of growing technology
the project has been successfully implemented.
Wireless communication industry is blossoming at a great pace. As wireless
communication systems evolve, service quality and capacity are of primary
importance. To ensure reliable communication over a radio channel, a system
must overcome multi path fading, polarization mismatch, and interference. The
trend towards low power hand held transceivers increases all of these
challenges. Keeping all the above parameters in view we have designed a low
cost integrated system for monitoring the different types of parameters between
two systems.
Finally we conclude that embedded based application is an emerging field and
there is a huge scope for research and development.
BIBLIOGRAPHY

The 8051 Micro controller and Embedded


Systems

-Muhammad Ali Mazidi


Janice Gillispie Mazidi

The 8051 Micro controller Architecture,


Programming & Applications

-Kenneth J.Ayala

Fundamentals Of Micro processors and


Micro computers

-B.Ram

Micro processor Architecture, Programming


& Applications

-Ramesh S.Gaonkar

Electronic Components

-D.V.Prasad

Wireless Communications
- Theodore S. Rappaport
Mobile Tele Communications
- William C.Y. Lee

References on the Web:


www.national.com
www.atmel.com
www.microsoftsearch.com
www.geocities.com

You might also like