• No results found

Smart Energy Meter Project Report

N/A
N/A
Protected

Academic year: 2021

Share "Smart Energy Meter Project Report"

Copied!
96
0
0

Loading.... (view fulltext now)

Full text

(1)

KEYWORDS

ACC : Accumulator

B : B Register

PSW : Program Status Word

SP : Stack Pointer DPTR : Data Pointer DPL : Low byte DPH : High byte P0 : Port 0 P1 : Port 1 P2 : Port 2 P3 : Port 3

IE : Interrupt Enable control

IP : Interrupt Priority 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 0low byte

TH1 : Timer/counter 1high byte

TL1 : Timer/counter 1low byte

TH2 : Timer/counter 2 high byte

TL2 : Timer/counter 2 low byte

SCON : Serial control

SBUF : Serial data buffer

PCON : Power control

(2)

INDEX

ACKNOWLEDGE ---

6

ABSTRACT --- 7

I.INTRODUCTION

9

II. LITERATURE SURVEY

2.1 Motivation 11 2.2 Background 11 2.3 Aim 11 2.4 Requirement Analysis 12 2.4.1 Hardware Requirements 12 2.4.2 Software Requirements 12 2.5 Scope 12 2.6 Advantages 12

III.DESIGN METHODOLOGY

3.1 Hardware system design 14

3.1.1 Block level design of Smart Energy Meter 14

3.1.2 Selection of Hardware 15

3.1.3 Design consideration of Microcontroller 15

3.1.3.1 8051 15 3.1.3.2 Internal architecture of P89C51RD2FN 16 3.1.3.2.1 I/O ports 17 3.1.3.2.2 Interrupt controls 18 3.1.3.2.3 Bus controllers 19 3.1.3.2.4 Memory organization 19 3.1.3.2.5 Registers in 8051 20 3.1.3.2.6 Oscillator 22 3.1.3.3 Features 23 3.1.4 Serial communication 24 3.1.4.1 Introduction 24 3.1.4.2 Baud rate 25 3.1.5 Hardware design of LCD 25 3.1.5.1 LCD screen 26 3.1.5.2 Features 29 3.1.5.3 Pin configuration 29 3.1.5.4 Specifications 30 3.1.5.5 Functionality of LCD in project 32 3.1.6 MAX232 32 3.1.6.1 Pin configuration 33 3.1.7 RS232 (Female port) 33 3.1.7.1 Voltage levels 33 3.1.7.2 Pin configuration 34

3.1.7.3 DB9 interfacing microcontroller using MAX232 34

3.1.8 Serial port connector 35

(3)

3.1.10 IR sensors and IC NE555 Timer 37 3.1.10.1 Photo transmitter 37 3.1.10.2 Principle of operation 38 3.1.10.3 Application 39 3.1.10.4 Features 39 3.1.10.5 IR receivers 39 3.1.10.6 Photo transistor 39 3.1.10.7 Principle of operation 39 3.1.11 IC NE555 timer 40 3.1.12 Resistors 41 3.1.13 Capacitors 41 3.1.14 Crystal oscillators 42 3.2 Software design 43

3.2.1 Liquid Crystal Display 43

3.2.1.1 Initialization of LCD 43

3.2.1.2 Checking busy state of LCD 43

3.2.2 KEYPAD 47

3.2.2.1 Flow chart of keyboard scanning algorithm 47

IV. IMPLEMENTATION

4.1 Hardware implementation 49

4.1.1 Complete Schematic of Smart Energy Meter 50

4.1.2 Connections of P89C51RD2FN 51

4.1.3 Pin connections of LCD 52

4.1.4 Keypad connections 53

4.1.5 MAX232 and DB9 connections 53

4.1.6 IC555 timer and IR transmitter connections 54

V. SOFTWARE IMPLEMENTATION

5.1 JHD162A LCD interfacing 56

5.1.1 Initialization of LCD 56

5.1.2 Initialization sequence code 56

5.1.3 Checking the busy state of LCD 56

5.1.4 Writing the command to display 57

5.1.5 Writing data to display 57

5.1.6 Displaying the data into LCD 57

5.1.7 4*4 matrix Keypad interfacing 58

5.1.8 Sensors 58

VI. DEBUGGING TECHNIQUES

6.1 KEIL micro vision debugger 61

6.1.1 Introduction to KEIL IDE 61

6.1.2 Features 61

6.1.3 Steps to follow while writing program in KEIL 62

6.2 Flash Magic 63

6.2.1 Features 63

6.3 Null MODEM checking (HYPER TERMINAL) 64

6.4 Hardware debugging techniques 65

(4)

RESULT

66

VII. BIBILOGRAPHY

67

VIII. APPENDIX

KEIL MICROVISION IDE 68

FLASH MAGIC 77

SET UP OF HYPER TERMINAL 80

COMPLETE CODE 83

(5)

ABSTRACT

Saving energy is high on the agenda for consumers and businesses, but with most of the electrical devices today, it„s difficult to know how much energy we are actually using at any given point in time. Smart Energy Meter is a meter which helps the consumers to know their day to day power consumption to better control their usage and producers to manage production. This meter records consumption of electric energy in intervals of hour or less. Smart meters enable two-way communication between the meter and the central system. The proposed project comprises of hardware design using a low-cost 8-bit P89C51RD2xx microcontroller and the complete hardware design will be proposed .The Communication is through SMS.They are two one is admin password and second is user. By this admin password the cost per unit can be changed by the concerned officerThe system software driver is also developed using embedded-C programming language in Keil µVision 4 IDE. . Smart meters are also believed to be a less costly alternative to traditional interval or time-of-use meters and are intended to be used on a wide scale with all customer classes, including residential customers. The project also addresses about the various debugging tools such as Keil µVision 4 C51 debugger and Flash magic tool 9.25 version used to test the implemented prototype.

(6)

(7)

CHAPTER - I

INTRODUCTION

Now-a-days electricity has become a basic need to humans. The consumption of electricity has increased a lot compared to the past years. The theft of electricity has also become a problem these days and there is no control over the loss due to theft of electricity. In this project we present you the smart energy meter device used to measure the consumption of the electricity by the individual and provide security against theft of electricity.

A smart meter is usually an electrical meter that records consumption of electric energy in intervals of an hour or less and communicates that information at least daily back to the utility for monitoring and billing purposes.Smart meters enable two-way communication between the meter and the central system. Unlike home energy monitors, smart meters can gather data for remote reporting.

The term Smart meter often refers to an electricity meter, but it can increasingly also mean a device measuring natural gas or water consumption. Smart energy meter is software based, power efficient device that accurately tracks energy consumption and performs computation. Meter readings can be transmitted to distributors/utilities over wireless media; thus, eliminating the need of manual meter reading collection process. The smart energy meter offers major benefits to both customers and companies in terms of efficiency, reliability, and cost saving.

Imagine if you knew how much energy you were consuming at home at any time of the day, and knew how much energy each device was using, will you stop using those energy hog appliances? or use them at the time of the day when the energy is cheapest? in the economy turmoil we are currently in, I believe all of us are willing to make those small sacrifices to lower down the bill numbers at the end of the month.

Smart energy meters are devices that will sit on your home, monitor energy data from your electricity meter, and let you know how much energy you are using – this put more control on your hands on how you spend your energy at home. Conventional electricity meters are normally hidden somewhere on a wall on the basement, and the only time you realize how much energy you‟ve been spending is when the bill hit the door.

The new smart meters will provide Indian consumers with information regarding energy consumption that was not previously available with a traditional meter. This system will allow the easy disconnection of defaulted customers and power connections from a remote site. The new smart system is also able to instantly detect tampering with the power lines and sends signals to security personnel if necessary. Utility employees will also have the ability to change a customer‟s billing method from pre paid to post paid in a matter of seconds, without having to physically visit the meter.

(8)

CHAPTER-2

(9)

LITERATURE SURVEY

2.1 MOTIVATION

In the present scenario, the use of advanced technologies such as digital metering has become extremely necessary to achieve greater efficiency, theft reduction to reduce AT & C losses and to improve revenue collection. The utilities and planners should now focus on best use of electronic technology to develop a full „smart‟ system, which is capable of offering long term benefits and comprehensive solutions in addition to theft reduction. In undeveloped and under developing countries proper distribution of power has to be done. So it‟s the duty of us, engineers to develop the equipments to reduce the power losses and power thefts.

2.2 BACKGROUND

An electricity meter or energy meter is a device that measures the amount of electric energy consumed by a residence, business, or an electrically powered device. Electricity meters are typically calibrated in billing units, the most common one being the kilowatt hour. Periodic readings of electric meters establish billing cycles and energy used during a cycle. In settings when energy savings during certain periods are desired, meters may measure demand, the maximum use of power in some interval. In some areas, the electric rates are higher during certain times of day, to encourage reduction in use. The billing of the electricity consumption in these present days are done with human observation, but this project deals with the communication for the proper billing through GSM without any human involvement. Due to theft of electricity leads to power shut down in many of the rural areas in India.

2.3 AIM:

To design and implement the smart energy meter by using 8051 micro controller coded in embedded c program.

(10)

2.4 Requirement Analysis:

2.4.1 Hardware requirements

The components those are required for “Smart Energy Meter” project is given below. 1. Micro Controller (P89C51R2FN). 2. MAX 232. 3. DB9 or RS232 connector. 4. Power supply. 5. 4*4 matrix keypad. 6. LCD display. 7. 555 timer IC 8. IR sensors.

2.4.2 Software requirements

1. FLASH MAGIC Philips Serial ISP programming utility. 2. KEIL µVision 4IDE C51 Embedded Cross Compiler.

2.5 SCOPE:

The scope of the project work is to introduce advanced technology in converting dc voltage in to ac voltage and introducing smart energy metering concept.

In future this project can be used to measuring natural gas or water consumption. These meters can be connected to GSM module and data (i.e. consumption) can be transmitted over GSM networks and the bills can be automatically issued to the particular customer through SMS. By making small modifications in the program (code) we can break the connection if user does not pay the bills in time. There is no need for the electricity officials to visit the spot to disconnect the connections i.e., everything can be controlled over the GSM module. The user can also sell the electricity to the government which is created in his home using solar cells. These meters can also be used as prepaid energy meters by slightly modifying them.

2.6 Advantages:

 More accurate bills.

 Lower bills.

 Track of energy usage.

 Sell energy back to the grid.

 Flexible tariffs.

(11)

CHAPTER-3

(12)

CHAPTER - III

DESIGN METHODOLOGY

3.1 Hardware System Design:

3.

1. 1 Block level design of smart energy meter

The functional diagram of “Smart Energy Meter” using GSM or Hyper Terminal is given below.

(13)

3.1.2 SELECTION OF HARDWARE:

The hardware selected must be such a way that

 Low cost

 Low power consumption, small, fast

 Continually reacts to changes in the system‟s environment

 Must compute certain results in real-time without delay

 Simple design

 Easy maintainability and interoperability

 Bug-free/Correctness, safety, many more

3.1.3 DESIGN CONSIDERATIONS OF

MICROCONTROLLER

WHY P89C51RD2BN?

 The system requirements and control specifications clearly rule out the use of 16, 32 bit microcontrollers.

 The P89C51RD2xx contains non-volatile 64KB Flash program memory that is both parallel programmable and serial In-System and In-Application Programmable.

 In-System Programming (ISP) allows the user to download new code while the microcontroller sits in the application.

 In-Application Programming (IAP) means that the microcontroller fetches new program code and reprograms itself while in the system. This allows for remote programming over a modem link. A default serial loader (boot loader) program in ROM allows serial In-System programming of the Flash memory via the UART without the need for a loader in the Flash code. For In-Application Programming, the user program erases and reprograms the Flash memory by use of standard routines contained in ROM.

3.1.3.1 8051

The 8051 is an 8 bit microcontroller originally developed by Intel in 1980. It is one of the most popular microcontrollers in the world for its high performance, rich instruction set and low cost. This device is a Single-Chip 8-Bit Microcontroller manufactured in an advanced CMOS process and is a derivative of the 8051 microcontroller family. The instruction set is 100% compatible with the 8051 instruction set. Three criteria in choosing the microcontrollers are as follows:

1. Meeting the computing needs of the task at hand efficiently and cost effectively.

2. Availability of software development tools such as compliers, assemblers, and debuggers.

(14)

Some of the features that have made the 8051 popular are:

 64 KB on chip program memory.

 128 bytes on chip data memory (RAM).

 4 register banks.

 128 user defined software flags.

 Four 8-bit data bus

 16-bit address bus

 32 general purpose registers each of 8 bits

 16 bit timers (usually 2, but may have more, or less).

 3 internal and 2 external interrupts.

 Bit as well as byte addressable RAM area of 16 bytes.

 Four 8-bit ports, (short models have two 8-bit ports).

 16-bit program counter and data pointer.

 1 Microsecond instruction cycle with 12 MHz Crystal.

8051 models may also have a number of special, model-specific features, such as UARTs, ADC, Op Amps, etc...

3.1.3.2 Internal architecture of P89C51RD2XX

The P89C51RD2xx contains a non-volatile 8KB/16KB/32KB/64KB Flash program memory that is both parallel programmable and serial System and In-Application Programmable. In-System Programming (ISP) allows the user to download new code while the microcontroller sits in the application. In-Application Programming (IAP) means that the microcontroller fetches new program code and reprograms itself while in the system.

(15)

The internal architecture of P89C51RD2FN microcontroller with suitable diagram

Fig 3.2: Internal architecture of P89C51RD2FN.

3.1.3.2.1 I/O ports:

All 8051 microcontrollers have 4 I/O ports each comprising 8 bits which can be configured as inputs or outputs. Accordingly, in total of 32 input/output pins enabling the microcontroller to be connected to peripheral devices are available for use. Pin configuration, i.e. whether it is to be configured as an input (1) or an output (0), depends on its logic state. In order to configure a microcontroller pin as an input, it is necessary to apply logic zero (0) to appropriate I/O port bit. In this case, voltage level on appropriate pin will be 0.

The 4I/O ports of 8051 are designated as port 0, port 1, port 2, and port 3. All these I/O ports have different functions and conditions while connecting to external peripherals.

3.1.3.2.1. a Port 0 (P0)-

The P0 port is characterized by two functions. If external memory is used then the lower address byte (addresses A0-A7) is applied on it. Otherwise, all bits of this port are configured as inputs/outputs. The other function is expressed when it is

(16)

configured as an output. Unlike other ports consisting of pins with built-in pull-up resistor connected by its end to 5 V power supply; pins of this port have this resistor left out. If any pin of this port is configured as an input then it acts as if it “floats”. Such an input has unlimited input resistance and undetermined potential. When the pin is configured as an output, it acts as an “open drain”. By applying logic 0 to a port bit, the appropriate pin will be connected to ground (0V). By applying logic 1, the external output will keep on “floating”. In order to apply logic 1 (5V) on this output pin, it is necessary to built in an external pull-up resistor.

3.1.3.2.1. b Port 1 (P1)-

P1 is a true I/O port, because it doesn't have any alternative functions as is the case with P0, but can be configured as general I/O only. It has a pull-up resistor built-in and is completely compatible with TTL circuits.

3.1.3.2.1. c Port 2 (P2)-

P2 acts similarly to P0 when external memory is used. Pins of this port occupy addresses intended for external memory chip. This time it is about the higher address byte with addresses A8-A15. When no memory is added, this port can be used as a general input/output port showing features similar to P1.

3.1.3.2.1. d Port 3

(P3)-All port pins can be used as general I/O, but they also have an alternative function. In order to use these alternative functions, a logic one (1) must be applied to appropriate bit of the P3 register. In terms of hardware, this port is similar to P0, with the difference that its pins have a pull-up resistor built-in.

3.1.3.2.2 Interrupts controls:

There are 7 kinds of interrupt controllers that 8051 handles. They are as follows.

1. INT0 external interrupt. 2. INT1 external interrupt. 3. Timer 0

4. Timer 1 5. Reset.

6. Transmitted interrupt (TXD). 7. Received interrupt (RXD).

There are two types of external hardware interrupts. Pin 12 (P3.2) and pin 13 (P3.3) of the 8051, designated as INT0 and INT1, are used as external hardware interrupts. Upon the activation of these pins, the 8051 gets interrupted in whatever it is doing and jumps to the vector table to perform the interrupt service routines (ISR).

Timer 0 and timer 1 interrupts can be used in pooling method. In this method, we have to wait until the TF is raised. The problem with this method is that the microcontroller is tied down the controller. If the timer interrupt in the IE register is enabled, whenever the timer rolls over, TF is raised, and the microcontroller is

(17)

interrupted in whatever it is doing, and jumps to the interrupts vector table to service the ISR.

Reset pin is an input pin and is active high (normally low). Upon applying a high pulse to this pin, the microcontroller will reset and terminate all activities. This is often referred to as power-on reset. In order for RESET input to be effective, it must have a minimum duration of two machine cycles. In other words, the high pulse must be high for a minimum of two machine cycles before it is allowed to go low. TXD and RXD are serial communication interrupts.

3.1.3.2.3 BUS CONTROLS

The main bus controllers available in 8051 are ALE, EA, RST and PSEN.

ALE (Address Latch Enable):

Output pulse for latching the low byte of the address during an access to external memory. In normal operation, ALE is emitted twice every machine cycle, and can be used for external timing or clocking. Note that one ALE pulse is skipped during each access to external data memory. ALE can be disabled by setting SFR auxiliary.0. With this bit set, ALE will be active only during a MOVX instruction.

EA (External Access Enable/Programming Supply Voltage):

EA must be externally held low to enable the device to fetch code from external program memory locations. If EA is held high, the device executes from internal program memory. The value on the EA pin is latched when RST is released and any subsequent changes have no effect. This pin also receives the programming supply voltage (VPP) during Flash programming.

RST (Reset):

A high on this pin for two machine cycles while the oscillator is running

resets the device. An internal resistor to VSS permits a power-on reset using only an external capacitor to VCC.

PSEN (Program Store Enable):

The read strobe to external program memory. When executing code from the external program memory, PSEN is activated twice each machine cycle, except that two PSEN activations are skipped during each access to external data memory. PSEN is not activated during fetches from internal program memory.

3.1.3.2.4 Memory organization

The 8051 has two types of memory and these are Program Memory and Data Memory. Program Memory (ROM) is used to permanently save the program being executed, while Data Memory (RAM) is used for temporarily storing data and intermediate results created and used during the operation of the microcontroller. Depending on the model in use (we are still talking about the 8051 microcontroller

(18)

family in general) at most a few Kb of ROM and 128 or 256 bytes of RAM is used. All 8051 microcontrollers have a 16-bit addressing bus and are capable of addressing 64 kb memory. It is neither a mistake nor a big ambition of engineers who were working on basic core development. It is a matter of smart memory organization which makes these microcontrollers a real “programmers‟ goody“.

3.1.3.2.4. a Program memory

The first models of the 8051 microcontroller family did not have internal program memory. It was added as an external separate chip. These models are recognizable by their label beginning with 803 (for example 8031 or 8032). All later models have a few Kbyte ROM embedded. Even though such an amount of memory is sufficient for writing most of the programs, there are situations when it is necessary to use additional memory as well. A typical example is so called lookup tables. They are used in cases when equations describing some processes are too complicated or when there is no time for solving them. In such cases all necessary estimates and approximates are executed in advance and the final results are put in the tables (similar to logarithmic tables).

3.1.3.2.4. b Data memory

Data Memory is used for temporarily storing data and intermediate results created and used during the operation of the microcontroller. Besides, RAM memory built in the 8051 family includes many registers such as hardware counters and timers, input/output ports, serial data buffers etc. The previous models had 256 RAM locations, while for the later models this number was incremented by additional 128 registers. However, the first 256 memory locations (addresses 0-FFh) are the heart of memory common to all the models belonging to the 8051 family.

3.1.3.2.5 Registers in 8051

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: 8 bits. With an 8-bit data type, any data larger than 8 bits must be broken into 8- bit chunks before it is processed. The most widely used registers of the 8051 are A(Accumulator), B, and SPF (special function registers) and PSW (Program Status Word).

A register is a general-purpose register used for storing intermediate results obtained during operation. Prior to executing an instruction upon any number or operand it is necessary to store it in the accumulator first. All results obtained from arithmetical operations performed by the ALU are stored in the accumulator. Data to be moved from one register to another must go through the accumulator. In other words, the A register is the most commonly used register and it is impossible to

(19)

imagine a microcontroller without it. More than half instructions used by the 8051 microcontroller use somehow the accumulator. Multiplication and division 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).

3.1.3.2.5. a R Registers (R0-R7)

This is a common name for 8 general-purpose registers (R0, R1, R2 ...R7). Even though they are not true SFRs, they deserve to be discussed here because of their purpose. They occupy 4 banks within RAM. Similar to the accumulator, they are used for temporary storing variables and intermediate results during operation. Which one of these banks is to be active depends on two bits of the PSW Register. Active bank is a bank the registers of which are currently used.

3.1.3.2.5. b SFR (Special Function Registers)

Special Function Registers (SFRs) are a sort of control table used for running and monitoring the operation of the microcontroller. Each of these registers as well as each bit they include, has its name, address in the scope of RAM and precisely defined purpose such as timer control, interrupt control, serial communication control etc. Even though there are 128 memory locations intended to be occupied by them, the basic core, shared by all types of 8051 microcontrollers, has only 21 such registers.

3.1.3.2.5.c PROGRAM STATUS WORD (PSW):

 CY: Carry out from accumulator MSB of ALU operand

 AC: Auxiliary carry for BCD operations

 FO: General purpose

 RS1 & RS0: For register banks selection ( RB0-RB3)

 OV: Overflow flag

 P: Parity of accumulator set by hardware to 1 if it contains odd no of 1‟s

(20)

Carry flag:

Carry flag is set whenever there is carry out from the MSB. This flag is after 8bit ADD/SUB operation. It can also be set to 1 or 0 directly using SETB C or CLR C

Auxiliary carry:

If there is a carry from D3 to D4 position during Add/Sub operation, this bit will set. Otherwise, it is cleared. This flag is used for BCD operations.

Parity flag reflects the number of 1‟s in A. If „A‟ contains an odd number of 1‟s, then P=1. Therefore P=0, if A has an even number of 1‟s.

Overflow flag:

This flag is set whenever the result of a signed number operation is too large to be accommodated in 7 bits, causing the higher order bit to overflow into the sign bit.

3.1.3.2.6 Oscillator:

The microcontroller used in this project, P89C51RD2FN requires a baud rate of 9600. To acquire this baud rate, an 11.0592 MHz crystal must be connected between 19th and 20th pins of controller. The determination of machine cycle frequency and Baud rate is as follows.

MCF = (XTL freq / 12) = (11.0592 * 10^6) / 12 = 921.6 KHz Baud rate = MCF/32 = (921.6 × 10^3) / 32 = 28800 Hz

RS 1 RS 0 BANKS AND REGISTERS

0 0 BANK 0 (00H-07H)

0 1 BANK 1 (08H0FH)

1 0 BANK 2 (10H-17H)

(21)

Where MCF = Machine Cycle Frequency,

XTL = Crystal.

To synchronize with timer1 (TH1) to set the baud rate as 9600 we need to set those register value as -3 (decimal) or FD (Hexadecimal) so as to divide the baud rate i.e.. 28800Hz should be dividing with the decimal value of TH1 to get 9600 value.

Fig 3.3: Oscillator Connections

C1, C2 = 33pF.

3.1.3.3 FEATURES

 80C51 Central Processing Unit

 On chip Flash Program Memory with System Programming (ISP) and In-Application Programming

 Boot ROM contains low level Flash programming routines for downloading via the UART

 Can be programmed by the end-user application(IAP)

 Supports 6-clock/12 clock mode via parallel programmer(default clock mode after Chip Erase is 12-clock)

 Speed up to 20MHz with 6-clock cycles per machine cycle

(22)

cycle

 RAM expandable externally to 64Kbytes

 Four interrupt priority levels

 Seven interrupt sources

 Four 8-bit I/O ports

Full-duplex enhanced UART

 8-Bit ALU , with 2 registers A & B

 11 bit program counter & data pointer

 8-Bit program status word

 8 bit stack pointer

 4registers banks, each containing 8 registers

 16bytes , which may be addressed at bit level

 80 bytes of general purpose data

 Two 16 bit timer/counter – T0 & T1

Control registers –TCON, TMOD, SCON, PCON and IP & IE oscillator & clock circuits.

3.1.4 SERIAL COMMUNICATION

3.1.4.1 Introduction

In order to connect microcontroller to a modem or a pc to modem a serial port

is used. Serial is a very common protocol for device communication that is standard on almost every PC. Most computers include two RS-232 based serial ports. Serial is also a common communication protocol that is used by many devices for instrumentation; numerous GPIB-compatible devices also come with an RS232 port. Furthermore, serial communication can be used for data acquisition in conjunction with a remote sampling device.

Typically, serial is used to transmit ASCII data. Communication is completed using 3 transmission lines. (1) Ground, (2) Transmit and (3) Receive. Since serial is asynchronous, the port is able to transmit data on one line while receiving data on another. Other lines are available for handshaking, but are not required. The important serial characteristics are baud rate, data bits, stop bits, and parity. For two ports to communicate, these parameters much match.

Serial communication is a popular means of transmitting data between a computer and a peripheral device such as a programmable instrument or even another one bit at a time, over a single communication line to a receiver. You can use this method when data transfer rates are low or you must transfer data over long distances. Serial communication is popular because most computers have one or more serial ports, so no extra hardware is needed other than a cable to connect the instrument to the computer or two computers together.

Any device you connect to the serial port will need the serial transmission converted back to parallel so that it can be used. In serial communication, the data will be sent from one system to another in bit by bit notation. Serial Ports come in two “sizes”, there are the D-Type 25 pin connector and the D-Type 9 Pin connector both of which are male on the back of the PC, and thus you will require a female connector on your device. The RS-232 and RS-485 come under serial communication.

(23)

3.1.4.2 Baud Rate:

It is a speed measurement for communication. It indicates the number of bit transfers per second. For example, 300 baud is 300 bits per second. When a clock cycle is referred it means the baud rate. For example, if the protocol calls for a 4800 baud rate, then the clock is running at 4800Hz. This means that the serial port is sampling the data line at 4800Hz. Common baud rates for telephone lines are 12200, 28800 and 33600. Baud rates greater than these are possible, but these rates reduce the distance by which devices can be separated. These high baud rates are used for device communication where the devices are located together, as is typically the case with GPIB devices.

3.1.5 HARDWARE DESIGN OF LCD

The LCD (Liquid Crystal Display) used to display the output to the user in the form of GUI (Graphic User Interface) and a mono chromatic display. LCD used in this project is JHD162A series. There are 16 pins in all. They are numbered from left to right 1 to 16 (if you are reading from the backside). LCD shown above is marked to indicate which the 1st pin was and which the 16th was.

In our project, we use a JHD162A LCD Display which has 2 rows and 16 characters. It contains internal 1 byte latch. It has a better contrast and a wider viewing angle. To develop a protocol to interface this LCD with 89C51 first we have to understand how they functions. These displays contain two internal byte-wide registers, one for command and second for characters to be displayed. There are three control signals called R/W, RS and EN. Select By making RS signal 0 you can send different commands to display. These commands are used to initialize LCD, to display pattern, to shift cursor or screen etc. You can see the markings right next to 1st and 16th pins. The 16by2 LCD with connections is as given below

(24)

Fig 3.4: Pin configuration of LCD

3.1.5.1 LCD screen:-

LCD screen consists of two lines with 16 characters each. Each character consists of 5*7 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)

The main control pins on JHD162A are data lines, read or write and enable.

LCD is finding wide spread use replacing LEDs (seven segment LEDs or other multi segment LEDs) because of the following reasons:

1. The ability to display numbers, characters and graphics. This is in contrast to LEDs, which are limited to numbers and a few characters.

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

3. Ease of programming for characters and graphics.

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

(25)

Fig 3.5: LCD Display

3.1.5.1. a Data lines (D0-D7):

The data lines are connected to the parallel port of the microcontroller. While connecting the data lines to port0 no pull up resistors are required. These data lines are used to pass the data from CPU i.e. controller to LCD internal memory and to pass commands from LCD to CPU.Pin 7 is the Least Significant Bit (LSB) and pin 14 is the Most Significant Bit (MSB) of the data inputs. If you want to display some number or letter on the display, you have to input the appropriate „codes‟ for that character on these pins. These pins are also used for giving certain commands to the display like clearing the display or moving the cursor to a different location. Upon giving the correct signals to the 3 control pins, the character codes or the commands that you have given to the Data pins will be written to the display or executed by the LCD respectively. To make it easier to give the appropriate inputs to these pin, i recommend wiring up a DIP switch to these pins.

3.1.5.1. b Read and write:

Generally, we always use the LCD to show things on the screen. However, in some rare cases, we may need to read from the LCD what it is displaying. In such cases, the R/W pin is used. However, this function is beyond the scope of post and will not be explained. For all practical purposes, the R/W pin has to be permanently connected to GND.

The timing diagram for write and read operation of JHD162A is as follows

(26)

Fig 3.6: Timing diagram of write operation in LCD.

Read operation:

Fig 3.7: Timing diagram of read operation in LCD.

3.1.5.1. c Enable Pin:

The enable pin has a very simple function. It is just the clock input for the LCD. The instruction or the character data at the data pins (D0-D7) is processed by the LCD on the falling edge of this pin. The Enable pin should be normally held at Vcc by a pull up resistor. When a momentary button switch is pressed, the Pin goes low and back to high again when you leave the switch. Your instruction or character will be executed on the falling edge of the pulse. (i.e. the moment the switch closes).

3.1.5.1. d Reset pin:

The LCD has basically two operating modes: Instruction mode and Character

Mode. Depending on the status of this pin, the data on the 8 data pins (D0-D7) is

treated as either an instruction or as character data. You have to activate the command mode if you want to give an Instruction to the LCD. Example – “Clear the display”, “Move cursor to home” etc. You have to activate the character mode if you want to tell the LCD to display some character. To set the LCD in Instruction mode, you set

(27)

the 4th pin of the LCD (R/S) to GND. To put it in character mode, you connect it to Vcc.

3.1.5.2 Features

• RS232 compatible serial interface (2400 & 9600 Baud Selectable) • Externally selectable serial polarities (Inverted & Non-Inverted) • Serially controllable contrast and backlight levels

• 8 user programmable custom characters • 16 Byte serial receive buffer

3.1.5.3 Pin Configuration:

There are pins along one side of the small printed board used for connection to the microcontroller. There are total of 16 pins marked with numbers .Their function is described in the table below:

Table 3.2 Pin Connections Description

Pins 1 – 8 Description Pins 9 -16 Description

Pin1 Ground Pin9

D2 (Not Used in 4bit operation)

Pin2 VCC (+5) Pin10 D3 (Not Used in

4bit operation)

Pin3 Contrast Pin11 D4

Pin4 Data/Comman

d (R/S) Pin12 D5

Pin5 Read/Write

(W) Pin13 D6

Pin6 Enable (E1) Pin14 D7

Pin7 D0 (Not Used in 4bit operation) Pin15 VCC (LEDSV+) Pin8 D1 (Not Used in 4bit operation) Pin16 Ground

(28)

3.1.5.4 SPECIFICATIONS:

 Number of Characters: 16 characters x 2 Lines

 Character Table: English-European (RS in Datasheet)  Module dimension: 80.0mm x 36.0mm x 13.2mm(MAX)  View area: 66.0 x 16.0 mm  Active area: 56.2 x 11.5 mm  Dot size: 0.56 x 0.66 mm  Dot pitch: 0.60 x 0.70 mm  Character size: 2.96 x 5.46 mm  Character pitch: 3.55 x 5.94 mm

 LCD type: STN, Positive, Yellow/Green  Duty: 1/16

 View direction: Wide viewing angle

To start with LCD the user should initialize it first which should be programmed with its LCD commands. The LCD commands are given

(29)

Table 3.3 Commands for LCD

CODE COMMANDS TO THE LCD

1 Clear display screen

2 Return home

4 Shift cursor to left

5 Shift display right

6 Shift cursor to right

7 Shift display left

8 Display off, cursor off

A Display off, cursor on

C Display on, cursor off

E Display on, cursor blinking

F Display off, cursor blinking

10 Shift cursor position to left

14 Shift cursor position to right

18 Shift entire display left

1c Shift entire display right

80 Force cursor to begin in 1st row

C0 Force cursor to begin in 2nd row

(30)

Fig 3.8: LCD Interface with P89C51RD2XX

3.1.5.5 Functionality of LCD in this project:

 LCD is used to display any message, like authentication.

 It displays the menu of operation, which contains two options automatic and settings.

 It displays the amount of power utilized and price for the relevant consumed power.

 It displays the user to send the data to HyperTerminal.

3.1.6 MAX 232:

Max232 IC is a specialized circuit which makes standard voltages as required by RS232 standards. This IC provides best noise rejection and very reliable against discharges and short circuits. MAX232 IC chips are commonly referred to as line drivers.

To ensure data transfer between PC and microcontroller, the baud rate and voltage levels of Microcontroller and PC should be the same. The voltage levels of microcontroller are logic1 and logic 0 i.e., logic 1 is +5V and logic 0 is 0V. But for PC, RS232 voltage levels are considered and they are: logic 1 is taken as -3V to -25V and logic 0 as +3V to +25V. So, in order to equal these voltage levels, MAX232 IC is used. Thus this IC converts RS232 voltage levels to microcontroller voltage levels and vice versa.

(31)

3.1.6.1 Pin Configuration:

Fig 3.9: Pin diagram of MAX 232 IC

3.1.7 RS 232(Female Port)

RS-232 is the component which is used to connect system (pc) to microcontroller.

RS-232 (Recommended Standard 232) is the traditional name for a series of standards for serial binary single-ended data and control signals connecting between a DTE (Data Terminal Equipment) and a DCE (Data Circuit- terminating Equipment). It is commonly used in computer serial ports. The standard defines the electrical characteristics and timing of signals, the meaning of signals, and the physical size and pinout of connectors.

RS232 is limited to point-to-point connections between PC serial ports and devices. RS 232 hardware can be used for serial communication up to distances of 50 feet.

3.1.7.1 Voltage levels:

The RS-232 standard defines the voltage levels that correspond to logical one and logical zero levels for the data transmission and the control signal lines.

For data transmission lines (TxD, RxD and their secondary channel equivalents) logic one is defined as a negative voltage, the signal condition is called marking, and has the functional significance. Logic zero is positive and the signal condition is termed spacing.

(32)

Logic level Voltage level

1 -10V

0 10V

3.1.7.2 PIN CONFIGURATION

Fig 3.10: DB9 Connector with pinout

3.1.7.3 DB9 INTERFACING WITH MICROCONTROLLER USING MAX 232:

(33)

3.1.8 Serial port connector:

The microcontroller is connected to the pc via a serial communication port.

The serial communication port is a combination of a female port and a male port. The male port is connected to the DB-9 connector connected to the microcontroller while the female port is connected to the serial port of the pc.

Fig 3.12: serial port connector

3.1.9 Design of keypad

The keypad used in this project is AT91. A 4x4 matrix keypad requiring eight Input/output ports for interfacing is used. Rows are connected to Peripheral Input/output (PIO) pins configured as output. Columns are connected to PIO pins configured as input with interrupts.

(34)

The internal structure of keypad is as follows:

Fig 3.14: Internal structure of keypad

I/O configuration: Rows are connected to four PIO pins configured as

outputs. Columns are connected to four PIO pins configured as inputs with interrupts. The idle state of these pins is high level due to four pull-up resistors. PIO interrupt is generated by a low level applied to these pins (caused by a key pressed). Four additional PIO pins are configured as outputs to send the value of the pressed key to LEDS.

Timer Counter Configuration: The Timer Counter is configured in

waveform operating mode with RC compare interrupt. The Timer Counter is initialized to be incremented on internal clock cycles. The debouncing time is programmable by initializing the RC compare register value according to the clock source selected. A software trigger is used to reset the timer counter and start the counter clock.

Interrupt: When a key is pressed, a low level is applied to the pin

(35)

interrupts). A falling edge applied to a column pin creates a PIO interrupt. Then, the processor executes the PIO interrupt subroutine (debouncing) and comes back to its previous state (in the main program). After debouncing time, a RC compare timer interrupt occurs and the processor then executes the timer interrupt subroutine (decoding the pressed key) and comes back to its previous state (in the main program).

Keyboard Operating Sequence

To detect a pressed key, the Microcontroller grounds all rows by providing 0 to the output latch, and then it reads the columns. If the data read from the columns isD3- D0=1111 no key has been pressed and the process is continued until a key is detected. However if one of the columns bits is zero this means that a key press has occur. For example if D2-D0=1101 this means that a key in D1 column has been pressed after a key press is detected, the microcontroller will go through the process of identifying the key. Starting with the top row, the microcontroller grounds it by providing a low to row D0 only then it reads the columns. If the data read is all once, no key in that row is achieved and the process is moved to the next row. It ground the next row reads the column and checks for any zero. This process continues until the row is identified. After identification of the row in which the key has been press the next task is to find out which column the pressed key belongs to. This should be easy since the micro control knows at any time which the row and column are being accessed.

3.1.10 IR sensors and IC NE555 Timer:

The pair of IR sensors generally constitute of a photo transmitter and a photo receiver. The photo transmitter generally a photo diode emits IR rays while the receiver receives the IR rays. Whenever the transmission is blocked the sensor unit sends a interrupt signal to the microcontroller which then increments the counter.

3.1.10.1 Photo transmitter:

The photo transmitters are IR LEDs or photo diodes used to emit light.

IR LEDs are just like LEDs which emits IR rays. Since the IR rays are out of the visible range we cannot observe the rays from the transmitter. A photodiode is a type of photo-detector capable of converting light into either current or voltage, depending upon the mode of operation.

Photodiodes are similar to regular semiconductor diodes except that they may be either exposed (to detect vacuum UV or X-rays) or packaged with a window or optical fibre connection to allow light to reach the sensitive part of the device. Many diodes designed for use specifically as a photodiode will also use a PIN junction rather than the typical PN junction.

3.1.10.2 Principle of Operation:

A photodiode is a PN junction or PIN structure. When a photon of sufficient energy strikes the diode, it excites an electron thereby creating a mobile electron and a

(36)

positively charged electron hole. If the absorption occurs in the junction's depletion region, or one diffusion length away from it, these carriers are swept from the junction by the built-in field of the depletion region. Thus holes move toward the anode, and electrons toward the cathode, and a photocurrent is produced.

3.1.10.2. a Design parameters

1. Transistor

2. TCRT5000 IR transmitter 3. TCRT5000 IR receiver

4. 100ohms , 220ohms resistor (near transmitter) 5. 22ohms,4.7ohms resister (near receiver)

Fig 3.15: IR Transmitter Circuit diagram

(37)

3.1.10.3 Applications:

Photo diodes are used in

 Consumer electronic devices such as compact disc players, smoke detectors, and the receivers for remote controls in VCRs and television.

 Accurate measurement of light intensity.

 Detectors for computed tomography (coupled with scintillators) or instruments to analyze samples (immunoassay), pulse oximeters.

Optical communications and in lighting regulation.

Astronomy, spectroscopy, night vision equipment and laser range finding.

3.1.10.4FEATURES:

 λ= 940 nm

 Chip material =GaAs with AlGaAs window

 Medium Emission Angle, 40°

 High Output Power

 Package material and color: Clear, untinted, plastic

 Ideal for remote control applications

3.1.10.5 IR Receiver:

IR receiver is used to receive the signals transmitted by the IR transmitter.IR receiver is similar to a N-P-N transistor. It is a three terminal device but looks like a two terminal device a base is connected internally. It is a nothing but a phototransistor.

Fig 3.17: IR receiver 3.1.10.6 Phototransistors:

Phototransistors also consist of a photodiode with internal gain. A phototransistor is in essence nothing more than a bipolar transistor that is encased in a transparent case so that light can reach the base-collector junction.

3.1.10.7 Principle of Operation:

The electrons that are generated by photons in the base-collector junction are injected into the base, and this current is amplified by the transistor operation. Note that although phototransistors have a higher responsiveness for light they are unable to detect low levels of light any better than photodiodes. Phototransistors also have slower response times.

(38)

3.1.11 IC NE555 TIMER:

The 555 timer IC is an integrated circuit used in a variety of timer, pulse generation and oscillator applications. The full part numbers were NE555 (commercial temperature range, 0 °C to +70 °C). It has been hypothesized that the 555 got its name from the three 5 kΩ resistors used internally.

Depending on the manufacturer, the standard 555 package includes over 20 transistors, 2 diodes and 15 resistors on a silicon chip installed in an 8-pin mini dual-in-line package (DIP-8).

Fig 3.18: 555 Timer The 555 has three operating modes:

3.1.11.1 Monostable mode:

In this mode, the 555 timer functions as a "one-shot" pulse generator. Applications include timers, missing pulse detection, bounce free switches, touch switches, frequency divider, capacitance measurement, pulse-width modulation (PWM) and so on.

3.1.11.2 Astable mode:

Free running mode: the 555 can operate as an oscillator. Uses include LED and lamp flashers, pulse generation, logic clocks, tone generation, security alarms, pulse position modulation and so on. Selecting a NTC as timing resistor allows the use of the 555 in a temperature sensor: the period of the output pulse is determined by the temperature. The use of a microprocessor based circuit can then convert the pulse period to temperature, linearize it and even provide calibration means.

3.1.11.3 Bistable mode or Schmitt trigger:

The 555 can operate as a flip-flop, if the DIS pin is not connected and no capacitor is used. Uses include bounce free latched switches.

3.1.11.4 Features of NE555 Timer:

Timing is from microseconds through hours

O/p is compatible with CMOS, DTL and TTL

High Temperature Stability

Duty cycle is Adjustable

Mono-stable and Astable operations

(39)

 Supply voltage VCC 4.5 to 15V

 Supply current (VCC=+5V) 3 to 6mA

 Maximum O/P Current 200mA

 Power Dissipation 600mA

 Power consumption (minimum operating) 30mW@ 5V,225mW@15V

 Operating temperature 0 to 70 C

3.1.12 Resistors:

A resistor is a two-terminal passive electronic component that implements electrical resistance as a circuit element. When a voltage V is applied across the terminals of a resistor, a current I will flow through the resistor in direct proportion to that voltage. This constant of proportionality is called conductance, G. The reciprocal of the conductance is known as the resistance R, since, with a given voltage V, a larger value of R further "resists" the flow of current I as given by Ohm's law:

Fig 3.19: Resistors

Practical resistors can be made of various compounds and films, as well as resistance wire (wire made of a high-resistivity alloy, such as nickel-chrome). Resistors are also implemented within integrated circuits, particularly analog devices, and can also be integrated into hybrid and printed circuits.

3.1.13 Capacitors:

A capacitor (formerly known as condenser) is a device for storing electric charge. The forms of practical capacitors vary widely, but all contain at least two conductors separated by a non-conductor. Capacitors used as parts of electrical systems, for example, consist of metal foils separated by a layer of insulating film.

(40)

A capacitor is a passive electronic component consisting of a pair of conductors separated by a dielectric (insulator). When there is a potential difference (voltage) across the conductors, a static electric field develops across the dielectric, causing positive charge to collect on one plate and negative charge on the other plate. Energy is stored in the electrostatic field. An ideal capacitor is characterized by a single constant value, capacitance, measured in farads. This is the ratio of the electric charge on each conductor to the potential difference between them.

Fig 3.20: capacitors

Capacitors are widely used in electronic circuits for blocking direct current while allowing alternating current to pass, in filter networks, for smoothing the output of power supplies, in the resonant circuits that tune radios to particular frequencies and for many other purposes.

The capacitor is a reasonably general model for electric fields within electric circuits. An ideal capacitor is wholly characterized by a constant capacitance C, defined as the ratio of charge ±Q on each conductor to the voltage V between them:

3.1.14 Crystal oscillator:

A crystal oscillator is an electronic oscillator circuit that uses the mechanical

resonance of a vibrating crystal of piezoelectric material to create an electrical signal with a very precise frequency. This frequency is commonly used to keep track of time (as in quartz wristwatches), to provide a stable clock signal for digital integrated circuits, and to stabilize frequencies for radio transmitters and receivers. The most common type of piezoelectric resonator used is the quartz crystal, so oscillator circuits designed around them became known as "crystal oscillators."

(41)

Fig 3.21: crystal oscillator

Quartz crystals are manufactured for frequencies from a few tens of kilohertz to tens of megahertz. More than two billion (2×109) crystals are manufactured annually. Most are used for consumer devices such as wristwatches, clocks, radios, computers, and cell phones. Quartz crystals are also found inside test and

measurement equipment, such as counters, signal generators, and oscilloscopes.

3.2 Software design:

3.2.1 Liquid Crystal Display

3.2.1.1 Initializing the LCD

Before you using the LCD, the program must initialize and configure it. This

is accomplished by sending a number of initialization instructions to the LCD.

The first instruction to send is the no of data for the LCD i.e., with an 8-bit or

4-bit data bus. The other thing need to specify is display matrix; in the selected LCD it is a 5x8 dot character font. These two options are selected by sending the command 38h to the LCD as a command. The command can give to the LCD by invoking the pre defined function call lcdcmd with passing parameters value of 38H, the syntax for the same can be given like lcdcmd (0x38).

3.2.1.2 Checking the busy status of the LCD 3.2.1.2.1 Busy Flag (BF):

When the busy flag is high or “1” the module is performing an internal operation and the next instruction will not be accepted. The RS=0 is used to check the Busy flag bit too see if the LCD is ready to receive information. The Busy flag is D7 and can be read when R/W = 1 and RS = 0, as follows: if R/W = 1, RS= 0.When D7=1 (busy flag), the LCD is busy taking care of internal operations and will not accept any new information. When D7=0, the LCD is ready to receive new information.

(42)

3.2.1.2.1.1 Busy flag flowchart

Fig 3.22: Busy flag flowchart

3.2.1.2.2.1 Writing command to the Display

To give a command to perform some special functions like move to position, clear LCD ,blink the curser etc. the instruction sequence must follow like first instruction must be set in the data bus set RS signal to logic 0 and enabling the LCD will receive the data . After finishing the instruction sequence the application must wait till the LCD completes the instruction by checking the LCD Busy status.

(43)

Fig 3.23: Writing command display flow chart

1. Check the Busy flag bit

2. Set the instruction in data lines (if it is writing) 3. Set RS bit to logic 1 to 0

4. Set R/W bit is to low 6. Set En line to high 7. Set line to low

3.2.1.2.4.1 Displaying the data in to the LCD

Writing the string in the LCD, to get the result first the address at which the

string has to display on the screen is given as command followed by displaying the individual characters as LCD data .That finishes the data to be display in the LCD.

(44)

Fig 3.24: Flow chart for the LCD function. 3.2.2 KEYPAD:

Start

RS=0

E=1

Delay

E=0

LCD

Busy

RS=0

E=1

Delay

P0=command

LCD

Busy

(45)

3.2.2.1 FLOW CHART OF KEY BOARD SCANNING ALGORITHM

(46)
(47)
(48)

CHAPTER – 4

IMPLEMENTATION

4.1 HARDWARE IMPLEMENTATION

4.1.1 Complete Schematic of Smart Energy Meter

(49)

4.1.2 Connections of P89C51RD2FN

The pin configuration of P89C51RD2XX:-

Fig 4.2: Pin diagram of P89C51RD2FN

In this project the microcontroller is connected to MAX232, LCD, Keypad, sensors.

The connections of microcontroller are given briefly below:

 Pin1 to pin8 (Port 0) of controller are connected to the data lines of keypad (D0-D8).

 The reset pin is connected to the 9th

pin (RST) of P89C51RD2FN, as it is used for set reset the program.

 While the 10pin is connected to the 12th

pin of MAX232.  11th

pin of controller is connected to the 11th pin of MAX232.

 The interrupt given by the IR sensors from the 555IC timer should be connected to the 12th pin i.e. INTO pin of controller.

 13th

pin is used as an external interrupt, but here in this project there is no use with this pin.

 The crystal oscillator which gives a frequency of 11.0592 MHz for the required Baud rate of 9600Hz to the microcontroller. This crystal oscillator is

(50)

connected in between 18th (XALT 1) and 19th (XALT 2) pins of P89C51RD2FN controller.

 The 20th

pin of controller is grounded.  The pins from 21st

to 28th (port 2 data lines) are used for the external peripheral connections.

 The 29th

pin is connected to an on-off switch so as to dump and execute the program. Whenever the PSEN pin is connected to ground then we can execute the last dumped program, likewise when 29th pin is connected to VCC then code can be dumped into the controller.

 Address Latch Enable pin (30th

pin) of controller is connected to the ground hence no connections need not to be given to this pin.

 External Access Enable or programming supply voltage should be latched when RST is released and any subsequent changes have no effect. This pin also receives the programming supply voltage (VPP) during Flash programming. Hence the pin 31st must be connected to high i.e. VCC.

 Port0 (pins 32 to 39) are connected to LCD in this project. But these should be connected to other peripherals through pull up resistors.

4.1.3 Pin connections of LCD

The LCD used for output display is JHD162A series. The detailed connections of LCD is described briefly as

 The 1st

and 2nd pins of JHD162A LCD are connected to ground and high voltage VCC respectively.

 3rd

pin of LCD is connected to the centre pin of the potentiometer or variable resistor so as to adjust the contrast of LCD.

 The 4th

, 5th, 6th pins are connected to 26th (P 2.5), 27th (P 2.6), 28th (P 2.7) pins of the microcontroller respectively.

 The 7th

to 14th pins are data pins and are connected to the 39th (P 0.0) to 32nd (P 0.7) pins of the microcontroller respectively.

 The 15th

and 16th pins are used for backlight purpose. 15th pin is connected to VCC and 16th pin to ground.

(51)

Fig 4.3: connection of LCD with P89C51RD2FN.

4.1.4 KEYPAD CONNECTIONS:

The keypad used is 4*4 keypad

 The pins 1, 2, 3, 4 which are connected to columns of the keypad are connected to 1, 2, 3, 4(P1.0 to P1.3) pins of the microcontroller respectively.

 The pins 5, 6, 7, 8 which are connected to rows of the keypad are connected to 5, 6, 7, 8(P1.4 to P1.7) pins of the microcontroller respectively.

4.1.5 MAX232 AND DB9 CONNECTION:

MAX232 and DB9 connector plays a key role in program dumping and communication between project kit to the PC host.

 Capacitor C10 of capacitance 1Uf is connected across 1st and 3rd pins of MAX232 and C9 of capacitance 1Uf is connected in between 4th and 5th pins.

 Charge pump capacitors are required for the MAX232 to work it as voltage level shifter. The charge pump capacitors used here are C7 and C8 whose capacitance is 1Uf. C7 is connected between 6th pin and ground, while C8 is connected across 2nd pin of MAX232 and Vcc.

 12th and 11th pins of MAX232 are connected to the 10th and 11th pins of P89C51RD2FN controller respectively. These acts as a transmitter and receiver for the data flow.

 To connect the MAX232 to the PC host we require a medium named as DB9 connector. The 2nd and 3rd pin of the DB9 connector should be connected to the 14th and 13th pins of MAX232 respectively. While the 5th pin is grounded.

(52)

4.1.6 IC555 TIMER and IR transmitter connections:

 The sensor is designed using a 555 timer, a IR transmitter and a IR receiver.

 The 555 timer is operated in astable mode of operation.

 The 1st pin is grounded.

 The 2nd pin and 6th pin are shorted, 2nd pin is connected to VCC through the 10K and 220K pot, IR receiver is connected to 2nd pin in reverse bias.

 The pin 3 of 555 timer is an output pin which is connected to the 12th pin (P 3.2) of the microcontroller.

 The 4th pin and 8th pin are shorted, 8th pin is connected to VCC and 0.1µf capacitor is connected between 8th pin and ground.

 The 5th pin is grounded through 0.01µf capacitor.

 The IR transmitter is connected between VCC and ground through 270 ohm resistor. It is connected in forward bias.

 If there is obstruction between transmitter and receiver, the receiver output gives 3V to 5V.

 Whenever there is an obstruction of current between transmitter and receiver, the current passed to receiver decreases and hence the voltage across voltage divider decreases. As a result a short pulse is applied to the port pin of the 8051 microcontroller. On receiving a pulse from the sensor circuit, the controller increments the counter which indicates the consumption of electricity.

The IR sensor implementation using 555 timer is shown in figure below:

(53)
(54)

CHAPTER-5

SOFTWARE IMPLEMENTATION

This chapter explores some real world applications of the P89C51RD2xx, and also includes how to interface the P89C51RD2xx to devices such as an LCD and a keyboard and its software functionality using embedded C language.

5.1 JHD162A LCD INTERFACING 5.1.1Initializing the LCD

Before you using the LCD, the program must initialize and configure it. This

is accomplished by sending a number of initialization instructions to the LCD.

The first instruction to send is the no of data for the LCD i.e., with an 8-bit or

4-bit data bus. The other thing need to specify is display matrix; in the selected LCD it is a 5x8 dot character font. These two options are selected by sending the command 38h to the LCD as a command. The command can give to the LCD by invoking the pre defined function call lcdcmd with passing parameters value of 38H ,the syntax for the same can be given like lcdcmd(0x38).

5.1.2 The initialization sequence code can be given as follows:

lcdcmd(0x38); // 2 lines and 5x7 matrix

lcdcmd(0xC0); // force cursor to begging of 2nd line lcdcmd(0x0E); // display on, cursor blinking

lcdcmd(0x01); //clear display screen

lcdcmd(0x06); // increment cursor (shift cursor right) lcdcmd(0x80); // force cursor to begging of 1st line

5.1.3 Checking the busy status of the LCD Busy Flag (BF):

void lcdready(void)

{

busy=1;

rs=0; //Register select command rw=1;

while(busy==1) // if Bit (D7) high, LCD still busy

{

en=0; // Finish the command

MSDelay(1);

References

Related documents

2- Professor, Department of Adult Health Nursing, School of Nursing and Midwifery, Isfahan University of Medical Sciences, Isfahan, Iran 3- Assistant Professor, Department of

The summary resource report prepared by North Atlantic is based on a 43-101 Compliant Resource Report prepared by M. Holter, Consulting Professional Engineer,

Based on the multi-sensor system developed for the Artificial Learning Environment for Autonomous Driving (ALEAD) project (Song et al.,2019), shown in Figure 1, a range

Craig, Connor, and Washington (2003) contend that African-American students are more likely to read below the levels of their peers. The Black-White Achievement Gap is a term

At Uppsala University Campus Gotland we focus specifically on is- sues related to establishment of wind energy, project development, wind turbine wakes and wind farm

E-Transfer is completely online, paperless money transfer service which enables the customer to send money directly from one bank account in foreign country to

In the literature, entity-based models are usually subdivided into mention-entity mod- els, which model coreference resolution as attaching mentions to partial entities,

In this section, I consider the findings from the previous section on grade distribution and measurements of student engagement (via the Yellowdig Conversation Posts assignment)