Top Banner
EMPLOYEE LOGIN AND LOGOUT MANAGEMENT SYSTEM WITH RFID CONTENTS 1.Abbreviations 2. Figures locations 3.Introduction 4. Block Diagram 5. Block Diagram Description 6.Schematic 7. Schematic Description 8. Hardware Components Power supply Microcontroller RFID Reader PC RTC LCD keys 9. Circuit Description 10. Software components a. About Kiel b. Embedded ‘C’ 11. KEIL procedure description
109
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Employee Login and Logout Management System With Rfid Docu

EMPLOYEE LOGIN AND LOGOUT MANAGEMENT SYSTEM WITH RFID

CONTENTS

1. Abbreviations

2. Figures locations

3. Introduction

4. Block Diagram

5. Block Diagram Description

6. Schematic

7. Schematic Description

8. Hardware Components

Power supply Microcontroller RFID Reader PC RTC LCD keys

9. Circuit Description

10.Software components

a. About Kiel

b. Embedded ‘C’

11. KEIL procedure description

12.Conclusion (or) Synopsis

13. Future Aspects

14. Bibliography

Page 2: Employee Login and Logout Management System With Rfid Docu

Abbreviations

Page 3: Employee Login and Logout Management System With Rfid Docu

Symbol Name

ACC Accumulator

B B register

PSW Program status word

SP Stack pointer

DPTR Data pointer 2 bytes

DPL Low byte

DPH High byte

P0 Port0

P1 Port1

P2 Port2

P3 Port3

IP Interrupt priority control

IE Interrupt enable control

TMOD Timer/counter mode control

TCON Timer/counter control

T2CON Timer/counter 2 control

T2MOD Timer/counter mode2 control

TH0 Timer/counter 0high byte

TL0 Timer/counter 0 low byte

TH1 Timer/counter 1 high byte

TL1 Timer/counter 1 low byte

TH2 Timer/counter 2 high byte

TL2 Timer/counter 2 low byte

SCON Serial control

SBUF Serial data buffer

MAX MAXIM (IC manufacturer )

TTL Transistor to Transistor Logic

ATM Automatic Teller Machine

RS 232 Recommended Standard

AC Alternating Current

DC Direct Current

LCD Liquid Crystal Display

PC Personal Computer

RPS Regulated Power Supply

RMS Root Mean Square

EEPROM Electrically Erasable Programmable ROM

Page 4: Employee Login and Logout Management System With Rfid Docu

Figure LocationsS.No. Figure Page No.

1

Components of Typical Linear Power Supply

2 An Electrical Transformer3 Bridge Rectifier4 Bridge Rectifier Positive Cycle5 Bridge Rectifier Negative Cycle6 Three terminal voltage Regulator7 Functional Diagram of Microcontroller8 Pin Diagram of Microcontroller9 Oscillator connections

10 External clock drive connections11 A register12 B register13 RAM14 RAM Allocation15 Register Banks16 PSW17 DPTR18 SP19 PORT 020 TL0 and TH021 DB922 Connecting Microcontroller to PC

23 Types of SIM Structures24 Smart Card Pin-out25 Smart Card Reader26 LCD27 MAX 232 Pin-out28 MAX 232 Operating circuit29 MAX 232 Logic output30 Project 31 New Project32 Select Target device 33 Select device for Target34 Copy 8051 startup code35 Source group 136 New file37 Opened new file38 File Save39 Add files to the source group40 Adding files to the source group41 Compilation

Page 5: Employee Login and Logout Management System With Rfid Docu

42 After Compilation43 Build44 Selecting the Ports to be visualized45 Start Debugging

INTRODUCTION

EMBEDDED SYSTEM:

An embedded system is a special-purpose system in which the computer is completely

encapsulated by or dedicated to the device or system it controls. Unlike a general-purpose

computer, such as a personal computer, an embedded system performs one or a few predefined

tasks, usually with very specific requirements. Since the system is dedicated to specific tasks,

design engineers can optimize it, reducing the size and cost of the product. Embedded systems

are often mass-produced, benefiting from economies of scale.

Personal digital assistants (PDAs) or handheld computers are generally considered

embedded devices because of the nature of their hardware design, even though they are more

expandable in software terms. This line of definition continues to blur as devices expand. With

the introduction of the OQO Model 2 with the Windows XP operating system and ports such as a

USB port — both features usually belong to "general purpose computers", — the line of

nomenclature blurs even more.

Physically, embedded systems ranges from portable devices such as digital watches and

MP3 players, to large stationary installations like traffic lights, factory controllers, or the systems

controlling nuclear power plants.

Page 6: Employee Login and Logout Management System With Rfid Docu

In terms of complexity embedded systems can range from very simple with a single

microcontroller chip, to very complex with multiple units, peripherals and networks mounted

inside a large chassis or enclosure.

Examples of Embedded Systems:

Avionics, such as inertial guidance systems, flight control hardware/software and other

integrated systems in aircraft and missiles

Cellular telephones and telephone switches

Engine controllers and antilock brake controllers for automobiles

Home automation products, such as thermostats, air conditioners, sprinklers, and security

monitoring systems

Handheld calculators

Handheld computers

Household appliances, including microwave ovens, washing machines, television sets,

DVD players and recorders

Medical equipment

Personal digital assistant

Videogame consoles

Computer peripherals such as routers and printers.

Industrial controllers for remote machine operation.

Block Diagram:

Page 7: Employee Login and Logout Management System With Rfid Docu

Block Diagram description

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 9V 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.

Micro Controller

LCD Display

Power supply

PC

MAX232

RFID READER

RTC

keys

Page 8: Employee Login and Logout Management System With Rfid Docu

RFID Reader (Radio Frequency Identification):

Radio Frequency Identification (RFID) is a generic term for non-contacting technologies

that use radio waves to automatically identify people or objects. The combined antenna and

microchip are called an "RFID transponder" or "RFID tag" and work in combination with an

"RFID reader".

Radio Frequency Identification (RFID) is the latest technology that is being adopted to

track and trace materials, including books. RFID based Library Management System has been

implemented in most of the reputed libraries across the globe. RFID interfaced library

management system, along with smart card issued to the users are being implemented to

automate the library functions and make the inventory management process efficient and

effective. The system improves the tracking of books and documents so that the books can be

more quickly located, the document workflow more easily tracked and transaction records are

seamlessly captured.

RTC:

This section is used to produce the accurate time schedule to the entry and exit timings.

By using this RTC exact time is given to the controller in terms of hours, minutes and seconds.

LCD Display Section: This section is basically meant to show up the status of the project. This

project makes use of Liquid Crystal Display to display / prompt for necessary information.

Page 9: Employee Login and Logout Management System With Rfid Docu

SCHEMATIC:

Schematic Description

Page 10: Employee Login and Logout Management System With Rfid Docu
Page 11: Employee Login and Logout Management System With Rfid Docu

Firstly, the required operating voltage for Microcontroller 89C51 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 the output from this section is fed to 40th pin

of 89c51 microcontroller to supply operating voltage.

The microcontroller 89c51 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 89c51 to make

it work (execute) properly.

The RFID reader is being interfaced with the Microcontroller. The TX pin of RFID

reader is connected to RX pin of the Microcontroller. RFID reader is connected to the port P3.0.

Max 232 is connected to the port P3.1.

RTC is connected to the port P2.0,P2.1.

Keys are connected to the port P3.5 to p3.7.

LCD is connected to the port 0 and control pins are connected to the port P2.5,p2.6,p2.7.

Hardware Components

Power supply Microcontroller RFID Reader PC RTC Max 232 LCD keys

Hardware explanation:

Page 12: Employee Login and Logout Management System With Rfid Docu

MICRO CONTROLLER 89C51

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.

The Major Features:

Compatible with MCS-51 products

4k Bytes of in-system Reprogrammable flash memory

Fully static operation: 0HZ to 24MHZ

Three level programmable clock

128 * 8 –bit timer/counters

Six interrupt sources

Programmable serial channel

Low power idle power-down modes

Why AT 89C51

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

Page 13: Employee Login and Logout Management System With Rfid Docu

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 AT89C51 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.

AT89C51 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)

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.

Page 14: Employee Login and Logout Management System With Rfid Docu

Functional block diagram of micro controller

The 89C51 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.

Page 15: Employee Login and Logout Management System With Rfid Docu

Fig 3.7.2: - Oscillator and timing circuit

Types of memory:

The 89C51 have three general types of memory. They are on-chip memory, external

Code memory and external Ram. On-Chip memory refers to physically existing memory on the

micro controller itself. External code memory is the code memory that resides off chip. This is

often in the form of an external EPROM. External RAM is the Ram that resides off chip. This

often is in the form of standard static RAM or flash RAM.

a) Code memory

Page 16: Employee Login and Logout Management System With Rfid Docu

Code memory is the memory that holds the actual 89C51 programs that is to be run. This

memory is limited to 64K. Code memory may be found on-chip or off-chip. It is possible to have

4K of code memory on-chip and 60K off chip memory simultaneously. If only off-chip memory

is available then there can be 64K of off chip ROM. This is controlled by pin provided as EA

b) Internal RAM

The 89C51 have a bank of 128 of internal RAM. The internal RAM is found on-chip. So

it is the fastest Ram available. And also it is most flexible in terms of reading and writing.

Internal Ram is volatile, so when 89C51 is reset, this memory is cleared. 128 bytes of internal

memory are subdivided. The first 32 bytes are divided into 4 register banks. Each bank contains

8 registers. Internal RAM also contains 128 bits, which are addressed from 20h to 2Fh. These

bits are bit addressed i.e. each individual bit of a byte can be addressed by the user. They are

numbered 00h to 7Fh. The user may make use of these variables with commands such as SETB

and CLR.

FLASH MEMORY:

Flash memory (sometimes called "flash RAM") is a type of constantly-powered non

volatile that can be erased and reprogrammed in units of memory called blocks. It is a variation

of electrically erasable programmable read-only memory (EEPROM) which, unlike flash

memory, is erased and rewritten at the byte level, which is slower than flash memory updating.

Flash memory is often used to hold control code such as the basic input/output system (BIOS) in

a personal computer. When BIOS needs to be changed (rewritten), the flash memory can be

written to in block (rather than byte) sizes, making it easy to update. On the other hand, flash

memory is not useful as random access memory (RAM) because RAM needs to be addressable

at the byte (not the block) level.

Flash memory gets its name because the microchip is organized so that a section of

memory cells are erased in a single action or "flash." The erasure is caused by Fowler-Nordheim

Page 17: Employee Login and Logout Management System With Rfid Docu

tunneling in which electrons pierce through a thin dielectric material to remove an electronic

charge from a floating gate associated with each memory cell. Intel offers a form of flash

memory that holds two bits (rather than one) in each memory cell, thus doubling the capacity of

memory without a corresponding increase in price.

Flash memory is used in digital cellular phones, digital cameras, LAN switches, PC

Cards for notebook computers, digital set-up boxes, embedded controllers, and other devices.

Flash memory is a nonvolatile memory using NOR technology, which allows the user to

electrically program and erase information. Intel® Flash memory uses memory cells similar to

an EPROM, but with a much thinner, precisely grown oxide between the floating gate and the

source (see Figure 2). Flash programming occurs when electrons are placed on the floating gate.

The charge is stored on the floating gate, with the oxide layer allowing the cell to be electrically

erased through the source. Intel Flash memory is an extremely reliable nonvolatile memory

architecture.

Pin diagram:

Page 18: Employee Login and Logout Management System With Rfid Docu

Fig 3.7.3: - Pin diagram 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 one’s 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 outputs the code bytes during program

verification. External pull-ups are required during program verification.

Page 19: Employee Login and Logout Management System With Rfid Docu

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 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.

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

Page 20: Employee Login and Logout Management System With Rfid Docu

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 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

Page 21: Employee Login and Logout Management System With Rfid Docu

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:

It is the 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.

Page 22: Employee Login and Logout Management System With Rfid Docu

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.

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.

Page 23: Employee Login and Logout Management System With Rfid Docu

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.

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, notice 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 you examine the l st file for an assembly

language program, you will see that the SFR registers names are replaced with their addresses as

listed in table.

Symbol Name Address

Page 24: Employee Login and Logout Management System With Rfid Docu

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

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

Table: 8051 Special function register Address

Page 25: Employee Login and Logout Management System With Rfid Docu

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).

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).

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.

R Registers (R0-R7)

Page 26: Employee Login and Logout Management System With Rfid Docu

This is a common name for the total 8 general purpose registers (R0, R1, and R2 ...R7). Even

they are not true SFRs, they deserve to be discussed here because of their purpose. The bank is

active when the R registers it includes are in use. Similar to the accumulator, they are used for

temporary storing variables and intermediate results. Which of the banks will be active depends

on two bits included in the PSW Register. These registers are stored in four banks in the scope of

RAM.

The following example best illustrates the useful purpose of these registers. Suppose that

mathematical operations on numbers previously stored in the R registers should be performed:

(R1+R2) - (R3+R4). Obviously, a register for temporary storing results of addition is needed.

Everything is quite simple and the program is as follows:

MOV A, R3; Means: move number from R3 into accumulator

ADD A, R4; Means: add number from R4 to accumulator (result remains in accumulator)

MOV R5, A; Means: temporarily moves the result from accumulator into R5

MOV A, R1; Means: move number from R1 into accumulator

ADD A, R2; Means: add number from R2 to accumulator

SUBB A, R5; Means: subtract number from R5 (there are R3+R4)

Page 27: Employee Login and Logout Management System With Rfid Docu

8051 Register Banks and Stack

RAM memory space allocation in the 8051

There are 128 bytes of RAM in the 8051. The 128 bytes of RAM inside the 8051 are

assigned addresses 00 to7FH. These 128 bytes are divided into three different groups as follows:

1. A total of 32 bytes from locations 00 to 1FH hex are set aside for register banks and

the stack.

2. A total of 16 bytes from locations 20 to 2FH hex are set aside for bit-addressable

read/write memory.

3. A total of 80 bytes from locations 30H to 7FH are used for read and write storage, or

what is normally called Scratch pad. These 80 locations of RAM are widely used for

the purpose of storing data and parameters nu 8051 programmers.

Register banks in the 8051

A total of 32bytes of RAM are set aside for the register banks and stack. These 32

bytes are divided into 4 banks of registers in which each bank has registers, R0-R7. RAM

locations 0 to 7 are set aside for bank 0 of R0-R7 where R0 is RAM location 0, R1 is RAM

location 1, and R2 is location 2, and so on, until memory location7, which belongs to R7 of

bank0. The second bank of registers R0-R7 starts at RAM location 08 and goes to location 0FH.

The third bank of R0-R7 starts at memory location 10H and goes to location 17H. Finally, RAM

locations 18H to 1FH are set aside for the fourth bank of R0-R7. Fig shows how the 32 bytes are

allocated into 4 banks.

As we can see from fig 1, the bank 1 uses the same RAM space as the stack. This is a

major problem in programming the 8051. we must either not use register bank1, or allocate

another area of RAM for the stack.

Default register bank

If RAM locations 00-1F are set aside for the four register banks, which register bank of

R0-R7 do we have access to when the 8051 is powered up? The answer is register bank 0; that

is , RAM locations 0, 1,2,3,4,5,6, and 7 are accessed with the names R0, R1, R2, R3, R4, R5, R6,

Page 28: Employee Login and Logout Management System With Rfid Docu

and R7 when programming the 8051. It is much easier to refer to these RAM locations with

names such as R0, R1 and so on, than by their memory locations as shown in fig 2.

The register banks are switched by using the D3 & D4 bits of register PSW.

FIG: RAM Allocation in the 8051

Page 29: Employee Login and Logout Management System With Rfid Docu

Fig: 8051 Register Banks and their RAM Addresses

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.

Page 30: Employee Login and Logout Management System With Rfid Docu

- 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.

Page 31: Employee Login and Logout Management System With Rfid Docu

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.

How stacks are accessed in the 8051

If the stack is a section of RAM, there must be registers inside the CPU to point to it.

The register used to access the stack is called the SP (Stack point) Register. The stack pointer in

the 8051 is only 8 bits wide; which means that it can take values of 00 to FFH. When the 8051 is

powered up, the SP register contains value 07. This means that RAM location 08 is the first

location used for the stack by the 8051. The storing of a CPU register in the stack is called a

PUSH, and pulling the contents off the stack back into a CPU register is called a POP. In other

words, a register is pushed onto the stack to save it and popped off the stack to retrieve it. The

job of the SP is very critical when push and pop actions are performed.

Pushing onto the stack

Page 32: Employee Login and Logout Management System With Rfid Docu

In the 8051 the stack pointer (SP) points to the last used location of the stack. As we

push data onto the stack, the stack pointer is incremented by one. Notice that this different from

many microprocessors, notably x86 processors in which the SP is decremented when data is

pushed onto the stack. As each PUSH is executed, the contents of the register are saved on the

stack and SP is incremented by 1. Notice that for every byte of data saved on the stack and then

SP is incremented only once. Notice also that to push the registers onto the stack we must use

their RAM addresses. For example, the instruction “PUSH” pushes register R1 onto the stack.

Popping from the stack

Popping the contents of the stack back into a given register is the opposite process of

pushing. With every pop, the top byte of the stack is copied to the register specified by the

instruction and the stack pointer is decremented once.

The upper limit of the stack

As, mentioned earlier, locations 08 to 1FH in the 8051 RAM can be used for the stack.

This is because locations 20-2FH of RAM are reserved for bit-addressable memory and must not

be used by the stack. If in a program we need more than 24 bytes (08 to 1FH=24bytes) of stack,

we can change the SP to point to RAM locations 30-7FH. This is done with the instruction

“MOV SP, #XX”.

P0, P1, P2, P3 - Input/Output Registers

In case that external memory and serial communication system are not in use then, 4 ports with

in total of 32 input-output lines are available to the user for connection to peripheral

environment. Each bit inside these ports corresponds to the appropriate pin on the

microcontroller. This means that logic state written to these ports appears as a voltage on the pin

Page 33: Employee Login and Logout Management System With Rfid Docu

(0 or 5 V). Naturally, while reading, the opposite occurs – voltage on some input pins is reflected

in the appropriate port bit.

The state of a port bit, besides being reflected in the pin, determines at the same time whether it

will be configured as input or output. If a bit is cleared (0), the pin will be configured as output.

In the same manner, if a bit is set to 1 the pin will be configured as input. After reset, as well as

when turning the microcontroller ON, all bits on these ports are set to one (1). This means that

the appropriate pins will be configured as inputs.

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.

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

Page 34: Employee Login and Logout Management System With Rfid Docu

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.

TIMER 1 REGISTERS

Page 35: Employee Login and Logout Management System With Rfid Docu

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.

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

Page 36: Employee Login and Logout Management System With Rfid Docu

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.

INTERRUPTSA single microcontroller can serve several devices. There are two ways to do that:

INTERRUPTS or POLLING.

POLLING:

In polling the microcontroller continuously monitors the status of a given device; when the status

condition is met, it performs the service .After that, it moves on to monitor the next device until

each one is serviced. Although polling can monitor the status of several devices and serve each

of them as certain condition are met.

Page 37: Employee Login and Logout Management System With Rfid Docu

INTERRUPTS:

In the interrupts method, whenever any device needs its service, the device

notifies the microcontroller by sending it an interrupts signal. Upon receiving an interrupt signal,

the microcontroller interrupts whatever it is doing and serves the device. The program associated

with the interrupts is called the interrupt service routine (ISR).or interrupt handler.

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.

INTERRUPT SERVICE ROUTINE

For every interrupt, there must be an interrupt service routine (ISR), or interrupt handler. When

an interrupt is invoked, the microcontroller runs the interrupts service routine. For every

interrupt, there is a fixed location in memory that holds the address of its ISR. The group of

memory location set aside to hold the addresses of ISR and is called the Interrupt Vector Table.

Shown below:

Page 38: Employee Login and Logout Management System With Rfid Docu

Interrupt Vector Table for the 8051:

S.No. INTERRUPT ROM LOCATION

(HEX)

PIN FLAG

CLEARING

1. Reset 0000 9 Auto

2. External

hardware

Interrupt 0

0003 P3.2 (12) Auto

3. Timers 0 interrupt (TF0)

000B Auto

4. External

hardware

Interrupt

1(INT1)

0013 P3.3 (13) Auto

5. Timers 1 interrupt (TF1)

001B Auto

6. Serial COM (RI and TI)

0023 Programmer clears it

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

Page 39: Employee Login and Logout Management System With Rfid Docu

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.

4. Serial communication has a single interrupt that belongs to both receive and transmit. The

interrupt vector table location 0023H belongs to this interrupt.

Notice that a limited number of bytes are set aside for each interrupt. For example, a total of 8

bytes from location 0003 to 000A is set aside for INT0, external hardware interrupt 0.similarly,a

total of 8 bytes from location 00BH to 0012H is reserved for TF0, Timer 0 interrupt. If the

service routine for a given interrupt is short enough to fit in the memory space allocated to it, it is

placed in the vector table; otherwise, and an LJMP instruction is placed in the vector table to

point to the address of the ISR. In that rest of the bytes allocated to that interrupt are unused.

From the above table also notice that only three bytes of ROM space are assigned to the reset

pin. they are ROM address location 0,1 and2.address location 3 belongs to external hardware

interrupt 0.for this reason, in our program we put the LJMP as the first instruction and redirect

the processor away from the interrupt vector table, as shown below

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).

Page 40: Employee Login and Logout Management System With Rfid Docu

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 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

EA -- ET2 ES ET1 EX1 ET0 EX0

Page 41: Employee Login and Logout Management System With Rfid Docu

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

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

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.

Page 42: Employee Login and Logout Management System With Rfid Docu

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.

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.

Page 43: Employee Login and Logout Management System With Rfid Docu

RS232 Standards

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

(Out of computer and exposed end of cable)

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)

Page 44: Employee Login and Logout Management System With Rfid Docu

6 Data set ready (DSR)

7 Request to send (RTS)

8 Clear to send (CTS)

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

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

Page 45: Employee Login and Logout Management System With Rfid Docu

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.

CONNECTING μC to PC using MAX 232

.

RFID READER

Active RFID and Passive RFID technologies, while often considered and evaluated

together, are fundamentally distinct technologies with substantially different capabilities. In most

cases, neither technology provides a complete solution for supply chain asset management

applications. Rather ,the most effective and complete supply chain solutions leverage the

advantages of each technology and combine their use in complementary ways. This need for

both technologies must be considered by RFID standards initiatives to effectively meet the

requirements of the user community.

RFID Reader Module, are also called as interrogators. They convert radio waves

Returned from the RFID tag into a form that can be passed on to Controllers, which can

Make use of it. RFID tags and readers have to be tuned to the same frequency in order to

Communicate. RFID systems use many different frequencies, but the most common and

Widely used & supported by our Reader is 125 KHz.

Page 46: Employee Login and Logout Management System With Rfid Docu

Functions

1. Supports reading of 64 Bit Manchester Encoded cards

2. Pins for External Antenna connection

3. Serial Interface (TTL)

4. Wiegand Interface also available

5. Customer application on request

Technical Data:

Frequency: 125 kHz

Read Range: up to 8 cm

Power supply: 5V DC ( ± 5 %)

Current consumption max. : 60 mA

Operating temperature: -20 ... +65° C

Storing temperature: -40 ... +75° C

Interface: RS232 (TTL), Wiegand and others (on Demand)

Dimensions (l x w x h) : 36 x 18 x 10 mm

Serial Interface Format: 9600Baud, No Parity, 8 Data bits, 1 Stop bit

Note: The TTL RS-232 Interface can not be connected directly to a PC COM port.

Therefore the signal must be converted to RS 232 level for PC connection.

Page 47: Employee Login and Logout Management System With Rfid Docu

This Firmware has the following Functions:

Read Tag-ID

Send Tag-ID in ASCII Format through the Serial/ Wiegand Interface.

Sequence starts with Tag ID follows from Carriage-Return/Line-Feed (0Dh 0Ah),

Example: '041201938C<CR><LF>’

Applications:

Our readers can be used for Access control, Time & Attendance, Vending machines,

Industrial and other applications where Reading the data from the Card only is required.

RFID 125 Reader Module Pin Diagram & Description:

PIN NO. SIGNAL DESCRIPTION

Pin No : 6 TxD Transmit data (TTL level) output from module to serial

interface

Pin No : 4 Wiegand DATA HIGH It will give DATA HIGH signal.

Page 48: Employee Login and Logout Management System With Rfid Docu

( available in Wiegand )

Pin No : 8 RxD Receive data (TTL level) input to the module from

serial interface

Pin No : 12 Buzzer (active low) Buzzer will buzz for 280 ms when tag is detected

Pin No : 13 LED ( active low) LED will glow for 280 ms when tag is detected

Pin No : 14 Wiegand DATA LOW

( available in Wiegand )

It will give DATA LOW signal.

Pin

No:27,28

Antenna Input Loop Antenna should be connected.

RTC:

Page 49: Employee Login and Logout Management System With Rfid Docu
Page 50: Employee Login and Logout Management System With Rfid Docu
Page 51: Employee Login and Logout Management System With Rfid Docu
Page 52: Employee Login and Logout Management System With Rfid Docu
Page 53: Employee Login and Logout Management System With Rfid Docu
Page 54: Employee Login and Logout Management System With Rfid Docu
Page 55: Employee Login and Logout Management System With Rfid Docu
Page 56: Employee Login and Logout Management System With Rfid Docu

MAX-232:

The MAX232 from Maxim was the first IC which in one package contains the necessary drivers (two) and receivers (also two), to adapt the RS-232 signal voltage levels to TTL logic. It became popular, because it just needs one voltage (+5V) and generates the necessary RS-232 voltage levels (approx. -10V and +10V) internally. This greatly simplified the design of circuitry. Circuitry designers no longer need to design and build a power supply with three voltages (e.g. -12V, +5V, and +12V), but could just provide one +5V power supply, e.g. with the help of a simple 78x05 voltage converter.

The MAX232 has a successor, the MAX232A. The ICs are almost identical, however, the MAX232A is much more often used (and easier to get) than the original MAX232, and the MAX232A only needs external capacitors 1/10th the capacity of what the original MAX232 needs.

It should be noted that the MAX 232(A) is just a driver/receiver. It does not generate the necessary RS-232 sequence of marks and spaces with the right timing, it does not decode the RS-232 signal, it does not provide a serial/parallel conversion. All it does is to convert signal voltage levels. Generating serial data with the right timing and decoding serial data has to be done by additional circuitry, e.g. by a 16550 UART or one of these small micro controllers (e.g. Atmel AVR, Microchip PIC) getting more and more popular.

The MAX232 and MAX232A were once rather expensive ICs, but today they are cheap. It has also helped that many companies now produce clones (ie. Sipex). These clones sometimes need different external circuitry, e.g. the capacities of the external capacitors vary. It is recommended to check the data sheet of the particular manufacturer of an IC instead of relying on Maxim's original data sheet.

The original manufacturer (and now some clone manufacturers, too) offers a large series of similar ICs, with different numbers of receivers and drivers, voltages, built-in or external capacitors, etc. E.g. The MAX232 and MAX232A need external capacitors for the internal voltage pump, while the MAX233 has these capacitors built-in. The MAX233 is also between three and ten times more expensive in electronic shops than the MAX232A because of its internal capacitors. It is also more difficult to get the MAX233 than the garden variety MAX232A.

A Typical Application

The MAX 232(A) has two receivers (converts from RS-232 to TTL voltage levels) and two drivers (converts from TTL logic to RS-232 voltage levels). This means only two of the RS-232 signals can be converted in each direction. The old MC1488/1498 combo provided four drivers and receivers.

Typically a pair of a driver/receiver of the MAX232 is used for

Page 57: Employee Login and Logout Management System With Rfid Docu

TX and RX

And the second one for

CTS and RTS.

There are not enough drivers/receivers in the MAX232 to also connect the DTR, DSR, and DCD signals. Usually these signals can be omitted when e.g. communicating with a PC's serial interface. If the DTE really requires these signals either a second MAX232 is needed, or some other IC from the MAX232 family can be used (if it can be found in consumer electronic shops at all). An alternative for DTR/DSR is also given below.

Maxim's data sheet explains the MAX232 family in great detail, including the pin configuration and how to connect such an IC to external circuitry. This information can be used as-is in own design to get a working RS-232 interface. Maxim's data just misses one critical piece of information: How exactly to connect the RS-232 signals to the IC. So here is one possible example:

MAX232 to RS232 DB9 Connection as a DCE

MAX232 Pin Nbr. MAX232 Pin Name Signal Voltage DB9 Pin

7 T2out CTS RS-232 7

8 R2in RTS RS-232 8

9 R2out RTS TTL n/a

10 T2in CTS TTL n/a

11 T1in TX TTL n/a

12 R1out RX TTL n/a

13 R1in TX RS-232 3

14 T1out RX RS-232 2

15 GND GND 0 5

In addition one can directly wire DTR (DB9 pin 4) to DSR (DB9 pin 6) without going through any circuitry. This gives automatic (brain dead) DSR acknowledgment of an incoming DTR signal.

Sometimes pin 6 of the MAX232 is hard wired to DCD (DB9 pin 1). This is not recommended. Pin 6 is the raw output of the voltage pump and inverter for the -10V voltage. Drawing currents from the pin leads to a rapid breakdown of the voltage, and as a consequence to a breakdown of

Page 58: Employee Login and Logout Management System With Rfid Docu

the output voltage of the two RS-232 drivers. It is better to use software which doesn't care about DCD, but does hardware-handshaking via CTS/RTS only.

The circuitry is completed by connecting five capacitors to the IC as it follows. The MAX232 needs 1.0µF capacitors, the MAX232A needs 0.1µF capacitors. MAX232 clones show similar differences. It is recommended to consult the corresponding data sheet. At least 16V capacitor types should be used. If electrolytic or tantalic capacitors are used, the polarity has to be observed. The first pin as listed in the following table is always where the plus pole of the capacitor should be connected to.

MAX232(A) external Capacitors

Capacitor + Pin - Pin Remark

C1 1 3

C2 4 5

C3 2 16

C4 GND 6This looks non-intuitive, but because pin 6 ison -10V, GND gets the + connector, and not the -

C5 16 GND

The 5V power supply is connected to

+5V: Pin 16 GND: Pin 15

Features

Meet or Exceed TIA/EIA-232-F and ITURecommendation V.28 Operate With Single 5-V Power Supply Operate Up to 120 kbit/s Two Drivers and Two Receivers 30-V Input Levels Low Supply Current . . . 8 mA Typical Designed to be Interchangeable WithMaxim MAX232 ESD Protection Exceeds JESD 22

2000-V Human-Body Model (A114-A)

Applications

Page 59: Employee Login and Logout Management System With Rfid Docu

TIA/EIA-232-FBattery-Powered SystemsTerminalsModemsComputers

Description/ordering information

The MAX232 is a dual driver/receiver that includes a capacitive voltage generator to supply EIA-232 voltage levels from a single 5-V supply. Each receiver converts EIA-232 inputs to 5-V TTL/CMOS levels. These receivers have a typical threshold of 1.3 V and a typical hysteresis of 0.5 V, and can accept 30-V inputs. Each driver converts TTL/CMOS input levels into EIA-232 levels. The driver, receiver, and voltage-generator functions are available as cells in the Texas Instruments Lin ASIClibrary.

Page 60: Employee Login and Logout Management System With Rfid Docu
Page 61: Employee Login and Logout Management System With Rfid Docu
Page 62: Employee Login and Logout Management System With Rfid Docu

LCD (Liquid Crystal Display)

Liquid crystal displays (LCD s) have materials which combine the properties of both

liquids and crystals. Rather than having a melting point, they have a temperature range within

which the molecules are almost as mobile as they would be in a liquid, but are grouped together

in an ordered form similar to a crystal.

An LCD consists of two glass panels, with the liquid crystal material sand witched in

between them. The inner surface of the glass plates are coated with transparent electrodes which

define the character, symbols or patterns to be displayed polymeric layers are present in between

the electrodes and the liquid crystal, which makes the liquid crystal molecules to maintain a

defined orientation angle.

One each polarisers are pasted outside the two glass panels. These polarisers would rotate

the light rays passing through them to a definite angle, in a particular direction

Page 63: Employee Login and Logout Management System With Rfid Docu

When the LCD is in the off state, light rays are rotated by the two polarisers and the

liquid crystal, such that the light rays come out of the LCD without any orientation, and hence

the LCD appears transparent.

When sufficient voltage is applied to the electrodes, the liquid crystal molecules would be

aligned in a specific direction. The light rays passing through the LCD would be rotated by the

polarisers, which would result in activating / highlighting the desired characters.

The LCD’s are lightweight with only a few millimeters thickness. Since the LCD’s

consume less power, they are compatible with low power electronic circuits, and can be powered

for long durations.

The LCD s won’t generate light and so light is needed to read the display. By using

backlighting, reading is possible in the dark. The LCD’s have long life and a wide operating

temperature range.

Changing the display size or the layout size is relatively simple which makes the LCD’s

more customer friendly.

The LCD s used exclusively in watches, calculators and measuring instruments is the

simple seven-segment displays, having a limited amount of numeric data. The recent advances in

technology have resulted in better legibility, more information displaying capability and a wider

temperature range. These have resulted in the LCD s being extensively used in

telecommunications and entertainment electronics. The LCD s has even started replacing the

cathode ray tubes (CRTs) used for the display of text and graphics, and also in small TV

applications.

LCD operation

In recent years the LCD is finding widespread use replacing LED s (seven-segment LED or other

multi segment LED s). This is due to the following reasons:

Page 64: Employee Login and Logout Management System With Rfid Docu

1. The declining prices of LCD s.

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

contract to LED s, which are limited to numbers and a few characters.

3. Incorporation of a refreshing controller into the LCD, there by relieving

the CPU of the task of refreshing the LCD. In the contrast, the LED must be refreshed

by the CPU to keep displaying the data.

4. Ease of programming for characters and graphics.

LCD pin description

The LCD discussed in this section has 14 pins. The function of each pin is given in table.

TABLE 1: Pin description for LCD:

Pin symbol I/O Description

1 Vss -- Ground

2 Vcc -- +5V power supply

3 VEE -- Power supply to

control contrast

4 RS I RS=0 to select

command register

RS=1 to select

data register

5 R/W I R/W=0 for write

R/W=1 for read

6 E I/O Enable

7 DB0 I/O The 8-bit data bus

8 DB1 I/O The 8-bit data bus

9 DB2 I/O The 8-bit data bus

10 DB3 I/O The 8-bit data bus

11 DB4 I/O The 8-bit data bus

Page 65: Employee Login and Logout Management System With Rfid Docu

12 DB5 I/O The 8-bit data bus

13 DB6 I/O The 8-bit data bus

14 DB7 I/O The 8-bit data bus

TABLE 2: LCD Command Codes

Code

(hex)

Command to LCD Instruction

Register

1 Clear display screen

2 Return home

4 Decrement cursor

6 Increment cursor

5 Shift display right

7 Shift display left

8 Display off, cursor off

A Display off, cursor on

C Display on, cursor off

E Display on, cursor on

F Display on, cursor blinking

10 Shift cursor position to left

14 Shift cursor position to right

18 Shift the entire display to the left

1C Shift the entire display to the right

80 Force cursor to beginning of 1st line

C0 Force cursor to beginning of 2nd line

38 2 lines and 5x7 matrix

Uses:

The LCDs used exclusively in watches, calculators and measuring instruments are the

simple seven-segment displays, having a limited amount of numeric data. The recent advances in

Page 66: Employee Login and Logout Management System With Rfid Docu

technology have resulted in better legibility, more information displaying capability and a wider

temperature range. These have resulted in the LCDs being extensively used in

telecommunications and entertainment electronics. The LCDs have even started replacing the

cathode ray tubes (CRTs) used for the display of text and graphics, and also in small TV

applications.

LCD INTERFACING

Sending commands and data to LCDs with a time delay:

To send any command from table 2 to the LCD, make pin RS=0. For data, make RS=1.Then

place a high to low pulse on the E pin to enable the internal latch of the LCD.

LINEAR KEYPAD

Page 67: Employee Login and Logout Management System With Rfid Docu

This section basically consists of a Linear Keypad. Basically a Keypad can be classified into 2

categories. One is Linear Keypad and the other is Matrix keypad.

1. Matrix Keypad.

2. Linear Keypad.

1. Matrix Keypad: This Keypad got keys arranged in the form of Rows and Columns. That

is why the name Matrix Keypad. According to this keypad, In order to find the key being

pressed the keypad need to be scanned by making rows as i/p and columns as output or

vice versa.

This Keypad is used in places where one needs to connect more no. of

keys with less no. of data lines.

2. Linear Keypad: This Keypad got ‘n’ no. of keys connected to ‘n’ data lines of

microcontroller.

This Keypad is used in places where one needs to connect less no. of keys.

Generally, in Linear Keypads one end of the switch is connected to Microcontroller

(Configured as i/p) and other end of the switch is connected to the common ground. So

whenever a key of Linear Keypad is pressed the logic on the microcontroller pin will go

LOW.

Here in this project, a linear keypad is used with switches connected in a serial manner.

Linear keypad is used in this project because it takes less no. of port pins. The Linear Keypad

with 4 Keys is shown below.

Page 68: Employee Login and Logout Management System With Rfid Docu

Circuit description:

In this project we required operating voltage for Microcontroller 89C51 is 5V. Hence the 5V D.C. power supply is needed for the IC’s. This regulated 5V is generated by stepping down the voltage from 230V to 18V now the step downed a.c voltage is being rectified by the Bridge Rectifier using 1N4007 diodes. 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 provides/allows us to have a Regulated constant Voltage which is of +5V. The rectified; filtered and regulated voltage is again filtered for ripples using an electrolytic capacitor 100μF. Now the

Page 69: Employee Login and Logout Management System With Rfid Docu

output from this section is fed to 40th pin of 89C51 microcontroller to supply operating voltage. The microcontroller 89C51 with Pull up resistors at Port0 and crystal oscillator of 11.0592 MHz crystal in conjunction with couple of 30-33pf capacitors is placed at 18 th & 19th pins of 89C51 to make it work (execute) properly. The project which is interfaced with RFID Reader to get the data from the RFID tag. The status will be displayed on the LCD with time which is interfaced to the microcontroller. Everyday entry and exit timings of the concerned person are stored in the PC.

SOFTWARE DESCRIPTION

ABOUT SOFTWARE

Software used:*Keil software for c programming

ABOUT KEIL SOFTWARE:

It is possible to create the source files in a text editor such as Notepad, run the Compiler on each C source file, specifying a list of controls, run the Assembler on each Assembler source file, specifying another list of controls, run either the Library Manager or Linker (again specifying a list of controls) and finally running the Object-HEX Converter to convert the Linker output file to an Intel Hex File. Once that has been completed the Hex File can be downloaded to the target hardware and debugged. Alternatively KEIL can be used to create source files; automatically compile, link and covert using options set with an easy to use user interface and finally simulate or perform debugging on the hardware with access to C variables and memory. Unless you have to use the tolls on the command line, the choice is clear. KEIL Greatly simplifies the process of creating and testing an embedded application.

Projects:

The user of KEIL centers on “projects”. A project is a list of all the source files required to build a single application, all the tool options which specify exactly how to build the application, and – if required – how the application should be simulated. A project contains enough information to take a set of source files and generate exactly the binary code required for the application. Because of the high degree of flexibility required from the tools, there are many options that can be set to configure the tools to operate in a specific manner. It would be tedious to have to set these options up every time the application is being built; therefore they are stored in a project file. Loading the project file into KEIL informs KEIL which source files are required, where they are, and how to configure the tools in the correct way. KEIL can then execute each tool with the correct options. It is also possible to create new projects in KEIL. Source files are added to the project and the tool options are set as required. The project can then

Page 70: Employee Login and Logout Management System With Rfid Docu

be saved to preserve the settings. The project is reloaded and the simulator or debugger started, all the desired windows are opened. KEIL project files have the extension Simulator/Debugger:

The simulator/ debugger in KEIL can perform a very detailed simulation of a micro controller along with external signals. It is possible to view the precise execution time of a single assembly instruction, or a single line of C code, all the way up to the entire application, simply by entering the crystal frequency. A window can be opened for each peripheral on the device, showing the state of the peripheral. This enables quick trouble shooting of mis-configured peripherals. Breakpoints may be set on either assembly instructions or lines of C code, and execution may be stepped through one instruction or C line at a time. The contents of all the memory areas may be viewed along with ability to find specific variables. In addition the registers may be viewed allowing a detailed view of what the microcontroller is doing at any point in time. The Keil Software 8051 development tools listed below are the programs you use to compile your C code, assemble your assembler source files, link your program together, create HEX files, and debug your target program. µVision2 for Windows™ Integrated Development Environment: combines Project Management, Source Code Editing, and Program Debugging in one powerful environment. C51 ANSI Optimizing C Cross Compiler: creates relocatable object modules from your C

source code, A51 Macro Assembler: creates relocatable object modules from your 8051

assembler source code, BL51 Linker/Locator: combines relocatable object modules created by the compiler and

assembler into the final absolute object module, LIB51 Library Manager: combines object modules into a library, which may be used by the

linker, OH51 Object-HEX Converter: creates Intel HEX files from absolute object modules.

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.

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.

Page 71: Employee Login and Logout Management System With Rfid Docu

MEASURE is a data acquisition system for analog and digital systems. TRAFFIC is a traffic light controller with the RTX Tiny operating system. SIEVE is the SIEVE Benchmark. DHRY is the Dhrystone Benchmark. WHETS is the Single-Precision Whetstone Benchmark.

Additional example programs not listed here are provided for each device architecture.

Building an Application in µVision2

To build (compile, assemble, and link) an application in µVision2, you must:1. Select Project -(forexample,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 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.Starting µVision2 and Creating a ProjectµVision2 is a standard Windows application and started by clicking on the program icon. To create a new project file select from the µVision2 menuProject – New Project…. This opens a standard Windows dialog that asks youfor the new project file name.We suggest that you use a separate folder for each project. You can simply usethe icon Create New Folder in this dialog to get a new empty folder. Thenselect this folder and enter the file name for the new project, i.e. Project1.µVision2 creates a new project file with the name PROJECT1.UV2 which containsa default target and file group name. You can see these names in the ProjectWindow – Files.Now use from the menu Project – Select Device for Target and select a CPU

Page 72: Employee Login and Logout Management System With Rfid Docu

for your project. The Select Device dialog box shows the µVision2 devicedatabase. Just select the micro controller you use. We are using for our examples the Philips 80C51RD+ CPU. This selection sets necessary tooloptions for the 80C51RD+ device and simplifies in this way the tool Configuration Building Projects and Creating a HEX FilesTypical, the tool settings under Options – Target are all you need to start a newapplication. You may translate all source files and line the application with aclick on the Build Target toolbar icon. When you build an application withsyntax errors, µVision2 will display errors and warning messages in the OutputWindow – Build page. A double click on a message line opens the source fileon the correct location in a µVision2 editor window.Once you have successfully generated your application you can start debugging.

After you have tested your application, it is required to create an Intel HEX file to download the software into an EPROM programmer or simulator. µVision2 creates HEX files with each build process when Create HEX files under Options for Target – Output is enabled. You may start your PROM programming utility after the make process when you specify the program under the option Run User Program #1.CPU Simulation:µVision2 simulates up to 16 Mbytes of memory from which areas can bemapped for read, write, or code execution access. The µVision2 simulator trapsand reports illegal memory accesses.In addition to memory mapping, the simulator also provides support for theIntegrated peripherals of the various 8051 derivatives. The on-chip peripheralsof the CPU you have selected are configured from the Device.Database selection:you have made when you create your project target. Refer to page 58 for moreInformation about selecting a device. You may select and display the on-chip peripheral components using the Debug menu. You can also change the aspects of each peripheral using the controls in the dialog boxes.Start Debugging:You start the debug mode of µVision2 with the Debug – Start/Stop DebugSession command. Depending on the Options for Target – DebugConfiguration, µVision2 will load the application program and run the startupcode µVision2 saves the editor screen layout and restores the screen layout of the last debug session. If the program execution stops, µVision2 opens aneditor window with the source text or shows CPU instructions in the disassembly window. The next executable statement is marked with a yellow arrow. During debugging, most editor features are still available. For example, you can use the find command or correct program errors. Program source text of your application is shown in the same windows. The µVision2 debug mode differs from the edit mode in the following aspects:_ The “Debug Menu and Debug Commands” described on page 28 areAvailable. The additional debug windows are discussed in the following._ The project structure or tool parameters cannot be modified. All buildCommands are disabled.

Page 73: Employee Login and Logout Management System With Rfid Docu

Disassembly WindowThe Disassembly window shows your target program as mixed source and assembly program or just assembly code. A trace history of previously executed instructions may be displayed with Debug – View Trace Records. To enable the trace history, set Debug – Enable/Disable Trace Recording. If you select the Disassembly Window as the active window all program step commands work on CPU instruction level rather than program source lines. You can select a text line and set or modify code breakpoints using toolbar buttons or the context menu commands. You may use the dialog Debug – Inline Assembly… to modify the CPU instructions. That allows you to correct mistakes or to make temporary changes to the target program you are debugging.

SOFTWARE COMPONENTS

About Keil

1. Click on the Keil u Vision Icon on Desktop

2. The following fig will appear

3. Click on the Project menu from the title bar

Page 74: Employee Login and Logout Management System With Rfid Docu

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

Page 75: Employee Login and Logout Management System With Rfid Docu

9. Select AT89C51 as shown below

10. Then Click on “OK”

11. The Following fig will appear

Page 76: Employee Login and Logout Management System With Rfid Docu

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.

Page 77: Employee Login and Logout Management System With Rfid Docu

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”

Page 78: Employee Login and Logout Management System With Rfid Docu

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.

Page 79: Employee Login and Logout Management System With Rfid Docu

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.

Page 80: Employee Login and Logout Management System With Rfid Docu

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.

Page 81: Employee Login and Logout Management System With Rfid Docu

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

30. You are running your program successfully

Embedded C:

What is an embedded system?

An embedded system is an application that contains at least one programmable computer

and which is used by individuals who are, in the main, unaware that the system is computer-

based.

Which programming language should you use?

Having decided to use an 8051 processor as the basis of your embedded system, the next key

decision that needs to be made is the choice of programming language. In order to identify a

suitable language for embedded systems, we might begin by making the following observations:

Computers (such as microcontroller, microprocessor or DSP chips) only accept

instructions in ‘machine code’ (‘object codes’). Machine code is, by definition, in the

Page 82: Employee Login and Logout Management System With Rfid Docu

language of the computer, rather than that of the programmer. Interpretation of the code

by the programmer is difficult and error prone.

All software, whether in assembly, C, C++, Java or Ada must ultimately be translated

into machine code in order to be executed by the computer.

Embedded processors – like the 8051 – have limited processor power and very limited

memory available: the language used must be efficient.

The language chosen should be in common use.

Summary of C language Features:

It is ‘mid-level’, with ‘high-level’ features (such as support for functions and modules), and

‘low-level’ features (such as good access to hardware via pointers).

It is very efficient.

It is popular and well understood.

Even desktop developers who have used only Java or C++ can soon understand C syntax.

Good, well-proven compilers are available for every embedded processor (8-bit to 32-bit

or more).

Conclusion

The project “EMPLOYEE LOGIN AND LOGOUT MANAGEMENT SYSTEM WITHRFID”has been successfully designed and tested.

Integrating features of all the hardware components used have developed it. 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 implement

Page 83: Employee Login and Logout Management System With Rfid Docu

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

Page 84: Employee Login and Logout Management System With Rfid Docu