Page 1
Bank Token Issue System
A Mini Project ReportOn
“BANK TOKEN ISSUE SYSTEM”
Submitted in partial fulfillment of the requirement for the award of degree
Bachelor of Engineering in
ELECTRONICS AND COMMUNICATION ENGINEERING
by
R.ABILASH (08UT1A0447) T.TS NAGA LAXMI (08UT1A0453) T.JAHNAVI (08UT1A0456)
Under The Guidance Of
Ms.SRI LAKSHMI (M-Tech)
Assistant Professor
Submitted To
DEPARTMENT OF ELECTRONICS & COMMUNICATION ENGINEERING
VISHNU SREE INSTITTUTE OF ENGINNERING
JALALPUR, BOMMALARAMARAM, NALGONDA.
Electronics and Communication Engineering
Page 2
Bank Token Issue System
CERTIFICATE
Electronics and Communication Engineering
Page 3
Bank Token Issue System
ACKNOWLEDGEMENT
The satisfaction and euphoria that accompany the successful completion of
any task would be incomplete without the mentioning of the people whose constant
guidance and encouragement made it possible. We take pleasure in presenting
before you, our project, which is result of studied blend of both research and
knowledge.
We express our thanks to Dr. V.MURALI KRISHNA,M.Tech,Ph.D
principal of Vishnu Sree Institute of Technology for giving his consent to take up
this dissertation.
Our special thanks to Mr.D.Ramanna,M.Tech,(Ph.D.) Head of the
Department of ELECTRONICS AND COMMUNICATION, Vishnu Sree
Institute of Technology, who has given us an immense support throughout the
course of the project.
We express our earnest gratitude to our internal guide, Assistant Professor
Ms.SRI LAKSHMI Department of ECE, our project guide, for her constant
support, encouragement and guidance. We are grateful for her co-operation and her
valuable suggestions.
Finally, we express our gratitude to all other members who are involved
either directly or indirectly for the completion of this project.
R.ABILASH 08UT1A0447T.TS NAGA LAXMI 08UT1A0453
T.JAHNAVI 08UT1A0456
Electronics and Communication Engineering
Page 4
Bank Token Issue System
DECLARATION
We, the undersigned, here by declare that the mini project entitled “BANK
TOKEN ISSUE SYSTEM”, being submitted in partial fulfillment for the award
of Bachelor of Engineering Degree in Electronics and Communication
Engineering, affiliated to Jawaharlal Nehru Technological University, is the work
carried out by us.
R.ABILASH T.TS NAGA LAXMI T.JAHNAVI
Electronics and Communication Engineering
Page 5
Bank Token Issue System
ABSTRACT
An embedded system is a combination of computer circuitry and
software that is built into a product for purposes such as control, monitoring and
communication without human intervention. Embedded systems are at the core of every
modern electronic product, ranging from toys to medical equipment to aircraft control
systems.The introduction of high-end technologies, digital signal processing and VLSI
has changed the face of the world..
This project is mainly designed for the purpose of management
of data through the interfaces between various different units of companies in case of
large plant consisting of more than one unit.
In embedded technology, the embedded Programming is burnt into the AT89S52
micro controller. The project includes 7 SEGMENT LED DISPLAY, which will display
the corresponding number given as an input from keypad and software code, which is
burned into ROM of 8051 micro controller consists of various subroutines for keypad
interface, 7 segment led interface.
SOFTWARE MODULES:
Keil Software
Embedded C
HARDWARE REQUIRED:
1. Micro controller
2. Seven segment Unit
3. Power Supply
Electronics and Communication Engineering
Page 6
Bank Token Issue System
INDEX
LIST OF FIGURES
FIGURE NAME PAGE NO.
Figure. 1.1 Bank Token Display 3 Figure. 1.2 Block diagram 4
Figure. 1.3 Power Supply 5
Figure. 1.4 Voltage regulator 6
Figure. 1.5 Microcontroller 89S52 7 Figure. 1.7 EEPROM 10
Figure. 1.8(a) Resistor 11
Figure. 1.8(b) Capacitor 12
Figure. 1.9 4x3 Keypad 13
Figure.1.10 MAX232 14
Figure.1.11 Circuit Diagram 15
Figure.1.12 Flowchart 43
Electronics and Communication Engineering
Page 7
Bank Token Issue System
CHAPTERS
Chapter one: ……Overview of the project
1.1 Block Diagram
1.2 Analysis and design of hardware
1.3 Circuit diagram
Chapter two: …....
Chapter three:
Chapter four: …………
Chapter six: …………………Advantages and Disadvantages of project………………. ()
Bibliography ……………………………………………………….. ()
Appendix ………………………………………………………….. ()
Electronics and Communication Engineering
Page 8
Bank Token Issue System
CHAPTER:1OVERVIEW OF PROJECT
1.1 Basic Block diagram description1.2 Analysis and design of hardware1.3 Circuit diagram
Electronics and Communication Engineering
Page 9
Bank Token Issue System
BLOCK DIAGRAM
Figure:1.1
Electronics and Communication Engineering
Page 10
Bank Token Issue System
Block Diagram Description
This Project mainly consists of Power Supply section, Microcontroller section,
Max 232 serial driver section, Seven segment Display .
Power Supply Section: This section is meant for supplying Power to all the sections
mentioned above. It basically consists of a Transformer to step down the 230V ac to 5V
ac followed by diodes. Here diodes are used to rectify the ac to dc. After rectification the
obtained rippled dc is filtered using a capacitor Filter. A positive voltage regulator is used
to regulate the obtained dc voltage.
Microcontroller Section: This section forms the control unit of the whole project.
This section basically consists of a Microcontroller with its associated circuitry like
Crystal with capacitors, Reset circuitry, Pull up resistors (if needed) and so on. The
Microcontroller forms the heart of the project because it controls the devices being
interfaced and communicates with the devices according to the program being written.
Pumping Section: This pumping section consists of an immerse-able motor to pump
the required no. of liters of petrol. This pumping section is interfaced to microcontroller
through the respective driving circuitry.
MAX 232 Sections: It consists of max232 which perform the conversion of the
voltage level compatible to computer and controller. It provides proper communication
between the controller and computer.
EEPROM:
It is one type of read only memory and it will provide the space to store the token no.
It also contains the information of the token issued and why they are issued
Electronics and Communication Engineering
Page 11
Bank Token Issue System
1.2 ANALYSIS AND DESIGN OF HARDWARE
MICROCONTROLLER:
Figure:1.2
Electronics and Communication Engineering
Page 12
Bank Token Issue System
SERIALCOMMUNICATION:
Figure:1.3
POWERSUPPLY:
Figure:1.4
Electronics and Communication Engineering
Page 13
Bank Token Issue System
SEVENSEGMNETDISPLAY:
Figure:1.5
Schematic Description:
Firstly, the required operating voltage for Microcontroller 89S52 is
5V. Hence the 5V D.C. power supply is needed by the same. This regulated 5V is
generated by first stepping down the 230V to 9V by the step down transformer.
The step downed a.c. voltage is being rectified by the Bridge Rectifier.
The diodes used are 1N4007. The rectified a.c voltage is now filtered using a ‘C’ filter.
Now the rectified, filtered D.C. voltage is fed to the Voltage Regulator. This voltage
regulator allows us to have a Regulated Voltage which is +5V.The rectified; filtered and
regulated voltage is again filtered for ripples using an electrolytic capacitor 100μF. Now
Electronics and Communication Engineering
Page 14
Bank Token Issue System
the output from this section is fed to 40th pin of 89S51 microcontroller to supply
operating voltage.
The microcontroller 89S52 with Pull up resistors at Port0 and crystal
oscillator of 11.0592 MHz crystal in conjunction with couple of capacitors of is placed at
18th & 19th pins of 89S52 to make it work (execute) properly.
The Token issue system o/p & i/p pins i.e. RX and TX are connected to
MAX 232 serial drivers 14th and 13th pins and its output to Microcontroller from 11th &
12th of MAX to TX and RX pins of Microcontroller.
HARDWARE Components:
The Hardware components used in this project are
Regulated Power Supply
Microcontroller
LED
MAX 232
Seven Segment Display
REGULATED POWER SUPPLY:
The power supplies are designed to convert high voltage AC mains electricity to
a suitable low voltage supply for electronics circuits and other devices. A RPS
(Regulated Power Supply) is the Power Supply with Rectification, Filtering and
Regulation being done on the AC mains to get a Regulated power supply for
Microcontroller and for the other devices being interfaced to it.
A power supply can by broken down into a series of blocks, each of which
performs a particular function. A d.c power supply which maintains the output voltage
constant irrespective of a.c mains fluctuations or load variations is known as “Regulated
D.C Power Supply”
Electronics and Communication Engineering
Page 15
Bank Token Issue System
For example a 5V regulated power supply system as shown below: Figure
Figure:1.6
Transformer:
A transformer is an electrical device which is used to convert electrical
power from one Electrical circuit to another without change in frequency.
Transformers work only with AC and this is one of the reasons why mains
electricity is AC. Step-up transformers increase in output voltage, step-down transformers
decrease in output voltage. Most power supplies use a step-down transformer to reduce
the dangerously high mains voltage to a safer low voltage.The input coil is called the
primary and the output coil is called the secondary.There is no electrical connection
between the two coils; instead they are linked by an alternating magnetic field created in
the soft-iron core of the transformer. The two lines in the middle of the circuit symbol
represent the core..Transformers waste very little power so the power out is equal to the
Electronics and Communication Engineering
Page 16
Bank Token Issue System
power in. Note that as voltage is stepped down current is stepped up.The ratio of the
number of turns on each coil, called the turn’s ratio, it determines the ratio of the
voltages. A step-down transformer has a large number of turns on its primary (input) coil
which is connected to the high voltage mains supply, and a small number of turns on its
secondary (output) coil to give a low output voltage.
An Electrical Transformer
Figure:1.7
Turns ratio = Vp/ VS = Np/NS
Power Out= Power In
VS X IS=VP X IP
Vp = primary (input) voltage
Np = number of turns on primary coil
Ip = primary (input) current
RECTIFIER:
A circuit which is used to convert a.c to dc is known as RECTIFIER. The process of conversion a.c to d.c is called “rectification”.
Electronics and Communication Engineering
Page 17
Bank Token Issue System
TYPES OF RECTIFIERS:
Half wave Rectifier
Full wave rectifier
1. Centre tap full wave rectifier.
2. Bridge type full bridge rectifier.
Full-wave Rectifier:
From the above comparison we came to know that full wave bridge rectifier as
more advantages than the other two rectifiers. So, in our project we are using full wave
bridge rectifier circuit.
Bridge Rectifier:
A bridge rectifier makes use of four diodes in a bridge arrangement as shown
in fig (a) 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.
Fig (A)
Figure:1.8
Operation:
Electronics and Communication Engineering
Page 18
Bank Token Issue System
During positive half cycle of secondary, the diodes D2 and D3 are in forward
biased while D1 and D4 are in reverse biased as shown in the fig(b). The current flow
direction is shown in the fig (b) with dotted arrows.
Fig (B)
Figure:1.9
During negative half cycle of secondary voltage, the diodes D1 and D4 are in
forward biased while D2 and D3 are in reverse biased as shown in the fig(c). The current
flow direction is shown in the fig (c) with dotted arrows.
Fig(C)
Figure:2.0
Filter:
Electronics and Communication Engineering
Page 19
Bank Token Issue System
A Filter is a device which removes the a.c component of rectifier output
but allows the d.c component to reach the load
Capacitor Filter:
We have seen that the ripple content in the rectified output of half wave rectifier is
121% or that of full-wave or bridge rectifier or bridge rectifier is 48% such high
percentages of ripples is not acceptable for most of the applications. Ripples can be
removed by one of the following methods of filtering.
(a) A capacitor, in parallel to the load, provides an easier by –pass for the ripples voltage
though it due to low impedance. At ripple frequency and leave the D.C. to appear at the
load.
(b) An inductor, in series with the load, prevents the passage of the ripple current (due to
high impedance at ripple frequency) while allowing the d.c (due to low resistance to d.c)
(c) Various combinations of capacitor and inductor, such as L-section filter section
filter, multiple section filter etc. which make use of both the properties mentioned in (a)
and (b) above. Two cases of capacitor filter, one applied on half wave rectifier and
another with full wave rectifier.
Filtering is performed by a large value electrolytic capacitor connected across the
DC supply to act as a reservoir, supplying current to the output when the varying DC
voltage from the rectifier is falling. The capacitor charges quickly near the peak of the
varying DC, and then discharges as it supplies current to the output. Filtering
significantly increases the average DC voltage to almost the peak value (1.4 × RMS
value).
To calculate the value of capacitor(C),
C = ¼*√3*f*r*Rl
Where,
f = supply frequency,
r = ripple factor,
Rl = load resistance
Electronics and Communication Engineering
Page 20
Bank Token Issue System
Note: In our circuit we are using 1000µF hence large value of capacitor is placed
to reduce ripples and to improve the DC component.
Regulator:
Voltage regulator ICs is available with fixed (typically 5, 12 and 15V) or
variable output voltages. The maximum current they can pass also rates them. Negative
voltage regulators are available, mainly for use in dual supplies. Most regulators include
some automatic protection from excessive current ('overload protection') and overheating
('thermal protection'). Many of the fixed voltage regulators ICs have 3 leads and look
like power transistors, such as the 7805 +5V 1A regulator shown on the right. The
LM7805 is simple to use. You simply connect the positive lead of your unregulated DC
power supply (anything from 9VDC to 24VDC) to the Input pin, connect the negative
lead to the Common pin and then when you turn on the power, you get a 5 volt supply
from the output pin.
Fig 2.1 A Three Terminal Voltage Regulator
Electronics and Communication Engineering
Page 21
Bank Token Issue System
CHAPTER:2
MICRO CONTROLLER 89S52
Electronics and Communication Engineering
Page 22
Bank Token Issue System
MICRO CONTROLLER 89S52
Introduction:
A Micro controller consists of a powerful CPU tightly coupled with
memory, various I/O interfaces such as serial port, parallel port timer or counter, interrupt
controller, data acquisition interfaces-Analog to Digital converter, Digital to Analog
converter, integrated on to a single silicon chip.
If a system is developed with a microprocessor, the designer has to go for external
memory such as RAM, ROM, EPROM and peripherals. But controller is provided all
these facilities on a single chip. Development of a Micro controller reduces PCB size and
cost of design.
One of the major differences between a Microprocessor and a Micro controller is
that a controller often deals with bits not bytes as in the real world application.
Intel has introduced a family of Micro controllers called the MCS-51.
Figure:2.2
The Major Features :
• Compatible with MCS-51 Products
• 8K Bytes of In-System Reprogrammable Flash Memory
Electronics and Communication Engineering
Page 23
Bank Token Issue System
• Endurance: 1,000 Write/Erase Cycles
• Fully Static Operation: 0 Hz to 24 MHz
• Three-level Program Memory Lock
• 256 x 8-bit Internal RAM
• 32 Programmable I/O Lines
• Three 16-bit Timer/Counters
• Eight Interrupt Sources
• Programmable Serial Channel
• Low-power Idle and Power-down Modes
Why AT 89S52
The system requirements and control specifications clearly rule out the use of 16,
32 or 64 bit micro controllers or microprocessors. Systems using these may be earlier to
implement due to large number of internal features. They are also faster and more reliable
but, 8-bit micro controller satisfactorily serves the above application. Using an
inexpensive 8-bit Microcontroller will doom the 32-bit product failure in any competitive
market place.
Coming to the question of why to use AT89S52 of all the 8-bit microcontroller
available in the market the main answer would be because it has 4 Kb on chip flash
memory which is just sufficient for our application. The on-chip Flash ROM allows the
program memory to be reprogrammed in system or by conventional non-volatile memory
Programmer. Moreover ATMEL is the leader in flash technology in today’s market place
and hence using AT 89C51 is the optimal solution.
AT89s52 MICROCONTROLLER ARCHITECTURE
The 89C51 architecture consists of these specific features:
Eight –bit CPU with registers A (the accumulator) and B
Sixteen-bit program counter (PC) and data pointer (DPTR)
Eight- bit stack pointer (PSW)
Eight-bit stack pointer (Sp)
Electronics and Communication Engineering
Page 24
Bank Token Issue System
Internal ROM or EPROM (8751) of 0(8031) to 4K (89C51)
Internal RAM of 128 bytes:
1. Four register banks, each containing eight registers
2. Sixteen bytes, which maybe addressed at the bit level
3. Eighty bytes of general- purpose data memory
Thirty –two input/output pins arranged as four 8-bit ports:p0-p3
Two 16-bit timer/counters: T0 and T1
Full duplex serial data receiver/transmitter: SBUF
Control registers: TCON, TMOD, SCON, PCON, IP, and IE
Two external and three internal interrupts sources.
Oscillator and clock circuits.
Figure:2.3 Functional block diagram of micro controller
Electronics and Communication Engineering
Page 25
Bank Token Issue System
General Description:
The AT89S52 is a low-power, high-performance CMOS 8-bit
microcomputer with 8K 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 80C51 and 80C52 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 AT89S52 is a powerful
microcomputer which provides a highly-flexible and cost-effective solution to many
embedded control applications.
Microcontroller Unit:
This digital data of ADC is transmitting to microcontroller unit through ADC data
lines. In our project the 8 data lines of ADC are connected to Port 0 of microcontroller.
Port 0 is an 8-bit bi-directional I/O port.
Four switches are connected to first four pins of the microcontroller’s Port 1.The
main functions of the switches are to store the data. If ‘Switch’ 1 is pressed then the
temperature will display on computer monitor using serial communication and
temperature will store in separate file with corresponding data and time. For serial
communication we are using port 3.0 and port 3.1 pins. Port 3.0 i.e. serial input port
(RXD) is connected to 12th pin of MAX232 (R1out) and port 3.1 i.e. serial out port
(TXD) is connected to 11th pin of MAX232 (T1in).
Electronics and Communication Engineering
Page 26
Bank Token Issue System
Pin Description of ATMEL 89S52 Microcontroller:
Figure:2.4
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 1s are written to port 0 pins, the pins can be used as high
impedance inputs. Port 0 may also be configured to be the multiplexed low order
address/data bus during accesses to external program and data memory. In this mode P0
has internal pull-ups. Port 0 also receives the code bytes during Flash programming, and
Electronics and Communication Engineering
Page 27
Bank Token Issue System
outputs the code bytes during program verification. External pull-ups are required during
program verification.Below table indicates pin connections of port 0 in our data logger
circuit.
Port Pin Pin Description Connected to
P0.0 AD0 17th data pin of ADC (LSB).
P0.1 AD1 14th data pin of ADC.
P0.2 AD2 15th data pin of ADC.
P0.3 AD3 8th data pin of ADC.
P0.4 AD4 18th data pin of ADC.
P0.5 AD5 19th data pin of ADC.
P0.6 AD6 20th data pin of ADC.
P0.7 AD7 21st data pin of ADC (MSB).
Figure:2.5
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 Pin Connected to
P1.0 Switch 1.
P1.1 Switch 2.
P1.2 Switch 3.
P1.3 Switch 4.
P1.4 No Connection.
P1.5 No Connection.
P1.6 No Connection.
P1.7 No Connection.
Figure:2.6
Electronics and Communication Engineering
Page 28
Bank Token Issue System
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 Pin Pin Description Connected to
P2.0 A8 SOC-6th pin of ADC.
P2.1 A9 EOC-7th pin of ADC.
P2.2 A10 OE-9th pin of ADC.
P2.3 A11 ALE-22nd pin of ADC.
P2.4 A12 No Connection.
P2.5 A13 No Connection.
P2.6 A14 No Connection.
P2.7 A15 No Connection.
Figure:2.7
Port 3:
Port 3 is an 8-bit bi-directional I/O port with internal pull-ups. The Port 3 output
buffers can sink/source four TTL inputs. When 1s are written to Port 3 pins they are
pulled high by the internal pull-ups and can be used as inputs. As inputs, Port 3 pins that
are externally being pulled low will source Current (IIL) because of the pull-ups.Below
table indicates pin connections of port 3 in our data logger circuit.
Port Pin Pin Description Connected to
P3.0 RXD (serial input port) 12th pin of MAX232 (R1out).
P3.1 TXD (serial output port) 11th pin of MAX232 (T1in)..
P3.2 INT0 (external interrupt 0) No Connection
P3.3 INT1 (external interrupt 1) No Connection
P3.4 T0 (Timer 0 external input) No Connection
Electronics and Communication Engineering
Page 29
Bank Token Issue System
P3.5 T1 (Timer 1 external input) No Connection
P3.6 WR (External data memory write strobe)
No Connection
P3.7 RD (external data memory read strobe)
No Connection
Figure:2.8
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
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
Electronics and Communication Engineering
Page 30
Bank Token Issue System
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:
It is the Output from the inverting oscillator amplifier.
Interfacing the Switches with 89c52 Microcontroller
Four switches are connected to first four pins of the microcontroller’s Port 1.The
main functions of the switches are to store the data when we pressed. If we press the
‘Switch 1’, the microcontroller will transmit the particular temperature through serial
communication unit and that particular temperature will display on computer monitor
with date and time. And also, the temperature will store in a separate file with
corresponding time and date. The stored data may use for us in future. Similarly Switch
2, 3, 4 are used for us to store the temperature. The switch diagram which we used in our
project is shown below.
Switch
Figure:2.9
Electronics and Communication Engineering
Page 31
Bank Token Issue System
Interfacing Switches with 89c52 Microcontroller is shown below
Figure:3.0
The 89S52 oscillator and clock:
The heart of the 89C51 circuitry that generates the clock pulses by which all the
internal all internal operations are synchronized. Pins XTAL1 And XTAL2 is provided
for connecting a resonant network to form an oscillator. Typically a quartz crystal and
capacitors are employed. The crystal frequency is the basic internal clock frequency of
the microcontroller. The manufacturers make 89C51 designs that run at specific
minimum and maximum frequencies typically 1 to 16 MHz.
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-
Electronics and Communication Engineering
Page 32
Bank Token Issue System
flop, but minimum and maximum voltage high and low time specifications must be
observed.
Fig 3.1: - Oscillator and timing circuit
Fig 3.2 Oscillator Connections Fig 3.3 External Clock Drive Configuration
Electronics and Communication Engineering
Page 33
Bank Token Issue System
REGISTERS:
In the CPU, registers are used to store information temporarily. That information
could be a byte of data to be processed, or an address pointing to the data to be fetched.
The vast majority of 8051 registers are 8–bit registers. In the 8051 there is only one data
type: 8bits. The 8bits of a register are shown in the diagram from the MSB (most
significant bit) D7 to the LSB (least significant bit) D0. With an 8-bit data type, any data
larger than 8bits must be broken into 8-bit chunks before it is processed. Since there are
a large number of registers in the 8051, we will concentrate on some of the widely used
general-purpose registers and cover special registers in future chapters.
D7 D6 D5 D4 D3 D2 D1 D0
The most widely used registers of the 8051 are A (accumulator), B, R0, R1, R2,
R3, R4, R5, R6, R7, DPTR (data pointer), and PC (program counter). All of the above
registers are 8-bits, except DPTR and the program counter. The accumulator, register A,
is used for all arithmetic and logic instructions.
SFRs (Special Function Registers):
Among the registers R0-R7 is part of the 128 bytes of RAM memory. What about
registers A, B, PSW, and DPTR? Do they also have addresses? The answer is yes. In the
8051, registers A, B, PSW and DPTR are part of the group of registers commonly
referred to as SFR (special function registers). There are many special function registers
and they are widely used. The SFR can be accessed by the names (which is much easier)
or by their addresses. For example, register A has address E0h, and register B has been
ignited the address F0H, as shown in table.
Electronics and Communication Engineering
Page 34
Bank Token Issue System
The following two points should noted about the SFR addresses.
1. The Special function registers have addresses between 80H and FFH. These
addresses are above 80H, since the addresses 00 to 7FH are addresses of RAM
memory inside the 8051.
2. Not all the address space of 80H to FFH is used by the SFR. The unused
locations 80H to FFH are reserved and must not be used by the 8051
programmer.
Regarding direct addressing mode, consider the following two points: (a) the
address value is limited to one byte, 00-FFH, which means this addressing mode is
limited to accessing RAM locations and registers located inside the 8051. (b) If we
examine the l st file for an assembly language program, we will see that the SFR registers
names are replaced with their addresses as listed in table.
Symbol Name Address
ACC Accumulator 0E0H
B B register 0F0H
PSW Program status word 0D0H
SP Stack pointer 81H
DPTR Data pointer 2 bytes
DPL Low byte 82H
DPH High byte 83H
P0 Port0 80H
P1 Port1 90H
P2 Port2 0A0H
P3 Port3 0B0H
IP Interrupt priority control 0B8H
IE Interrupt enable control 0A8H
TMOD Timer/counter mode control 89H
TCON Timer/counter control 88H
T2CON Timer/counter 2 control 0C8H
Electronics and Communication Engineering
Page 35
Bank Token Issue System
T2MOD Timer/counter mode2 control 0C9H
TH0 Timer/counter 0high byte 8CH
TL0 Timer/counter 0 low byte 8AH
TH1 Timer/counter 1 high byte 8DH
TL1 Timer/counter 1 low byte 8BH
TH2 Timer/counter 2 high byte 0CDH
TL2 Timer/counter 2 low byte 0CCH
RCAP2H T/C 2 capture register high byte 0CBH
RCAP2L T/C 2 capture register low byte 0CAH
SCON Serial control 98H
SBUF Serial data buffer 99H
PCON Power control 87H
Figure:3.4 8051 Special function register Address
A REGISTER (ACCUMULATOR):
This is a general-purpose register which serves for storing intermediate results during
operating. A number (an operand) should be added to the accumulator prior to execute an
instruction upon it. Once an arithmetical operation is preformed by the ALU, the result is
placed into the accumulator. If a data should be transferred from one register to another,
it must go through accumulator. For such universal purpose, this is the most commonly
used register that none microcontroller can be imagined without (more than a half 8051
microcontroller's instructions used use the accumulator in some way).
Electronics and Communication Engineering
Page 36
Bank Token Issue System
B Register:
B register is used during multiply and divide operations which can be performed only
upon numbers stored in the A and B registers. All other instructions in the program can
use this register as a spare accumulator (A).
NOTE:
During programming, each of registers is called by name so that their exact
address is not so important for the user. During compiling into machine code (series of
hexadecimal numbers recognized as instructions by the microcontroller), PC will
automatically, instead of registers’ name, write necessary addresses into the
microcontroller.
PSW Register (Program Status Word) :
This is one of the most important SFRs. The Program Status Word (PSW) contains
several status bits that reflect the current state of the CPU. This register contains: Carry
bit, Auxiliary Carry, two register bank select bits, Overflow flag, parity bit, and user-
definable status flag. The ALU automatically changes some of register’s bits, which is
usually used in regulation of the program performing.
P - Parity bit. If a number in accumulator is even then this bit will be automatically set
(1), otherwise it will be cleared (0). It is mainly used during data transmission and
receiving via serial communication.
Electronics and Communication Engineering
Page 37
Bank Token Issue System
Bit 1. This bit is intended for the future versions of the microcontrollers, so it is not
supposed to be here.
OV Overflow occurs when the result of arithmetical operation is greater than 255
(decimal), so that it can not be stored in one register. In that case, this bit will be set (1).
If there is no overflow, this bit will be cleared (0).
RS0, RS1 - Register bank selects bits. These two bits are used to select one of the
four register banks in RAM. By writing zeroes and ones to these bits, a group of registers
R0-R7 is stored in one of four banks in RAM.
RS1 RS2 Space in RAM
0 0 Bank0 00h-07h
0 1 Bank1 08h-0Fh
1 0 Bank2 10h-17h
1 1 Bank3 18h-1Fh
F0 - Flag 0. This is a general-purpose bit available to the user.
AC - Auxiliary Carry Flag is used for BCD operations only.
CY - Carry Flag is the (ninth) auxiliary bit used for all arithmetical operations and
shift instructions.
DPTR Register (Data Pointer) :
These registers are not true ones because they do not physically exist. They consist of two
separate registers: DPH (Data Pointer High) and (Data Pointer Low). Their 16 bits are
used for external memory addressing. They may be handled as a 16-bit register or as two
independent 8-bit registers. Besides, the DPTR Register is usually used for storing data
and intermediate results which have nothing to do with memory locations.
Electronics and Communication Engineering
Page 38
Bank Token Issue System
SP Register (Stack Pointer)
The stack is a section of RAM used by the CPU to store information
temporarily. This information could be data or an address. The CPU needs this storage
area since there are only a limited number of registers.
Program counter:
The important register in the 8051 is the PC (Program counter). The program
counter points to the address of the next instruction to be executed. As the CPU fetches
the OPCODE from the program ROM, the program counter is incremented to point to the
next instruction. The program counter in the 8051 is 16bits wide. This means that the
8051 can access program addresses 0000 to FFFFH, a total of 64k bytes of code.
However, not all members of the 8051 have the entire 64K bytes of on-chip ROM
installed, as we will see soon.
Electronics and Communication Engineering
Page 39
Bank Token Issue System
TIMERSOn-chip timing/counting facility has proved the capabilities of the microcontroller
for implementing the real time application. These includes pulse counting, frequency
measurement, pulse width measurement, baud rate generation, etc,. Having sufficient
number of timer/counters may be a need in a certain design application. The 8051 has
two timers/counters. They can be used either as timers to generate a time delay or as
counters to count events happening outside the microcontroller. Let discuss how these
timers are used to generate time delays and we will also discuss how they are been used
as event counters.
PROGRAMMING 8051 TIMERS
The 8051 has timers: Timer 0 and Timer1.they can be used either as timers or as
event counters. Let us first discuss about the timers’ registers and how to program the
timers to generate time delays.
BASIC RIGISTERS OF THE TIMER
Both Timer 0 and Timer 1 are 16 bits wide. Since the 8051 has an 8-bit
architecture, each 16-bit timer is accessed as two separate registers of low byte and high
byte.
TIMER 0 REGISTERS:
The 16-bit register of Timer 0 is accessed as low byte and high byte. the low
byte register is called TL0(Timer 0 low byte)and the high byte register is referred to as
TH0(Timer 0 high byte).These register can be accessed like any other register, such as
A,B,R0,R1,R2,etc.for example, the instruction ”MOV TL0, #4F”moves the value 4FH
into TL0,the low byte of Timer 0.These registers can also be read like any other register.
Electronics and Communication Engineering
Page 40
Bank Token Issue System
TIMER 1 REGISTERS
Timer 1 is also 16-bit register is split into two bytes, referred to as TL1 (Timer
1 low byte) and TH1 (Timer 1 high byte).these registers are accessible n the same way as
the register of Timer 0.
TMOD (timer mode) REGISTER
Both timers TIMER 0 and TIMER 1 use the same register, called TMOD, to set
the various timer operation modes. TMOD is an 8-bit register in which the lower 4 bits
are set aside for Timer 0 and the upper 4 bits for Timer 1.in each case; the lower 2 bits
are used to set the timer mode and the upper 2 bits to specify the operation.
MODES:
M1, M0:
M0 and M1 are used to select the timer mode. There are three modes: 0, 1, 2.Mode 0
is a 13-bit timer, mode 1 is a 16-bit timer, and mode 2 is an 8-bit timer. We will
concentrate on modes 1 and 2 since they are the ones used most widely. We will soon
describe the characteristics of these modes, after describing the reset of the TMOD
register.
Electronics and Communication Engineering
Page 41
Bank Token Issue System
GATE - Gate control when set. The timer/counter is enabled only
while the INTx pin is high and the TRx control pin is.
Set. When cleared, the timer is enabled.
C/T - Timer or counter selected cleared for timer operation
(Input from internal system clock).set for counter
Operation (input TX input pin).
M 1 Mode bit 1
M0 Mode bit 0
M1 M0 MODE Operating Mode
0 0 0 13-bit timer mode
8-bit timer/counter THx with TLx as
5 - Bit pre-scaler.
0 1 1 16-bit timer mode
16-bit timer/counters THx with TLx are
Cascaded; there is no prescaler
1 0 2 8-bit auto reload
8-bit auto reload timer/counter;THx
Holds a value that is to be reloaded into
TLx each time it overflows.
1 1 3 Split timer mode.
C/T (clock/timer)
This bit in the TMOD register is used to decide whether the timer is used as a delay
generator or an event counter. If C/T=0, it is used as a timer for time delay generation.
The clock source for the time delay is the crystal frequency of the 8051.this section is
concerned with this choice. The timer’s use as an event counter is discussed in the next
section.
Electronics and Communication Engineering
Page 42
Bank Token Issue System
Serial Communication
Computers can transfer data in two ways: parallel and serial. In
parallel data transfers, often 8 or more lines (wire conductors) are used to transfer
data to a device that is only a few feet away. Examples of parallel data transfer are
printers and hard disks; each uses cables with many wire strips. Although in such
cases a lot of data can be transferred in a short amount of time by using many wires
in parallel, the distance cannot be great. To transfer to a device located many
meters away, the serial method is used. In serial communication, the data is sent
one bit at a time, in contrast to parallel communication, in which the data is sent a
byte or more at a time. Serial communication of the 8051 is the topic of this
chapter. The 8051 has serial communication capability built into it, there by
making possible fast data transfer using only a few wires.
If data is to be transferred on the telephone line, it must be converted from 0s
and 1s to audio tones, which are sinusoidal-shaped signals. A peripheral device called a
modem, which stands for “modulator/demodulator”, performs this conversion.
Serial data communication uses two methods, asynchronous and synchronous.
The synchronous method transfers a block of data at a time, while the asynchronous
method transfers a single byte at a time.
In data transmission if the data can be transmitted and received, it is a duplex
transmission. This is in contrast to simplex transmissions such as with printers, in which
the computer only sends data. Duplex transmissions can be half or full duplex,
depending on whether or not the data transfer can be simultaneous. If data is transmitted
one way at a time, it is referred to as half duplex. If the data can go both ways at the
same time, it is full duplex. Of course, full duplex requires two wire conductors for the
data lines, one for transmission and one for reception, in order to transfer and receive data
simultaneously.
Electronics and Communication Engineering
Page 43
Bank Token Issue System
Asynchronous serial communication and data framing
The data coming in at the receiving end of the data line in a serial data transfer
is all 0s and 1s; it is difficult to make sense of the data unless the sender and receiver
agree on a set of rules, a protocol, on how the data is packed, how many bits constitute a
character, and when the data begins and ends.
Start and stop bits
Asynchronous serial data communication is widely used for character-oriented
transmissions, while block-oriented data transfers use the synchronous method. In the
asynchronous method, each character is placed between start and stop bits. This is called
framing. In the data framing for asynchronous communications, the data, such as ASCII
characters, are packed between a start bit and a stop bit. The start bit is always one bit,
but the stop bit can be one or two bits. The start bit is always a 0 (low) and the stop bit
(s) is 1 (high).
Data transfer rate
The rate of data transfer in serial data communication is stated in bps (bits per
second). Another widely used terminology for bps is baud rate. However, the baud and
bps rates are not necessarily equal. This is due to the fact that baud rate is the modem
terminology and is defined as the number of signal changes per second. In modems a
single change of signal, sometimes transfers several bits of data. As far as the conductor
wire is concerned, the baud rate and bps are the same, and for this reason we use the bps
and baud interchangeably.
The data transfer rate of given computer system depends on communication
ports incorporated into that system. For example, the early IBMPC/XT could transfer
data at the rate of 100 to 9600 bps. In recent years, however, Pentium based PCS transfer
data at rates as high as 56K bps. It must be noted that in asynchronous serial data
communication, the baud rate is generally limited to 100,000bps.
RS232 Standards
Electronics and Communication Engineering
Page 44
Bank Token Issue System
To allow compatibility among data communication equipment made by various
manufacturers, an interfacing standard called RS232 was set by the Electronics Industries
Association (EIA) in 1960. In 1963 it was modified and called RS232A. RS232B AND
RS232C were issued in 1965 and 1969, respectively. Today, RS232 is the most widely
used serial I/O interfacing standard. This standard is used in PCs and numerous types of
equipment. However, since the standard was set long before the advert of the TTL logic
family, its input and output voltage levels are not TTL compatible. In RS232, a 1 is
represented by -3 to -25V, while a 0 bit is +3 to +25V, making -3 to +3 undefined. For
this reason, to connect any RS232 to a microcontroller system we must use voltage
converters such as MAX232 to convert the TTL logic levels to the RS232 voltage levels,
and vice versa. MAX232 IC chips are commonly referred to as line drivers.
RS232 pins
RS232 cable is commonly referred to as the DB-25 connector. In labeling, DB-
25P refers to the plug connector (male) and DB-25S is for the socket connector (female).
Since not all the pins are used in PC cables, IBM introduced the DB-9 Version of the
serial I/O standard, which uses 9 pins only, as shown in table.
DB-9 pin connector
1 2 3 4 5
6 7 8 9
Pin Functions:
Pin Description
1 Data carrier detect (DCD)
2 Received data (RXD)
3 Transmitted data (TXD)
4 Data terminal ready(DTR)
5 Signal ground (GND)
6 Data set ready (DSR)
7 Request to send (RTS)
8 Clear to send (CTS)
Electronics and Communication Engineering
Page 45
Bank Token Issue System
9 Ring indicator (RI)
Note: DCD, DSR, RTS and CTS are active low pins.
The method used by RS-232 for communication allows for a simple connection of three
lines: Tx, Rx, and Ground. The three essential signals for 2-way RS-232
Communications are these:
TXD: carries data from DTE to the DCE.
RXD: carries data from DCE to the DTE
SG: signal ground
MAX232:
Description
Operate from a single 5-v power supply with 1.0- μF charge-pump Capacitors.
Operates up to 120 kbit/s
Two drivers and two receivers
Electronics and Communication Engineering
Page 46
Bank Token Issue System
±30-v input Level
Low supply current
Application---Battery Powered system,Modems and Computers
To receive data from i.e. a PC, you need a level converter, like a
MAX232, or use standard components and make your own level converter A level
converter is needed because the Communication port of a PC switches the data between
approx. -10 to +10 Volt.-10 Volt corresponds with a logical '0' (lo), 10 Volt corresponds
with a logical '1' (hi), both on TTL level of 5 Volt, so can be connected directly to the
i/o's of an AVR. The MAX232 can convert at a maximum speed of 120kbit/sec.
8051 connection to RS232
The RS232 standard is not TTL compatible; therefore, it requires a line driver
such as the MAX232 chip to convert RS232 voltage levels to TTL levels, and vice versa.
The interfacing of 8051 with RS232 connectors via the MAX232 chip is the main topic.
The 8051 has two pins that are used specifically for transferring and
receiving data serially. These two pins are called TXD and RXD and a part of the port 3
group (P3.0 and P3.1). Pin 11 of the 8051 is assigned to TXD and pin 10 is designated as
RXD. These pins are TTL compatible; therefore, they require a line driver to make them
RS232 compatible. One such line driver is the MAX232 chip.
MAX232 converts from RS232 voltage levels to TTL voltage
levels, and vice versa. One advantage of the MAX232 chip is that it uses a +5V power
source which, is the same as the source voltage for the 8051. In the other words, with a
single +5V power supply we can power both the 8051 and MAX232, with no need for the
power supplies that are common in many older systems. The MAX232 has two sets of
line drivers for transferring and receiving data. The line drivers used for TXD are called
T1 and T2, while the line drivers for RXD are designated as R1 and R2. In many
applications only one of each is used.
Electronics and Communication Engineering
Page 47
Bank Token Issue System
CONNECTING μC to PC using MAX 232
MAX 232 Serial Line Drivers:
The pin-out diagram of MAX 232 is shown below.
MAX 232E Dual Driver/Receiver
INTERRUPTSA single microcontroller can serve several devices. There are two ways to do that:
INTERRUPTS or POLLING.
Electronics and Communication Engineering
Page 48
Bank Token Issue System
INTERRUPTS Vs POLLING:
The advantage of interrupts is that the microcontroller can serve many devices (not
all the same time, of course); each device can get the attention of the microcontroller based
on the priority assigned to it. The polling method cannot assign priority since it checks all
devices in round-robin fashion. More importantly, in the interrupt method the
microcontroller can also ignore (mask) a device request for service. This is again not
possible with the polling method. The most important reason that the interrupt method is
preferable is that the polling method wastes much of the microcontroller’s time by polling
devices that do not need service. So, in order to avoid tying down the microcontroller,
interrupts are used.
Six Interrupts in the 8051:
In reality, only five interrupts are available to the user in the 8051, but many
manufacturers’ data sheets state that there are six interrupts since they include reset .the
six interrupts in the 8051 are allocated as above.
1. Reset. When the reset pin is activated, the 8051 jumps to address location
0000.this is the power-up reset.
2. Two interrupts are set aside for the timers: one for Timer 0 and one for Timer
1.Memory location 000BH and 001BH in the interrupt vector table belong to
Timer 0 and Timer 1, respectively.
3. Two interrupts are set aside for hardware external harder interrupts. Pin number
12(P3.2) and 13(P3.3) in port 3 are for the external hardware interrupts INT0 and
INT1,respectively.These external interrupts are also referred to as EX1 and
EX2.Memory location 0003H and 0013H in the interrupt vector table are
assigned to INT0 and INT1, respectively.
Electronics and Communication Engineering
Page 49
Bank Token Issue System
4. Serial communication has a single interrupt that belongs to both receive and
transmit. The interrupt vector table location 0023H belongs to this interrupt.
Steps in executing an interrupt
Upon activation of an interrupt, the microcontroller goes through the following steps.
1. It finishes the instruction it is executing and saves the address of the next
instruction (PC) on the stack.
2. It also saves the current status of all the interrupts internally (i.e., not on the
stack).
3. It jumps to a fixed location in memory called the interrupt vector table that holds
the address of the interrupts service routine.
4. The microcontroller 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).
5. Upon executing the RETI instruction, the microcontroller 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 to
execute from that address.
Notice from step 5 the critical role of the stack. For this reason, we must be careful in
manipulating the stack contents in the ISR. Specifically, in the ISR, just as in any CALL
subroutine, the number of pushes and pops must be equal.
Enabling and disabling an interrupt:
Upon reset, all interrupt are disabled (masked), meaning that none will be responded to
by the microcontroller if they are activated. The interrupt must be enabled by software in
order for the microcontroller to respond to them. There is a register called IE (interrupt
Electronics and Communication Engineering
Page 50
Bank Token Issue System
enable) that is responsible for enabling (unmasking) and disabling (masking) the
interrupts.
Notice that IE is a bit-addressable register.
Steps in enabling an interrupt:
To enable an interrupt, we take the following steps:
1. Bit D7 of the IE register (EA) must be set to high to allow the reset to take effect.
If EA=1, interrupts are enabled and will be responded to if their corresponding bit in IE
are high. If EA=0, no interrupt will be responded to, even if the associated bit in the IE
register is high.
Interrupt Enable Register
D7 D6 D5 D4 D3 D2 D1 D0
EA IE.7 disables all interrupts. If EA=0, no interrupts is acknowledged.
If EA=1, each interrupt source is individually enabled disabled
By setting or clearing its enable bit.
-- IE.6 Not implemented, reserved for future use.*
ET2 IE.5 Enables or disables Timer 2 overflow or capture interrupt (8052
Only)
ES IE.4 Enables or disables the serial port interrupts.
ET1 IE.3 Enables or disables Timers 1 overflow interrupt
Electronics and Communication Engineering
EA -- ET2 ES ET1 EX1 ET0 EX0
Page 51
Bank Token Issue System
EX1 IE.2 Enables or disables external interrupt 1.
ET0 IE.1 Enables or disables Timer 0 overflow interrupt.
EX0 IE.0 Enables or disables external interrupt.
The reader provides a path for your application to send and receive commands from the
card. There are many types of readers available, such as serial, PC-Card, and standard
keyboard models. Unfortunately, the ISO group was unable to provide a standard for
communicating with the readers so there is no one-size-fits-all approach to smart card
communication.
Each manufacturer provides a different protocol for communication with the reader.
First you have to communicate with the reader.
Second, the reader communicates with the card, acting as the intermediary before
sending the data to the card.
Third, communication with a smart card is based on the APDU format. The card
will process the data and return it to the reader, which will then return the data to its
originating source.
The following classes are used for communicating with the reader:
ISO command classes for communicating with 7816 protocol
Classes for communicating with the reader
Classes for converting data to a manufacturer-specific format
An application for testing and using the cards for an intended and specific purpose.
FEATURES:
256 ´ 8-bit EEPROM organization
Byte-wise addressing
Irreversible byte-wise write protection of lowest 32 addresses (Byte 0 ... 31)
32 ´ 1-bit organization of protection memory
Two-wire link protocol
Electronics and Communication Engineering
Page 52
Bank Token Issue System
End of processing indicated at data output
Answer-to-Reset acc. to ISO standard 7816-3
Programming time 2.5 ms per byte for both erasing and writing
Minimum of 104 write/erase cycles1)
Data retention for minimum of ten years1)
SEVENSEGMENTDISPLAYS:
It is an electronic display device .
It is composed of seven elements.
The seven segments are arranged as a rectangle of two vertical segments on each
side with one horizontal segment on the top, middle, and bottom.
The segments of a 7-segment display are referred to by the letters A to G, as
shown to the right, where the optional DP decimal. point (an "eighth segment") is used
for the display of non-integer numbers..Seven-segment displays may use a liquid crystal
display (LCD),arrays of light-emitting diodes (LEDs),
Seven segment display connections
Electronics and Communication Engineering
Page 53
Bank Token Issue System
CHAPTER:3
SOFTWARE DESCRIPTION
Electronics and Communication Engineering
Page 54
Bank Token Issue System
ABOUT SOFTWARE
Software used is:
*Keil software for C programming
KEIL µVision3
What's New in µVision3?
µVision3 adds many new features to the Editor like Text Templates, Quick Function
Navigation, and Syntax Coloring with brace high lighting Configuration Wizard for
dialog based startup and debugger setup. µVision3 is fully compatible to µVision2 and
can be used in parallel with µVision2.
What is µVision3?
µVision3 is an IDE (Integrated Development Environment) that helps you write, compile,
and debug embedded programs. It encapsulates the following components:
A project manager.
A make facility.
Tool configuration.
Editor.
A powerful debugger.
EMBEDDED C:
Electronics and Communication Engineering
Page 55
Bank Token Issue System
The programming Language used here in this project is an
Embedded C Language. This Embedded C Language is different from the generic C
language in few things like
a) Data types
b) Access over the architecture addresses.
The Embedded C Programming Language forms the user friendly language with access
over Port addresses, SFR Register addresses etc.
Embedded C Data types:
Data Types Size in Bits Data Range/Usage
unsigned char 8-bit 0-255
signed char 8-bit -128 to +127
unsigned int 16-bit 0 to 65535
signed int 16-bit -32,768 to +32,767
sbit 1-bit SFR bit addressable only
bit 1-bit RAM bit addressable
only
sfr 8-bit RAM addresses 80-FFH
only
Signed char:
o Used to represent the – or + values.
o As a result, we have only 7 bits for the magnitude of the signed number, giving us
values from -128 to +127.
SOFTWARE
Electronics and Communication Engineering
Page 56
Bank Token Issue System
µVision3
µVision3 is an IDE (Integrated Development Environment) that helps you write, compile,
and debug embedded programs. It encapsulates the following components:
A project manager.
A make facility.
Tool configuration.
Editor.
A powerful debugger.
To help you get started, several example programs (located in the \C51\Examples, \
C251\Examples, \C166\Examples, and \ARM\...\Examples) are provided.
HELLO is a simple program that prints the string "Hello World" using the Serial
Interface.
Building an Application in µVision2
To build (compile, assemble, and link) an application in µVision2, you must:
1. Select Project - (for example, 166\EXAMPLES\HELLO\HELLO.UV2).
2. Select Project - Rebuild all target files or Build target.
µVision2 compiles, assembles, and links the files in your project.
Creating Your Own Application in µVision2
To create a new project in µVision2, you must:
1. Select Project - New Project.
2. Select a directory and enter the name of the project file.
3. Select Project - Select Device and select an 8051, 251, or C16x/ST10 device from
the Device Database™.
4. Create source files to add to the project.
5. Select Project - Targets, Groups, Files, Add/Files, select Source Group1, and add
the source files to the project.
6. Select Project - Options and set the tool options. Note when you select the target
device from the Device Database™ all special options are set automatically. You
Electronics and Communication Engineering
Page 57
Bank Token Issue System
typically only need to configure the memory map of your target hardware. Default
memory model settings are optimal for most applications.
7. Select Project - Rebuild all target files or Build target.
Debugging an Application in µVision2
To debug an application created using µVision2, you must:
1. Select Debug - Start/Stop Debug Session.
2. Use the Step toolbar buttons to single-step through your program. You may enter
G, main in the Output Window to execute to the main C function.
3. Open the Serial Window using the Serial #1 button on the toolbar.
Debug your program using standard options like Step, Go, Break, and so on.
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
Electronics and Communication Engineering
Page 58
Bank Token Issue System
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
Electronics and Communication Engineering
Page 59
Bank Token Issue System
9. Select AT89S52 as shown below
10. Then Click on “OK”
11. The Following fig will appear
Electronics and Communication Engineering
Page 60
Bank Token Issue System
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.
Electronics and Communication Engineering
Page 61
Bank Token Issue System
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”
Electronics and Communication Engineering
Page 62
Bank Token Issue System
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.
Electronics and Communication Engineering
Page 63
Bank Token Issue System
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.
Electronics and Communication Engineering
Page 64
Bank Token Issue System
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.
Electronics and Communication Engineering
Page 65
Bank Token Issue System
29. Now keep Pressing function key “F11” slowly and observe.
30. You are running your program successfully
Electronics and Communication Engineering
Page 66
Bank Token Issue System
CHAPTER:4
CODING IN EMBEDDED ’C’ LANGUAGE
Electronics and Communication Engineering
Page 67
Bank Token Issue System
#include <AT89X52.H>
#include<stdio.h>
sfr seg1 = 0x90;
sfr seg2 = 0xA0;
unsigned int q,r,choice;
unsigned int v=0;
void delay();
void decoder(unsigned int);
unsigned char c;
void main(void)
{
SCON = 0X52;
TMOD = 0X20;
//TCON = 0x69;
TH1 = 0XFD;//9600 baud rate
TR1=1;
IE=0x90;
//TCON=0X69;
seg1=0xFF;
seg2=0xFF;
delay();
Electronics and Communication Engineering
Page 68
Bank Token Issue System
while(1)
{ /*printf("\7\t\tPress i for Increment\7");
printf("\n\t\tPress d for Decrement\n\7");
printf("\n\t\tPress r to return to zero\n\7");*/
// c=_getkey();
//putchar(c);
if(v<=99)
{
if(c=='i')
{
v++;
c='a';
}
if(c=='d')
{
v--;
c='a';
}
if(c=='r')
{
v=0;
c='a';
}
Electronics and Communication Engineering
Page 69
Bank Token Issue System
}
else
v=0;
q = v/10;//to be sent to seg1
r = v%10;//to be sent to seg2
choice = r;
decoder(choice);
seg2 = B;
choice = q;
decoder(choice);
seg1 = B;
}
}
void serial0() interrupt 4
{
if(TI == 1)
TI = 0;
else
{
c = SBUF;
RI=0;
Electronics and Communication Engineering
Page 70
Bank Token Issue System
}
return;
}
void delay()
{
unsigned int i;
for(i=0;i<=30000;i++);
}
void decoder(unsigned int w)
{
switch(w)
{
case 1 :
{
B = 0xF9;
delay();
break;
}
case 2 :
{
B = 0xA4;
delay();
break;
}
case 3 :
Electronics and Communication Engineering
Page 71
Bank Token Issue System
{
B = 0xB0;
delay();
break;
}
case 4 :
{
B = 0x99;
delay();
break;
}
case 5 :
{
B = 0x92;
delay();
break;
}
case 6 :
{
B = 0x82;
delay();
break;
}
case 7 :
{
B = 0xF8;
delay();
Electronics and Communication Engineering
Page 72
Bank Token Issue System
break;
}
case 8 :
{
B = 0x80;
delay();
break;
}
case 9 :
{
B = 0x90;
delay();
break;
}
case 0 :
{
B = 0xC0;
delay();
break;
}
}
}
Electronics and Communication Engineering
Page 73
Bank Token Issue System
BIBLIOGRAPHY
NAME OF THE SITES
1. WWW.MITEL.DATABOOK.COM
2. WWW.ATMEL.DATABOOK.COM
3. WWW.FRANKLIN.COM
4. WWW.KEIL.COM
REFERENCES
1. 8051-MICROCONTROLLER AND EMBEDDED SYSTEM.
Mohd. Mazidi.
Electronics and Communication Engineering