New 6th Sem Project

36
Govt. Polytechnic Hisar 2009 Project report Microcontroller based temperature indicator Submitted by: Nitin Kumar Amit Yadav Guldeep Kumar Paramjeet Singh Mukesh Kumari

Transcript of New 6th Sem Project

Page 1: New 6th Sem Project

Govt. Polytechnic Hisar

2009

Project report Microcontroller based temperature indicatorSubmitted by:

Nitin Kumar

Amit Yadav

Guldeep Kumar

Paramjeet Singh

Mukesh Kumari

Page 2: New 6th Sem Project

MICROCONTROLLER BASED TEMPERATURE INDICATOR

Project Report Microcontroller Based Temperature Indicator

Submitted by: Nitin Kumar Amit Yadav Guldeep Kumar Paramjeet Singh Mukesh Kumari

Page 3: New 6th Sem Project

MICROCONTROLLER BASED TEMPERATURE INDICATOR

Govt. polytechnic

hisar

2009

Submitted by: Nitin Kumar

Amit Yadav

Guldeep Kumar

Paramjeet Singh

Mukesh Kumari

Project Report

Microcontroller Based Temperature Indicator

Page 4: New 6th Sem Project

MICROCONTROLLER BASED TEMPERATURE INDICATOR

GOVT. POLYTECHNIC HISAR

2009

Project Report Microcontroller based temperature indicator

Submitted by: Nitin Kumar

Amit Yadav

Guldeep Kumar

Paramjeet Singh

Mukesh Kumari

Page 5: New 6th Sem Project

Earlier we measure Voltage

and this time we measure

Temperature using

Microcontroller

AT89C52.

Submitted by: Nitin kumar Er. Jayant mittal

Amit yadav (project incharge)

Guldeep kumar

MICROCONTROLLER BASED TEMPERATURE INDICATOR

Page 6: New 6th Sem Project

Paramjeet singh

Mukesh kumari

ACKNOWLEDGMENT

This project is the outcome of some many people’s generosity, Co-operation and encouragement .we are delighted to have the Opportunity to express our acknowledgment and heartfelt gratitude To each and every one who have been the source of inspiration behind the completion of this project. We must express our sincere thanks to Mr. jayant mittal, Lecturer Inst. and Control for her everlasting co-operation. We extend our sincere thanks to incharges of following Labs Process control lab , electrical lab , power electronic lab, Project lab. The instruments of these labs and guidance of the teachers have been included in the making of this project. We also thank all our friends for their help and co-operation.

Submitted by:

Nitin kumar {060415026}

Amit yadav {060415003}

MICROCONTROLLER BASED TEMPERATURE INDICATOR

Page 7: New 6th Sem Project

Guldeep kumar {060415013}

Paramjeet singh {060415028}

Mukesh kumari {060415021}

GOVERNMENT POLYTECHNIC

HISAR --- 125001

Er. Jayant mittal

Lecturer

Department of Instrumentation and Control

Certificate

This is to certify that following students of “instrumentation and control” Have successfully completed the project on “Microcontroller based Temperature Indicator” in partial Fulfillment of requirement in instrumentation and control engg. During the academic year 2006-2009 and my guidance and supervision.

MICROCONTROLLER BASED TEMPERATURE INDICATOR

Page 8: New 6th Sem Project

I wish them good future in life.

H . O . D. Er.jayant mittal

{inst. and control} {Principal} {Project Incharge}

Component list

Semiconductors:

IC1……………………………………………7805 Regulator IC

IC2…………………………………………AT89C52 Microcontroller

IC3……………………………………DS1621 Temperature Sensor

D1-D2………………………………………IN4007 Rectifier Diodes

LED1………………………………………..Red LED

Resistors:

R1…………………………………………….1-kilo-ohm

MICROCONTROLLER BASED TEMPERATURE INDICATOR

Page 9: New 6th Sem Project

R2…………………………………………….47-kilo-ohm

R3…………………………………………….10-kilo-ohm

R4, R5…………………………………………4.7-kilo-ohm

VR1…………………………………………….1-kilo-ohm preset

Capacitors:

C1………………………………………………470µf, 25v electrolytic

Capacitor

C2, C3, C4…………………………………0.1µf ceramic capacitors

C5…………………………………………..10µf, 16v electrolytic

Capacitor

C6, C7………………………………………….33pf ceramic capacitor

Miscellaneous:

Transformer……………………………………230v AC Primary to

0-9v, 250mA Secondary

Crystal…………………………………………..12 MHz

MICROCONTROLLER BASED TEMPERATURE INDICATOR

Page 10: New 6th Sem Project

LCD……………………………………………16×1LCD Module

(Lamp EX model GMD 1601A)

S1…………………………………………………On/Off SPST switch

8 Pin IC base

40 Pin IC base

Microcontroller based

Temperature indicator

MICROCONTROLLER BASED TEMPERATURE INDICATOR

Page 11: New 6th Sem Project

Here’s a microcontroller based temperature indicator that display the temperature in the range of -50˚c to 125˚c.Besides AT89C52 microcontroller a uses a temperature sensor chip and an LCD module. The indicator outputs the calibrated data in digital form. The program for the microcontroller is written in C program has well defined syntax; it far outweighs the merits of assembly language program.

Block diagram of MC based temp. Indicator

Description of components

MICROCONTROLLER BASED TEMPERATURE INDICATOR

Power

Supply

7805

Regulator

DS1621

Temperature sensor

MCU

AT89C52

LCD display

(16×1)

Page 12: New 6th Sem Project

1. RESISTANCE: It is opposition of the flow of current in the current. Resistances have different values for their needs in the circuits.

2. CAPACITOR: It is devices which have its own electrical energy. In a capacitor there are two plants in it, which have opposite charge.

3. INTEGRATED CIRCUIT (I.C): An ic is an electronic device which performs tasks very faster than any device. It is highly reliable, efficient, longer working time, less expensive and small in size. IC’s are also available in many types according to their tasks, sizes and user needs.

4. PRINTED CIRCUIT BOARD (P.C.B): A pcb is a board having electronic circuit designed on it, on this board no wiring is needed. On pcb, copper metal oxide is used to draw the lay out diagram of the circuit to get high reliability, no wiring circuits, easy soldering of electronic devices and equipment and to decrease resistance values

5. LCD: LCD is stands for Liquid crystal display and it is used to display the output. In this project the LCD is showing the temperature in digital form. In this project LCD 16×1 module is used.

MICROCONTROLLER BASED TEMPERATURE INDICATOR

Page 13: New 6th Sem Project

PCB LayoutPCB stands for printed circuit board. A pcb is a board having electronic circuit designed on it, on this board no wiring is needed. On pcb, copper metal oxide is used to draw the lay out diagram of the circuit to get high reliability. In single sided PCB, the conductor tracks run only on one side of copper clad board. Thus crossing of conductor is not allowed.

Base material is selected according to the application. It is mechanically and chemically cleaned. Then the photo resist solution is uniformly applied. Photo resist is an organic solution, which when exposed to light of power wavelength, changes their solubility in the developers. There are two types of resist:

Negative acting photo resist Positive acting photo resist

Negative acting resist is a mixture, which is initially soluble in its developer but after exposure to light, it is not soluble. Therefore, the unexposed resist is selectively dissolved and washed away, living the desired the resist pattern on copper clad laminate. Coating of photo resist is done by:

Spray coating Dip coating Roller coating

MICROCONTROLLER BASED TEMPERATURE INDICATOR

Page 14: New 6th Sem Project

The coated copper clad laminated and films negative are kept in glass frame to intimate contact with each other. The assembly is exposed to ultraviolet light for 3 minutes. The exposed board is rinsed in developer tank. Proper developer has to be used for a particular photo resist. Then the PCB is dyed in a tray. The dye reveals the faults due to contrasts. The faults are then removed by retouching.

MICROCONTROLLER BASED TEMPERATURE INDICATOR

Page 15: New 6th Sem Project

Power supplyThe power supply unit consists of a step down transformer (230v AC primary to 0-9v, 250mA secondary), bridge rectifier and voltage regulator. The output of the transformer is fed to bridge rectifier diodes D1 through D4(each IN4007). The ripple from the output bridge rectifier is filtered by capacitor C1 and to regulator IC 7805. The regulated output is given to the temperature sensor, microcontroller unit and LCD module, respectively.

A transformer is a device used for transferring power from one circuit to another without change in frequency. It can rise or lower the voltage with corresponding decries or increases in current. In simplest from transformer is consist of two coils coupled magnetically. The winding receives the electrical power and secondary delivers it to load.

Transformer are used in different applications as:

Voltage transformation

Current transformation

MICROCONTROLLER BASED TEMPERATURE INDICATOR

Page 16: New 6th Sem Project

Isolation transformation etc.

When switch S1 is closed, LED1 glows to indicate the presence of power in the system.

.

Primary secondary

Temperature sensorTemperature sensor chip DS1621 (IC3) is an 8 pin DIP IC. Its pin details are shown in fig.3 and the internal block diagram in fig.4. the chip can measure temperature from -55˚c to +125˚c in 0.5˚c increments, which are read as 9-bit values. It can operate off 2.7v to 5.5v. Data is read written via a 2of the temperature IC is connected to pins 11 and 10 of the microcontroller, respectively. The internal alarm output (Tout) of IC DS1621 activates when the temperature exceeds user-defined high temperature TH. The output remains active until the temperature drops below user-defined temperature settings are stored in the non-volatile memory. Temperature settings and temperature readings are communicated to/from IC DS1621 over a 2-wire serial cable. The most significant bit (MSB) of the last significant bit (LSB) is transmitted last.

AND

MICROCONTROLLER BASED TEMPERATURE INDICATOR

1 8

2 7

3 6

4 5

ADDRESS

AND

I/O CONTROL

STATUS REGISTOR AND

CONTROL LOGIC

Page 17: New 6th Sem Project

SDA VDD

SCL A0

Tout A1 SCL

GND A2

DS1621 SDL

A0

A1

A2

ADDRESSINGThe chip; address of DS1621 comprises internal

preset code nibble ‘1001’ (binary) followed by externally configurable address pins/bits A2, A1 and A0. The eighteen bit of the address byte is determined by the type of operation (either read or write) that is to be performed. For writing to the device the eighth bit is ‘0’ and for reading form the device the eighth bit is ‘1’. In our case, A2, A1 and A0 pins are grounded and hence the device address for writing is “10010000b” or 90(hex) and for reading the device address is “1001001b” or 91 (hex).

MICROCONTROLLER BASED TEMPERATURE INDICATOR

TEMPERATURE SENSOR

HIGH-TEMPERATURE

TRIGGER,TH

LOW-TEMPERATURE TRIGGER,TL

DIGITAL COMPARATOR/LOGIC

Page 18: New 6th Sem Project

Configuration/status registerThis register can be accessed for reading or wr4itting by issuing command byte AC (hex) from the master (82052). This register is particularly required if DS1621 is used for thermostat control, since it contains flag bits THF (high-temperature flag) and TLF (low-temperature flag) which are set to when temperature crosses the respective limits earlier written into TH and TL registers. It also contains the flag bit (Done), which is set to “1”when results of conversion are available after issuing of start conversion command EE (hex). The other bits of configuration register are defined below.

MICROCONTROLLER BASED TEMPERATURE INDICATOR

Page 19: New 6th Sem Project

“NAB” is the non-volatile memory busy flag, “I” is write to an E2 memory cell in progress, “0” indicates that non-volatile memory is not busy, “POL” is non-volatile output polarity bit (“1” = active-high and “0” = active-low) and “ISHOT” is one-shot mode. A copy to E-may take up to 10 ms. If ISHOT is “I” DS1621 will continuously perform temperature conversions. This bit is non-volatile.

MSB LSB

Microcontroller unitMicrocontroller AT89C52 (IC2) is a 40-pin IC from Atmel. Its pin details are shown in Fig. 5. Like AT89C51, it also belongs to the 8031/8051 family. Microcontroller AT89C523 is a powerful, highly flexible and cost-effective solution to many embedded control applications.

MICROCONTROLLER BASED TEMPERATURE INDICATOR

Done THF TLF NVB 1 0 POL 1 SHOT

Page 20: New 6th Sem Project

Ports 0 and 2 are 8-bit bidirectional input/output (1/0) ports haven’t been used in this temperature indicator.

Port 1 is an 8-bit bidirectional 1/0 port with internal pull-ups. Ports 1.0 through 1.7 are connected to pins 7 through 14 of the LCD. Port-1 output buffers can sink/source four TTL inputs.

Port 3 is an 8-bit bidirectional 1/0 port with internal pull-ups, Ports 3.0 and 3.1 of IC2 are connected to serial clock line (SCL) and serial data line (SDA) of IC3, respectively. Ports 3.2 through 3.4 reconnected to pins 4 through 6 of the LCD, respectively. Port-3 output buffers can sink/source four TTL inputs.

A 12MHz crystal oscillator is connected to XTAL1 and XTAL2 pins for operation of the microcontroller. A high pulse on RST pin (pin 9) while the oscillator is running resets the microcontroller. In this circuit, this pin is connected to +Vcc through capacitor C5 (10 uF, 16V). The external access enable pin 9EA) is connected to +Vcc for internal program executions. This pin also receives the 12V programming-enable voltage (Vpp) during flash programming when 12V programming is selected.

MICROCONTROLLER BASED TEMPERATURE INDICATOR

Page 21: New 6th Sem Project

Pin details of IC AT89C52

MICROCONTROLLER BASED TEMPERATURE INDICATOR

Page 22: New 6th Sem Project

The ProgramThe c-language program to microcontroller at89c52 is compiled using cross amplifier c51 version 7.10 from keil software. The demo version of this compiler is available for free on the website ‘www.keil.com.’ it can compile programs up to 2kb only, which is sufficient for writing most programs.

For testing the display, the program hello.c is given here. This program, when loaded to AT89C52, displays” hello! How R U? on the LCD. The hello.c program has nothing to do with temperature. It just guarantees a perfect communication between the LCD and the microcontroller for temperature indication, the program Temp52.c is used. The programs Hello.c and Temp52.c, are given at the end of this article.

The communication interface between the temperature sensor and the microcontroller chip follows the i²c (inter integrated circuit) standard which is implemented in “c” here. I²c is a simple master/slave type interface. Simplicity of the i²c is primarily due to the bidirectional 2-wire (SDA and SCL) DESIGN AND THE PROTOCOL format .bidirectional communication is through 2 wire lines (which are either active low or passive high). In the program the i2c _stop, i2c_start, i2c_right and i2c_read functions are used for communicating clock and data from ds1621 to p3.0 and p3.1 of at89c52, respectively. Such functions as

MICROCONTROLLER BASED TEMPERATURE INDICATOR

Page 23: New 6th Sem Project

command, ready and display in the program are used for driving the LCD.

Program compilation for 8051 family controller

Keil C51 can compile c programs for most of the Atmel family microcontrollers. It also supports other devices. Unlike other cross compilers(Hi-tech, IAR, SDCC, etc),Keil C51 offers such features as fast code generation strong multitasking environment, real-time operating system and in built code optimization. To enjoy this feature you will need full version of compiler. Keil C51 has option to generate as assembly code and all the code listed supported by 8051 family, but assembly language generated cannot be re compiled on any other assembler as far as code generation is concerned, it uses minimum RAM and on chip flash, allowing faster optimized program in Intel –hex format takes only a few seconds. In fact, you don’t require all that long assembly program in order to generate the output hex file.

MICROCONTROLLER BASED TEMPERATURE INDICATOR

Page 24: New 6th Sem Project

Constructionthe circuit of this temperature indicator using

microcontroller AT89C52 is to be assembled on single sided PCB given along

MICROCONTROLLER BASED TEMPERATURE INDICATOR

Page 25: New 6th Sem Project

TEMP52.C/*Written by : Nitin Kumar

G P Hisar Haryana

Email : [email protected]

Program for temperature indicator complied under keil

‘C’ */

#include <stdio.h>

#include<string.h>

#include<Regx52.h>

MICROCONTROLLER BASED TEMPERATURE INDICATOR

Page 26: New 6th Sem Project

/……………………………………………………………………………………

//Global variable

//………………………………………………………………………………..

Int temperature;

#define high0x01 //Active High Signal

#define low0x00 //Active Low Signal

#define True0x01 //Active High Signal

#define False0x00 //Active Low Signal

// …………………………………………………………………………..

// function Prototyping

// ………………………………………………………………………….

Void ready (void):

Void Command (int):

Void Display (char *):

Void i2c_stop (void):

Void i2c_start (void):

MICROCONTROLLER BASED TEMPERATURE INDICATOR

Page 27: New 6th Sem Project

Void i2c_right (unsigned char):

Unsigned char i2c_read (void):

Void convert (unsigned char):

// ……………………………………………………………………….

// Port Defination

// …………………………………………………………………..

#define Data P3_1 // Serial data

#define CLOCK P3_0// Serial clock

//Beginning of Main Program

Void Main (void)

{

Int tmp;

Char str{16};

Bit flag = FALSE;

Unsigned char ch;

Void Command (int);

Void display (char *)

Command (0x3c);

Command (0x0c);

Command (0x06);

While (1)

MICROCONTROLLER BASED TEMPERATURE INDICATOR

Page 28: New 6th Sem Project

{

I2c_start();

I2c_write(0x90);

I2c_write(0xEE);

I2c_stop();

I2c_start();

I2c_write(0x90);

I2c_write(0xAA);

I2c_start();

I2c_write(0x91);

Ch = i2c_read();

I2c_stop();

Temperature = 0;

Convert(ch);

If(flag = = FALSE)

{

Flag = TRUE;

tmp = temperature;

}

Else

{

MICROCONTROLLER BASED TEMPERATURE INDICATOR

Page 29: New 6th Sem Project

If(tmp ! = temperature)

{

tmp = temperature’

sprint(str”%d%s”,temperature,” Centigrade”);

command(0x01);

command(0x80);

display(str);

}

}

}

]

//Delay Survive Routine

Void delay_time (void)

{

Unsigned int i;

For(i=0<100;i+ +);

}

//12C Start Function

Void i2c_start (void)

{

DATA = HIGH;

MICROCONTROLLER BASED TEMPERATURE INDICATOR

Page 30: New 6th Sem Project

Delay time();

CLOCK = HIGH;

Delay_time();

DATA = LOW;

CLOCK = LOW;

}

//12c stop (void)

{

Unsigned char I;

CLOCK = LOW;

DATA = LOW;

CLOCK = HIGH

Delay_ time();

DATA = HIGH;

I = DATA;

}

//12C Data Write Function

Void i2c_write (unsigned char j)

{

Unsigned char I;

For(I = 0;i<8;I + +)

MICROCONTROLLER BASED TEMPERATURE INDICATOR

Page 31: New 6th Sem Project

{

DATA = {(J & 0X80)?i : 0);

J < < = 1;

Clock = HIGH;

Delay_time();

CLOCK = LOW;

}

I = DATA;

CLOCK = HIGH;

Delay_time();

CLOCK=LOW;

}

Ready();

P1 = a;

P3_2 = 0x00;

P3_3 = 0x00;

P3_4 = 0x01;

P3_4 = 0x00;

MICROCONTROLLER BASED TEMPERATURE INDICATOR