Microcontroladores - pic16f877 y adquisicion

 
Vista:

pic16f877 y adquisicion

Publicado por HELEN (3 intervenciones) el 07/11/2006 20:03:50
Hola amigos!!! ya me funciona me pic con el lcd, era bastante fácil pero se me atascó.Ahora necesito saber otra cosa: si yo coloco un lm335, sensor de temperatura para que mi pic recoja la temperatura existente en el ambiente mediante el módulo de adquisicion y luego la convierto a ascii con la siguiente rutina para mostrar la temperatura, (la cual convierte de binario a decimal y cada dígito decimal a ascii), ¿cómo sabe mi pic que lo que debe sacar son grados centígrados y no kelvin?Ejemplo: si el pic coge 2'5v,cómo sabe el pic si son grados centigrads, o kelvin?gracias

01100000=96= 9 y 6=(pasado a ascii)=0xXX, 0xXX



HEXADECIMAL_ASCII ;cargar en W el dato hex.

MOVWF HEXADECIMAL
clrf ASCII_H ;Para BCD D'0'
clrf ASCII_M ;Para BCD D'0'
clrf ASCII_L ;Para BCD D'0'

Centenas

movlw D'100' ;D'100' --> W
subwf HEXADECIMAL,W ;HEXADECIMAL - D'100' --> W
btfss STATUS,C ;¿ HEXADECIMAL es menor que D'100' ?
goto Decenas ;Si
movwf HEXADECIMAL ;Salva el resto
incf ASCII_H,F ;Incrementa el contador de centenas BCD
goto Centenas ;Vuelve por otros D'100'

Decenas

movlw D'10' ;D'10' --> W
subwf HEXADECIMAL,W ;HEXADECIMAL - D'10' --> W
btfss STATUS,C ;¿ HEXADECIMAL es menor que D'10' ?
goto Unidades ;Si
movwf HEXADECIMAL ;Salva el resto
incf ASCII_M,F ;Incrementa el contador de decenas BCD
goto Decenas ;Vuelve por otros D'10'

Unidades

movf HEXADECIMAL,W ;El resto pertenece
movwf ASCII_L ;a las unidades BCD
clrf HEXADECIMAL ;Pone a cero el registro HEXADECIMAL

BCD_A_ASCII

movlw H'30' ;H'30' --> W
ADDWF ASCII_L,F ;Convierte de BCD a ASCII
ADDWF ASCII_M,F ;Convierte de BCD a ASCII

movf ASCII_H,F ;ASCII_H --> F
btfsc STATUS,Z ;? ASCII_H es D'00' ?
goto ESPACIO ;Si
movlw H'30' ;H'30' --> W
ADDWF ASCII_H,F ;Convierte de BCD a ASCII
return ;Retorna

ESPACIO

movlw '0' ;A' ' --> W
movwf ASCII_H ;A' ' --> ASCII_H
; movwf ASCII_M ;A' ' --> ASCII_H
; movwf ASCII_L ;A' ' --> ASCII_H
return ;Retorna
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:pic16f877 y adquisicion

Publicado por Guillermo (40 intervenciones) el 10/11/2006 12:53:21
Que tal Helen

el lm335 entrega 10mV por cada grado Kelvin.

0ºK es el cero absoluto, equivale a -273ºC aprox.

vos queres medir temp ambiente, asi que trabajaremos entre
0ºC y 50ºC por decir algo.

si entrega 10mV por cada grado Kelvin,
en 0ªC entrega --> 10mV * 273 = 2.73V

y en 50ºC entrega --> 10mV*(273+50) = 3.23V

entonces tenemos una regla de 3 simples
0ºC ------ 2.73V
50ºC ----- 3.23V

trabajando con el conversor ad en 10 bits tenemos que:
2.73V equivale a 558.
3.23V equivale a 660.

ahora la regla de 3 simples es:
0ºC ------ 558
50ºC ----- 660

ok, calcula la pendiente, y asi sacas todas la temperaturas intermedias.

cualquier cosa no dudes en preguntar

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:pic16f877 y adquisicion

Publicado por Oscar O. (2 intervenciones) el 25/11/2006 16:02:31
hola esto sirve
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

conversion AD 10bits en 819

Publicado por Ruben (2 intervenciones) el 07/01/2008 18:45:41
Hola Guillermo.. la respuesta que le das a Helen roza una duda que tengo, ojala me puedas ayudar. Mi aplicacion es semejante a la de Helen... pero no utilizo un pic 16f877 sino un pic 16f819.. mi problema es que no logro aumentar la resolucion de 8 a 10 bits, programo en MicroCode EStudio (pbp).
Si tienes alguna pista te lo agradecere.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:conversion AD 10bits en 819

Publicado por josele (1 intervención) el 26/03/2008 01:19:41
una parte de mi programa utiliza el conversor a/d de 10 bits. aqui se juega con los registros adresh y adresl para convertir el dato de 8 bits en 10.

El programa esta realizado en c para el compilador hitech de mplab.

Sistema de control de temperatura usando pic 16f877 y display lcd 16x2.

http://www.joseleweb.es/1.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:pic16f877 y adquisicion

Publicado por Guillermo (40 intervenciones) el 10/11/2006 12:58:44
un consejo

siempre tene a mano las hojas de datos de los componentes que vas a usar.

en este caso el lm335.

bajas gratis cualquier datasheet de:

http://www.alldatasheet.com
http://www.datasheetarchive.com

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar