Вы находитесь на странице: 1из 8

Jhon Rincn Termmetro Digital con PIC y ADC externo

El termmetro, es el instrumento de medida que "sensa" por medio de una sonda la temperatura del material lquido, slido o gaseoso empleando un proceso, y convierte este parmetro en una tensin anloga proporcional. Sensor En nuestro caso la temperatura a medir ser expresada en grados Celsius (C) o en Fahrenheit (F), como lo prefiera el usuario. Para estos dos casos tenemos la siguiente relacin: F = 9/5 C + 32 Los termmetros electrnicos emplean como sensor elementos tales como resistores NTC y PTC, diodos, transistores, y otros; aqu se utiliz el CI LM35DZ el cual es de gran precisin, y ser el voltaje de entrada del ADC. Si aplicamos un voltaje de polarizacin de 4.V 20.V tenemos una respuesta de 10.mV/C, ej: 120.mV equivalen a 12C e internamente en el programa del PIC se hace la conversin a F

SENSOR Diagrama de pines del sensor de temperatura LM35DZ:

Este temomtro tiene un rango de 2C a 100C y de 35.6F a 100F aproximadamente.

Conversor Aqu se utiliz el ADC 0809CCN que tiene una resolucin de 8 bits, un error de 1 LSB y fcil interfaces con muchos microcontroladores, tambin se puede utilizar otro tipo de conversores de ms bajo costo (ADC 0804). Diagrama de pines del ADC 0809CCN:

Visualizacin La visualizacin se hace a travs de un modulo de cristal lquido o LCD el cual se controla con el PIC. Diagrama de pines del LCD:

Microcontrolador

Por su fcil uso se trabaj con el PIC 16F84 el cual tiene 13 bits de entrada y/o salida repartidos en dos puertos, el dato en el ADC es almacenado en el PIC y visualizado en el LCD, para ello el PIC genera los bits de control para la conversin del ADC y la visualizacin en el LCD. Diagrama de pines del microcontrolador PIC 16F84-04/P:

Diagrama de conexin del termmetro

Ahora puedes Ver o Bajar el Programa del microcontrolador PIC 16F84 formato *.asm y *.hex Para ms informacin puedes comunicarte con John Rincn o Edilberto Castillo.
LIST P=16F84 ;************************************************************ ; ; Este programa demuestra como hacer la carga de un dato

; presente en el puerto B del PIC 16F84 y la conversin ; de un dato en hexadecimal a binario y su vizualizacin ; en un modulo LCD a 8 Bits. ; ; El tiempo est basado en el uso del PIC 16F84 en el modo ; 'RC' usando una resistencia de 10kohm. y un condensador de ; 20pF ; ; PIC 16F84: ; ; Pin 1 (RA2) --> OUTPUT ENABLE ; Pin 2 (RA3) --> START ; Pin 3 (RA4) --> Seleccin de C y F ; Pin 17 (RA0) --> RS del LCD ; Pin 18 (RA1) --> ENABLE del LCD ; ; Programa: temperat.ASM ; Fecha: 11-11-98 ; ; ;************************************************************ ; Definicion de Registros ;************************************************************ PC EQU 0x02 STATUS EQU 0x03 TRISA EQU 0x85 TRISB EQU 0x86 PORTA EQU 0x05 PORTB EQU 0x06 DEL EQU 0x10 NUEVO1 EQU 0x11 NUEVO2 EQU 0x12 NUEVO3 EQU 0x13 ANILLO EQU 0x14 CINCO EQU 0x15 ONCE EQU 0x16 ROT EQU 0x17 MEDI EQU 0x18 VER1 EQU 0x19 VER2 EQU 0x1A OPER EQU 0x1B ASCII EQU 0x1C RETT EQU 0x1D REG2 EQU 0x1E REG3 EQU 0x1F ;************************************************************** ; Inicio del programa ;************************************************************** BSF STATUS,5 ;PROGRAMACION DE PUERTOS MOVLW 0xF0 ;PORTA4 COMO ENTRADA MOVWF TRISA ;LOS DEMAS COMO SALIDA MOVLW 0x00 MOVWF TRISB BCF STATUS,5 CLRF PORTA CLRF PORTB MOVLW 0x38 ;INSTRUCCIONES: CALL CONTROL ;DOS LINEAS, 8 BITS MOVLW 0x0E ;ACTIVA DISPLAY CALL CONTROL MOVLW 0x06 ;MENSAJE FIJO

RETARDO DECRE CONTROL DATO DATO2

TABLA

INI MUESTRA CICLO CAMBIA

RETA1

PRINCIP

CALL CONTROL GOTO INI MOVLW 0xFF MOVWF DEL DECFSZ DEL,1 GOTO DECRE RETLW 0x00 BCF PORTA,0 GOTO DATO2 BSF PORTA,0 BSF PORTA,1 MOVWF PORTB CALL RETARDO BCF PORTA,1 CALL RETARDO RETLW 0x00 ADDWF PC,1 RETLW " " RETLW " " RETLW " " RETLW "T" RETLW "E" RETLW "M" RETLW "P" RETLW "E" RETLW "R" RETLW "A" RETLW "T" RETLW "U" RETLW "R" RETLW "A" RETLW " " RETLW " " RETLW " " RETLW " " RETLW " " RETLW " " RETLW " " RETLW 0x00 MOVLW 0x01 CALL CONTROL MOVLW 0x00 MOVWF ASCII MOVF ASCII,0 CALL TABLA CALL DATO MOVLW 0x9F MOVWF RETT DECFSZ RETT,1 GOTO RETA1 INCF ASCII,1 MOVLW 0x0F XORWF ASCII,0 BTFSS STATUS,2 GOTO CICLO CLRF PORTA CALL DELAY BSF STATUS,5 MOVLW 0xFF MOVWF TRISB BCF STATUS,5

;AJUSTE DE TIEMPOS

;ESTA RUTINA GENERA ;LAS SEALES DE CONTROL ;Y ENVIA EL DATO AL ;MODULO CON INTERFACE ;A 0CH0 BITS ;MENSAJE A SER VISUALIZADO

;INICIA ENVIO DE DATOS ;AL MODULO ;HACE BARRIDO DE LA TABLA ;RETARDO ENTRE CARACTERES

;SIGUE CON EL PROXIMO ;CARACTER DEL MENSAJE ;PREGUNTA SI YA TERMINO ;EL MENSAJE PARA SEGUIR ;CON LA OTRA PARTE DEL ;PROGRAMA ;PROGRAMA EL PUERTO B COMO ;ENTRADA PARA GUARDAR EL ;EL DATO DEL ADC

BSF PORTA,3 CALL DELAY BSF PORTA,2 CALL RETARDO BCF PORTA,3 MOVF PORTB,0 MOVWF MEDI BCF PORTA,2 BSF STATUS,5 MOVLW 0x00 MOVWF TRISB BCF STATUS,5 BCF STATUS,0 BEGIN CLRF VER1 CLRF VER2 CLRF OPER BSF OPER,0 SEG1 MOVF MEDI,0 RLF OPER,1 BTFSC OPER,6 GOTO PREG ADDWF VER1,1 BTFSS STATUS,0 GOTO SEG1 INCF VER2,1 GOTO SEG1 PREG BTFSC PORTA,4 GOTO BCD CLRF OPER BSF OPER,0 SEG2 MOVF MEDI,0 RLF OPER,1 BTFSC OPER,5 GOTO SUMA32 ADDWF VER1,1 BTFSS STATUS,0 GOTO SEG2 INCF VER2,1 GOTO SEG2 SUMA32 MOVLW 0x40 ADDWF VER1,1 BTFSC STATUS,0 INCF VER2,1 INCF VER2,1 BCD CLRF NUEVO1 CLRF NUEVO2 CLRF NUEVO3 CLRF ROT MOVLW 0x07 MOVWF ANILLO MOVLW 0x05 MOVWF CINCO MOVLW 0x0B MOVWF ONCE INICIO BTFSC VER2,1 GOTO UNO CERO BCF STATUS,0 GOTO ADE UNO BSF STATUS,0 ADE RLF VER1,1 RLF VER2,1

;DA EL FIT DE START AL ADC ;HABILITA LA SALIDA DEL ADC ;LEE Y GUARDA EL DATO EN ;EL ADC ;PROGRAMA EL PUERTO B COMO ;SALIDA PARA MOSTRAR EL DATO ;EN EL LCD ;EMPIEZA CONVERSION A C Y F

;GRADOS CELSIUS

;GRADOS FAHRENHEIT

;EMPIEZA LA CONVERSION ;A BCD

INCF ROT,1 MOVLW 0x03 SUBWF ROT,0 BTFSS STATUS,0 GOTO INICIO MOVLW 0x04 SUBWF ROT,0 BTFSC STATUS,0 GOTO EEE MOVF VER1,0 ANDWF ANILLO,0 MOVWF NUEVO1 VERIFY MOVF CINCO,0 SUBWF NUEVO2,0 BTFSC STATUS,0 GOTO ARREGL2 RLF NUEVO3,1 ANTES MOVF CINCO,0 SUBWF NUEVO1,0 BTFSC STATUS,0 GOTO ARREGL1 BTFSC NUEVO1,3 GOTO XYZ BCF STATUS,0 GOTO MOVER XYZ BSF STATUS,0 MOVER RLF NUEVO2,1 RLF NUEVO1,1 GOTO INICIO ARREGL2 MOVF ONCE,0 ADDWF NUEVO2,1 RLF NUEVO3,1 BSF NUEVO3,0 BCF NUEVO2,3 BCF NUEVO2,4 GOTO ANTES ARREGL1 MOVF ONCE,0 ADDWF NUEVO1,1 RLF NUEVO2,1 BSF NUEVO2,0 RLF NUEVO1,1 BCF NUEVO1,4 BCF NUEVO1,5 GOTO INICIO EEE BTFSC VER1,0 GOTO ONE ZERO BCF NUEVO1,0 GOTO OOO ONE BSF NUEVO1,0 OOO MOVLW 0x0A SUBWF ROT,0 BTFSS STATUS,0 GOTO VERIFY MOVLW 0xC0 CALL CONTROL MOVLW 0x20 CALL DATO MOVLW 0x20 CALL DATO MOVLW 0x20 CALL DATO

;FIN DE LA CONVERSION A BCD ;PASAR A LA OTRA LINEA DEL ;LCD

MOVLW 0x20 CALL DATO MOVLW 0x30 ;ESCRIBE EL DATO EN BDC ADDWF NUEVO3,0 ;EN EL LCD CALL DATO MOVLW 0x30 ADDWF NUEVO2,0 CALL DATO MOVLW "." CALL DATO MOVLW 0x30 ADDWF NUEVO1,0 CALL DATO MOVLW 0x30 CALL DATO MOVLW 0x20 CALL DATO MOVLW 0xDF CALL DATO BTFSS PORTA,4 ;PREGUNTA POR EL BIT QUE GOTO F ;INDICA SI ES C O F MOVLW "C" CALL DATO GOTO PRINCIP ;EMPIEZA DE NUEVO LA F MOVLW "F" ;CONVERSION CALL DATO GOTO PRINCIP DELAY MOVLW 0xFF ;RETARDO ENTRE CADA MOVWF REG3 ;CONVERSION LBDOS MOVLW 0xFF MOVWF REG2 LBUNO DECFSZ REG2 GOTO LBUNO DECFSZ REG3 GOTO LBDOS RETURN END ;************************************************************** ; ; Diseo del programa a cargo de John Rincn ; estudiante de la Univesidad Antonio Nario ; Facultad de Ingeniera Electrnica sede sur ; ;**************************************************************