You are on page 1of 6

;EL PROGRAMA DEFINE LCD_DREG PORTB DEFINE LCD_DBIT 0 DEFINE LCD_RSREG PORTB DEFINE LCD_RSBIT 5 DEFINE LCD_EREG PORTB

DEFINE LCD_EBIT 4 s1 VAR BYTE s2 VAR BYTE s3 VAR BYTE ADCON1 =%100 Inicio: PAUSE 300 medicion1: ADCON0 =%1000001 GOSUB medir s1= ADRESH medicion2: ADCON0 =%1001001 GOSUB medir s2= ADRESH medicion3: ADCON0 =%1011001 GOSUB medir s3= ADRESH LCDOUT $fe, 1," T1 T2 T3" LCDOUT $fe,$c1,#s1 LCDOUT $fe,$c6,#s2 LCDOUT $fe,$cb,#s3 GOTO inicio medir: PAUSEUS 50 ADCON0.2 = 1 PAUSEUS 50 RETURN END ;bit de datos del LCD empezando ;por B.0, B.1, B.2 y B.3 ;bit de registro del LCD conectar ;en el puerto B.5 ;bit de Enable conectar en el ;puerto B.4 ;variable para almacenar sensor1 ;variable para almacenar sensor2 ;variable para almacenar sensor3 ;configura PortA 0,1, 3 en conversores A/D

;activar canal 0 a Fosc/8

;activar canal 1 a Fosc/8

;activar canal 3 a Fosc/8

;limpiar LCD y sacar texto ;casilla 1 el valor decimal de s1 ;casilla 7 el valor decimal de s2 ;casilla 12 el valor decimal de s3

;subrutina para leer el conversor A/D ;pausa para setear el canal ;iniciar conversin ;pausa para la conversin ;retornar al GOSUB que lo envi

TERMOMETRO: pic16f877a y Lm35


El LM35 es un sensor de temperatura con una precisin calibrada de 1C. Puede medir temperaturas en el rango que abarca desde -55 a + 150C. La salida es muy lineal y cada grado centgrado equivale a 10 mV en la salida. Haremos un medidor de temperatura usando la conversion 10-bit del convertidor A/D del pic16f877a y Ra0 como entrada analogica para mostrar el resultado sobre un LCD de 2*16 ;Configuracion de pines del LCD hacia el PIC16f877a Define LCD_DREG PORTB Define LCD_DBIT 4 Define LCD_RSREG PORTB Define LCD_RSBIT 2 Define LCD_EREG PORTB Define LCD_EBIT 3 ;usamos puertoB como salida de datos ; solo usamos 4 bits altos (Rb4-RB7) ;RS va conectado a puertoB ; RS a Rb2 ; E va conectado a puertoB ; E va a Rb3

;Definimos parametros del conversor A/D Define ADC_BITS 10 ;Numero bits del resultado=10 Define ADC_CLOCK 3 ;fuente del Reloj 3 (3=rc) Define ADC_SAMPLEUS 50 ;tiempo de muestreo del ADC en useg Resultado var word ;Historia de la conversion TRISA = %11111111 ; PORTA configurado como entradas ADCON1 = %10000010 ; PORTA analog y justificacion del resultado Pause 200 ;tiempo para el LCD ;Programa Principal inicio: ADCIN 0, Resultado Lcdout $fe,1 Lcdout "temperatura:",DEC Resultado LCDOUT $fe,$C0,"grados C" Pause 1000 Goto inicio End

;lee Ra0 y guarda en resultado ;Limpia la pantalla ;muestra el resultado en decimal ; pasa a la siguiente linea y escribe ;espera 1 seg ;vamos a inicio

http://www.youtube.com/watch?v=_RL5RIUXl-8

You might also like