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.
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:-
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:
Lm35 Temperature Sensor:-
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:
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 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:
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:-
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.
A 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:
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:-
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:
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
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