Вы находитесь на странице: 1из 54

CHAPTER 1

INTRODUCTION

EMBEDDED SYSTEMS
Embedded system is a combination of hardware and software, it is also named as
“Firm ware”. An embedded system is a special purpose computer system, which is
completely encapsulated by the device it controls. It is a computer-controlled system

An embedded system is a specialized system that is a part of a larger system or


machine. As a part of a larger system it largely determines its functionality. Embedded
systems are electronic devices that incorporate microprocessors with in their
implementations.
Embedded systems provide several major functions including monitoring of the
analog environment by reading data from sensors and controlling actuators.

Embedded
Inputs (sensor) System Outputs (actuator)

Figure 1.1 a real time system interacts with environment

Embedded systems are designed to do some specific task rather than be a general-
purpose computer for multiple tasks. Some also has real time performance constraints
that must be met, for reason such as safety and usability; others may have low or no
performance requirements, allowing the system hardware to be simplified to reduce costs.

An embedded system is not always a separate block - very often it is physically


built-in to the device it is controlling.

1
The software written for embedded systems is often called firmware, and is stored
in read-only memory or flash convector chips rather than a disk drive. It often runs with
limited computer hardware resources: small or no keyboard, screen, and little memory.

BLOCK DIAGRAM

LM35
Temp
ADC0804 89C52 RS 232
Sensor MICRO
CONTROLLER

PERSONAL
COMPUTER

PC

Block diagram description:

In this section we will be discussing about complete block diagram and its
functional description of our project. And also brief description about each block of the
block diagram.

 Temperature Sensor
 ADC0804
 Micro controller
 RS232
 PC

2
Temperature Sensor:
The LM35 series are precision integrated-circuit temperature sensors, whose
output voltage is linearly proportional to the Celsius (Centigrade) temperature. You can
measure temperature more accurately than a using a thermistor.

ADC0804:
ADC0804 is an analog to digital converter. Analog-to-digital converters are
among the most widely used devices for data acquisition.

Microcontroller:
In this project the micro-controller is playing a major role. Micro-controllers
were originally used as components in complicated process-control systems. However,
because of their small size and low price, Micro-controllers are now also being used in
regulators for individual control loops. In several areas Micro-controllers are now out
performing their analog counterparts and are cheaper as well.
In this project 8052 microcontroller is used. Here microcontroller used is
AT89C52, which is manufactured by ATMEL laboratories. The AT89C52 provides the
following standard features: 8Kbytes of Flash, 256 bytes of RAM, 32 I/O lines, three 16-
bit timer/counters, six-vector two-level interrupt architecture, a full duplex serial port, on-
chip oscillator, and clock circuitry.

RS232:
To allow the compatibility among data communication equipment made by
various manufacturers, and interfacing standard called RS232 was set by the Electronics
industries Association. This standard is used in PCs and numerous types of equipment.

3
HARDWARE DESIGN

Introduction:

In this chapter we are going to cover all parts of “PC Based Temperature
Monitoring & Controlling” in detailed manner and their functions in brief. Here we are
more interested about the Microcontroller since it is the heart of the project.
Hardware components:
1. Microcontroller
2. Power Supply
3. LM35 Temperature Sensor
4. ADC0804
5. RS232 & PC

4
CHAPTER 2

MICROCONTROLLER (AT89C52)

2.1 Introduction:
In 1981, Intel Corporation introduced an 8 bit microcontroller called 8052. This
microcontroller had 128 bytes of RAM, 4K bytes of chip ROM, two timers, one serial
port, and four ports all on a single chip. At the time it was also referred as “A SYSTEM
ON A CHIP”
The 8052 is an 8-bit processor meaning that the CPU can work only on 8 bits data
at a time. Data larger than 8 bits has to be broken into 8 bits pieces to be processed by the
CPU. The 8052 has a total of four I\O ports each 8 bit wide.
There are many versions of 8052 with different speeds and amount of on-chip
ROM and they are all compatible with the original 8052. This means that if you write a
program for one it will run on any of them.
The 8052 is an original member of the 8051 family. There are two other members
in the 8052 family of microcontrollers. They are 8052 and 8031. All the three
microcontrollers will have the same internal architecture, but they differ in the following
aspects.
 8031 has 128 bytes of RAM, two timers and 6 interrupts.
 8051 has 4K ROM, 128 bytes of RAM, two timers and 6 interrupts.
 8052 has 8K ROM, 128 bytes of RAM, three timers and 8 interrupts.
Of the three microcontrollers, 8051 is the most preferable. Microcontroller
supports both serial and parallel communication.
In the concerned project 8052 microcontroller is used. Here microcontroller used
is AT89C52, which is manufactured by ATMEL laboratories.

2.2 Features:
 Compatible with MCS-51 Products
 8 Kbytes of In-System Reprogrammable Flash Memory

5
 Endurance: 1,000 Write/Erase Cycles
 Fully Static Operation: 0 Hz to 24 MHz
 Three-Level Program Memory Lock
 256 x 8-Bit Internal RAM
 32 Programmable I/O Lines
 Three 16-Bit Timer/Counters
 Eight vector two level Interrupt Sources
 Programmable Serial Channel
 Low Power Idle and Power Down Modes

2.3 Description:

The AT89C52 provides the following standard features: 8Kbytes of Flash, 256
bytes of RAM, 32 I/O lines, three 16-bit timer/counters, six-vector two-level interrupt
architecture, a full duplex serial port, on-chip oscillator, and clock circuitry. In addition,
the AT89C52 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.

By combining a versatile 8-bit CPU with Flash on a monolithic chip, the Atmel
AT89C52 is a powerful microcomputer which provides a highly flexible and cost
effective solution to many embedded control applications.
In addition, the AT89C52 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.

6
2.4 Block Diagram:

Figure 5.1 Block Diagram Of 8052

7
2.5 Pin Diagram:

Figure: Pin Diagram of 89C52

Pin Description:
Vcc:
Pin 40 provides Supply voltage to the chip. The voltage source is +5v
GND:
Pin 20 is the grounded
Port 0:
Port 0 is an 8-bit open drain bidirectional I/O port from pin 32 to 39. As an output
port each pin can sink eight TTL inputs. When 1s are written to port 0 pins, the pins can

8
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 bidirectional I/O port with internal pull-ups from pin 1 to 8. The
Port 1 output buffers can sink/source four TTL inputs. When 1s are written to Port 1 pins
they are pulled high by the internal pull-ups and can be used as inputs. As inputs, Port 1
pins that are externally being pulled low will source current (IIL) because of the internal
pull-ups. Port 1 also receives the low-order address bytes during Flash programming and
program verification.
Port 2:
Port 2 is an 8-bit bidirectional I/O port with internal pull-ups from pin 21 to 28.
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 uses 16-bit addresses (MOVX
@ DPTR). In this application it uses strong internal pull-ups when emitting 1s. During
accesses to external data memory that uses 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 bidirectional I/O port with internal pull-ups from pin 10 to 17.
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,

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

Table: Special Features of 89C52

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

RST:
Pin 9 is the Reset input. It is active high. Upon applying a high pulse to this pin,
the microcontroller will reset and terminate all activities. A high on this pin for two
machine cycles while the oscillator is running resets the device.

ALE/PROG:
Address Latch is an output pin and is active high. 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.

10
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
AT89C52 is executing code from external program memory, PSEN is activated twice
each machine cycle, except that two PSEN activations are skipped during each access to
external data memory.
EA/Vpp:
External Access Enable. EA must be strapped to GND in order to enable the
device to fetch code from external program memory locations starting at 0000H up to
FFFFH. Note, however, that if lock bit 1 is programmed, EA will be internally latched on
reset. EA should be strapped to Vcc for internal program executions. This pin also
receives the 12-volt programming enable voltage (Vpp) during Flash programming, for
parts that require 12-volt Vpp.
XTAL1:
Input to the inverting oscillator amplifier and input to the internal clock operating
circuit.
XTAL2:
Output from the inverting oscillator amplifier.
Oscillator Characteristics:
XTAL1 and XTAL2 are the input and output, respectively, of an inverting
amplifier which can be configured for use as an on chip oscillator, as shown in Figure
5.3. Either a quartz crystal or ceramic resonator may be used. To drive the device from an
external clock source, XTAL2 should be left unconnected while XTAL1 is driven as
shown in Figure.

11
Figure: crystal connections

Figure: External Clock Drive Configuration

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.

TIMERS:
 Timer 0 and 1
Timer 0 and Timer 1 in the AT89C52 operate the same way as Timer 0
and Timer 1 in the AT89C51.

12
 Timer 2
Timer 2 is a 16-bit Timer/Counter that can operate as either a timer or an
event counter. The type of operation is selected by bit C/T2 in the SFR T2CON. Timer 2
has three operating modes: capture, auto-reload (up or down counting), and baud rate
generator. The modes are selected by bits in T2CON, as shown in Table 5.2. Timer 2
consists of two 8-bit registers, TH2 and TL2. In the Timer function, the TL2 register is
incremented every machine cycle. Since a machine cycle consists of 12 oscillator periods,
the count rate is 1/12 of the oscillator frequency.

Table: Timer 2 Operating Modes

In the Counter function, the register is incremented in response to a 1-to-0


transition at its corresponding external input pin, T2. In this function, the external input is
sampled during S5P2 of every machine cycle. When the samples show a high in one
cycle and a low in the next cycle, the count is incremented. The new count value appears
in the register during S3P1 of the cycle following the one in which the transition was
detected. Since two machine cycles (24 oscillator periods) are required to recognize a 1-
to-0 transition, the maximum count rate is 1/24 of the oscillator frequency. To ensure that
a given level is sampled at least once before it changes, the level should be held for at
least one full machine cycle.
There are no restrictions on the duty cycle of external input signal, but it should
for at least one full machine to ensure that a given level is sampled at least once before it
changes

13
Interrupts:
The AT89C52 has a total of six interrupt vectors: two external interrupts (INT0
and INT1), three timer interrupts (Timers 0, 1, and 2), and the serial port interrupt. These
interrupts are all shown in Figure 5.5

Figure 5.5 Interrupts source

Each of these interrupt sources can be individually enabled or disabled by setting


or clearing a bit in Special Function Register IE. IE also contains a global disable bit, EA,
which disables all interrupts at once.

Note that Table 5.3 shows that bit position IE.6 is unimplemented. In the
AT89C51, bit position IE.5 is also unimplemented. User software should not write 1s to
these bit positions, since they may be used in future AT89 products.

14
Table 5.3 Interrupts Enable Register

Timer 2 interrupt is generated by the logical OR of bits TF2 and EXF2 in register
T2CON. Neither of these flags is cleared by hardware when the service routine is
vectored to. In fact, the service routine may have to determine whether it was TF2 or
EXF2 that generated the interrupt, and that bit will have to be cleared in software.
The Timer 0 and Timer 1 flags, TF0 and TF1, are set at S5P2 of the cycle in
which the timers overflow. The values are then polled by the circuitry in the next cycle.
However, the Timer 2 flag, TF2, is set at S2P2 and is polled in the same cycle in which
the timer overflows.

Idle Mode:
In idle mode, the CPU puts itself to sleep while all the on-chip peripherals remain
active. The mode is invoked by software. The content of the on-chip RAM and all the
special functions registers remain unchanged during this mode. The idle mode can be
15
terminated by any enabled interrupt or by a hardware reset. It should be noted that when
idle is terminated by a hardware reset, the device normally resumes program execution,
from where it left off, up to two machine cycles before the internal reset algorithm takes
control.
On-chip hardware inhibits access to internal RAM in this event, but access to the
port pins is not inhibited. To eliminate the possibility of an unexpected write to a port pin
when Idle is terminated by reset, the instruction following the one that invokes Idle
should not be one that writes to a port pin or to external memory.

Power down Mode:


In the power down mode the oscillator is stopped, and the instruction that invokes
power down is the last instruction executed. The on-chip RAM and Special Function
Registers retain their values until the power down mode is terminated. The only exit from
power down is a hardware reset. Reset redefines the SFRs but does not change the on-
chip RAM. The reset should not be activated before VCC is restored to its normal
operating level and must be held active long enough to allow the oscillator to restart and
stabilize.

Table 5.3 Status of External Pins During Idle and Power Down Mode

Program Memory Lock Bits


On the chip are three lock bits which can be left unprogrammed (U) or can be
programmed (P) to obtain the additional features listed in the table 5.4. When lock bit 1 is
programmed, the logic level at the EA pin is sampled and latched during reset. If the
device is powered up without a reset, the latch initializes to a random value, and holds
that value until reset is activated. It is necessary that the latched value of EA be in

16
agreement with the current logic level at that pin in order for the device to function
properly.

Table 5.4 Lock Bit Protection Modes

Programming the Flash


The AT89C52 is normally shipped with the on-chip Flash memory array in the
erased state (that is, contents = FFH) and ready to be programmed. The programming
interface accepts either a high-voltage (12-volt) or a low-voltage (VCC) program enable
signal. The low voltage programming mode provides a convenient way to program the
AT89C51 inside the user’s system, while the high-voltage programming mode is
compatible with conventional third party Flash or EPROM programmers.
The AT89C52 is shipped with either the high-voltage or low voltage
programming mode enabled. The respective top-side marking and device signature codes
are listed in the following table.

17
Table: Top side marking and Device Signature Codes

The AT89C52 code memory array is programmed byte-by-byte in either


programming mode. To program any non-blank byte in the on-chip Flash Memory, the
entire memory must be erased using the Chip Erase Mode.

Programming Algorithm
Before programming the AT89C52, the address, data and control signals should
be set up according to the Flash programming mode table and Figures 3 and 4. To
program the AT89C52, take the following steps.

1. Input the desired memory location on the address lines.


2. Input the appropriate data byte on the data lines.
3. Activate the correct combination of control signals.
4. Raise EA/VPP to 12 V for the high-voltage programming mode.
5. Pulse ALE/PROG once to program a byte in the Flash array or the lock bits. The byte-
write cycle is self-timed and typically takes no more than 1.5 ms. Repeat steps 1 through
5, changing the address and data for the entire array or until the end of the object file is
reached.

Data Polling
The AT89C52 features Data Polling to indicate the end of a write cycle. During a
write cycle, an attempted read of the last byte written will result in the complement of the
written datum on PO.7. Once the write cycle has been completed, true data are valid on

18
all outputs, and the next cycle may begin. Data Polling may begin any time after a write
cycle has been initiated.

Ready/Busy
The progress of byte programming can also be monitored by the RDY/BSY
output signal. P3.4 is pulled low after ALE goes high during programming to indicate
BUSY. P3.4 is pulled high again when programming is done to indicate READY.

Program Verify
If lock bits LB1 and LB2 have not been programmed, the programmed code data
can be read back via the address and data lines for verification. The lock bits cannot be
verified directly. Verification of the lock bits is achieved by observing that their features
are enabled.

Chip Erase
The entire Flash array is erased electrically by using the proper combination of
control signals and by holding ALE/PROG low for 10 ms. The code array is written with
all "1"s. The chip erase operation must be executed before the code memory can be re-
programmed.

Reading the Signature Bytes


The signature bytes are read by the same procedure as a normal verification of
locations 030H, 031H, and 032H, except that P3.6 and P3.7 must be pulled to a
Logic low. The values returned are as follows.
(030H) = 1EH indicates manufactured by Atmel
(031H) = 51H indicates 89C52
(032H) = FFH indicates 12 V programming
(032H) = 05H indicates 5 V programming

19
Programming Interface
Every code byte in the Flash array can be written and the entire array can be
erased by using the appropriate combination of control signals. The write operation cycle
is self-timed and once initiated, will automatically time itself to completion.

20
3. REGULATED POWER SUPPLY

There are many types of power supply. Most are designed to convert high
voltage AC mains electricity to a suitable low voltage supply for electronic circuits and
other devices. A power supply can by broken down into a series of blocks, each of which
performs a particular function.

For example a 5V regulated supply can be shown as below

Fig: Block Diagram of a Regulated Power Supply System

Similarly, 12v regulated supply can also be produced by suitable selection of the
individual elements. Each of the blocks is described in detail below and the power
supplies made from these blocks are described below with a circuit diagram and a graph
of their output:

3.1 Transformer:
A transformer steps down high voltage AC mains to low voltage AC. Here we are
using a center-tap transformer whose output will be sinusoidal with 36volts peak to peak
value.

21
Fig: Output Waveform of transformer

The low voltage AC output is suitable for lamps, heaters and special AC motors.
It is not suitable for electronic circuits unless they include a rectifier and a smoothing
capacitor. The transformer output is given to the rectifier circuit.

3.2 Rectifier:
A rectifier converts AC to DC, but the DC output is varying. The process of conversion
a.c to d.c is called “rectification”.
There are several types of rectifiers

Types of Rectifiers:

Half wave Rectifier


Full wave Rectifier
Bridge Rectifier

22
Comparison of rectifier circuits:

Type of Rectifier
Parameter
Half wave Full wave Bridge

Number of diodes 1 2 4

PIV of diodes Vm 2Vm Vm

D.C output voltage Vm/z 2Vm/π 2Vm/π

Vdc, at no-load 0.318Vm 0.636Vm 0.636Vm

Ripple factor 1.21 0.482 0.482

Ripple frequency f 2f 2f

Rectification efficiency 0.406 0.812 0.812


Transformer Utilization
Factor(TUF) 0.287 0.693 0.812

RMS voltage Vrms Vm/2 Vm/√2 Vm/√2

Here we use a bridge rectifier. A bridge rectifier makes use of four diodes in a
bridge arrangement to achieve full-wave rectification. This is a widely used
configuration, both with individual diodes wired as shown and with single component
bridges where the diode bridge is wired internally.
A bridge rectifier makes use of four diodes in a bridge arrangement as shown in
fig to achieve full-wave rectification. This is a widely used configuration, both with
individual diodes wired as shown and with single component bridges where the diode
bridge is wired internally
The Bridge rectifier is a circuit, which converts an ac voltage to dc voltage using
both half cycles of the input ac voltage. The ac input voltage is applied to the diagonally

23
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 series with the load
resistance RL and hence the current flows through R L in the same direction as in the
previous half cycle. Thus a bi-directional wave is converted into unidirectional.

Fig: The output waveform of the rectifier is shown as below

The varying DC output is suitable for lamps, heaters and standard motors. It is not
suitable for electronic circuits unless they include a smoothing capacitor.

24
3.3 Smoothing:
The smoothing block smoothes the DC from varying greatly to a small ripple. The
ripple voltage is defined as the deviation of the load voltage from its DC value.
Smoothing is also named as filtering.
Filtering is frequently effected by shunting the load with a capacitor. The action
of this system depends on the fact that the capacitor stores energy during the conduction
period and delivers this energy to the loads during the no conducting period. In this way,
the time during which the current passes through the load is prolongated, and the ripple is
considerably decreased. The action of the capacitor is shown with the help of waveform.

Fig: The waveform of the rectified output after smoothing is given below:

25
3.4 Regulator:
Regulator eliminates ripple by setting DC output to a fixed voltage. Voltage
regulator ICs are available with fixed (typically 5, 12 and 15V) or variable output
voltages. Negative voltage regulators are also available
Many of the fixed voltage regulator ICs has 3 leads (input, output and high
impedance). They include a hole for attaching a heat sink if necessary. Zener diode is an
example of fixed regulator which is shown here.

REGULATOR

26
Transformer + Rectifier + Smoothing + Regulator:

4. LM35 TEMPERATURE SENSOR

4.1 Introduction:

The LM35 series are precision integrated-circuit temperature sensors, whose


output voltage is linearly proportional to the Celsius (Centigrade) temperature. The LM35
thus has an advantage over linear temperature sensors calibrated in ° Kelvin, as the user is
not required to subtract a large constant voltage from its output to obtain convenient
Centigrade scaling. The LM35 does not require any external calibration or trimming to
provide typical accuracies of ±¼°C at room temperature and ±¾°C over a full -55 to
+150°C temperature range. Low cost is assured by trimming and calibration at the wafer
level. The LM35's low output impedance, linear output, and precise inherent calibration
make interfacing to readout or control circuitry especially easy. It can be used with single
power supplies, or with plus and minus supplies. As it draws only 60 µA from its supply,
it has very low self-heating, less than 0.1°C in still air. The LM35 is rated to operate over
a -55° to +150°C temperature range, while the LM35C is rated for a -40° to +110°C
range (-10° with improved accuracy). The LM35 series is available packaged in hermetic
TO-46 transistor packages, while the LM35C, LM35CA, and LM35D are also available
in the plastic TO-92 transistor package. The LM35D is also available in an 8-lead surface
mount small outline package and a plastic TO-220 package.

27
4.2 Features:
 Calibrated directly in ° Celsius (Centigrade)
 Linear + 10.0 mV/°C scale factor
 0.5°C accuracy guarantee able (at +25°C)
 Rated for full -55° to +150°C range
 Suitable for remote applications
 Low cost due to wafer-level trimming
 Operates from 4 to 30 volts
 Less than 60 µA current drain
 Low self-heating, 0.08°C in still air
 Non-linearity only ±¼°C typical
 Low impedance output, 0.1 Ohm for 1 mA load

Why to Use LM35s to Measure Temperature?

You can measure temperature more accurately than a using a


thermistor. The sensor circuitry is sealed and not subject to oxidation, etc.

The LM35 generates a higher output voltage than thermocouples and may not require
that the output voltage be amplified.

What Does An LM35 Look Like?

28
What Does an LM35 Do?  How does it work?

 It has an output voltage that is proportional to the Celsius temperature.


 The scale factor is .01V/oC
 The LM35 does not require any external calibration or trimming and
maintains an accuracy of +/-0.4 oC at room temperature and +/- 0.8 oC
over a range of 0 oC to +100 oC.
 Another important characteristic of the LM35DZ is that it draws only 60
micro amps from its supply and possesses a low self-heating capability.
The sensor self-heating causes less than 0.1 oC temperature rise in still air.

The LM35 comes in many different packages, including the following.

 TO-92 plastic transistor-like package,


 T0-46 metal can transistor-like package
 8-lead surface mount SO-8 small outline package

What Can You Expect When You Use An LM35?

You will need to use a voltmeter to sense Vout.

29
 The output voltage is converted to temperature by a simple
conversion factor.
 The sensor has a sensitivity of 10mV / oC.
 Use a conversion factor that is the reciprocal that is 100V / oC.

The general equation used to convert output voltage to temperature is:

 Temperature ( oC) = Vout * (100 oC/V)


 So if Vout  is  1V , then, Temperature = 100 oC
 The output voltage varies linearly with temperature.

How Do You Use An LM35?  (Electrical Connections)

Here is a commonly used circuit.  For connections refer to the picture above. In
this circuit, parameter values commonly used are:

 Vc = 4 to 30v
 5v or 12 v are typical values used.

 Ra = Vc /10-6
 Actually, it can range from 80 KW to 600 KW , but most
just use 8 KW

30
Here is a LM 35 wired on a circuit board.

 The white wire in to the power supply.


 Both the resistor and the black wire go to ground.
 The output voltage is measured from the middle pin to ground 1

5. ADC DEVICE (0804)


5.1 Introduction:
Analog-to-digital converters are among the most widely used devices for data
acquisition. Digital Computers use binary (discrete) values, but in the physical world
everything is analog (continuous). Temperature, pressure, humidity, and velocity are a
few examples of physical quantities that we deal with every day. Physical quantity is

31
converted to electrical (voltage, current) signals using a device called a transducer.
Transducers are also referred to as sensors. Although there are sensors for temperature,
velocity, pressure, light, and many other natural quantities, they produce an output that is
voltage (or current). Therefore, we need an analog-to-digital converter to translate the
analog signals to digital numbers so that the micro controller can read them.

5.2 Features:

 Compatible with 8080 μP derivatives—no interfacing logic needed - access time -


135 ns
 Easy interface to all microprocessors, or operates “stand alone”
 Differential analog voltage inputs
 Logic inputs and outputs meet both MOS and TTL
 Voltage level specifications
 Works with 2.5V (LM336) voltage reference
 On-chip clock generator
 0V to 5V analog input voltage range with single 5V supply
 No zero adjust required
 0.3 standard width 20-pin DIP package
 20-pin molded chip carrier or small outline package

5.3 Functional Description:


The ADC0804 IC is an analog-to-digital converter in the family of the ADC800
series from National Semiconductors. It works with 5V and as a resolution of 8 bits in
addition to resolution; conversion time is another major factor in judging an ADC.
Conversion time is defined as the time it takes the ADC to convert the analog input to a

32
digital (binary) number. In the ADC 0804, the conversion time varies depending on the
clocking signals apply to the CLK R and CLK IN pins, but it cannot be faster than 110
micro seconds.
5.4 Pin Diagram:

Pin Description:
CS:
Chip select is an active low input used to activate the ADC 0804 chip. To
accesses the ADC 0804, this pin must be low.
RD:
This is an input signal and is active low. The ADC converts the analog
input to its binary equivalent and holds it in an internal register. RD is used to get the
converted data out of the ADC 0804 chip. When CS=0, if a high to low pulse is applied

33
to RD pin, the 8 bit digital output shows up at the D0-D7 data pins. The RD pin is also
referred to as output enable.
WR:
This is an active low input used to inform the ADC 0804 to start the
conversion process. If CS=0 when WR makes a low to high transition, the ADC 0804
starts converting the analog input value of Van to an 8 bit digital number the amount of
time it takes to convert it varies depending on the CLK IN and CLK R values. When the
data conversion is complete, the ADC 0804 forces the INTR pin low.
CLK IN and CLK R:
CLK IN is an input pin connected to an external clock source when an
external clock is used for timing. However the 0804 have an internal clock generator. To
use the internal clock generator of the ADC 0804, the CLK IN and CLK R pins are
connected to a capacitor and resistor, in that case the clock frequency is determined by
the equation

F= 1/1.1 R
INTR:
This is an output pin and is active low. It is a normally high pin and when
the conversion is finished, it goes low to signal the CPU that the converted data is ready t
be picked up. After INTR goes low, we make CS=0 and send a high to low pulse to the
RD pin t get the data out of the ADC 0804 chip.

Vin(+) and Vin(-):


This are the differential analog inputs where Vin= Vin(+) - Vin(-). Often
the Vin(–) connected to ground and the Vin(+) pin used as the analog input to the
converted to digital.
Vcc:
This is the +5V power supply. It is also used as a reference voltage when
the Vref/2 Vcc: input is open (not connected).
D0-D7:

34
D0-D7 (whereD7is the MSB, D0 the LSB) is the digital data output pins.
These are tri state buffered and the converted data is accessed only CS=0 and RD is
forced low. To calculate the output voltage, use the following formula.

Dout =Vin/step size

ANALOG AND DIGITAL GROUND:


These are the input pins providing the ground for both analog signal and
digital signal and the digital signal. Analog ground is connected to the ground and of the
analog Vin while digital ground is connected to the ground of Vcc pin. The reason that
we have two ground pins is to isolate the analog vin signal from transient voltages caused
by digital switching of the digital data output. D0-D7. Such isolation contributes to the
accuracy of digital data output

1. Make CS=0 and send a low to high pulse to pin WR to start the conversion.
2. Keep monitoring the INTR pin. If INTR is low, low, the conversion is finished
and we can go the next step. If INTR is high, keep polling until goes low.
3. After the INTR has become low, we make CS=0 and send a high to low pulse to
the RD pin to get the data out of the ADC 0804 IC chip.

6. Serial communication between PC and


microcontroller
When a processor communicates with the outside world, it provides data
in byte sized chunks. Computers transfer data in two ways: parallel and serial. In parallel
data transfers, often more lines are used to transfer data to a device and 8 bit data path is
expensive. The serial communication transfer uses only a single data line instead of the 8
bit data line of parallel communication which makes the data transfer not only cheaper

35
but also makes it possible for two computers located in two different cities to
communicate over telephone.
Serial data communication uses two methods, asynchronous and
synchronous. The synchronous method transfers data at a time while the asynchronous
transfers a single byte at a time. There are some special IC chips made by many
manufacturers for data communications. These chips are commonly referred to as UART
(universal asynchronous receiver-transmitter) and USART (universal synchronous
asynchronous receiver transmitter). The AT89C51 chip has a built in UART.
In asynchronous method, each character is placed between start and stop
bits. This is called framing. In data framing of asynchronous communications, the data,
such as ASCII characters, are packed in between a start and stop bit. We have a total of
10 bits for a character: 8 bits for the ASCII code and 1 bit each for the start and stop bits.
The rate of serial data transfer communication is stated in bps or it can be called as baud
rate.
To allow the compatibility among data communication equipment made
by various manufacturers, and interfacing standard called RS232 was set by the
Electronics industries Association in 1960. Today RS232 is the most widely used I/O
interfacing standard. This standard is used in PCs and numerous types of equipment.
However, since the standard was set long before the advent of the TTL logic family, its
input and output voltage levels are not TTL compatible. In RS232, a 1 bit is represented
by -3 to -25V, while a 0 bit is represented +3 to +25 V, making -3 to +3 undefined. For
this reason, to connect any RS232 to a microcontroller system we must use voltage
converters such as MAX232 to connect the TTL logic levels to RS232 voltage levels and
vice versa. MAX232 ICs are commonly referred to as line drivers.

36
The RS232 cables are generally referred to as DB-9 connector. In labeling,
DB-9P refers to the plug connector (male) and DB-9S is for the socket connector
(female). The simplest connection between a PC and microcontroller requires a minimum
of three pin, TXD, RXD, and ground. Many of the pins of the RS232 connector are used
for handshaking signals. They are bypassed since they are not supported by the 8051
UART chip.

IBM PC/ compatible computers based on x86(8086, 80286, 386, 486 and
Pentium) microprocessors normally have two COM ports. Both COM ports have RS232
type connectors. Many PCs use one each of the DB-25 and DB-9 RS232 connectors. The
COM ports are designated as COM1 and COM2. We can connect the serial port to the
COM 2 port of a PC for serial communication experiments. We use a DB9 connector in
our arrangement.

The AT89C52 has two pins that are used specifically for transferring and
receiving data serially. These two pins are called TXD and RXD and are part of the port3
(P3.0 and P3.1). These pins are TTL compatible; therefore they require a line driver to
make them RS232 compatible. One such line driver is the MAX232 chip. One advantage
37
of MAX232 chip is that it uses a +5v power source which is the same as the source
voltage for the at89c51. The MAX232 has two sets of line drivers for receiving and
transferring data. The line drivers for TXD are called T1 and T2 while the line drivers for
RXD are designated as R1 and R2. T1 and R1 are used for TXD and RXD of the 89c51
and the second set is left unused. In MAX232 that the TI line driver has a designation of
T1 in and T1 out on pin numbers 11 and 14, respectively. The T1 in pin is the TTL side
and is connected to TXD of the microcontroller, while TI out is the RS232 side that is
connected to the RXD pin of the DB9 connector.

To allow data transfer between PC and the microcontroller system without


any error, we must make sure that the baud rate of the 8051 system matches the baud rate
of the PC’s COM port.

7. SOFTWARE

38
7.1 SOFTWARE COMPONENTS:
Software used is:
*Keil software for C programming
*Express PCB for lay out design
*Express SCH for schematic design

KEIL µVision3
What's New in µVision3?

µVision3 adds many new features to the Editor like Text Templates, Quick
Function Navigation, and Syntax Coloring with brace high lighting Configuration Wizard
for dialog based startup and debugger setup. µVision3 is fully compatible to µVision2
and can be used in parallel with µVision2.

What is µVision3?

µVision3 is an IDE (Integrated Development Environment) that helps you write,


compile, and debug embedded programs. It encapsulates the following components:
 A project manager.
 A make facility.
 Tool configuration.
 Editor.

 A powerful debugger.

Express PCB
Express PCB is a Circuit Design Software and PCB manufacturing service. One
can learn almost everything you need to know about Express PCB from the help topics
included with the programs given.
Details:
Express PCB, Version 5.6.0
Express SCH
The Express SCH schematic design program is very easy to use. This software
enables the user to draw the Schematics with drag and drop options.
A Quick Start Guide is provided by which the user can learn how to use it.

39
Details:
Express SCH, Version 5.6.0

EMBEDDED C:
The programming Language used here in this project is an Embedded C
Language. This Embedded C Language is different from the generic C language in few
things like
a) Data types
b) Access over the architecture addresses.

The Embedded C Programming Language forms the user friendly language with
access over Port addresses, SFR Register addresses etc.
Embedded C Data types:
Data Types Size in Bits Data Range/Usage

unsigned char 8-bit 0-255


signed char 8-bit -128 to +127
unsigned int 16-bit 0 to 65535
signed int 16-bit -32,768 to +32,767
sbit 1-bit SFR bit addressable only
bit 1-bit RAM bit addressable only
sfr 8-bit RAM addresses 80-FFH only

Signed char:
o Used to represent the – or + values.
o As a result, we have only 7 bits for the magnitude of the signed number, giving us
values from -128 to +127.

Demo:
1. Click on the Keil µVision Icon on Desktop

2. The following fig will appear

40
3. Click on the Project menu from the title bar

4. Then Click on New Project

5. Save the Project by typing suitable project name with no extension in u r own
folder sited in either C:\ or D:\

41
6. Then Click on save button above.

7. Select the component for u r project. i.e. Atmel……

8. Click on the + Symbol beside of Atmel

9. Select AT89C51 as shown below

42
10. Then Click on “OK”

11. The Following fig will appear

12. Then Click either YES or NO………mostly “NO”

13. Now your project is ready to USE

14. Now double click on the Target1, you would get another option “Source
group 1” as shown in next page.

43
15. Click on the file option from menu bar and select “new”

16. The next screen will be as shown in next page, and just maximize it by double
clicking on its blue boarder.

44
17. Now start writing program in either in “C” or “ASM”

18. For a program written in Assembly, then save it with extension “. asm” and
for “C” based program save it with extension “ .C”

19. Now right click on Source group 1 and click on “Add files to Group Source”

45
20. Now you will get another window, on which by default “C” files will appear.

21. Now select as per your file extension given while saving the file

22. Click only one time on option “ADD”

23. Now Press function key F7 to compile. Any error will appear if so happen.

46
24. If the file contains no error, then press Control+F5 simultaneously.

25. The new window is as follows

26. Then Click “OK”

27. Now Click on the Peripherals from menu bar, and check your required port as
shown in fig below
28.
47
29. Drag the port a side and click in the program file.

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

31. You are running your program successfully

48
7.2 Source Code:

#include<reg51.h>

sbit READ=P2^5; //READ


sbit WRITE=P2^6;//WRITE
sbit INTI=P2^7; //INTE

delay(unsigned int);

main()
{
float r1;
int r2,r3,d1,d2,d3,p,a,b,c,d,s,r;
unsigned char temp[]="THE TEMPERATURE IS=";
/
INTI=1;
READ=1;
WRITE=1;

TMOD=0X20;
TH1=0XFD;
SCON=0X50;
TR1=1;

while(1)
{
WRITE=0;
WRITE=1;
if(INTI==0)
READ=0;
r1=P0;
r1=r1*(0.01953);
r2=r1*1000;
r3=r2;
if(RI==1)
{
if(SBUF==0X0D)
{
SBUF='\n';
while(TI==0);
TI=0;
SBUF='\n';
49
while(TI==0);
TI=0;
for(s=0;s<20;s++)
{
SBUF=temp[s];
while(TI==0);
TI=0;
}

d3=r2/100;
//d3=r2/10;
// a=d3;
a=d3%10;
a=a+48;
r=a;
//1 st digit=a
SBUF=a;
while(TI==0);
TI=0;
d=r2%10;
d=d+48;
s=d; //2nd digit=b
SBUF=d;
while(TI==0);
TI=0;
SBUF='.';
while(TI==0);
TI=0;
d2=p%100;
b=d2%10;
b=b+48; //3rd digit
SBUF=b;
while(TI==0);
TI=0;
p=r3/10;
d1=p/10;
c=d1/10; //4th digit
c=c+48;
SBUF=c;
while(TI==0);
TI=0;
READ=1;
// P0=0X00;
// r1=0;
// r2=0;
//delay(100);

50
SBUF='\n';
while(TI==0);
TI=0;
} //SBUF
RI=0;
} //RI
} //WHILE
} //MAIN
delay(unsigned int time)
{
unsigned int i,j;
for(i=0;i<time;i++)
for(j=0;j<1275;j++);
}

51
7.3 Flow Chart

START

INITIALISING SERIAL PORTS

INITIALISING RD, WR, INTR PINS

DISPLAY
TEMPERATURE ON
PC

IF
TEMPERATUR
E >> 41
LED2 = 1 LED1 = 1

END

52
CONCLUSION
The project “PC BASED TEMPERATURE MONITORING” has been
successfully designed and tested. Integrating features of all the hardware components
used have developed it. Presence of every module has been reasoned out and placed
carefully thus contributing to the best working of the unit. Secondly, using highly
advanced IC’s and with the help of growing technology the project has been successfully
implemented.

FUTURE SCOPE

The only drawback of this project is, the temperature sensor used in this one will
detect temperature only in a few centimeters range. But LM35 is the most accurate
temperature sensor we have inspite of its drawbacks.
Let us hope for a long distance temperature sensor in future which is more
accurate than the present LM35

53
BIBLIOGRAPHY
NAME OF THE SITES:

1. WWW.MITEL.DATABOOK.COM
2. WWW.ATMEL.DATABOOK.COM
3. WWW.FRANKLIN.COM
4. WWW.KEIL.COM

REFERENCES

1. 8051-MICROCONTROLLER AND EMBEDDED SYSTEM.


Mohd. Mazidi.

2. EMBEDDED SOFTWARE PRIMER.


David .E. Simon.

54

Вам также может понравиться