wk 222mod doc

Upload: sasankchowdary-potluri

Post on 06-Apr-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/3/2019 Wk 222mod Doc

    1/110

    `

    EMBEDDED PREPAID ENERGY

    METER USING 89S52

    MICROCONTROLLER

    1

  • 8/3/2019 Wk 222mod Doc

    2/110

    `

    INDEX

    Technical Specifications 4

    Project Abstract 6

    Project Block Diagram 8

    CHAPTER 1: INTRODUCTION 11

    1.1Introduction 11

    CHAPTER 2: BLOCK DESCRIPTION 14

    2.1 Power Supply 15

    2.1.1 Transformer 15

    2.1.2 Rectifier 162.1.3 Filter 16

    2.1.4 Voltage Regulator 16

    CHAPTER 3: AT89S52 Microcontroller 17

    3.1 Features of AT89S52 Microcontroller 19

    3.2 Description 19

    3.3 Pin Description 22

    3.4 Machine Cycle 25

    3.5 ALE/PROG 26

    3.6 PSEN 26

    3.7 EA 26

    3.8 Ports 27

    3.9 Data Memory 29

    3.10 EEPROM 31

    CHAPTER 4: IMPORTANT TERMINOLOGY TO MEMORIES

    4.1 Memory Capacity 32

    4.2 Memory Organization 32

    4.3 Speed 32

    4.4 EEPROM 33

    4.5 Features Of EEPROM 33

    4.6 Description 35

    4.7 Signal Description 37

    4.8 Device Operation 38

    2

  • 8/3/2019 Wk 222mod Doc

    3/110

    `

    4.9 Minimizing Delays 43

    4.10 Read Operations 46

    4.11 Programming The Flash EEPROM 48

    4.12 Data Polling 49

    4.13 Ready/Busy 50

    4.14 Program Verify 50

    4.15 Chip Erase 50

    4.16 Serial Downloading 51

    4.17 Machine Cycle For 8052 52

    4.18 Relays 52

    4.19 Operation 53

    4.20 Transistor Driver Circuit 54

    4.21 RELAY INTERFACING WITH Uc 56

    CHAPTER 5: LIQUID CRYSTAL DISPLAY

    5.1 Pin Function 59

    5.2 Lcd Screen 60

    5.3 Lcd Basic Commands 61

    5.4 Lcd Initialisation 62

    5.5 Lcd Interfacing With The Uc 63

    5.6 Code(Command) 65

    5.7 Code(Data) 66

    5.8 Switch Interfacing With The uC 67

    5.9 Trigger Card 68

    5.10 Slots For Recharge 68

    5.11 Load Banks 68

    5.12 Energy Meter 68

    5.13 ADE7757 69

    5.14 Design Calculations 70

    CHAPTER 6: POWER SUPPLY

    6.1 Transformer 73

    6.2 Rectifier 73

    6.3 Filter 76

    6.4 Voltage Regulator 76

    3

  • 8/3/2019 Wk 222mod Doc

    4/110

    `

    CHAPTER 7: SOFTWARE TOOLS

    7.1 Keil Software 79

    7.2 Steps To Write Programming 79

    7.3 Proload 81

    7.4 Advantages 82

    7.5 Applications 82

    RESULT 85

    CONCLUSION 87

    REFERENCES 89

    APPENDIX 90

    LIST OF FIGURES

    FIGURE NO. DESCRIPTION PAGE NO.

    1 Block Diagram 10

    2 Recharging Unit 11

    3 Power Supply Section 15

    3.2 Pin Diagram 203.2.1 Architechture 21

    4

  • 8/3/2019 Wk 222mod Doc

    5/110

    `

    3.3. Oscillator Connection 22

    3.3.4 External Clock Drive Configuration 23

    4.1.1 DIP Pin Connection 34

    4.1.2 SO Pin Connection 34

    4.5 Logic Diagram 35

    4.7 Memory Protection 37

    4.8 I2C Protocol 39

    4.8.1 Ac Wave Form 41

    4.9.1 Write Cycle Polling Using ACK 44

    4.9.2 Write Mode Sequence 45

    4.10 Read Mode Sequence 47

    4.18 Circuit Symbol Of Relay 53

    4.20 Relay Operation And Using Diodes 53

    4.21 Transistor Driver Circuit 55

    4.22 Relay Interface 56

    5.2 Lcd Screen 60

    5.4 Procedure For 8 Bit Initialization 63

    5.8 Switch Interfacing 67

    5.13 Energy Meter 69

    6.0 Power Supply 72

    6.1 Transformer 73

    6.2 Rectifier 73

    6.3 Expected Wave Form 75

    LIST OF TABLES

    TABLE NO. DESCRIPTION PAGE NO.

    3.3 Port 3 Alternate Functions 25

    3.4 Port 1 Alternate Functions 28

    3.8 Port 3 Functions 29

    3.9 Mcon Register Functions 31

    4.1 Signal Names 34

    4.6.1 Device Select Modes 36

    4.6.2 Operating Modes 36

    5.1 Pin Functions 60

    5

  • 8/3/2019 Wk 222mod Doc

    6/110

    `

    6

  • 8/3/2019 Wk 222mod Doc

    7/110

    `

    T ECHNICAL SPECIFICATIONS

    Title of the project : EMBEDDED PREPAID ENERGY METER

    Domain : Energy calculation, Embedded Design,

    Energy System

    Software : Embedded C, Keil, Proload

    Microcontroller : AT89S52

    Power Supply : +5V, 750mA Regulated Power Supply

    Display : 16 X 2 Alphanumeric LCD

    Crystal : 11.0592MHz

    Applications : Emergency lighting, water heaters,

    Industrial applications

    7

  • 8/3/2019 Wk 222mod Doc

    8/110

    `

    ABSTRACT

    8

  • 8/3/2019 Wk 222mod Doc

    9/110

    `

    ABSTRACT

    Embedded Prepaid Energy Meter using 89S52

    Microcontroller

    Due to the drastic changes in technology in the last decade, so many

    advancements were introduced in electricity departments. The electricity bill can be

    paid now through E-Seva centers, Net-banking and even through mobile phones. But

    prepaid electricity is a unique and new concept which saves lot of time and a power

    for electricity department. In this system the user has to purchase an EEPROM based

    recharge card and it should be inserted in the slot provided on prepaid energy meter

    kit.

    After inserting the recharge card into the system, the user should

    press RECHARGE key to start recharge. Then the system will be loaded with specific

    units as per the recharge card value. A 16X2 LCD is provided to read units available.

    Here the system is connected with three to four loads. If the load increases in the

    system, current also increases and is calculated by an ADC . Whenever the count

    value reaches one thousand, 1unit is decremented from EEPROM and these values are

    displayed on LCD.

    An EEPROM is provided on the board to store the updated recharge

    units and energy meter pulse count. At every instant the count value and units values

    are stored in EEPROM so that the data will not be lost even in power failure cases.

    When the unit become zero on power consumption, the system shutdown all the

    loads connected to it by giving a continuous beep sound.

    Now the user has to place this recharge card in slot

    provided to recharge. After pressing the recharge key, the system will be loaded with

    the units corresponding to that recharge value. After successful recharge, the load

    automatically gets ON.

    This system uses 5V regulated power supply for the microcontroller and ADC

    unit and 18V supply for the load. This is provided by the 18V, 2Amp transformer.

    Recharging unit also requires regulated 5V supply, which is provided by a separate

    18V and 750mA transformer. Hence this project provides a best solution for the users

    to know how much amount of power is consumed in their day- to- day life and also

    the amount of power consumed is also under the user control.

    9

  • 8/3/2019 Wk 222mod Doc

    10/110

    `

    BLOCK DIAGRAM

    Block Diagram

    10

  • 8/3/2019 Wk 222mod Doc

    11/110

    `

    RECHARGING UNIT:

    11

    Power supply to all sections

    Step

    down

    T/F

    Bridge

    Rectifier

    Filter

    CircuitRegulator

    Load Bank

    Energy

    Meter

    16 X 2LCD

    8

    9

    s

    5

    2

    EEPROM

    RELAY

    Trigger card

  • 8/3/2019 Wk 222mod Doc

    12/110

    `

    POWER SUPPLY SECTION:

    I/P 18V O/P 5V

    DC

    12

    POWER

    SUPPLY

    RESET

    CRYSTAL

    ATMEL

    89S52

    SLOT FOR

    RECHARGE

    BRIDGE

    RECTFIER

    FILTERING

    UNIT

    7805

    VOLTAGE

    REGULATOR

  • 8/3/2019 Wk 222mod Doc

    13/110

    `

    INTRODUCTION

    13

  • 8/3/2019 Wk 222mod Doc

    14/110

    `

    CHAPTER 1

    INTRODUCTION

    An embedded system is a combination of software and hardware to perform a

    dedicated task.

    Some of the main devices used in embedded products are Microprocessors and

    Microcontrollers.

    Microprocessors are commonly referred to as general purpose processors as

    they simply accept the inputs, process it and give the output.

    In contrast, a microcontroller not only accepts the data as inputs but also

    manipulates it, interfaces the data with various devices, controls the data and thus

    finally gives the result.

    As everyone in this competitive world prefers to make the things easy and

    simple to handle, this project sets an example to some extent.

    This project enables the user to consume the electricity based on the prepaid

    recharge card he gets from the electrical department. The information such as the total

    number of units available in the card will be displayed on the LCD. Thus accordingly,

    the user has to consume the power and if the units are totally completed, he has to go

    for another recharge card.

    14

  • 8/3/2019 Wk 222mod Doc

    15/110

    `

    EXPLANATION OF EACH

    BLOCK

    15

  • 8/3/2019 Wk 222mod Doc

    16/110

    `

    CHAPTER 2

    BLOCK DESCRIPTION

    2.1 POWER SUPPLY:

    The input to the circuit is applied from the regulated power supply. The a.c.

    input i.e., 230V from the mains supply is step down by the transformer to 12V and is

    fed to a rectifier. The output obtained from the rectifier is a pulsating d.c voltage. So

    in order to get a pure d.c voltage, the output voltage from the rectifier is fed to a filter

    to remove any a.c components present even after rectification. Now, this voltage is

    given to a voltage regulator to obtain a pure constant dc voltage.

    Fig: 2.1 Power supply

    2.1.1 Transformer:

    Usually, DC voltages are required to operate various electronic equipment and

    these voltages are 5V, 9V or 12V. But these voltages cannot be obtained directly.

    Thus the a.c input available at the mains supply i.e., 230V is to be brought down to

    the required voltage level. This is done by a transformer. Thus, a step down

    transformer is employed to decrease the voltage to a required level.

    16

    RegulatorFilterBridge

    Rectifier

    Step down

    transformer

    230V AC

    50Hz D.C

    Output

  • 8/3/2019 Wk 222mod Doc

    17/110

    `

    2.1.2 Rectifier:

    The output from the transformer is fed to the rectifier. It converts A.C. into

    pulsating D.C. The rectifier may be a half wave or a full wave rectifier. In this project,

    a bridge rectifier is used because of its merits like good stability and full wave

    rectification.

    2.1.3 Filter:

    Capacitive filter is used in this project. It removes the ripples from the output

    of rectifier and smoothens the D.C. Output received from this filter is constant until

    the mains voltage and load is maintained constant. However, if either of the two is

    varied, D.C. voltage received at this point changes. Therefore a regulator is applied at

    the output stage.

    2.1.4 Voltage regulator:

    As the name itself implies, it regulates the input applied to it. A voltage

    regulator is an electrical regulator designed to automatically maintain a constant

    voltage level. In this project, power supply of 5V and 12V are required. In order to

    obtain these voltage levels, 7805 and 7812 voltage regulators are to be used. The first

    number 78 represents positive supply and the numbers 05, 12 represent the required

    output voltage levels.

    17

  • 8/3/2019 Wk 222mod Doc

    18/110

    `

    AT89S52 MICROCONTROLLER

    18

  • 8/3/2019 Wk 222mod Doc

    19/110

    `

    CHAPTER 3

    MICROCONTROLLERS

    Microprocessors and microcontrollers are widely used in embedded

    systems products. Microcontroller is a programmable device. A microcontroller has a

    CPU in addition to a fixed amount of RAM, ROM, I/O ports and a timer embedded

    all on a single chip. The fixed amount of on-chip ROM, RAM and number of I/O

    ports in microcontrollers makes them ideal for many applications in which cost and

    space are critical.

    The Intel 8052 is Harvard architecture, single chip microcontroller (C) which

    was developed by Intel in 1980 for use in embedded systems. It was popular in the

    1980s and early 1990s, but today it has largely been superseded by a vast range of

    enhanced devices with 8052-compatible processor cores that are manufactured by

    more than 20 independent manufacturers including Atmel, Infineon Technologies and

    Maxim Integrated Products.

    8052 is an 8-bit processor, meaning that the CPU can work on only 8 bits of

    data at a time. Data larger than 8 bits has to be broken into 8-bit pieces to be

    processed by the CPU. 8052 is available in different memory types such as UV-

    EPROM, Flash and NV-RAM.

    The present project is implemented on Keil Uvision. In order to program the

    device, proload tool has been used to burn the program onto the microcontroller.

    The features, pin description of the microcontroller and the software tools used

    are discussed in the following sections.

    19

  • 8/3/2019 Wk 222mod Doc

    20/110

    `

    3.1 FEATURES OF AT89S52:

    4K Bytes of Re-programmable Flash Memory.

    RAM is 128 bytes.

    2.7V to 6V Operating Range.

    Fully Static Operation: 0 Hz to 24 MHz.

    Two-level Program Memory Lock.

    128 x 8-bit Internal RAM.

    32 Programmable I/O Lines.

    Two 16-bit Timer/Counters.

    Six Interrupt Sources.

    Programmable Serial UART Channel.

    Low-power Idle and Power-down Modes.

    3.2 Description:

    The AT89S52 is a low-voltage, high-performance CMOS 8-bit microcomputer

    with 4K bytes of Flash programmable memory. The device is manufactured using

    Atmels high-density nonvolatile memory technology and is compatible with the

    industry-standard MCS-51 instruction set. 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.

    In addition, the AT89S52 is designed with static logic for operation down to

    zero frequency and supports two software selectable power saving modes. The Idle

    Mode stops the CPU while allowing the RAM, timer/counters, serial port and

    interrupt system to continue functioning. The power-down mode saves the RAM

    contents but freezes the oscillator disabling all other chip functions until the next

    hardware reset.

    20

  • 8/3/2019 Wk 222mod Doc

    21/110

    `

    Fig: 3.2.Pin

    diagram

    21

  • 8/3/2019 Wk 222mod Doc

    22/110

    `

    Fig: 3.2.1 Architechture

    3.3PIN DESCRIPTION:

    3.3.1 Vcc:

    22

  • 8/3/2019 Wk 222mod Doc

    23/110

    `

    Pin 40 provides supply voltage to the chip. The voltage source is +5V.

    3.3.2 GND:

    Pin 20 is the ground.

    3.3.3 XTAL1 and XTAL2:

    XTAL1 and XTAL2 are the input and output, respectively, of an inverting

    amplifier that can be configured for use as an on-chip oscillator, as shown in Figure

    11. 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 the below figure. There are no requirements on the duty cycle of the

    external clock signal, since the input to the internal clocking circuitry is through a

    divide-by-two flip-flop, but minimum and maximum voltage high and low time

    specifications must be observed.

    Fig: 3.3.3 Oscillator Connections

    C1, C2 = 30 pF 10 pF for Crystals

    = 40 pF 10 pF for Ceramic Resonators

    23

  • 8/3/2019 Wk 222mod Doc

    24/110

    `

    Fig: 3.3.4 External Clock Drive Configuration

    3.3.4 RESET:

    Pin9 is the reset pin. It is an input and is active high. Upon applying a high pulse to

    this pin, the microcontroller will reset and terminate all the activities. This is often

    referred to as a power-on reset.

    3.3.5 EA (External access):

    Pin 31 is EA. It is an active low signal. It is an input pin and must be connected to

    either Vcc or GND but it cannot be left unconnected.

    The 8052 family members all come with on-chip ROM to store programs. In

    such cases, the EA pin is connected to Vcc. If the code is stored on an external ROM,

    the EA pin must be connected to GND to indicate that the code is stored externally.

    24

  • 8/3/2019 Wk 222mod Doc

    25/110

    `

    3.3.6 PSEN (Program store enable):

    This is an output pin.

    3.3.7 ALE (Address latch enable):

    This is an output pin and is active high.

    3.3.8 Ports 0, 1, 2 and 3:

    The four ports P0, P1, P2 and P3 each use 8 pins, making them 8-bit ports.

    All the ports upon RESET are configured as input, since P0-P3 have value FFH on

    them.

    Port 0(P0):

    Port 0 is also designated as AD0-AD7, allowing it to be used for both address

    and data. ALE indicates if P0 has address or data. When ALE=0, it provides data D0-

    D7, but when ALE=1, it has address A0-A7. Therefore, ALE is used for

    demultiplexing address and data with the help of an internal latch.

    When there is no external memory connection, the pins of P0 must be

    connected to a 10K-ohm pull-up resistor. This is due to the fact that P0 is an open

    drain. With external pull-up resistors connected to P0, it can be used as a simple I/O,

    just like P1 and P2. But the ports P1, P2 and P3 do not need any pull-up resistors

    since they already have pull-up resistors internally. Upon reset, ports P1, P2 and P3

    are configured as input ports.

    Port 1 and Port 2:

    With no external memory connection, both P1 and P2 are used as simple I/O. With

    external memory connections, port 2 must be used along with P0 to provide the 16-bit

    address for the external memory. Port 2 is designated as A8-A15 indicating its dual

    function. While P0 provides the lower 8 bits via A0-A7, it is the job of P2 to provide

    bits A8-A15 of the address.

    25

  • 8/3/2019 Wk 222mod Doc

    26/110

    `

    Port 3:

    Port 3 occupies a total of 8 pins, pins 10 through 17. It can be used as input or

    output. P3 does not need any pull-up resistors, the same as port 1 and port 2. Port 3

    has an additional function of providing some extremely important signals such as

    interrupts.

    Table: 3.3 Port 3 Alternate Functions

    3.4 Machine cycle for the 8052:

    The CPU takes a certain number of clock cycles to execute an instruction. In

    the 8052 family, these clock cycles are referred to as machine cycles. The length of

    the machine cycle depends on the frequency of the crystal oscillator. The crystal

    oscillator, along with on-chip circuitry, provides the clock source for the 8052 CPU.

    The frequency can vary from 4 MHz to 30 MHz, depending upon the chip

    rating and manufacturer. But the exact frequency of 11.0592 MHz crystal oscillator is

    used to make the 8052 based system compatible with the serial port of the IBM PC.

    In the original version of 8052, one machine cycle lasts 12 oscillator periods.

    Therefore, to calculate the machine cycle for the 8052, the calculation is made as 1/12

    of the crystal frequency and its inverse is taken.

    The assembly language program is written and this program has to be dumped

    into the microcontroller for the hardware kit to function according to the software.

    The program dumped in the microcontroller is stored in the Flash memory in the

    26

  • 8/3/2019 Wk 222mod Doc

    27/110

    `

    microcontroller. Before that, this Flash memory has to be programmed and is

    discussed in the next section.

    3.5 ALE/PROG:

    Address Latch Enable is an 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/6 the oscillator frequency and may be used for external timing or

    clocking purposes. If desired, ALE operation can be disabled by setting bit 0 of SFR

    location 8EH. With the bit set, ALE is active only during a MOVX or MOVC

    instruction. Otherwise, the pin is weakly pulled high. Setting the ALE-disable bit has

    no effect if the microcontroller is in external execution mode.

    3.6 PSEN (Program Store Enable):

    It is the read strobe to external program memory. When the AT89S8252 is

    executing code from external program memory, PSEN is acti-vated twice each

    machine cycle, except that two PSEN activations are skipped during each access to

    external data memory.

    3.7 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 when 12-volt

    programming is selected.

    3.8 Ports 0, 1, 2 and 3:

    The four ports P0, P1, P2 and P3 each use 8 pins, making them 8-bit ports. All the

    ports upon RESET are configured as input, since P0-P3 have value FFH on them.

    Port 0(P0):

    Port 0 is also designated as AD0-AD7, allowing it to be used for both address and

    data. ALE indicates if P0 has address or data. When ALE=0, it provides data D0-D7,

    27

  • 8/3/2019 Wk 222mod Doc

    28/110

    `

    but when ALE=1, it has address A0-A7. Therefore, ALE is used for demultiplexing

    address and data with the help of an internal latch.

    When there is no external memory connection, the pins of P0 must be

    connected to a 10K-ohm pull-up resistor. This is due to the fact that P0 is an open

    drain. With external pull-up resistors connected to P0, it can be used as a simple I/O,

    just like P1 and P2. But the ports P1, P2 and P3 do not need any pull-up resistors

    since they already have pull-up resistors internally. Upon reset, ports P1, P2 and P3

    are configured as input ports.

    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 because of the internal

    pull-ups.

    Some Port 1 pins provide additional functions. P1.0 and P1.1 can be

    configured to be the timer/counter 2 external count input (P1.0/T2) and the

    timer/counter 2 trigger input (P1.1/T2EX), respectively. Furthermore, P1.4, P1.5,

    P1.6, and P1.7 can be configured as the SPI slave port select, data input/output and

    shift clock input/output pins. Port 1 also receives the low-order address bytes during

    Flash programming and verification.

    Table: 3.4 Port1 Alternate functions

    Programmable Clock Out:

    28

  • 8/3/2019 Wk 222mod Doc

    29/110

    `

    A 50% duty cycle clock can be programmed to come out on P1.0. This pin,

    besides being a regular I/0 pin, has two alternate functions. It can be programmed to

    input the external clock for Timer/Counter 2 or to output a 50% duty cycle clock

    ranging from 61 Hz to 4 MHz (for a 16-MHz operating frequency).

    Port 2:

    With no external memory connection, P2 are used as simple I/O. With

    external memory connections, port 2 must be used along with P0 to provide the 16-bit

    address for the external memory. Port 2 is designated as A8-A15 indicating its dual

    function. While P0 provides the lower 8 bits via A0-A7, it is the job of P2 to provide

    bits A8-A15 of the address.

    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 because of the pull-ups.

    Port 3 receives some control signals for Flash programming and verification.

    Port 3 also serves the functions of various special features of the AT89S8252,

    as shown in the following table.

    Table: 3.8 Port 3 Alternate functions

    29

  • 8/3/2019 Wk 222mod Doc

    30/110

    `

    3.9 Data Memory EEPROM and RAM:

    The AT89S8252 implements 2K bytes of on-chip EEPROM for data storage

    and 256 bytes of RAM. The upper 128 bytes of RAM occupy a parallel space to the

    Special Function Registers i.e., the upper 128 bytes have the same addresses as the

    SFR space but are physically separate from SFR space.

    When an instruction accesses an internal location above address 7FH, the

    address mode used in the instruction specifies whether the CPU accesses the upper

    128 bytes of RAM or the SFR space.

    Instructions that use direct addressing access SFR space. For example, the

    following direct addressing instruction accesses the SFR at location 0A0H (which is

    P2).

    MOV 0A0H, #data

    Instructions that use indirect addressing access the upper 128 bytes of RAM.

    For example, the following indirect addressing instruction, where R0 contains 0A0H,

    accesses the data byte at address 0A0H, rather than P2 (whose address is 0A0H).

    MOV @R0, #data

    It should be noted that stack operations are examples of indirect addressing, sothe upper 128 bytes of data RAM are available as stack space.

    The on-chip EEPROM data memory is selected by setting the EEMEN bit in

    the WMCON register at SFR address location 96H. The EEPROM address range is

    from 000H to 7FFH. The MOVX instructions are used to access the EEPROM. To

    access off-chip data memory with the MOVX instructions, the EEMEN bit needs to

    be set to 0.

    30

  • 8/3/2019 Wk 222mod Doc

    31/110

    `

    MCON REGISTER

    PS

    2

    PS1

    PS

    0

    EEM

    WE

    EEM

    EN

    DP

    S

    RDY/

    BSY

    WDT

    EN

    7

    6

    5

    4 3

    2

    1 0

    The EEMEN and EEMWE bits are used to select the 2K bytes on-chip

    EEPROM, and to enable byte-write. The DPS bit selects one of two DPTR registers

    available.

    Symbol Function

    PS2

    PS1

    PS0

    Prescaler Bits. When all three bits are set to 0, the timer has a

    nominal period of 16 ms. When all three bits are set to 1; the nominal

    period is 2048 ms. These bits are used for watchdog timer.

    EEMWE EEPROM Data Memory Write Enable Bit. Set this bit to 1 before

    initiating byte write to on-chip EEPROM with the MOVX instruction.

    User software should set this bit to 0 after EEPROM write is

    completed.EEMEN Internal EEPROM Access Enable. When EEMEN = 1, the MOVX

    instruction with DPTR will access on-chip EEPROM instead of external

    data memory. When EEMEN = 0, MOVX with DPTR accesses external

    data memory.

    DPS Data Pointer Register Select. DPS = 0 selects the first bank of Data

    Pointer Register, DP0, and DPS = 1 selects the second bank, DP1

    RDY/BSY RDY/BSY = 1 means that the EEPROM is ready to be programmed.

    While programming operations are being executed, the RDY/BSY bitequals 0 and is automatically reset to 1 when programming is

    completed.

    WDTEN Used for Watchdog timer

    Table: 3.9 MCON Register functions

    3.10 EEPROM:

    In the design of all microprocessors-based systems, semiconductor memories

    are used as primary storage for code and data. Semiconductor memories are

    31

  • 8/3/2019 Wk 222mod Doc

    32/110

    `

    connected directly to the CPU and they are the memory that the CPU first asks for

    information (code and data). For this reason, semiconductor memories are sometimes

    referred to as primary memory.

    CHAPTER 4

    IMPORTANT TERMINOLOGY COMMON TO ALL

    SEMICONDUCTOR MEMORIES:

    4.1 Memory capacity:

    The number of bits that a semiconductor memory chip can store is called chip

    capacity. It can be in units of Kilobits, Megabits and so on. This must be distinguished

    from the storage capacity of computer system. While the memory capacity of a

    memory IC chip is always given in bits, the memory capacity of a computer system is

    given in bytes.

    4.2 Memory organization:

    Memory chips are organized into a number of locations within the IC. Each location

    can hold 1 bit, 4 bits, 8 bits or even 16 bits, depending on how it is designed

    internally. The number of bits that each location within the memory chip can hold is

    always equal to the number of data pins on the chip. i.e., the total number of bits that a

    32

  • 8/3/2019 Wk 222mod Doc

    33/110

    `

    memory chip can store is equal to the number of locations times the number of data

    bits per location.

    4.3 Speed:

    One of the most important characteristics of a memory chip is the speed at

    which its data can be accessed. The speed of the memory chip is commonly referred

    to as its access time. The access time of memory chip varies from a few nanoseconds

    to hundreds of nanoseconds, depending on the IC technology used in the design and

    fabrication process.

    The different types of memories are RAM, ROM, EPROM and EEPROM.

    RAM and ROM are inbuilt in the microprocessor.

    This project requires the data such as the total number of available units and

    the pulse count to be stored permanently and this data modifies upon the power

    consumption. Thus this data has to be stored in such a location where it cannot be

    erased when power fails and also the data should be allowed to make changes in it

    without the system interface i.e., there should be a provision in such a way that thedata should be accessed (or modified) while it is in system board but not external

    erasure and programming.

    The flash memory inbuilt in the microcontroller can erase the entire contents

    in less than a second and the erasure method is electrical. But the major drawback of

    Flash memory is that when flash memorys contents are erased, the entire device will

    be erased but not a desired section or byte.

    For this purpose, we prefer EEPROM in our project.

    4.4EEPROM (Electrically Erasable Programmable Read only

    memory):

    EEPROM has several advantages over other memory devices, such as the fact

    that its method of erasure is electrical and therefore instant. In addition, in EEPROM

    one can select which byte to be erased, in contrast to flash , in which the entire

    33

  • 8/3/2019 Wk 222mod Doc

    34/110

    `

    contents of ROM are erased. The main advantage of EEPROM is that one can

    program and erase its contents while it is in system board. It does not require physical

    removal of the memory chip from its socket. In general, the cost per bit for EEPROM

    is much higher when compared to other devices.

    The EEPROM used in this project is 24C04 type.

    4.5 Features of 24C04 EEPROM:

    1 million erase/write cycles with 40 years data retention.

    Single supply voltage.

    3v to 5.5v for st24x04 versions.

    2.5v to 5.5v for st25x04 versions.

    Hardware write control versions.

    St24w04 and st25w04 versions.

    Programmable write protection.

    Two wire serial interface, fully i2c bus compatible.

    Byte and multibyte write (up to 4 bytes).

    Page write (up to 8 bytes).

    Byte, random and sequential read modes

    Self timed programming cycle

    Automatic address incrementing

    Enhanced ESD/Latch up performances

    Fig:4.1.1 DIP Pin Connections fig:4.1.2 SO Pin Connection

    34

  • 8/3/2019 Wk 222mod Doc

    35/110

    `

    Table :4.1 Signal Names

    Fig: 4.5Logic Diagram

    4.6 DESCRIPTION:

    The 24C04 is a 4Kbit electrically erasable programmable memory

    (EEPROM), organized as 2 blocks of 256 x8 bits. They are manufactured in ST

    Microelectronics Hi-Endurance Advanced CMOS technology which guarantees an

    endurance of one million erase/write cycles with a data retention of 40 years. Both

    35

  • 8/3/2019 Wk 222mod Doc

    36/110

    `

    Plastic Dual-in-Line and Plastic Small Outline packages are available. The memories

    are compatible with the I2C standard, two wire serial interface which uses a bi-

    directional data bus and serial clock. The memories carry a built-in 4 bit, unique

    device identification code (1010) corresponding to the I2C bus definition. This is used

    together with 2 chip enable inputs (E2, E1) so that up to 4 x 4K devices may be

    attached to the I2C bus and selected individually. The memories behave as a slave

    device in the I2C protocol with all memory operations synchronized by the serial

    clock. Read and write operations are initiated by a START condition generated by the

    bus master. The START condition is followed by a stream of 7 bits (identification

    code 1010), plus one read/write bit and terminated by an acknowledge bit.

    Table: 4.6.1 Device Select Mode

    Table:4.6.2 Operating Modes

    When writing data to the memory it responds to the 8 bits received by

    asserting an acknowledge bit during the 9th bit time. When data is read by the bus

    36

  • 8/3/2019 Wk 222mod Doc

    37/110

    `

    master, it acknowledges the receipt of the data bytes in the same way. Data transfers

    are terminated with a STOP condition.

    4.6.1 Power on Reset: VCC locks out write protect :

    In order to prevent data corruption and inadvertent write operations during

    power up, a Power on Reset (POR) circuit is implemented. Until the VCC voltage has

    reached the POR threshold value, the internal reset is active, all operations are

    disabled and the device will not respond to any command. In the same way, when

    VCC drops down from the operating voltage to below the POR threshold value, all

    operations are disabled and the device will not respond to any command. A stable

    VCC must be applied before applying any logic signal.

    4.7 SIGNAL DESCRIPTIONS:

    Serial Clock (SCL):

    The SCL input pin is used to synchronize all data in and out of the memory.

    A resistor can be connected from the SCL line to VCC to act as a pull up.

    Serial Data (SDA):

    The SDA pin is bi-directional and is used to transfer data in or out of the

    memory. It is an open drain output that may be wire-ORed with other open drain or

    open collector signals on the bus. A resistor must be connected from the SDA bus line

    to VCC to act as pull up.

    Chip Enable (E1 - E2):

    These chip enable inputs are used to set the 2 least significant bits (b2, b3) of

    the 7 bit device select code. These inputs may be driven dynamically or tied to VCC

    or VSS to establish the device select code.

    Protect Enable (PRE):

    The PRE input pin, in addition to the status of the Block Address Pointer bit

    (b2, location 1FFh as in below figure), sets the PRE write protection active.

    37

  • 8/3/2019 Wk 222mod Doc

    38/110

    `

    Fig: 7.1 Memory Protection

    Mode (MODE):

    The MODE input is available on pin 7 and may be driven dynamically. It must

    be at VIL or VIH for the Byte Write mode, VIH for Multibyte Write mode or VIL for

    Page Write mode. When unconnected, the MODE input is internally read as VIH

    (Multibyte Write mode).

    Write Control (WC):

    An hardware Write Control feature (WC) is offered only for ST24W04 and

    ST25W04 versions on pin 7. This feature is useful to protect the contents of the

    memory from any erroneous erase/write cycle. The Write Control signal is used to

    enable (WC = VIH) or disable (WC =VIL) the internal write protection. When

    unconnected, the WC input is internally read as VIL and the memory area is not write

    protected.

    4.8 DEVICE OPERATION:

    I2C Bus Background:

    The ST24/25x04 supports the I2C protocol. This protocol defines any devicethat sends data onto the bus as a transmitter and any device that reads the data as a

    receiver. The device that controls the data transfer is known as the master and the

    other as the slave. The master will always initiate a data transfer and will provide the

    serial clock for synchronization.

    38

  • 8/3/2019 Wk 222mod Doc

    39/110

    `

    Fig:4.8 I2C Protocol

    Start Condition:

    39

  • 8/3/2019 Wk 222mod Doc

    40/110

    `

    START is identified by a high to low transition of the SDA line while the

    clock SCL is stable in the high state. A START condition must precede any command

    for data transfer. Except during a programming cycle, the ST24/25x04 continuously

    monitor the SDA and SCL signals for a START condition and will not respond unless

    one is given.

    Stop Condition:

    STOP is identified by a low to high transition of the SDA line while the clock

    SCL is stable in the high state. A STOP condition terminates communication between

    the ST24/25x04 and the bus master. A STOP condition at the end of a Read

    command, after and only after a No Acknowledge, forces the standby state. A STOP

    condition at the end of a Write command triggers the internal EEPROM write cycle.

    Acknowledge Bit (ACK):

    An acknowledge signal is used to indicate a successful data transfer. The bus

    transmitter, either master or slave, will release the SDA bus after sending 8 bits of

    data. During the 9th clock pulse period the receiver pulls the SDA bus low to

    acknowledge the receipt of the 8 bits of data.

    Data Input:

    During data input the ST24/25x04 sample the SDA bus signal on the rising

    edge of the clock SCL. Note that for correct device operation the SDA signal must be

    stable during the clock low to high transition and the data must change ONLY when

    the SCL line is low.

    Memory Addressing:

    To start communication between the bus master and the slave ST24/25x04,

    the master must initiate a START condition. Following this, the master sends onto the

    SDA bus line 8 bits (MSB first) corresponding to the device select code (7 bits) and a

    READ or WRITE bit. The 4 most significant bits of the device select code are the

    device type identifier, corresponding to the I2C bus definition. For these memories the

    4 bits are fixed as 1010b. The following 2 bits identify the specific memory on the

    bus. They are matched to the chip enable signals E2, E1. Thus up to 4 x 4K memories

    can be connected on the same bus giving a memory capacity total of 16 Kilobits.

    40

  • 8/3/2019 Wk 222mod Doc

    41/110

    `

    After a START condition any memory on the bus will identify the device code and

    compare the following 2 bits to its chip enable inputs E2, E1. The 7th bit sent is the

    block number (one block = 256 bytes). The 8th bit sent is the read or write bit (RW),

    this bit is set to 1 for read and 0 for write operations. If a match is found, the

    corresponding memory will acknowledge the identification on the SDA bus during

    the 9th bit time.

    Fig: 4.8.1 AC Waveforms

    Write Operations:

    The Multibyte Write mode (only available on the ST24/25C04 versions) is

    selected when the MODE pin is at VIH and the Page Write mode when MODE pin is

    at VIL. The MODE pin may be driven dynamically with CMOS input levels.

    Following a START condition the master sends a device select code with the RW bit

    41

  • 8/3/2019 Wk 222mod Doc

    42/110

    `

    reset to 0. The memory acknowledges this and waits for a byte address. The byte

    address of 8 bits provides access to one block of 256 bytes of the memory. After

    receipt of the byte address the device again responds with an acknowledge. For the

    ST24/25W04 versions, any write command with WC = 1 will not modify the memory

    content.

    Byte Write:

    In the Byte Write mode the master sends one data byte, which is

    acknowledged by the memory. The master then terminates the transfer by generating

    a STOP condition. The Write mode is independent of the state of the MODE pin

    which could be left floating if only this mode was to be used. However it is not a

    recommended operating mode, as this pin has to be connected to either VIH or VIL,

    to minimize the stand-by current.

    Multibyte Write:

    For the Multibyte Write mode, the MODE pin must be at VIH. The Multibyte

    Write mode can be started from any address in the memory. The master sends from

    one up to 4 bytes of data, which are each acknowledged by the memory. The transfer

    is terminated by the master generating a STOP condition. The duration of the write

    cycle is Tw = 10ms maximum except when bytes are accessed on 2 rows (that is have

    different values for the 6 most significant address bits A7-A2), the programming time

    is then doubled to a maximum of 20ms. Writing more than 4 bytes in the Multibyte

    Write mode may modify data bytes in an adjacent row (one row is 8 bytes long).

    However, the Multibyte Write can properly write up to 8 consecutive bytes as soon as

    the first address of these 8 bytes is the first address of the row, the 7 following bytes

    being written in the 7 following bytes of this same row.

    Page Write:

    For the Page Write mode, the MODE pin must be at VIL. The Page Write

    mode allows up to 8 bytes to be written in a single write cycle, provided that they are

    all located in the same row in the memory: that is the 5 most significant memoryaddress bits (A7-A3) are the same inside one block. The master sends from one up to

    42

  • 8/3/2019 Wk 222mod Doc

    43/110

    `

    8 bytes of data, which are each acknowledged by the memory. After each byte is

    transferred, the internal byte address counter (3 least significant bits only) is

    incremented. The transfer is terminated by the master generating a STOP condition.

    Care must be taken to avoid address counter roll-over which could result in data

    being overwritten. Note that, for any write mode, the generation by the master of the

    STOP condition starts the internal memory program cycle. All inputs are disabled

    until the completion of this cycle and the memory will not respond to any request.

    4.9 Minimizing System Delays by Polling on ACK:

    During the internal write cycle, the memory disconnects itself from the bus in

    order to copy the data from the internal latches to the memory cells. The maximum

    value of the write time (Tw) is given from the AC Characteristics, since the typical

    time is shorter, the time seen by the system may be reduced by an ACK polling

    sequence issued by the master.

    43

  • 8/3/2019 Wk 222mod Doc

    44/110

    `

    Fig:4.9.1 Write Cycle Polling using ACK

    Data in the upper block of 256 bytes of the memory may be write protected.

    The memory is write protected between a boundary address and the top of memory

    (address 1FFh) when the PRE input pin is taken high and when the Protect Flag (bit

    b2 in location 1FFh) is set to 0. The boundary address is user defined by writing it in

    the Block Address Pointer. The Block Address Pointer is an 8 bit EEPROM register

    located at the address 1FFh. It is composed by 5 MSBs Address Pointer, which

    defines the bottom boundary address and 3 LSBs which must be programmed at 0.

    This Address Pointer can therefore address a boundary in steps of 8 bytes.

    The sequence to use the Write Protected feature is:

    44

  • 8/3/2019 Wk 222mod Doc

    45/110

    `

    write the data to be protected into the top of the memory, up to, but not

    including, location 1FFh;

    set the protection by writing the correct bottom boundary address in the

    Address Pointer (5 MSBs of location 1FFh) with bit b2 (Protect flag) set to

    0. Note that for a correct functionality of the memory, all the 3 LSBs of

    the Block Address Pointer must also be programmed at 0. The area will

    now be protected when the PRE input pin is taken high. While the PRE

    input pin is read at 0 by the memory, the location 1FFh can be used as a

    normal EEPROM byte.

    Fig: 4.9.1 Write Modes Sequence

    4.10 Read Operations:

    45

  • 8/3/2019 Wk 222mod Doc

    46/110

    `

    Read operations are independent of the state of the MODE pin. On delivery,

    the memory content is set at all "1s" (or FFh).

    Current Address Read:

    The memory has an internal byte address counter. Each time a byte is read,

    this counter is incremented. For the Current Address Read mode, following a START

    condition, the master sends a memory address with the RW bit set to 1. The memory

    acknowledges this and outputs the byte addressed by the internal byte address

    counter. This counter is then incremented. The master does NOT acknowledge the

    byte output, but terminates the transfer with a STOP condition.

    Random Address Read:

    A dummy write is performed to load the address into the address counter. This

    is followed by another START condition from the master and the byte address is

    repeated with the RW bit set to 1. The memory acknowledges this and outputs the

    byte addressed. The master has to NOT acknowledge the byte output, but terminates

    the transfer with a STOP condition.

    Sequential Read:

    This mode can be initiated with either a Current Address Read or a Random

    Address Read. However, in this case the master DOES acknowledge the data byte

    output and the memory continues to output the next byte in sequence. To terminate

    the stream of bytes, the master must NOT acknowledge the last byte output, but

    MUST generate a STOP condition. The output data is from consecutive byte

    addresses, with the internal byte address counter automatically incremented after each

    byte output. After a count of the last memory address, the address counter will roll-

    over and the memory will continue to output data.

    Acknowledge in Read Mode:

    In all read modes the ST24/25x04 wait for an acknowledge during the 9th bit

    time. If the master does not pull the SDA line low during this time, the ST24/25x04

    terminate the data transfer and switches to a standby state.

    46

  • 8/3/2019 Wk 222mod Doc

    47/110

    `

    Fig: 4.10 Read Modes Sequence

    4.11 PROGRAMMING THE FLASH AND EEPROM

    Atmels AT89S8252 Flash Microcontroller offers 8K bytes of in-system

    reprogrammable Flash Code memory and 2K bytes of EEPROM Data memory. The

    AT89S8252 is normally equipped with the on-chip Flash Code and EEPROM Data

    memory arrays in the erased state (i.e. contents = FFH) and ready to be programmed.

    47

  • 8/3/2019 Wk 222mod Doc

    48/110

    `

    This device supports a high-voltage (12-V VPP) Parallel programming mode

    and a low-voltage (5-V VCC) Serial programming mode.

    Serial Programming mode:

    This mode provides a convenient way to reprogram the AT89S8252 inside the

    users system. The Code and Data memory arrays are mapped via separate address

    spaces in this mode. An auto-erase cycle is provided with the self-timed programming

    operation. There is no need to perform the Chip Erase operation to reprogram any

    memory location in this programming mode unless any of the lock bits have been

    programmed.

    Parallel Programming mode:

    The parallel programming mode is compatible with conventional third party

    Flash or EPROM programmers. In this mode, the two arrays occupy one contiguous

    address space: 0000H to 1FFFH for the Code array and 2000H to 27FFH for the Data

    array. In this mode, there is no auto-erase cycle. To reprogram any non-blank byte,

    the user needs to use the Chip Erase operation first to erase both arrays.

    The Code and Data memory arrays on the AT89S8252 are programmed byte-

    by-byte in either programming mode.

    Parallel Programming Algorithm:

    To program and verify the AT89S8252 in the parallel programming mode, the

    following sequence is recommended:

    1. Power-up sequence: Apply power between VCC and GND pins. Set RST

    pin to H. Apply a 3 MHz to 24 MHz clock to XTAL1 pin and wait for at

    least 10 milliseconds.

    48

  • 8/3/2019 Wk 222mod Doc

    49/110

    `

    2. Set PSEN pin to L ALE pin to H EA pin to H and all other pins to

    H.

    3. Apply the appropriate combination of H or L logic levels to pins P2.6,

    P2.7, P3.6, and P3.7 to select one of the programming operations shown in

    the Flash Programming Modes table.

    4. Apply the desired byte address to pins P1.0 to P1.7 and P2.0 to P2.5. Apply

    data to pins P0.0 to P0.7 for Write Code operation.

    5. Raise EA/VPP to 12V to enable Flash programming, erase or verification.

    6. Pulse ALE/PROG once to program a byte in the Code memory array, the

    Data mem-ory array or the lock bits. The byte-write cycle is self-timed and

    typically takes 1.5 ms.

    7. To verify the byte just programmed, bring pin P2.7 to L and read the

    programmed data at pins P0.0 to P0.7.

    8. Repeat steps 3 through 7 changing the address and data for the entire 2K or

    8K bytes array or until the end of the object file is reached.

    9. Power-off sequence: Set XTAL1 to L. Set RST and EA pins to L. Turn

    VCC power off.

    4.12 Data Polling:

    The AT89S8252 features DATA Polling to indicate the end of a byte write

    cycle. During a byte write cycle in the parallel or serial programming mode, an

    attempted read of the last byte written will result in the complement of the written

    datum on P0.7 (parallel mode), and on the MSB of the serial output byte on MISO

    (serial mode). Once the write cycle has been completed, true data are valid on all

    outputs, and the next cycle may begin. DATA Polling may begin any time after a

    write cycle has been initiated.

    4.13 Ready/Busy:

    The progress of byte programming in the parallel programming mode can also

    be monitored by the RDY/BSY output signal. Pin P3.4 is pulled Low after ALE goes

    49

  • 8/3/2019 Wk 222mod Doc

    50/110

    `

    high during programming to indicate BUSY. P3.4 is pulled High again when

    programming is done to indicate READY.

    4.14 Program Verify:

    If lock bits LB1 and LB2 have not been programmed, the programmed Code

    or Data byte can be read back via the address and data lines for verification. The state

    of the lock bits can also be verified directly in the parallel programming mode. In the

    serial programming mode, the state of the lock bits can only be verified indirectly by

    observing that the lock bit features are enabled.

    4.15 Chip Erase:

    Both Flash and EEPROM arrays are erased electrically at the same time. In the

    parallel programming mode, chip erase is initiated by using the proper combination of

    control signals and by holding ALE/PROG low for 10 ms. The Code and Data arrays

    are written with all 1s in the Chip Erase operation. In the serial programming mode,

    a chip erase operation is initiated by issuing the Chip Erase instruction. In this mode,chip erase is self-timed and takes about 16 ms. During chip erase, a serial read from

    any address location will return 00H at the data outputs.

    4.16 SERIAL DOWNLOADING:

    Both the Code and Data memory arrays can be programmed using the serialSPI bus while RST is pulled to VCC. The serial interface consists of pins SCK, MOSI

    (input) and MISO (output). After RST is set high, the Programming Enable

    instruction needs to be executed first before program/erase operations can be

    executed.

    An auto-erase cycle is built into the self-timed programming operation (in the

    serial mode ONLY) and there is no need to first execute the chip erase instruction

    unless any of the lock bits have been programmed. The Chip Erase operation turns the

    content of every memory location in both the Code and Data arrays into FFH. The

    50

  • 8/3/2019 Wk 222mod Doc

    51/110

    `

    Code and Data memory arrays have separate address spaces: 0000H to 1FFFH for

    Code memory and 000H to 7FFH for Data memory. Either an external system clock is

    supplied at pin XTAL1 or a crystal needs to be connected across pins XTAL1 and

    XTAL2. The maximum serial clock (SCK) frequency should be less than 1/40 of the

    crystal frequency. With a 24 MHz oscillator clock, the maximum SCK frequency is

    600 kHz.

    Serial Programming Algorithm:

    To program and verify the AT89S8252 in the serial programming mode, the

    following sequence is recommended:

    1. Power-up sequence: Apply power between VCC and GND pins. Set RST pin

    to H. If a crystal is not connected across pins XTAL1 and XTAL2, apply a 3

    MHz to 24 MHz clock to XTAL1 pin and wait for at least 10 milliseconds.

    2. Enable serial programming by sending the Programming Enable serial

    instruction to pin MOSI/P1.5. The frequency of the shift clock supplied at pin

    SCK/P1.7 needs to be less than the CPU clock at XTAL1 divided by 40.

    3. The Code or Data array is programmed one byte at a time by supplying the

    address and data together with the appropriate Write instruction. The selected

    memory loca-tion is first automatically erased before new data is written. The

    write cycle is self-timed and typically takes less than 2.5 ms at 5V.

    4. Any memory location can be verified by using the Read instruction which

    returns the content at the selected address at serial output MISO/P1.6.

    5. At the end of a programming session, RST can be set low to commence normal

    operation.

    6. Power-off sequence (if needed): Set XTAL1 to L (if a crystal is not used).

    Set RST to L. Turn VCC power off.

    The algorithm used in this project to enable EEPROM is serial programming mode.

    4.17 Machine cycle for the 8052

    51

  • 8/3/2019 Wk 222mod Doc

    52/110

    `

    The CPU takes a certain number of clock cycles to execute an instruction. In

    the 8052 family, these clock cycles are referred to as machine cycles. The length of

    the machine cycle depends on the frequency of the crystal oscillator. The crystal

    oscillator, along with on-chip circuitry, provides the clock source for the 8052 CPU.

    The frequency can vary from 4 MHz to 30 MHz, depending upon the chip

    rating and manufacturer. But the exact frequency of 11.0592 MHz crystal oscillator is

    used to make the 8052 based system compatible with the serial port of the IBM PC.

    In the original version of 8052, one machine cycle lasts 12 oscillator periods.

    Therefore, to calculate the machine cycle for the 8052, the calculation is made as 1/12

    of the crystal frequency and its inverse is taken.

    4.18 RELAYS:

    A relay is an electrically controllable switch widely used in industrial controls,

    automobiles and appliances.

    The relay allows the isolation of two separate sections of a system with two

    different voltage sources i.e., a small amount of voltage/current on one side can

    handle a large amount of voltage/current on the other side but there is no chance that

    these two voltages mix up.

    Fig:4.18 Circuit symbol of a relay

    4.19 Operation:

    When a current flow through the coil, a magnetic field is created around the

    coil i.e., the coil is energized. This causes the armature to be attracted to the coil. The

    armatures contact acts like a switch and closes or opens the circuit. When the coil is

    52

  • 8/3/2019 Wk 222mod Doc

    53/110

    `

    not energized, a spring pulls the armature to its normal state of open or closed. There

    are all types of relays for all kinds of applications.

    Fig: 4.20 Relay Operation and use of protection diodes

    Transistors and ICs must be protected from the brief high voltage 'spike'

    produced when the relay coil is switched off. The above diagram shows how a signal

    diode (eg 1N4148) is connected across the relay coil to provide this protection. The

    diode is connected 'backwards' so that it will normally not conduct. Conduction

    occurs only when the relay coil is switched off, at this moment the current tries to

    flow continuously through the coil and it is safely diverted through the diode. Without

    the diode no current could flow and the coil would produce a damaging high voltage

    'spike' in its attempt to keep the current flowing.

    In choosing a relay, the following characteristics need to be considered:

    1. The contacts can be normally open (NO) or normally closed (NC). In the NC

    type, the contacts are closed when the coil is not energized. In the NO type,

    the contacts are closed when the coil is energized.

    2. There can be one or more contacts. i.e., different types like SPST (single pole

    single throw), SPDT (single pole double throw) and DPDT (double pole

    double throw) relays.

    53

  • 8/3/2019 Wk 222mod Doc

    54/110

    `

    3. The voltage and current required to energize the coil. The voltage can vary

    from a few volts to 50 volts, while the current can be from a few milliamps to

    20milliamps. The relay has a minimum voltage, below which the coil will not

    be energized. This minimum voltage is called the pull-in voltage.

    4. The minimum DC/AC voltage and current that can be handled by the contacts.

    This is in the range of a few volts to hundreds of volts, while the current can

    be from a few amps to 40A or more, depending on the relay.

    4.20 TRANSISTOR DRIVER CIRCUIT:

    An SPDT relay consists of five pins, two for the magnetic coil, one as the

    common terminal and the last pins as normally connected pin and normally closed

    pin. When the current flows through this coil, the coil gets energized. Initially when

    the coil is not energized, there will be a connection between the common terminal and

    normally closed pin. But when the coil is energized, this connection breaks and a new

    connection between the common terminal and normally open pin will be established.

    Thus when there is an input from the microcontroller to the relay, the relay will be

    switched on. Thus when the relay is on, it can drive the loads connected between the

    common terminal and normally open pin. Therefore, the relay takes 5V from themicrocontroller and drives the loads which consume high currents. Thus the relay acts

    as an isolation device.

    Digital systems and microcontroller pins lack sufficient current to drive the relay.

    While the relays coil needs around 10milli amps to be energized, the

    microcontrollers pin can provide a maximum of 1-2milli amps current. For this

    reason, a driver such as a power transistor is placed in between the microcontroller

    and the relay.

    54

  • 8/3/2019 Wk 222mod Doc

    55/110

    `

    Fig: 4.20 Transistor driver circuit.

    The operation of this circuit is as follows:

    The input to the base of the transistor is applied from the microcontroller port

    pin P1.0. The transistor will be switched on when the base to emitter voltage is greater

    than 0.7V (cut-in voltage). Thus when the voltage applied to the pin P1.0 is high i.e.,

    P1.0=1 (>0.7V), the transistor will be switched on and thus the relay will be ON and

    the load will be operated.

    When the voltage at the pin P1.0 is low i.e., P1.0=0 (

  • 8/3/2019 Wk 222mod Doc

    56/110

    `

    Fig: 4.21 RELAY INTERFACING WITH THE MICROCONTROLLER:

    56

    DRIVER

    CIRCUIT

    RELAY

    LOAD

    LCD INTERFACING

    AT 89S52

    P1.0

  • 8/3/2019 Wk 222mod Doc

    57/110

    `

    CHAPTER 5

    LIQUID CRYSTAL DISPLAY:

    LCD stands for Liquid Crystal Display. LCD is finding wide spread use replacing

    LEDs (seven segment LEDs or other multi segment LEDs) because of the following

    reasons:

    1. The declining prices of LCDs.

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

    LEDs, which are limited to numbers and a few characters.3. Incorporation of a refreshing controller into the LCD, thereby relieving the CPU

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

    CPU to keep displaying the data.

    4. Ease of programming for characters and graphics.

    These components are specialized for being used with the microcontrollers,

    which means that they cannot be activated by standard IC circuits. They are used for

    writing different messages on a miniature LCD.

    Fig:5.1 LCD

    A model described here is for its low price and great possibilities most

    frequently used in practice. It is based on the HD44780 microcontroller (Hitachi) and

    can display messages in two lines with 16 characters each . It displays all the

    alphabets, Greek letters, punctuation marks, mathematical symbols etc. In addition, it

    is possible to display symbols that user makes up on its own. Automatic shifting

    57

  • 8/3/2019 Wk 222mod Doc

    58/110

    `

    message on display (shift left and right), appearance of the pointer, backlight etc. are

    considered as useful characteristics.

    5.1Pin Functions:

    There are pins along one side of the small printed board used for connection to

    the microcontroller. There are total of 14 pins marked with numbers (16 in case the

    background light is built in). Their function is described in the table below:

    Table 5.1 pin functions

    58

    Function

    Pin

    Number Name

    Logic

    State Description

    Ground 1 Vss - 0V

    Power supply 2 Vdd - +5V

    Contrast 3 Vee - 0 - Vdd

    Control of

    operating

    4 RS0

    1

    D0 D7 are

    interpreted as commands

    D0 D7 are interpreted as

    data

    5 R/W0

    1

    Write data (from controller

    to LCD)

    Read data (from LCD to

    controller)

    6 E

    0

    1

    From 1 to

    0

    Access to LCD disabled

    Normal operating

    Data/commands are

    transferred to LCD

    Data /

    commands

    7 D0 0/1 Bit 0 LSB

    8 D1 0/1 Bit 1

    9 D2 0/1 Bit 2

    10 D3 0/1 Bit 3

    11 D4 0/1 Bit 4

    12 D5 0/1 Bit 5

    13 D6 0/1 Bit 6

    14 D7 0/1 Bit 7 MSB

  • 8/3/2019 Wk 222mod Doc

    59/110

    `

    5.2 LCD Screen:

    LCD screen consists of two lines with 16 characters each. Each character consists of

    5x7 dot matrix. Contrast on display depends on the power supply voltage and whether

    messages are displayed in one or two lines. For that reason, variable voltage 0-Vdd is

    applied on pin marked as Vee. Trimmer potentiometer is usually used for that

    purpose. Some versions of displays have built in backlight (blue or green diodes).

    When used during operating, a resistor for current limitation should be used (like with

    any LE diode).

    Fig:5.2LCD Screen

    5.3 LCD Basic Commands :

    All data transferred to LCD through outputs D0-D7 will be interpreted as

    commands or as data, which depends on logic state on pin RS:

    RS = 1 - Bits D0 - D7 are addresses of characters that should be displayed. Built in

    processor addresses built in map of characters and displays corresponding symbols.

    Displaying position is determined by DDRAM address. This address is either

    previously defined or the address of previously transferred character is automatically

    incremented.

    59

  • 8/3/2019 Wk 222mod Doc

    60/110

    `

    RS = 0 - Bits D0 - D7 are commands which determine display mode. List of

    commands which LCD recognizes are given in the table below:

    I/D 1 = Increment (by 1) R/L 1 = Shift right

    0 = Decrement (by 1) 0 = Shift left

    S 1 = Display shift on DL 1 = 8-bit interface

    0 = Display shift off 0 = 4-bit interface

    D 1 = Display on N 1 = Display in two lines

    0 = Display off 0 = Display in one line

    U 1 = Cursor on F 1 = Character format 5x10 dots

    0 = Cursor off 0 = Character format 5x7 dots

    B 1 = Cursor blink on D/C 1 = Display shift

    60

    Command RS RW D7 D6 D5 D4 D3 D2 D1 D0Execution

    Time

    Clear display 0 0 0 0 0 0 0 0 0 1 1.64mS

    Cursor home 0 0 0 0 0 0 0 0 1 x 1.64mS

    Entry mode set 0 0 0 0 0 0 0 1I/

    DS 40uS

    Display on/off control 0 0 0 0 0 0 1 D U B 40uS

    Cursor/Display Shift 0 0 0 0 0 1 D/C R/L x x 40uS

    Function set 0 0 0 0 1 DL N F x x 40uS

    Set CGRAM address 0 0 0 1 CGRAM address 40uS

    Set DDRAM address 0 0 1 DDRAM address 40uS

    Read BUSY flag (BF) 0 1 BF DDRAM address -

    Write to CGRAM or

    DDRAM1 0 D7 D6 D5 D4 D3 D2 D1 D0 40uS

    Read from CGRAM or

    DDRAM1 1 D7 D6 D5 D4 D3 D2 D1 D0 40uS

  • 8/3/2019 Wk 222mod Doc

    61/110

    `

    0 = Cursor blink off 0 = Cursor shift

    5.4 LCD Initialization:

    Once the power supply is turned on, LCD is automatically cleared. This process lasts

    for approximately 15mS. After that, display is ready to operate. The mode of

    operating is set by default. This means that:

    1. Display is cleared

    2. Mode

    DL = 1 Communication through 8-bit interfaceN = 0 Messages are displayed in one line

    F = 0 Character font 5 x 8 dots

    3. Display/Cursor on/off

    D = 0 Display off

    U = 0 Cursor off

    B = 0 Cursor blink off

    4. Character entry

    ID = 1 Addresses on display are automatically incremented by 1

    S = 0 Display shift off

    Automatic reset is mainly performed without any problems. Mainly but not always! If

    for any reason power supply voltage does not reach full value in the course of 10mS,

    display will start perform completely unpredictably? If voltage supply unit can not

    meet this condition or if it is needed to provide completely safe operating, the process

    of initialization by which a new reset enabling display to operate normally must be

    applied.

    Algorithm according to the initialization is being performed depends on whether

    connection to the microcontroller is through 4- or 8-bit interface. All left over to be

    done after that is to give basic commands and of course- to display messages.

    61

  • 8/3/2019 Wk 222mod Doc

    62/110

    `

    Fig: 5.4 Procedure on 8-Bit Initialization.

    5.5 LCD INTERFACING WITH THE MICROCONTROLLER:

    62

  • 8/3/2019 Wk 222mod Doc

    63/110

    `

    Fig: 5.5 Sending Commands to LCD

    To send commands we simply need to select the command register. Everything is

    same as we have done in the initialization routine. But we will summarize thecommon steps and put them in a single subroutine. Following are the steps:

    Move data to LCD port

    select command register

    select write operation

    send enable signal

    wait for LCD to process the command

    5.6 CODE:

    void LCD_command(unsigned char var)

    {

    LCD_data = var; //Function set: 2 Line, 8-bit, 5x7 dots

    LCD_rs = 0; //Selected command register

    LCD_rw = 0; //We are writing in instruction register

    LCD_en = 1; //Enable H->L

    63

    Vcc

    Gnd

    PRESET

    (CONTRAST

    CONTROL)

    VccFOR

    BACKLIGHT

    PURPOSE

    P2.0

    P2.1

    P2.2

    89S52 P1.0

    P1.1

    P1.2

    P1.3

    P1.4

    P1.5

    P1.6

    P1.7

    4 (RS) 1

    5 (R/W) 2

    6(EN) 3

    LCD

    D0

    D1

    D2

    D3

    D4

    D5 15

    D6 16

    D7

    Gnd

  • 8/3/2019 Wk 222mod Doc

    64/110

    `

    LCD_en = 0;

    LCD_busy(); //Wait for LCD to process the command

    }

    // Using the above function is really simple

    // var will carry the command for LCD

    // e.g.

    //

    // LCD_command(0x01);

    Sending Data to LCD

    To send data we simply need to select the data register. Everything is same as the

    command routine. Following are the steps:

    Move data to LCD port

    select data register

    select write operation

    send enable signal

    wait for LCD to process the data

    64

  • 8/3/2019 Wk 222mod Doc

    65/110

    `

    Keeping these steps in mind we can write LCD command routine as.

    5.7 CODE:

    void LCD_senddata(unsigned char var)

    {

    LCD_data = var; //Function set: 2 Line, 8-bit, 5x7 dots

    LCD_rs = 1; //Selected data register

    LCD_rw = 0; //We are writing

    LCD_en = 1; //Enable H->L

    LCD_en = 0;

    LCD_busy(); //Wait for LCD to process the command

    }

    // Using the above function is really simple

    // we will pass the character to display as argument to function

    // e.g.

    //

    // LCD_senddata('A');

    65

  • 8/3/2019 Wk 222mod Doc

    66/110

    `

    5.8 Switch Interfacing With The Microcontroller:

    Switches are the most widely used input/output devices of the 8052.

    CPU accesses the switches through ports. Therefore these switches are

    connected to a microcontroller. This switch is connected between the supply and

    ground terminals. A single microcontroller (consisting of a microprocessor, RAM and

    EEPROM and several ports all on a single chip) takes care of hardware and software

    interfacing of the switch.

    These switches are connected to an input port. When no switch is pressed,

    reading the input port will yield 1s since they are all connected to high (Vcc). But if

    any switch is pressed, one of the input port pins will have 0 since the switch pressed

    provides the path to ground. It is the function of the microcontroller to scan the

    switches continuously to detect and identify the switch pressed.

    The switches that we are using in our project are 4 leg micro switches of

    momentary type.

    Vcc

    R

    Gnd

    Fig: 5.8 Interfacing switch with the microcontroller

    Thus now the two conditions are to be remembered:

    66

    P0.2

  • 8/3/2019 Wk 222mod Doc

    67/110

    `

    1. When the switch is open, the total supply i.e., Vcc appears at the port pin P0.2

    P0.2 = 1

    2. When the switch is closed i.e., when it is pressed, the total supply path is

    provided to ground. Thus the voltage value at the port pin P0.2 will be zero.

    P0.2 = 0

    By reading the pin status, the microcontroller identifies whether the switch is pressed

    or not. When the switch is pressed, the corresponding related to this switch press

    written in the program will be executed.

    5.9 Trigger card:

    This is a slot where in we can place the recharge card in this particular

    location where in the data in this card is read through the microcontroller.

    5.10 Slots for Recharge:

    This is only the slot for placing the recharge card.

    5.11 Load banks:

    These are the loads what we connect to our project where in when the loadsare in on state then the power consumed by it is taken to the energy meter and the

    readings of this are shown on the 16 x2 LCD display.

    5.12 ENERGY METER:

    Energy Meter is an exclusive project that enables the user to consume the

    power in a more efficient way .when the user tries to consume the power i.e. when he

    switches on any of the electrical appliances in his house. When these electricalappliances are switched on, they consume more or less some power. In this project the

    energy meter we are using for taking the counts is the ADE 7757 IC.

    5.13 ADE7757: Single Phase Energy Metering IC with Integrated

    Oscillator

    The ADE7757 is an accurate electrical energy measurement integrated circuit.

    It is a pin reduction version of ADE7755 with an enhancement of a precise oscillator

    67

  • 8/3/2019 Wk 222mod Doc

    68/110

    `

    circuit that serves as a clock source to the chip. The ADE7757 eliminates the cost of

    an external crystal or resonator, thus reducing the overall cost of a meter built with

    this IC. The chip directly interfaces with shunt resistor.

    The ADE7757 provides instantaneous and average real power based on line

    current and voltage. The part specifications surpass the accuracy requirements as

    quoted in the IEC1036 standard. The only analog circuitry used in the ADE7757 is in

    the ADCs and reference circuit. All other signal processing (e.g., multiplication and

    filtering) is carried out in the digital domain. This approach provides superior stability

    and accuracy over extremes in environmental conditions and over time.

    The small analog input full-scale allows the chip to interface to low valueshunt resistances without losing dynamic range. The ADE7757 is available in 16-lead

    SOIC narrow-body package.

    Fig:5.13 Energy Meter

    5.14 Design Calculations:

    The design parameters are as follows:

    Line voltage = 220 V (nominal)

    IMAX = 30 A (Ib = 5 A)

    Counter = 100 imp/kWh

    Meter constant = 1600 imp/kWh

    Shunt size = 350 micro ohms.

    68

  • 8/3/2019 Wk 222mod Doc

    69/110

    `

    100 imp/hour = 100/3600 sec = 0.02777 Hz

    Meter calibration at Ib (5 A)

    Power dissipation at Ib = 220 V 5 A = 1.2 kW

    Freq. on F1 (and F2) at Ib = 1.1 0.0277 Hz = 0.0305555 Hz

    Voltage across shunt (V1) at Ib = 5 A x 350 (micro ohms) = 1.75 mV rms

    69

  • 8/3/2019 Wk 222mod Doc

    70/110

    `

    POWER SUPPLY DESIGN

    70

  • 8/3/2019 Wk 222mod Doc

    71/110

    `

    CHAPTER 6

    POWER SUPPLY

    The input to the circuit is applied from the regulated power supply. The a.c.

    input i.e., 230V from the mains supply is step down by the transformer to 12V and is

    fed to a rectifier. The output obtained from the rectifier is a pulsating d.c voltage. So

    in order to get a pure d.c voltage, the output voltage from the rectifier is fed to a filter

    to remove any a.c components present even after rectification. Now, this voltage is

    given to a voltage regulator to obtain a pure constant dc voltage.

    Fig:6.0 Power supply

    71

    RegulatorFilterBridge

    Rectifier

    Step down

    transformer

    230V AC

    50Hz D.C

    Output

  • 8/3/2019 Wk 222mod Doc

    72/110

    `

    6.1Transformer:

    Usually, DC voltages are required to operate various electronic equipment and

    these voltages are 5V, 9V or 12V. But these voltages cannot be obtained directly.

    Thus the a.c input available at the mains supply i.e., 230V is to be brought down tothe required voltage level. This is done by a transformer. Thus, a step down

    transformer is employed to decrease the voltage to a required level.

    Fig:6.1 Transformer

    6.2 Rectifier:

    The output from the transformer is fed to the rectifier. It converts A.C. into

    pulsating D.C. The rectifier may be a half wave or a full wave rectifier. In this project,

    a bridge rectifier is used because of its merits like good stability and full wave

    rectification.

    Fig:6.2 Power Supply

    72

  • 8/3/2019 Wk 222mod Doc

    73/110

    `

    The Bridge rectifier is a circuit, which converts an ac voltage to dc voltage using both

    half cycles of the input ac voltage. The Bridge rectifier circuit is shown in the figure.

    The circuit has four diodes connected to form a bridge. The ac input voltage is applied

    to the diagonally opposite ends of the bridge. The load resistance is connected

    between the other two ends of the bridge.

    For the positive half cycle of the input ac voltage, diodes D1 and D3 conduct, whereas

    diodes D2 and D4 remain in the OFF state. The conducting diodes will be in series

    with the load resistance RL and hence the load current flows through RL.

    For the negative half cycle of the input ac voltage, diodes D2 and D4 conduct

    whereas, D1 and D3 remain OFF. The conducting diodes D2 and D4 will be in serieswith the load resistance RL and hence the current flows through RL in the same

    direction as in the previous half cycle. Thus a bi-directional wave is converted into a

    unidirectional wave.

    73

  • 8/3/2019 Wk 222mod Doc

    74/110

    `

    Fig:6.3 Expected Wave Forms

    6.3Filter:

    74

  • 8/3/2019 Wk 222mod Doc

    75/110

    `

    Capacitive filter is used in this project. It removes the ripples from the output

    of rectifier and smoothens the D.C. Output received from this filter is constant until

    the mains voltage and load is maintained constant. However, if either of the two is

    varied, D.C. voltage received at this point changes. Therefore a regulator is applied at

    the output stage.

    6.4 Voltage Regulator:

    Fig:6.4Voltage Regulator

    As the name itself implies, it regulates the input applied to it. A voltage

    regulator is an electrical regulator designed to automatically maintain a constant

    voltage level. In this project, power supply of 5V and 12V are required. In order to

    obtain these voltage levels, 7805 and 7812 voltage regulators are to be used. The first

    number 78 represents positive supply and the numbers 05, 12 represent the required

    output voltage levels. The L78xx series of three-terminal positive regulators is

    available in TO-220, TO-220FP, TO-3, D2PAK and DPAK packages and several

    fixed output voltages, making it useful in a wide range of applications. These

    regulators can provide local on-card regulation,

    eliminating the distribution problems

    associated with single point regulation.

    75

  • 8/3/2019 Wk 222mod Doc

    76/110

    `

    Fig Voltage Regulator

    Each type employs internal current limiting, thermal shut-down and safe area

    protection, making it essentially indestructible. If adequate heat sinking is provided,

    they can deliver over 1 A output current. Although designed primarily as fixed

    voltage regulators, these devices can be used with external components to obtain

    adjustable voltage and currents.

    76

  • 8/3/2019 Wk 222mod Doc

    77/110

    `

    Software Tools

    77

  • 8/3/2019 Wk 222mod Doc

    78/110

    `

    CHAPTER 7

    SOFT WARE TOOLS

    7.1 KEIL SOFTWARE:

    Keil compiler is a software used where the machine language code is written

    and compiled. After compilation, the machine source code is converted into hex code

    which is to be dumped into the microcontroller for further processing. Keil compiler

    also supports C language code.

    7.2 Steps To Write An Assembly / C Language Program In Keil And

    How To Compile It:

    1. Install the Keil Software in the PC in any of the drives.

    2. After installation, an icon will be created with the name Keil uVision3. Just

    drag this icon onto the desktop so that it becomes easy whenever you try to write

    programs in keil.

    3. Double click on this icon to start the keil compiler.

    4. A page opens with different options in it showing the project workspace at the

    leftmost corner side, output window in the bottom and an ash coloured space for

    the program to be written.

    5. Now to start using the keil, click on the option project.

    6. A small window opens showing the options like new project, import project, open

    project etc. Click on New project.

    7. A small window with the title bar Create new project opens. The window asksthe user to give the project name with which it should be created and the

    destination location. The project can be created in any of the drives available. You

    can create a new folder and then a new file or can create directly a new file.

    8. After the file is saved in the given destination location, a window opens where a

    list of vendors will be displayed and you have to select the device for the target

    you have created.

    78

  • 8/3/2019 Wk 222mod Doc

    79/110

    `

    9. The most widely used vendor is Atmel. So click on Atmel and now the family of

    microcontrollers manufactured by Atmel opens. You can select any one of the

    microcontrollers according to the requirement.

    10. When you click on any one of the microcontrollers, the features of that particular

    microcontroller will be displayed on the right side of the page. The most

    appropriate microcontroller with which most of the projects can be implemented

    is the AT89S52. Click on this microcontroller and have a look at its features. Now

    click on OK to select this microcontroller.

    11. A small window opens asking whether to copy the startup code into the file you

    have created just now. Just click on No to proceed further.

    12. Now you can see the TARGET and SOURCE GROUP created in the project

    workspace.

    13. Now click on File and in that New. A new page opens and you can start

    writing program in it.

    14. After the program is completed, save it with any name but with the .asm or .c

    extension. Save the program in the file you have created earlier.

    15. You can notice that after you save the program, the predefined keywords will be

    highlighted in bold letters.

    16. Now add this file to the target by giving a right click on the source group. A list of

    options open and in that select Add files to the source group. Check for this file

    where you have saved and add it.

    17. Right click on the target and select the first option Options for target. A window

    opens with different options like device, target, output etc. First click on target.

    18. Since the set frequency of the microcontroller is 11.0592 MHz to interface with

    the PC, just enter this frequency value in the Xtal (MHz) text area and put a tick

    on the Use on-chip ROM. This is because the program what we write here in the

    keil will later be dumped into the microcontroller and will be stored in the inbuilt

    ROM in the microcontroller.

    19. Now click the option Output and give any name to the hex file to be created in

    the Name of executable text area and put a tick to the Create HEX file option

    present in the same window. The hex file can be created in any of the drives. You

    can change the folder by clicking on Select folder for Objects.

    79

  • 8/3/2019 Wk 222mod Doc

    80/110

  • 8/3/2019 Wk 222mod Doc

    81/110

    `

    5. Click on the Proload icon in the PC. A window appears providing the

    information like Hardware model, com port, device type, Flash size etc. Click

    on browse option to select the hex file to be dumped into the microcontroller

    and then click on Auto program to program the microcontroller with that

    particular hex file.

    6. The status of the microcontroller can be seen in the small status window in the

    bottom of the page.After this process is completed, remove the microcontroller

    from the programmer kit and place it in your system board. Now the system

    board behaves according to the program written in the microcontroller.

    7.4 Advantages:

    1. Sophisticated security

    2. Monitors all hazards and threats

    3. Alerts whenever the units are nearing to zero units

    4. Can be recharged at any time.

    7.5 Applications:

    1. Banks

    2. Offices

    3. Industries

    4. Jeweler Shops and Home Applications

    81

  • 8/3/2019 Wk 222mod Doc

    82/110

    `

    RESULT

    82

  • 8/3/2019 Wk 222mod Doc

    83/110

    `

    RESULT

    By using our project we can reduce the electricity bill, it can be paid

    now through E-Seva centers,ATMs,Net-banking and even through mobile phones .

    But prepaid electricity is a unique and new concept which saves lot of time and a

    power for electricity department. At every instant units values are stored in

    EEPROM .So that no data loss even in power failure cases.

    83

  • 8/3/2019 Wk 222mod Doc

    84/110

    `

    CONCLUSION

    84

  • 8/3/2019 Wk 222mod Doc

    85/110

    `

    CONCLUSION

    This project presents a Prepaid Energy Meter using 89S52. The Energy

    consumption calculation based on the counting of pulses is designed and implemented

    with Atmel 89S52 MCU in embedded system domain. Set up on the Energy tracking

    system, the counting of pulses is used to determine the energy consumption. The

    proposed Energy Meter is used can track the energy consumption automatically.

    Thus, the efficiency of Energy Meter Calculation can be increased. Experimental

    work has been carried out carefully. The result shows that higher efficiency is indeed

    achieved using the embedded system. The proposed method is verified to be highly

    beneficial for the Domestic purpose.

    85

  • 8/3/2019 Wk 222mod Doc

    86/110

    `

    REFERENCES

    REFERENCES

    1. Embedded and real time projects system by Dr.kvk.prasad ,Black book

    2. Embedded System By Raj Kamal fourth edition

    3. 8052 Microcontroller And Embedded Systems By Ali Mazzidi

    86

  • 8/3/2019 Wk 222mod Doc

    87/110

    `

    4. 8051 micro controller by Ak.ayala second edition

    5. micro processor and interfacing by A.k.ray fourth edition

    6. micro controllers and assembly language by dougles .Vhall forth edition

    7. Electronics for you ( magazine)

    8. Electrikindia (magazine)

    9. Electronics bazar (magazine)

    87

  • 8/3/2019 Wk 222mod Doc

    88/110

    `

    APPENDIX

    88

  • 8/3/2019 Wk 222mod Doc

    89/110

    `

    89

    1

    Features Compatible with MCS-51 Products

    8K Bytes of In-System Programmable (ISP) Flash Memory

    Endurance: 1000 Write/Erase Cycles

    4.0V to 5.5V Operating Range Fully Static Operation: 0 Hz to 33 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 Full Duplex UART Serial Channel Low-power Idle and Power-down Modes Interrupt Recovery from Power-down Mode Watchdog Timer Dual Data Pointer Power-off Flag

    Description

    The AT89S52 is a low-power, high-performance CMOS 8-bit microcontroller with 8K

    bytes of in-system programmable Flash memory. The device is manufactured using

    Atmels high-density nonvolatile memory technology and is compatible with the indus-

    try-standard 80C51 instruction set and p