Você está na página 1de 44

SUMMER TRAINING PROJECT REPORT

ON

INTERFACING OF ANALOG SENSOR


WITH AN 8051 MICROCONTROLLER
TO

NORTHERN INDIA ENGINEERING COLLEGE,


NEW DELHI
For the degree
Of
Bachelor in Technology
In
Electronics & Communication

NORTHERN INDIA ENGINEERING COLLEGE,


FC-26, SHASTRI PARK, NEW DELHI-53
MAY 2010

SUBMITTED BY:
Ravinder Singh – 0171562808 (ECE-S3)

Swati Varun – 0001562808 (ECE-S3)

Gautam Panwar – 0211562808 (ECE-S3)

Navendu Pratap Sagar - 0221562808(ECE-S3)

1
CERTIFICATE

This is to certify that Project Report titled “INTERFACING OF ANALOG


SENSOR WITH AN 8051 MICROCONTROLLER”, which is submitted
by following students of Bachelors in Technology in Electronics and
Communication Engg. Of NORTHERN INDIA ENGINEERING
COLLEGE, NEW DELHI, under my supervision.

Projectee:

Ravinder Singh – 0171562808

Swati Varun – 0001562808

Gautam Panwar – 0211562808

Navendu Pratap Sagar - 0221562808

Head of the department Supervisor/Guide

2
ACKNOWLEDGEMENT

We feel highly privileged to express our deep sense of gratitude to all


those who helped us during our project work. We would like to express
our grateful thanks for the help and advice given to us by
………… , HOD ECE Dept., for their valuable guidance in our project.

We express our gratitude and reverence to the preceptor and project


Guide...……. for his advice, guidance and support which helped us in
completing our project.

We are also highly thankful to the management of NORTHERN INDIA


ENGINEERING COLLEGE, for providing necessary facilities and
infrastructure.

Date:

APPROVED BY:

3
CONTENTS

TABLE OF CONTENTS...................................................................4
OVERVIEW………………………………………………………..…….5

CHAPTER1:INTRODUCTION.........................................................6

REQUIREMENTS...........................................................................7

CHAPTER 2: ANALOG SENSOR

2.1 Introduction.........................................................................8
2.2 Analog to digital converter .................................................8
2.3 Types of A/D converter………………………………………10
2.4 Useful Analog sensors.......................................................12

CHAPTER 3: MICROCONTROLLER

3.1 Introduction…………………………………………………..….14
3.2 P89V51RD2FN Microcontroller............................................15
3.3 Pin Diagram..........................................................................16
3.4 Pin Descriptions………………………………………………...17
3.5 Data table………………………………………………………..20

CHAPTER 4: ICs

4.1 MAX232……………………………………....………………….27
4.2 ULN2803…………………………………………………………30
4.3 PCF8591…………………………………………………………33

CHAPTER 5: OVER ALL SYSTEM


5.1 Block Diagram.........................................................................36
5.2 Hardware………………………………………………………..…37
5.3 Programme………………………………………………………..38

CONCLUSIONS.............................................................................43
TOOLS AND DEVELOPMENT......................................................44
REFERENCES...............................................................................44

4
OVERVIEW

In our project we have explained how to read value from an analog


sensor (Potentiometer used here) and send it to microcontroller via
analog to digital converter. The value read is further displayed by led
array in binary format. The circuit incorporates various IC along with
8051 microcontroller.

5
PART 1
INTRODUCTION

A sensor is a device which measures or detects a physical quantity. Whereas an


actuator is a device which converts a signal, usually electrical, into some action i.e.
mechanical.
Transducer is a device which can convert one form of energy to other.So,sensor as
well as actuator is a transducer.

Among the different types of energy which can be sensed are those classed as
radiant,mechanical,gravitational,electrical
, thermal and magnetic.
All the value sensed are usually analog in nature. As these values involve
computational work, so these value must be converted into digital format as
computers cant accept analog signal.
Analog signals are those signals which can take any possible values between two
points whereas digital signals can take only certain discrete values between two
points.

6
REQUIREMENTS

• Computer Interfacing.

• Potentiometer (10kohm).

• IC – MAX232, ULN2803, PCF8591.

• P89V51RD2FN microcontroller.

7
PART 2
ANALOG SENSOR

2.1 INTRODUCTION:
Analog sensors measure continuous information. An example of this kind of a
sensor is a light sensor which monitors the amount of light over time. Analog
sensors are often distinguished from digital sensors which use discrete
(discontinuous) values to represent information for input. Often though either
approach can be used to provide similar types of information. For example, film
cameras are analog devices, while Web cameras are digital devices.
Now,the question arises, how these analog signals are converted into digital
signals.There are several ic available in market which performs the function of a to
d conversion.

We have used PCF8591 IC as a/d converter..

2.2 Analog to Digital Converter:

Microcontrollers almost always deal with discrete values. An important part of


using an Analog Signal is being able to convert it to a Discrete Signal such as a 8-
bit digital value. This allows the Microcontroller to do things like compute values
and perform comparisons. Fortunately, most modern controllers have a resource
called an Analog to Digital converter (A/D converter).

8
The function of the A/D converter is to convert an Analog signal into a digital
value. It does this with a mapping function that assigns discrete values to the entire
range of voltages. It is typical for the range of an A/D converter to be 0 to +5 volts.

The A/D converter will divide the range of values by the number of discrete
combinations. For example, the table on the right shows 5 samples of an Analog
Signal that have been converted into digital values.

The Chart on the bottom shows the results of the A/D conversions for 14 samples.
The sample numbers are shown along the X axis at the bottom. The left hand Y axis
indicates the voltage of the Analog sample that was fed into the A/D converter. On
the right hand side, the 8-bit value assigned to the conversion is show.

As you can see from the blue line, this was an analog function just like the original
Analog Signal graph shown above. The A/D converter has mapped a set of discrete
values onto this graph.

9
Now these digital signals are send to microcontrooler for processing. After
that, microcontroller sends value in binary to led array.

2.3 Types of a/d converters:

1. Ladder comparison
2. Successive approximation
3. Flash comparison

These three are important converters. Beside these, several other


converters are also available.

1. Ladder comparison

2. Successive approximation
10
3. Flash comparison

If N is the number of bits in the output word,


Then 2^N comparators will be required.

2.4 Useful Analog Sensors:


11
All of the circuits shown in this section are intended to be connected to an A/D
converter port.

CdS cells:

Cadmium sulphide is a unique compound with a property that its


resistance varies with intensity of light. Higher the intensity, lower the
resistance. In the diagram shown in right, p1 is CdS cell whereas r1 is
10k resistance. Using voltage divider equation, we can calculate the
voltage at avg light and accordingly choose our a/d converter.

Potentiometers:
12
Potentiometer is one of the most extensively used analog sensor.It is
widely used in robotic arm to sense the angle in a range of 0 to 270
degree.it is basically a resistive sensor.its schematic is similar to the
schematic of CdS cell sensor mentioned above.Value read by a/d
converter changes with contact position on r2.As the contact position
changes ,different values of voltage occurs at i/p of a to d converter
according to voltage divider rule.

PART 3
MICROCONTROLLER
13
3.1 INTRODUCTION:
Microcontrollers are "special purpose computers." Microcontrollers do one thing
well. There are a number of other common characteristics that define
microcontrollers. If a computer matches a majority of these characteristics, then you
can call it a "microcontroller":
Microcontrollers are "embedded" inside some other device (often a
consumer product) so that they can control the features or actions of the product.
Another name for a microcontroller, therefore, is "embedded controller."
Microcontrollers are dedicated to one task and run one specific program.
The program is stored in (read-only memory) and generally does not change.
Microcontrollers are often low-power devices. A desktop computer is
almost always plugged into a wall socket and might consume 50 watts of
electricity. A battery-operated microcontroller might consume 50 milliwatts.
A microcontroller has a dedicated input device and often (but not always)
has a small LED or LCD display for output. A microcontroller also takes input
from the device it is controlling and controls the device by sending signals to
different components in the device.
In our project we are using P89C51RD2 MICROCONTROLLER.

3.2 P89V51RD2FN MICROCONTROLLER


The P89C51RD2 is a low-power, high-performance CMOS 8-bit
microcontroller with 8K bytes of Flash programmable and erasable read only
memory (PEROM). The device is manufactured using Philips’ high-density

14
nonvolatile memory technology and is compatible with the industry-standard MCS-
51 instruction set and pinout. The on-chip Flash allows the program memory to be
reprogrammed in-system or by a conventional nonvolatile memory programmer. By
combining a versatile 8-bit CPU with Flash on a monolithic chip, the Philips
P89V51RD2FN is a powerful microcomputer which provides a highly-flexible and
cost-effective solution to many embedded control applications.

The P89V51RD2FN provides the following standard features: 64 kB flash


microcontroller with 1024 byte RAM; Clock type: 12-clk (6-clk opt.) ; External
interrupt: 2; I/O pins: 32 ; Memory type: FLASH ; Number of pins: 40 ; Operating
frequency: 0~20/40 (6clk/12clk) MHz; Operating temperature: -40~85 Cel; Power
supply: 4.5~5.5V ; Program security: yes; Serial interface: UART ; Series: 80C51
family

3.3 PIN DIAGRAM

15
3.4 PIN DESCRIPTION
VCC:
16
Supply voltage.

GND:
Ground.

Port 0:
Port 0 is an 8-bit open-drain bi-directional I/O port. As an output port, each pin can
sink eight TTL inputs. When 1s are written to port 0 pins, the pins can be used as
high impedance inputs.
Port 0 may also be configured to be the multiplexed low order address/data bus
during accesses to external program and data memory. In this mode P0 has internal
pull ups.
Port 0 also receives the code bytes during Flash programming, and outputs the code
bytes during program verification. External pull ups are required during program
verification.

Port 1:
Port 1 is an 8-bit bi-directional I/O port with internal pull-ups. The Port 1 pins are
pulled high by the internal pull-ups when ‘1’s are written to them and can be used
as inputs in this state. As inputs, Port 1 pins that are externally pulled LOW will
source current (IIL) because of the internal pull-ups. P1.5, P1.6, P1.7 have high
current drive of 16 mA. Port 1 also receives the low-order address bytes during the
external host mode programming and verification.

Port 2:
Port 2 is an 8-bit bi-directional I/O port with internal pull ups. The Port 2 output
buffers can sink/source four TTL inputs. When 1s are written to Port 2 pins they are
pulled high by the internal pull ups and can be used as inputs. As inputs, Port 2 pins
that are externally being pulled low will source current (IIL) because of the internal
pull ups. Port 2 emits the high-order address byte during fetches from external
program memory and during accesses to external data memory that use 16-bit
addresses. In this application, it uses strong internal pull ups when emitting 1s.
During accesses to external data memory that use 8-bit addresses (MOVX @ RI),
Port 2 emits the contents of the P2 Special Function Register. Port 2 also receives
the high-order address bits and some control signals during Flash programming and
verification.

Port 3:
Port 3 is an 8-bit bi-directional I/O port with internal pull ups. The Port 3 output
buffers can sink/source four TTL inputs. When 1s are written to Port 3 pins they are
17
pulled high by the internal pull ups and can be used as inputs. As inputs, Port 3 pins
that are externally being pulled low will source current (IIL) because of the pull
ups. Port 3 also serves the functions of various special features of the AT89C51 as
listed below:

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

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

ALE/PROG:
Address Latch Enable output pulse for latching the low byte of the address during
accesses to external memory. This pin is also the program pulse input (PROG)
during Flash programming. In normal operation ALE is emitted at a constant rate of
1/6 the oscillator frequency, and may be used for external timing or clocking
purposes. Note, however, that one ALE pulse is skipped during each access to
external Data Memory.
If desired, ALE operation can be disabled by setting bit 0 of SFR location 8EH.
With the bit set, ALE is active only during a MOVX or MOVC instruction.
Otherwise, the pin is weakly pulled high. Setting the ALE-disable bit has no effect
if the microcontroller is in external execution mode.

PSEN:
Program Store Enable is the read strobe to external program memory. When the
microcontroller is executing code from external program memory, PSEN is
activated twice each machine cycle, except that two PSEN activations are skipped
during each access to external data memory.
EA/VPP:
18
External Access Enable. EA must be strapped to GND in order to enable the device
to fetch code from external program memory locations starting at 0000H up to
FFFFH. Note, however, that if lock bit 1 is programmed, EA will be internally
latched on reset.
EA should be strapped to VCC for internal program executions. This pin also
receives the 12-volt programming enable voltage(VPP) during Flash programming,
for parts that require12-volt VPP.

XTAL1:
Input to the inverting oscillator amplifier and input to the internal clock operating
circuit.

XTAL2:
Output from the inverting oscillator amplifier.

DATA TABLE:

BLOCK DIAGRAM OF IC:

19
RECOMMENDED OPERATING CONDITIONS:

OPERATING RANGE:

20
RELIABILITY CHARACTERISTICS:

POWER-UP TIMING:

21
PIN IMPEDANCE:

STATIC CHARACTERISTICS:

22
SPECIAL FUNCTION REGISTERS:

23
24
25
26
PART 4
ICs

4.1 MAX 232

INTRODUCTION:

The MAX232 is a dual driver/receiver that includes a capacitive voltage generator


to supply TIA/EIA-232-F
Voltage levels from a single 5-V supply. Each receiver converts TIA/EIA-232-F
inputs to 5-V TTL/CMOS levels.
These receivers have a typical threshold of 1.3 V, a typical hysteresis of 0.5 V, and
can accept ±30-V inputs.
Each driver converts TTL/CMOS input levels into TIA/EIA-232-F levels.

They are
supplied in 16
pin plastic DIP
packages with a
copper lead
frame to reduce
thermal
resistance.

PIN CONNECTION:
27
FUNCTION TABLE:

28
4.2 ULN 2803

29
INTRODUCTION:
The ULN2803APG / AFWG Series are high voltage, high current Darlington
drivers comprised of eight NPN Darlington pairs.
All units feature integral clamp diodes for switching inductive loads.
Applications include relay, hammer, lamp and display (LED) drivers.

FEATURES:
• Output current (single output) 500 mA (Max.)
• High sustaining voltage output 50 V (Min.)
• Output clamp diodes
• Inputs compatible with various types of logic.
• Package Type−APG : DIP−18pin
• Package Type−AFWG : SOL−18pin

PIN CONNECTION:
30
31
4.3 PCF8591

32
INTRODUCTION
The PCF8591 is a single-chip, single-supply low power 8-bit CMOS data
acquisition device with four analog inputs, one analog output and a serial I2C-bus
interface. Three address pins A0, A1 and A2 are used for programming the
hardware address, allowing the use of up to eight devices connected to the I2C-bus
without additional hardware. Address, control and data to and from
the device are transferred serially via the two-line bidirectional I2C-bus.
The functions of the device include analog input multiplexing, on-chip track and
hold function, 8-bit analog-to-digital conversion and an 8-bit digital-to-analog
conversion. The maximum conversion rate is given by the maximum speed of the
I2C-bus

FEATURES
· Single power supply
· Operating supply voltage 2.5 V to 6 V
· Low standby current
· Serial input/output via I2C-bus
· Address by 3 hardware address pins
· Sampling rate given by I2C-bus speed
· 4 analog inputs programmable as single-ended or differential inputs
· Auto-incremented channel selection
· Analog voltage range from VSS to VDD
· On-chip track and hold circuit
· 8-bit successive approximation A/D conversion
· Multiplying DAC with one analog output

APPLICATIONS
· Closed loop control systems
33
· Low power converter for remote data acquisition
· Battery operated equipment
· Acquisition of analog values in automotive, audio and TV applications.

PIN CONNECTION:

Block Diagram:

34
PART 5
35
OVER ALL SYSTEM

5.1 BLOCK DIAGRAM

5.2 HARDWARE
36
Interfacing
Interfacing is an important task to be accomplished in almost all
automation applications. The digital signals are to be generated to make the
hardware run as per the instructions of program.
In the present application, the programming is done in .C. programming
language. .C. is chosen for its simplicity and ruggedness. It offers simple methods
to interact with the serial port through which the interfacing is done.

PROGRAMME

37
#ifndef __I2C_H
#define __I2C_H

#include <REG51F.H>
#include <INTRINS.H>

//-------------------------------------------

#define NOP _nop_()

//-------------------------------------------

void I2C_START();
void I2C_STOP();
void I2C_SEND(unsigned char );
unsigned char I2C_REC(void);
void I2C_ACK();
void I2C_NACK();
//--------------------------------------------

sbit SCL=P1^6;
sbit SDA=P1^7;

bit FLAG;

//--------------------------------------------

#endif

void I2C_START()
{
SDA=1;
SCL=1;
NOP;
SDA=0;
NOP;
SCL=0;
}

38
//---------------------------------------------

void I2C_STOP()
{
SDA=0;
SCL=1;
NOP;
SDA=1;
NOP;
SCL=0;
}

//----------------------------------------------

void I2C_SEND(unsigned char VALUE)


{
unsigned char i;

for(i=0;i<8;i++)
{
SCL=0;
if((VALUE & 0x80)==0x80)
SDA=1;
else
SDA=0;
SCL=1;
NOP;
NOP;
SCL=0;
VALUE=VALUE<<1;
}
SDA=1;
SCL=1;
NOP;
FLAG=SDA;
NOP;
SCL=0;
}

//-------------------------------------------------
39
unsigned char I2C_REC(void)
{
unsigned char i,VALUE;
VALUE=0;
SDA=1;
for(i=0;i<8;i++)
{
SCL=1;

NOP;
NOP;
if(SDA)
VALUE = VALUE|0x01;
NOP;
NOP;
SCL=0;
if(i!=7)
VALUE = VALUE<<1;

return VALUE;
}

//-------------------------------------------------
/*
void DELAY(unsigned char TIME)
{
unsigned int i,j;
j=500*TIME;
for(i=0;i<j;i++);
}
*/
//-------------------------------------------------

void I2C_ACK()
{
SDA=0;
SCL=1;
40
NOP;
NOP;
SCL=0;
}

//------------------------------------------------

void I2C_NACK()
{
SDA=1;
SCL=1;
NOP;
NOP;
SCL=0;
}
unsigned char read_adc(unsigned char channel)
{
unsigned char value;
I2C_START();
I2C_SEND(0X90);
I2C_SEND(channel);
I2C_START();
I2C_SEND(0X91);
value=I2C_REC();
I2C_ACK();
value=I2C_REC();
I2C_NACK();
I2C_STOP();
return value;
}
//-------------------------
void init_uart()
{
SCON=0X50;
TMOD=0X20;
TH1=TL1=0XFD;
TR1=1;
}
//-----------------------
void tx(unsigned char value)
41
{
SBUF=value;
while(!TI);
TI=0;
}
//--------------------------
main()
{
while(1)
{
P0=read_adc(0);

}
}

CONCLUSION
42
The project was successfully completed after a lot of efforts and work hours. This
project underwent compiling, debugging, removing errors, make it bug free, adding
more facilities & interactivity, make it more reliable and user friendly.

Guidance was taken from faculty; help from the friend were accepted at the various
project development phases. Many books related to controlling of microcontroller were
referred to get the desired results.

TOOLS AND DEVELOPMENT


43
Hardware: The hardware used to develop our project includes:
1. pot ( potentiometer, 10kohm)
2. IC – MAX232, ULN2803, PCF8591
3. A P89V51RD2FN microcontroller.

Software: C language, KEIL Compiler, flash magic

REFERENCES

SITES:

http://www.google.com

http://www.wikipedia.com

BOOKS:

The 8051 microcontroller & Embedded system-Muhammad Ali Mazidi

44

Você também pode gostar