lunes, 15 de diciembre de 2008

Control de temperatura con el lm35 y el pic16f877 en ensamblador

Control de temperatura con el lm35 y el pic16f877 en ensamblador

Introducción:

El LM35 es un sensor de temperatura con una precisión calibrada de 1ºC. Puede medir temperaturas en el rango que abarca desde -55º a + 150ºC. La salida es muy lineal y cada grado centígrado equivale a 10 mV en la salida.

Descripción

Este programa fue realizado en lenguaje ensamblador para el pic16f877 pero se puede emigrar fácilmente a otro pic.

La idea principal de este proyecto es el control de temperatura de un cuarto, recipiente, etc. Para llevar acabo esto se tiene primero que sensar la temperatura q existe en el entorno de ahí se toma la decisión si la temperatura es menor a la temperatura a controlar se enciende un dispositivo para elevar dicha temperatura, si la temperatura es mayor a la que se desea controlar se activa un pin del Mc.

Entonces se tienen dos señales de activación en los pines del MC estas con el acondicionamiento se puede activar motores, ventiladores, calentadores o etc.

Materiales:

• Pic16f877
• Cristal de 20 MHZ
• Varios capacitares
• Varias resistencias
• Lm35
• Ventilador
• Foco



Rutinas importantes del Programa:

;-------------------------------------------------------------

;Rutina de sensado y despliegue de información
Ciclo:
BSF ADCON0,2 ; empiesa la conversion
BTFSS PIR1,6 ;se espera a q termine la conversion
GOTO Ciclo
movf ADRESL,w ;se mueve el valor de la conversion a w
movwf valor1
movwf valor
BCF PIR1,6 ;se limpia el bit ADIF
GOTO compara
SS:
movf valor1,w
CALL Hex_Ascii ;llama a convertir a ascii
call limpia ;limpia el lcd
movf ASCII_H,w ;imprime el valor de centenas en el lcd
call envia
movf ASCII_M,w ;imprime el valor de decenas en el lcd
call envia
movf ASCII_L,w ;imprime el valor de unidades en el lcd
call envia
movlw 0xDF ;visualiza "°"
call envia
movlw "C"
call envia
GOTO Ciclo
;-----------------------------------------------------------------------

ifmayor macro r1,r2,aqui
movfw r1 ;w<== r1
sublw r2 ;w<==r2-r1
btfsc STATUS, Z ;se salta si z=0
goto aqui
btfss STATUS, C ;se salta si c=1
goto aqui
goto foco
ende
;---------------------------------------------------------------------


Nota : En la simulación que se adjunta se puso un motor simulando un ventilador y un led simulando un foco.

Simulación:





Puede descargar el programa completo en la sección de Descargas de este blogs.

14 comentarios:

Anónimo dijo...

Un excelente blog con fabulosos ejemplos, gracias por compartirlos y si no fuera mucha molestia me gustaría saber donde descargar el componente LM35 que manejan en la simulaciones con Isis Proteus.

Anónimo dijo...

gracias x tu visita al blogs,en dias proximos se actualizara la pagina con nuevos ejemplos...el componente lm35 viene integrado en el proteus 7.2.

Anónimo dijo...

Gracias nuevamente, excelente blog, no lo dejaré de visitar

Anónimo dijo...

Puedo implementar ese circuito en un protoboard??....es un trabajo de la universidad que tengo que presentar....ademas el programa que me baje esta listo para implementar??.....porque estas utilizando los pines 28,29 y 30 del PIC.
Espero tu amable respuesta.

Unknown dijo...

k onda chido blog ing MONASEZA me laten tus proyectos aver cuando nos aventamos un coto.

Unknown dijo...

buena entrada, solo q no lo puedo chekar ya q hay problemas al descargar, AYUDA.....

ULISES dijo...

no puedo bajarlo, me interesa mucho alguien pude decirme como bajo el diagrama y el codigo??

Alonso dijo...

SI EN LUGAR DE USAR EL SENSOR QUIERO USAR UN POTENCIOMETRO Y CON ESTE VARIAR PARA QUE HAGA LO MISMO.

Anónimo dijo...

porfavor mandeme el link de donde descargar este proyecto, o como lo descargo?

laynasoft dijo...

Disculpa podria publicar el codigo fuente, es q en la seccion de descargas no me es posible descargarlo, muchas gracias

Anónimo dijo...

puedes publicar todo el codigo porfa lo necesito para mi proyecto de electronica y microcontroladores,

Lalo dijo...

Disculpen, ¿Alguien pudo obtener el código fuente completo?
se los agradeceria mucho si me lo facilitaran. de antemano, Gracias!

Unknown dijo...

Hola, alguien pudo conseguir el codigo?

Unknown dijo...

Alguien consiguio el programa?
Podrian pasarlo por favor