Ayuda con sensor temperatura

Hola a todos, necesito ayuda con esto, estoy empezando con el mundillo de la electronica, y me he quedado pillado en este punto. Necesito hacer que con el pic18f2550 y a través de R232 me aparezcan en el terminal del Putty los datos que recoje el sensor de temperatura!


¿Alguien me puede ayudar con este asunto?

Tengo esto! Y a partir de esto tendría que hacerlo. ¿Alguna idea?

Código:
/********************************************************************
Conversión A/D. Sin interrupciones. Consulta de estado.
Realizar un programa para el UVkit muestree la tensión en el potenciometro
conectado a la entrada AN2 y muestre el valor del mismo en la barra de leds 
usando 8 bits (se ajustará el conversor para utilizar los bits de mayor peso) 
y que avise cuando el valor de éste sea superior a 134 activando el bit de alarma
que corresponderá con el bit RC2. 
Recordar que el reloj del sistema es de 48Mhz y que utilizaremos el 
reloj interno de 1 MHz del conversor A/D.
********************************************************************/

#include <delays.h>
#include <p18f2550.h>


	//These are your actual interrupt handling routines.
	#pragma interrupt YourHighPriorityISRCode
	void YourHighPriorityISRCode()
	{

	}	//This return will be a "retfie fast", since this is in a #pragma interrupt section 
	#pragma interruptlow YourLowPriorityISRCode
	void YourLowPriorityISRCode()
	{
	}	//This return will be a "retfie", since this is in a #pragma interruptlow section

/** VECTOR REMAPPING ***********************************************/
	#define REMAPPED_RESET_VECTOR_ADDRESS			0x1000
	#define REMAPPED_HIGH_INTERRUPT_VECTOR_ADDRESS	0x1008
	#define REMAPPED_LOW_INTERRUPT_VECTOR_ADDRESS	0x1018

	
	extern void _startup (void);        // See c018i.c in your C18 compiler dir
	#pragma code REMAPPED_RESET_VECTOR = REMAPPED_RESET_VECTOR_ADDRESS
	void _reset (void)
	{
	    _asm goto _startup _endasm
	}

	#pragma code REMAPPED_HIGH_INTERRUPT_VECTOR = REMAPPED_HIGH_INTERRUPT_VECTOR_ADDRESS
	void Remapped_High_ISR (void)
	{
	     _asm goto YourHighPriorityISRCode _endasm
	}
	#pragma code REMAPPED_LOW_INTERRUPT_VECTOR = REMAPPED_LOW_INTERRUPT_VECTOR_ADDRESS
	void Remapped_Low_ISR (void)
	{
	     _asm goto YourLowPriorityISRCode _endasm
	}

#pragma udata

volatile unsigned char valor, Umbral; 


void leds(unsigned char c); // Declaración de procedimiento

#pragma code

void main()
{
    Umbral= 134;
	valor=0;
	ADCON0=0b0001001;		// Enciende A/D ADON=1 y selecciona el canal 2
	ADCON1=0x0A;		// Todos los bits de A son analógicos y los de B digitales
	ADCON2=0b00100011;	// ADFM=0; justificación izquierda
						// ACQT2:ACQT0=100 => 8TAD	tiempo de adquisicion (8 us)
						// ADCS2:ADS0=011  => TAD= Trc (1/1Mhz)= 1 us
	TRISA|=0x0F;		// Porta A(3:0) de entrada y resto de salida
    TRISCbits.TRISC2=0; // RC2 de salida
 	while (1)
 	{
		ADCON0bits.GO_DONE=1;		//Inicio
		while (ADCON0bits.GO_DONE); //Consulta de estado 
		valor=ADRESH;				//Lectura del valor descargado
		if (valor > Umbral) PORTCbits.RC2=1; else PORTCbits.RC2=0; // Alarma
		leds(valor);				// Visualización
	}
	

}//end main
/*Procedimiento de visualización en la barra de LEDs*/
void leds(unsigned char c)
 {
  ADCON1=0x0f; 
  TRISA&=0b11001111;
  TRISB&=0b11000011;
  TRISC&=0b11111000;
  PORTAbits.RA4= (c&0b00000001)?1:0;
  PORTAbits.RA5= (c&0b00000010)?1:0;
  PORTBbits.RB2= (c&0b00000100)?1:0;
  PORTBbits.RB3= (c&0b00001000)?1:0;
  PORTBbits.RB4= (c&0b00010000)?1:0;
  PORTBbits.RB5= (c&0b00100000)?1:0;
  PORTCbits.RC0= (c&0b01000000)?1:0;
  PORTCbits.RC1= (c&0b10000000)?1:0;
 }


Si se necesita más información avisadme y la pondré!
Muchas gracias a todos de antemano!
 
Última edición:
Hola yo tengo un circuito de proteus de una pt100 montada en un puente con amplificador de instrumentación...si te sirve dime que te lo mando. lo de la alarma lo puedes hacer con un comparador ¿no? Espero que te sea de ayuda lo que te he dicho pq si tu eres nuevo yo soy un baby en esto tb.
 
pues si puedes mándamelo, no se si me servirá pero por lo menos obtengo más información acerca de ello. Yo lo necesito para una UVkit y a través del puerto R232 obtener la información del sensor de temperatura!

Muchas gracias! Y si soy nuevo, porque no se hacer nada aún... asique yo sería mas que baby jeje
 
La verdad es que viendo los maquinas del foro hasta orgullo me da poder ayudar a alguien.... espero que te sirva ya con esto lo podrás solucionar seguro.
 
Atrás
Arriba