Wikipedia

Search results

Thursday, June 14, 2012

Celsius and Fahrenheit scale digital thermometer using 8051          

                             microcontroller (AT89C51)

description:

A digital thermometer can be easily made by interfacing a temperature sensor to the microcontroller AT89C51. The temperature sensor used in the project is LM35. The LM 35 IC generates a 10mV variation to its output voltage for every degree Celsius change in temperature. The Output of the temperature sensor is analog in nature so we need an analog to digital convertor for converting the analog input to its equivalent binary output. The ADC 0804 is the analog to digital convertor IC used in the project. 0804 is a single channel convertor which converts the analog input up to a range of 5V to an equivalent 8-bit binary output.
8051 Microcontroller (AT89C51) based Digital Thermometer circuit
The step size is defined by the voltage applied at the Vref/2 pin of the ADC IC. For example, if the voltage at Vref/2 pin is set to 1.28V then ADC has a step size of 10 mV. So if the input voltage is 1V the equivalent binary output of ADC will be 100 or 0110 0100 in binary. The 8 bit binary output of the ADC is incremented by one for every 10 mV rise of input voltage. Different step size can be selected by changing the voltage input to the Vref/2 pin. The step size of the ADC is calibrated using a preset to match the actual temperature. Once the ADC is calibrated it will give the correct output further. The binary output of ADC is fed parallel to a port of the microcontroller . The microcontroller reads the input through ADC and displays the corresponding decimal value on LCD indicating the temperature.


The value is converted to the Fahrenheit scale by employing the Celsius to Fahrenheit conversion formulae in the microcontroller program.

it is showed in the above diagram

<iframe width="640" height="480" src="http://www.youtube.com/embed/4PoWqn4587c" frameborder="0" allowfullscreen></iframe>

in the above link you can take a look of the video

components required:-

preset:-

Presets | Variable Resistors
A preset is a three legged electronic component which can be made to offer varying resistance in a circuit. The resistance is varied by adjusting the rotary control over it. The adjustment can be done by using a small screw driver  or a similar tool. The resistance does not vary linearly but rather varies in exponential or logarithmic manner. Such variable resistors are commonly used for adjusting sensitivity along with a sensor.
The variable resistance is obtained across the single terminal at front and one of the two other terminals. The two legs at back offer fixed resistance which is divided by the front leg. So whenever only the back terminals are used, a preset acts as a fixed resistor. Presets are specified by their fixed value resistance.

Pin Diagram: 
Presets PinOut | Variable Resistors pin diagram


Lm35 Temperature Sensor:-

LM35 Temperature Sensor Image
LM35 is a precision IC temperature sensor with its output proportional to the temperature (in oC). The sensor circuitry is sealed and therefore it is not subjected to oxidation and other processes. With LM35, temperature can be measured more accurately than with a thermistor. It also possess low self heating and does not cause more than 0.1 oC temperature rise in still air.    
The operating temperature range is from -55°C to 150°C. The output voltage varies by 10mV in response to every oC rise/fall in ambient temperature, i.e., its scale factor is 0.01V/ oC.
Pin Diagram: 
LM35 Temperature Sensor pin diagram, PinOut
Pin Description: 

Pin No
Function
Name
1
Supply voltage; 5V (+35V to -2V)
Vcc
2
Output voltage (+6V to -1V)
Output
3
Ground (0V)
Ground

AT89C51 Microcontroller:-

AT89C51 Microcontroller, Atmel 89C51 Controller Image
AT89C51 is an 8-bit microcontroller and belongs to Atmel's 8051 family. ATMEL 89C51 has 4KB of Flash programmable and erasable read only memory and 128 bytes of RAM. It can be erased and program to a maximum of 1000 times.
In 40 pin AT89C51, there are four ports designated as P1, P2, P3 and P0. All these ports are 8-bit bi-directional ports, i.e., they can be used as both input and output ports. Except P0 which needs external pull-ups, rest of the ports have internal pull-ups. When 1s are written to these port pins, they are pulled high by the internal pull-ups and can be used as inputs. These ports are also bit addressable and so their bits can also be accessed individually.
 
Port P0 and P2 are also used to provide low byte and high byte addresses, respectively, when connected to an external memory. Port 3 has multiplexed pins for special functions like serial communication, hardware interrupts, timer inputs and read/write operation from external memory. AT89C51 has an inbuilt UART for serial communication. It can be programmed to operate at different baud rates. Including two timers & hardware interrupts, it has a total of six interrupts.

Pin Diagram: 
AT89C51 Microcontroller Pin Diagram, Pinout
Pin Description: 

 Pin No
 Function
 Name
1
8 bit input/output port (P1) pins
P1.0
2
P1.1
3
P1.2
4
P1.3
5
P1.4
6
P1.5
7
P1.6
8
P1.7
9
Reset pin; Active high
Reset
10
Input (receiver) for serial communication
RxD
8 bit input/output port (P3) pins
P3.0
11
Output (transmitter) for serial communication
TxD
P3.1
12
External interrupt 1
Int0
P3.2
13
External interrupt 2
Int1
P3.3
14
Timer1 external input
T0
P3.4
15
Timer2 external input
T1
P3.5
16
Write to external data memory
Write
P3.6
17
Read from external data memory
Read
P3.7
18
Quartz crystal oscillator (up to 24 MHz)
Crystal 2
19
Crystal 1
20
Ground (0V)
Ground
21
8 bit input/output port (P2) pins
/
High-order address bits when interfacing with external memory
 
 P2.0/ A8
22
 P2.1/ A9
23
 P2.2/ A10
24
 P2.3/ A11
25
 P2.4/ A12
26
 P2.5/ A13
27
 P2.6/ A14
28
 P2.7/ A15
29
Program store enable; Read from external program memory
PSEN
30
Address Latch Enable
ALE
Program pulse input during Flash programming
Prog
31
External Access Enable;  Vcc for internal program executions
EA
Programming enable voltage; 12V (during Flash programming)
Vpp
32
8 bit input/output port (P0) pins
 
Low-order address bits when interfacing with external memory
 
 P0.7/ AD7
33
 P0.6/ AD6
34
 P0.5/ AD5
35
 P0.4/ AD4
36
 P0.3/ AD3
37
 P0.2/ AD2
38
 P0.1/ AD1
39
 P0.0/ AD0
40
Supply voltage; 5V (up to 6.6V)
Vcc




LCD:-


16 x 2 LCD | 16x2 Character LCD Module
LCD (Liquid Crystal Display) screen is an electronic display module and find a wide range of applications. A 16x2 LCD display is very basic module and is very commonly used in various devices and circuits. These modules are preferred over seven segments and other multi segment LEDs. The reasons being: LCDs are economical; easily programmable; have no limitation of displaying special & even custom characters (unlike in seven segments), animations and so on.
16x2 LCD means it can display 16 characters per line and there are 2 such lines. In this LCD each character is displayed in 5x7 pixel matrix. This LCD has two registers, namely, Command and Data.
The command register stores the command instructions given to the LCD. A command is an instruction given to LCD to do a predefined task like initializing it, clearing its screen, setting the cursor position, controlling display etc. The data register stores the data to be displayed on the LCD. The data is the ASCII value of the character to be displayed on the LCD.

Pin Diagram: 
16 x 2 LCD PinOut | 16x2 Character LCD Module Pin diagram
Pin Description: 
 Pin No
 Function
 Name
1
Ground (0V)
Ground
2
Supply voltage; 5V (4.7V – 5.3V)
 Vcc
3
Contrast adjustment; through a variable resistor
 VEE
4
Selects command register when low; and data register when high
Register Select
5
Low to write to the register; High to read from the register
Read/write
6
Sends data to data pins when a high to low pulse is given
Enable
7
8-bit data pins
DB0
8
DB1
9
DB2
10
DB3
11
DB4
12
DB5
13
DB6
14
DB7
15
Backlight VCC (5V)
Led+
16
Backlight Ground (0V)
Led-

ACD0804:-

ADC0804 | ADC 0804
Analog to digital converters find huge application as an intermediate device to convert the signals from analog to digital form. These digital signals are used for further processing by the digital processors. Various sensors like temperature, pressure, force etc. convert the physical characteristics into electrical signals that are analog in nature.

ADC0804 is a very commonly used 8-bit analog to digital convertor. It is a single channel IC, i.e., it can take only one analog signal as input. The digital outputs vary from 0 to a maximum of 255. The step size can be adjusted by setting the reference voltage at pin9. When this pin is not connected, the default reference voltage is the operating voltage, i.e., Vcc. The step size at 5V is 19.53mV (5V/255), i.e., for every 19.53mV rise in the analog input, the output varies by 1 unit. To set a particular voltage level as the reference value, this pin is connected to half the voltage. For example, to set a reference of 4V (Vref), pin9 is connected to 2V (Vref/2), thereby reducing the step size to 15.62mV (4V/255). 

ADC0804 needs a clock to operate. The time taken to convert the analog value to digital value is dependent on this clock source. An external clock can be given at the Clock IN pin. ADC 0804 also has an inbuilt clock which can be used in absence of external clock. A suitable RC circuit is connected between the Clock IN and Clock R pins to use the internal clock.
 
Pin Diagram: 
ADC0804 PinOut | ADC 0804 pin diagram
Pin Description: 

Pin No
Function
Name
1
Activates ADC; Active low
Chip select
2
Input pin; High to low pulse brings the data from internal registers to the output pins after conversion
Read
3
Input pin; Low to high pulse is given to start the conversion
Write
4
Clock Input pin; to give external clock.
Clock IN
5
Output pin; Goes low when conversion is complete
Interrupt
6
Analog non-inverting input
Vin(+)
7
Analog inverting Input; normally ground
Vin(-)
8
Ground(0V)
Analog Ground
9
Input pin; sets the reference voltage for analog input
Vref/2
10
Ground(0V)
Digital Ground
11
8 bit digital output pins
D7
12
D6
13
D5
14
D4
15
D3
16
D2
17
D1
18
D0
19
Used with Clock IN pin when internal clock source is used
Clock R
20
Supply voltage; 5V
Vcc


                                            SUMMARY

8051 Microcontroller (AT89C51) based Digital Thermometer Project

Fahrenheit scale digital thermometer is a temperature indicator which displays temperature in Fahrenheit scale. It is similar to Celsius scale digital thermometer, except a little modification in the microcontroller program. The temperature sensed in Celsius scale in the Celsius scale thermometer project is converted into the Fahrenheit scale temperature just by using the Celsius to Fahrenheit conversion formulae. This project also uses 8051 microcontroller (AT89C51).

No comments:

Post a Comment