Inicio > PIC > Sensor de temperatura usando el protocolo SPI con TC77

Sensor de temperatura usando el protocolo SPI con TC77


En este ejercicio muestra como programar un TC77 y medir  la temperatura usando el pic18f4550 por el protocolo SPI. La temperatura se mostrara por el LCD controlado por e puerto D del pic.

El TC77 es un sensor de temperatura diseñado para usar el protocolo SPI. Si estudiamos las caracteristicas que nos da el fabricante podremos ver cómo funciona y saber cuales son las instrucciones necesarias para leer los datos. Una vez que sepamos cómo funciona pasaremos a crear el código fuente del PIC.

//////////////////////////////////////////////////////////////////////////////
//   AUTOR: Trujillo Alcocer Jesus Fernando               Enero 2011        //
//////////////////////////////////////////////////////////////////////////////
//   PROGRAMA: Spi temperatura de un TC77        VERSIÓN:    1.0
//   DISPOSITIVO: PIC18F4550                     COMPILADOR: CCS vs4.088
//   Entorno IDE:                                SIMULADOR:  Proteus 7.6 sp0
//   TARJETA DE APLICACIÓN:                      DEBUGGER:
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
//Leer la temperatura de un TC77 mediante el bus SPI                       //
//////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////
// CABECERA //////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
#include <18F4550.h>
#fuses INTHS
#use delay(internal=8Mhz)
#include <lcd.c>

//////////////////////////////////////////////////////////////////////////////
// VARIABLES GLOBALES ////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
long int entera,decimal;
int temp_H;
int temp_L;

//////////////////////////////////////////////////////////////////////////////
// FUNCIONES /////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////
// PRINCIPAL /////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
void main(void)
{
 setup_spi(spi_MASTER | spi_L_to_H | spi_clk_div_16);
 lcd_init();
 lcd_putc("Termometro TC77");
 output_low(PIN_A0);
 output_high(PIN_A0);
 delay_ms(500);
 for (;;)
 {
 entera=0;
 decimal=0;

 output_low(PIN_A0);
 temp_H=spi_read(0x00);

 if(bit_test(temp_H,6)){entera=entera+128.0;}
 if(bit_test(temp_H,5)){entera=entera+64.0;}
 if(bit_test(temp_H,4)){entera=entera+32.0;}
 if(bit_test(temp_H,3)){entera=entera+16.0;}
 if(bit_test(temp_H,2)){entera=ntera+8.0;}
 if(bit_test(temp_H,1)){entera=entera+4.0;}
 if(bit_test(temp_H,0)){entera=entera+2.0;}

 temp_L=spi_read(0x00);
 if(bit_test(temp_L,7)){entera=entera+1.0;}
 if(bit_test(temp_L,6)){decimal=decimal+500;}
 if(bit_test(temp_L,5)){decimal=decimal+250;}
 if(bit_test(temp_L,4)){decimal=decimal+125;}

 output_high(PIN_A0);
 delay_ms(100);

 lcd_gotoxy(1,2);
 if(bit_test(temp_H,7))
 {
 entera=511-(entera+256);
 printf(lcd_putc,"T=-%3lu",entera);

 decimal=1000-decimal;
 }
 else{
 printf(lcd_putc,"T=%3lu",entera);
 }
 printf(lcd_putc,".%3lu C",decimal);

 }
 }

Una vez hecho el codigo de los dos pic’s lo que sigue es hacer el diseño del circuito en el proteus.



Una vez terminado el diseño con proteus, lo siguiente es pasar con Ares y colocar los componentes, y cuando tengamos definido las medidas con las que vamos a trabajar, que caras vamos a usar, que en nuestro caso solo seran dos, la top y la bottom; Una vez definido estos puntos solo nos quedaria hacer el autorutado de las pistas y ver como queda todo el diseño en 3D.

Anuncios
Categorías:PIC
  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: