P. 1
Proyecto Termometro Digital

Proyecto Termometro Digital

|Views: 5.618|Likes:
Publicado porxamtugil8407

More info:

Published by: xamtugil8407 on May 17, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

07/11/2013

pdf

text

original

UNIVERSIDAD NACIONAL ³SANTIAGO ANTÚNEZ DE MAYOLO´

FACULTAD DE CIENCIAS

Escuela Profesional de Ingeniería de Sistemas e Informática

MICROPROCESADORES Y PERIFERICOS
DOCENTE: ING. ALVARADO CACERES LUIS

TEMA:

TERMÓMETRO DIGITAL CON PIC 16f877A

ALUMNOS:

Blas Cerda Elmer Chauca Guzmán John Harold Guerra Calderón Lenin Maldonado Inti Nelson Vitaliano Pohl Cáceres Paul Silverio Torres Edison Tahua Quijano Edwin
HUARAZ ± 2011

INTRODUCCIÓN En el presente trabajo se explica el diseño y desarrollo para implementar un termómetro digital basado en el microcontrolador PIC 16f877A, fabricado por Microchip, el cual se programará en el lenguaje ensamblador del microcontrolador para el funcionamiento del proyecto. La temperatura es un factor de medida engañoso debido a su simplicidad. A menudo pensamos en ella como un simple número, pero en realidad es una estructura estadística cuya exactitud y repetitividad pueden verse afectadas por la masa térmica, el tiempo de medida, el ruido eléctrico y los algoritmos de medida. La temperatura es difícil de medir con exactitud aún en circunstancias óptimas, y en las condiciones de prueba en entornos reales es aún más difícil. Entendiendo las ventajas y los inconvenientes de los diversos enfoques que existen para medir la temperatura, resultará más fácil evitar los problemas y obtener mejores resultados.

DESCRIPCIONES GENERALES El presente proyecto pretende construir un termómetro digital que haciendo uso de un sensor de calor LM35DZ muestre la temperatura del ambiente en un visualizador LCD. El LM35DZ entrega a la salida una resolución de 10mV por cada grado centígrado. Para realizar este proyecto será necesario el uso del microcontrolador PIC 16f877A el cual tiene incorporado un convertidor analógico digital que hace de interprete entre el sensor y el PIC. 2. Éste dispositivo transforma la temperatura del ambiente en voltaje. desarrollo e implementación de proyectos de sistemas. este PIC será programado en lenguaje ensamblador para que realice los métodos necesarios. . Empleándolo solo sin ninguna configuración en especial. el dispositivo presenta un rango de medición de 2 a 150°C.1. como se muestra a continuación: Esta configuración es la idónea para el proyecto pues solamente la utilizaremos para medir temperaturas hasta 99°C. del orden de mV. el cual es un sensor de temperatura con buena precisión en escala Celsius. MARCO TEÓRICO Sensor LM35DZ El sensor que se utilizará será el transistor LM35DZ modelo TO-92. Con el presente proyecto pretendemos poner en práctica los conceptos hasta ahora aprendidos en el curso y además desarrollar nuestras capacidades de formulación.

esto se debe a que los circuitos de control tienen que ensayar un 1 lógico en cada posición del bit para ver si se necesita o no. . Esto puede ser muy importante cuando los datos analógicos cambian su valor rápidamente. la disposición básica es semejante a la de ADC de rampa digital. además de estar bien documentado. su uso en aplicaciones de sistemas con adquisición de datos permitirán que se adquieran mas valores de datos en un intervalo de tiempo dado. pero en cambio usa un registro con lógica de control que modifica el contenido del registro bit a bit hasta que los datos del registro son el equivalente digital de la entrada analógica. el convertidor de aproximaciones sucesivas no utiliza ningún contador para dar la entrada en el bloque del convertidor DAC.Este sensor es fabricado por Fairchild y National Semiconductor. El tiempo de conversión de los convertidores de aproximaciones sucesivas de "n" bits requieren "n" ciclos de reloj para realizar su conversión sin importar la magnitud del voltaje que esta presente en su entrada. Dicho convertidor utiliza el método de aproximaciones sucesivas para la conversión. el cual es A / D de 8 bits con salida en paralelo. que se describe brevemente a continuación: Los convertidores de aproximaciones sucesivas contienen un valor fijo en su tiempo de conversión que no depende del valor de la entrada analógica. microcontroladores y PLD s. Convertidor analógico-digital La etapa de conversión se llevará a cabo mediante un convertidor analógico-digital. pues existe gran cantidad de información en libros y en Internet para poderlo emplear en aplicaciones con microprocesadores. sin embargo. debido a que es uno de los dispositivos más populares en aplicaciones de sistemas. es por esto que los convertidores de aproximaciones sucesivas tienen tiempos de conversión muy rápidos.

Chip Select RD.5V Este convertidor es fabricado por National Semiconductor.3/16V 0 0 I/0 hasta 6. pues los valores . Este convertidor se empleará debido a que el sensor LM35DZ nos entrega la temperatura como voltaje y como el voltaje es una cantidad analógica.Start conversion CLKIN INTR Vlts + Vlts A GND Vref/2 D GND DB7 a DB0 CLK R Vcc Función Habilita el chip Lee la información Iniciar conversión Entrada de reloj Indicador fin conversión Señal positiva analógica Señal negativa analógica Tierra analógica 1/2 máximo del Pin 6 Tierra digital Salidas digitales Salidas reloj interno Alimentación Lógica I/0 I/0 I/0 I/0 -0.Salida autorizada WR. necesitamos convertirla a su equivalente en valor digital para poderla manejar.Ejemplo de un convertidor A/D tenemos el ADC0804 La función de cada uno de sus pines es: Pin 1 2 3 4 5 6 7 8 9 10 11/18 19 20 Nombre CS.

6 mV. Con ocho bits la resolución es de 5V / 255 = 19.digitales son cantidades discretas y por lo tanto es más fácil trabajar con ellas que con cantidades analógicas. Convierte el voltaje analógico de entrada en una salida digital de ocho bits. la entrada analógica se aplica en V IN(+) mientras que VIN(-) se conecta a la tierra analógica. Durante la operación normal. La salida es de tres estados. Una frecuencia típica de reloj es de 606 kHz y se y y . el convertidor utiliza V CC = +5 V como voltaje de referencia y la entrada analógica puede variar desde 0 hasta 5 V. En mediciones hechas en un solo punto. que es el valor de escala completa. El convertidor presenta el siguiente diagrama de acuerdo a la colocación de sus pines descritos anteriormente: Sus características más importantes son: y Posee dos entradas analógicas: VIN (+) y VIN (-). donde R y C son los valores de los componentes externos conectados al convertidor.1RC). las cuales permiten tener entradas diferenciales. el voltaje real de entrada VIN es la diferencia entre los voltajes aplicados en dichas terminales. lo que permite conectar al convertidor con facilidad en canales de datos. Es decir. Tiene un circuito de reloj interno que produce una frecuencia igual con f=1/(1.

Poseen una elevada velocidad de funcionamiento. tamaño. La gran variedad de modelos de PIC permite elegir el que mejor responde a los requerimientos de la aplicación. Al utilizar un frecuencia de 606 kHz. que puede estar muy desarrollada en otra familia. Cuando se aprende a manejar uno de ellos. código compacto. alimentación. pues de nada sirve tener el mejor sensor de temperatura ni el convertidor analógico digital más exacto sino contamos con un dispositivo que interprete los valores correctamente. consumo. dado su carácter general. especialmente si en ellas predomina una característica concreta. Herramientas de desarrollo fáciles y baratas. y C = 150 pf. otras familias de microcontroladores son más eficaces en aplicaciones específicas. Precio: Su coste es comparativamente inferior al de sus competidores. Buen promedio de parámetros: velocidad. Los detalles más importantes de la excelente acogida que tienen los PIC son los siguientes: y y y y y y y y Sencillez de manejo: Tienen un juego de instrucciones reducido. La terminal ocho corresponde a la tierra analógica y se conecta al punto común como referencia en el circuito analógico que genera el voltaje analógico. aproximadamente. . 35 en la gama media. El PIC 16f877A convierte los valores del convertidor A / D en valores equivalentes para la visualización.y y obtiene con R = 10k . el tiempo de conversión es. borrar y comprobar el comportamiento de los PIC. conociendo su arquitectura y su repertorio de instrucciones. Si se desea también se puede conectar un reloj externo. Buena información. Diseño rápido. es muy fácil emplear otro modelo. se describirá brevemente a continuación al PIC 16f877A: Para las aplicaciones más habituales (casi un 90%) la elección de una versión adecuada de PIC es la mejor solución. éste se conecta a la terminal CLKIN del CI. sin embargo. Como éste dispositivo es el que desarrollará el trabajo más importante de nuestro proyecto. Existe una gran variedad de herramientas hardware que permiten grabar. etc. Tiene conexiones a tierra por separado para los voltajes analógicos y digitales. igual a 100Qs. fabricado por Microchip. depurar. fácil de conseguir y económica. que es la que utilizan todos los dispositivos digitales que integran al sistema. Microcontrolador PIC 16f877A La interpretación de los datos obtenidos del convertidor A / D se realiza dentro del microcontrolador PIC 16f877A. La terminal diez es la tierra digital. Una de las razones del éxito de los PIC se basa en su utilización.

) están implementados físicamente como registros. Las instrucciones de salto ocupan dos ciclos al no conocer la dirección de la siguiente instrucción hasta que no se haya completado la de bifurcación. Descripción de las características más representativas de los PIC: Arquitectura. etc. Esta característica es muy ventajosa en la optimización de la memoria de instrucciones y facilita enormemente la construcción de ensambladores y compiladores. Arquitectura basada en un "banco de registros" Esto significa que todos los objetos del sistema (puertas de E/S. Juego de instrucciones. posiciones de memoria. Además. Formato de las instrucciones. La arquitectura del procesador sigue el modelo Harvard. Se aplica la técnica de segmentación ("pipe-line") en la ejecución de las instrucciones. El formato de todas las instrucciones es de la misma longitud Todas las instrucciones de los microcontroladores de la gama baja tienen una longitud de 12 bits. Procesador RISC (Computador de Juego de Instrucciones Reducido). La arquitectura Harvard permite a la CPU acceder simultáneamente a las dos memorias. Los modelos de la gama baja disponen de un repertorio de 33 instrucciones. temporizadores. De esta forma se puede ejecutar cada instrucción en un ciclo (un ciclo de instrucción equivale a cuatro ciclos de reloj). Todas las instrucciones son ortogonales Cualquier instrucción puede manejar cualquier elemento de la arquitectura como fuente o como destino. propicia numerosas ventajas al funcionamiento del sistema como se irán describiendo. .Características relevantes. la CPU se conecta de forma independiente y con buses distintos con la memoria de instrucciones y con la de datos. Las de l a gama media tienen 14 bits y más las de la gama alta. En esta arquitectura. La segmentación permite al procesador realizar al mismo tiempo la ejecución de una instrucción y la búsqueda del código de la siguiente. Segmentación. 35 los de la gama media y casi 60 los de la alta.

Stack de 8 niveles. Intérpretes y Compiladores BASIC. Ensambladores. ALU de 8 bits. los simuladores software. Eficiencia en la compactación del código. .Diversidad de modelos de microcontroladores con prestaciones y recursos diferentes La gran variedad de modelos de microcontroladores PIC permite que el usuario pueda seleccionar el más conveniente para su proyecto. La arquitectura Harvard y la técnica de segmentación son los principales recursos en los que se apoya el elevado rendimiento que caracteriza estos dispositivos programables. Son muy abundantes los programadores. 2 puertos de comunicación puerto A de 5 bits y puerto B de 8 bits. Herramientas de soporte potentes y económicas La empresa Microchip y otras que utilizan los PIC ponen a disposición de los usuarios numerosas herramientas para desarrollar hardware y software. mejorando dos características esenciales: Velocidad de ejecución. Temporizador con preescaler. Características del PIC 16f877A y y y y y y y y y Memoria RAM de programa de 1K con palabra de 14 bits tipo Flash. Contador de programa de 13 bits. Memoria EEPROM de datos con 68 registros de propósito general. los emuladores en tiempo real. Compiladores C. etc.

3. el cual tiene la gran labor de transformar la señal analógica del L 5 en una señal digital de 8 bits que se envía a la fase de interpretación. del orden de mV. el dispositivo presenta un rango de medición de 2 a 150°C. este dispositivo entrega a la salida una resolución de 10mV por cada grado centígrado. esta configuración es la idónea para hasta 99°C. £ £ £¦ £ (LCD) d a     ¥ £ Di pl d (k 0066u)   ¢¡   cri al líquid 2 lí por 16 carac r ¤ ¤  ©©¨ § . A Á El termómetro di ital ser bloques desarrollado de acuerdo al si uiente diagrama a 220 ohm En el diagrama de bloques se muestra el esquema general del proyecto que partiendo de un sensor que en este caso es el L el cual trans orma la temperatura del ambiente en voltaje. Empleándolo solo sin ninguna configuración en especial.P r la visuali aci de la temperatura se emplear u display de cristal lí uido (L de 2 lí eas por 16 caracteres (ks 66u el cual ser para enviarle a éste los conectado a la salida del puerto B del PI 16F datos a visuali ar siendo éstos los equivalentes a números decimales de la palabra di ital obtenida del ADC y por el puerto A se enviar n las señales para controlar el dispositivo. el proyecto pues solamente la utili aremos para medir temperaturas Una vez obtenida la salida del sensor que es analógica esta se envía el convertidor analógico-digital (A/D). el cual es un convertidor A/D de 8 bits con salida en paralelo.

.La interpretación de los datos obtenidos del convertidor A/D la realizará en el microcontrolador PIC 16f877A. Este dispositivo necesita ser programado adecuadamente para obtener el funcionamiento deseado por lo cual es de de gran importancia esta etapa ya que definirá el éxito o fracaso del proyecto. siendo éstos los equivalentes a números decimales de la palabra digital obtenida del ADC y por el puerto A se enviarán las señales para controlar el dispositivo. este convertirá los valores equivalentes para la visualización. Para que el PIC 16f877A pueda realizar la interpretación de los datos es necesario que este sea programado con la funcionalidad deseada para ello emplearemos el siguiente diagrama de bloques del funcionamiento del programa que será quemado en el PIC 16f877A. Esta programación se realiza en lenguaje Ensamblador para el posterior quemado. Para la visualización de la temperatura se empleará un display de cristal líquido (LCD) de 2 líneas por 16 caracteres el cual será conectado a la salida del puerto B del PIC 16f877A para enviarle a éste los datos a visualizar.

Se habilita la terminal (pulso bajo) denominada WR para que inicie el proceso de conversión. Como la salida del sensor es en mV dicha salida se convertirá en una cantidad digital para facilitar su manejo. IMPLEMENTACION TERMÓMETRO DIGITAL MATERIAL Y EQUIPO A EMPLEAR: y y y y y y y y y y y y y y y 1 PROTOBOARD PIC 16f877A SENSOR LM35DZ ADC0804 CRISTAL DE 4Mhz DISPLAY DE CRISTAL LÍQUIDO DE 2 X 16 2 CAPACITORES CERÁMICOS DE 27pf CAPACITOR CERÁMICO DE 150pf 2 POTENCIÓMETROS DE PRESICIÓN DE 10K . para que se inicie la conversión. 2. A ¼ DE WATT FUENTE DE ALIMENTACIÓN DE 5V CABLE TELEFÓNICO PINZAS DE PUNTA Y CORTE MULTIMETRO DIGITAL FUENTE DE ALIMENTACIÓN REGULADA DE 5V DESARROLLO DEL TERMÓMETRO DIGITAL Inicialmente se tiene que considerar la manera cómo funciona el sensor LM35. Se habilita el CAD mediante un pulso bajo aplicado a la terminal de CS. nos entrega a la salida 10mV por cada grado centígrado. 4. que como anteriormente se mencionó. Finalmente se deshabilita el convertidor. Se habilita la terminal (pulso bajo) denominada RD para que a la salida se tenga el resultado de la conversión. 3. Lo anterior se observa en el siguiente diagrama: . Para esto se empleará el ADC0804. Para la conversión analógica digital el ADC0804 se manipulará de la siguien te manera: 1. RESISTENCIA DE 10K .4. para esto se debe esperar 100Qs aproximadamente para que se lleve a cabo la conversión.

en base a este voltaje como es el máximo será el voltaje de referencia.5 k.75V / 5V = 0. Pero como el ADC maneja en su entrada VREF/2 el voltaje de referencia será de 0.El voltaje de referencia que se manejará en el convertidor se calcula de la siguiente manera: Como el LM35 nos entrega a la salida 10mV/°C y la máxima temperatura que puede detectar es de 150 °C. entonces. La corriente que se manejará en dicho voltaje de referencia será de 1mA y el voltaje se obtendrá de V CC= 5V mediante un divisor de tensión: La resistencia total del divisor se calcula: Rt = V CC / Ideseada Rt = 5V / 1mA = 2.75 V. El factor que se manejará para poder calcular R1 y R2 del divisor de tensión se calcula: Vdeseado/ Vtotal = 0. el cual es el máximo voltaje que nos puede entregar.5V.15 Una vez obtenido el factor se procede a calcular el valor de los resistores: . se tiene que 10mV x 150 = 1.

unsigned unsigned int dc_rd.15 * 2. = 375.5k . id ain() { = 0. . Ahora se comprobará si los valores son correctos: Vref = (375.) * 5V = 0. = 2125. En lo que respecta al PIC 16f877A. I        " !    . int i. char *text.j. se desarrolló el programa de conforme al siguiente diagrama de bloques: De lo expuesto en el diagrama de bloques se desarrolla el siguiente código en lenguaje MikroC. l ng tl ng. ./375.*text .+2125.75 V Que es el voltaje que se necesita para ajustar los pasos del convertidor a escala completa. para interpretar el valor de la conversión y la visualización de la misma.R1 = 0.*text2.375. R2 = 2.5k.

2. ch = (tlong / 10) % 10. ch = tlong / 1000. else LCD_Chr(2. LCD_Chr_CP(48+ch). LCD_Cmd(LCD_CLEAR).#################### DEFINICIONES ########################### Lcd_var CONTA1 CONTA2 ASCI E U CONTA3 CONTA4 TE PERATURA UNIT DECT E U E U E U 0X12 E U E U E U E U E U 0X10 0X08 0X09 0X20 0X21 0X24 0X25 0X26 ( 3 ' $ 1 % & $ & ) ) 0 5 5 5 5 5 5 5 5 ) 0 4 5 2 # # 1 . Delay_ms(1000). SIS E AS". . LCD_Out(1.text). LCD_Chr_CP('.text1). text = "I .i. LCD_Chr_CP(48+ch). ch = (tlong / 100) % 10. for(j=16.i. CD_Cmd(LCD_CURS R_OFF).############################################################# LIST p= PIC 16f877A #include < 16F84A.6.i<5.40.6.1. if(ch==0) LCD_Chr(2.' '). Directi a para definir micro. LCD_Out(1. Fichero st ndard de cabezera. tlong = tlong / 1023 . ch = tlong % 10. tlong = (long)adc_rd * 5000.j. Delay_ms(200). . text = "Temperatura:". Delay_ms(10000).j>0. ADCON1 = 0x82.text2). } } Y en el lenguaje assembler el código es el siguiente: .i++){ LCD_Cmd(LCD_CLEAR). 5. 4. Delay_ms(1000). 0).cd_Config(&P B. 3. for(i=0.j--){ LCD_Cmd(LCD_CLEAR).inc> . } hile (1) { adc_rd = ADC_read(2). LCD_Chr_CP('C'). Delay_ms(500).'). } text1 = "INGENIERIA ELECTRONICA". text2 = "I E IERIA ELECTRONICA".48+ch).text). LCD_Chr_CP(48+ch). TRISA = 0xFF. LCD_Cmd(LCD_CLEAR). __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC . LCD_Out(2. . LCD_Out(2.

+10°C POS.33 .49 .32 .43 . .+19°C POS.Variables utilizadas: Ninguna.DIEZ E U 0X27 UNO E U 0X28 UNI E U 0X29 .1 .9 .23 .+32°C POS.*************** INICIALIZACION DEL PROGRAMA.Salidas: W.+ 9°C POS.+11°C POS.+40°C POS. .+36°C POS..44 .37 .48 .+40°C POS.3°C POS.26 .+21°C POS.*********TABLA DE VALORES DE TEMPERATURA.34 .14 .46 .+37°C POS.+39°C POS.17 .4 .+17°C POS.2 .35 .+28°C POS.************************************************************ TABLA ADDWF PCL.+33°C POS.+ 8°C POS.19 .+34°C POS.+ 6°C POS.24 .************************************************************ .2°C POS.45 .+29°C POS.16 .+31°C POS.################ COMIENZO DEL PROGRAMA ##################### ORG 0X00 GOTO INICIO .+15°C POS.47 .+27°C POS.+30°C POS..+22°C POS.+38°C POS. .22 .15 .+40°C POS.29 .13 .******************* .################ PROGRAMA PRINCIPAL ######################### ORG 0X05 #include <LCD1602.12 .+ 4°C POS.3 .6 .Rutina: TABLA . .0 . .+14°C POS.25 .+40°C POS.28 .+16°C POS.+ 5°C POS.Funcion: Tabla con los valores de la temperatura para representar en el LCD.36 .+40°C POS.10 .+13°C POS.F RETLW B'10000011' RETLW B'10000010' RETLW B'10000001' RETLW B'00000000' RETLW B'00000001' RETLW B'00000010' RETLW B'00000011' RETLW B'00000100' RETLW B'00000101' RETLW B'00000110' RETLW B'00000111' RETLW B'00001000' RETLW B'00001001' RETLW B'00001010' RETLW B'00001011' RETLW B'00001100' RETLW B'00001101' RETLW B'00001110' RETLW B'00001111' RETLW B'00010000' RETLW B'00010001' RETLW B'00010010' RETLW B'00010011' RETLW B'00010100' RETLW B'00010101' RETLW B'00010110' RETLW B'00010111' RETLW B'00011000' RETLW B'00011001' RETLW B'00011010' RETLW B'00011011' RETLW B'00011100' RETLW B'00011101' RETLW B'00011110' RETLW B'00011111' RETLW B'00100000' RETLW B'00100001' RETLW B'00100010' RETLW B'00100011' RETLW B'00100100' RETLW B'00100101' RETLW B'00100110' RETLW B'00100111' RETLW B'00101000' RETLW B'00101000' RETLW B'00101000' RETLW B'00101000' RETLW B'00101000' RETLW B'00101000' RETLW B'00101000' RETURN .41 .7 .+26°C POS.20 .21 .+20°C POS.SUMA W A PCL .+ 1°C POS. .11 .1°C POS.+12°C POS.Entradas: W.+40°C POS.27 .38 .+ 7°C POS.+ 2°C POS.+25°C POS.5 .***************** 6 6 6 .31 .+35°C POS.40 . 0°C POS.50 .RETORNA DE LA SUBRUTINA.18 .inc> .+40°C POS.+18°C POS.39 .8 .+ 3°C POS.. Fichero de rutinas LCD.+23°C POS.30 .+24°C POS.

CALL LCD_INI .VISUALIZACION DE LA FRASE "LA TEMPERATURA" .EN LA PRIMERA LINEA DEL DISPLAY LCD MEDIANTE CALL MOVLW 'L' .INICIALIZAMOS EL DISPLAY LCD.INICIO BSF STATUS.EN LA SEGUNDA LINEA DEL DISPLAY LCD .VISUALIZACION DE LA FRASE "ES DE: +00°C" . MOVLW B'00001100' CALL LCD_REG MOVLW 0X80 CALL LCD_REG .*************** COMIENZO DEL PROGRAMA PRINCIPAL.LCD1602. .INC.ASCI.LAS ORDENES LCD_REG Y LCD_DATO DEL ARCHIVO LCD_DATO . CLRF TRISB CLRF TRISA BCF STATUS.LAS ORDENES LCD_REG Y LCD_DATO DEL ARCHIVO .INTRODUCIMOS EL N§ '00110000' EN EL REGISTRO MOVWF ASCI .RP0 .DESHABILITACION DEL DISPLAY Y EL ADC.LCD_CXX.RP0 MOVLW B'00110000' .INC.DISPLAY LCD SIN PARPADEO Y SIN CURSOR. .************* PRINCIPAL MOVLW B'00011000' MOVWF PORTA . .PONEMOS LOS PUERTOS A Y B COMO SALIDAS. MOVLW 'A' CALL LCD_DATO MOVLW ' ' CALL LCD_DATO MOVLW 'T' CALL LCD_DATO MOVLW 'E' CALL LCD_DATO MOVLW 'M' CALL LCD_DATO MOVLW 'P' CALL LCD_DATO MOVLW 'E' CALL LCD_DATO MOVLW 'R' CALL LCD_DATO MOVLW 'A' CALL LCD_DATO MOVLW 'T' CALL LCD_DATO MOVLW 'U' CALL LCD_DATO MOVLW 'R' CALL LCD_DATO MOVLW 'A' CALL LCD_DATO MOVLW 0XC0 CALL LCD_REG MEDIANTE MOVLW CALL MOVLW CALL MOVLW CALL MOVLW CALL MOVLW CALL MOVLW CALL MOVLW CALL MOVLW CALL MOVLW CALL MOVLW CALL MOVLW CALL MOVLW CALL 'E' LCD_DATO 'S' LCD_DATO '' LCD_DATO 'D' LCD_DATO 'E' LCD_DATO ':' LCD_DATO '' LCD_DATO '+' LCD_DATO '0' LCD_DATO '0' LCD_DATO B'11011111' LCD_DATO 'C' LCD_DATO .

RP0 MOVLW B'11111111' MOVWF TRISB BCF STATUS. MOVF MOVLW 0XC9 CALL LCD_REG UNIT. NEGATIVO TEMPERATURA TEMPERATURA. MOVLW B'00000000' MOVWF PORTA CALL CALL CALL CALL CALL MOVF TABLA CALL TABLA MOVWF TEMPERATURA BSF ADC BCF CLRF TRISB STATUS.************************************************************* 7 . .DEL ADC.PUERTO B COMO SALIDAS.ESCRIBE EL DATO DEL REGISTRO UNIT EN LA .PUERTO B COMO ENTRADAS PARA RECIBIR DATOS.RP0 TEMPO1 TEMPO1 TEMPO1 TEMPO1 TEMPO1 PORTB.NEGATIVO CON EL BIT 7 DEL REGISTRO .W . LLAMADA A .RECOGIDA DE DATOS DEL ADC.HABILITACION DE LA ESCRITURA DEL ADC. .W LCD_DATO PRINCIPAL .PONE A CERO EL BIT 7 DEL REGISTRO MOVLW 0XC7 .LA ESCRITURA DEL ADC.********************** .7 . DESHABILITACION DEL .W CALL LCD_DATO MOVLW CALL MOVF CALL GOTO 0XC8 LCD_REG DECT. .TEMPORIZACION PARA TERMINAR DE REALIZAR .POSICION 0XC8 DEL DISPLAY LCD. .ESCRIBE EL DATO DEL REGISTRO DECT EN LA .PARA LA CONVERSION DE DATOS Y ALMACENA E DE .Y MANDA EL SIGNO '-' A LA POSICION 0XC7 CALL LCD_REG .FINT. BSF STATUS.Y HABILITACION DEL DISPLAY LCD.******************** SUBRUTINA TEMPO1.LLAMA A LA SUBRUTINA DE CONVERSION A BCD.RP0 MOVLW B'00010000' MOVWF PORTA CALL CALL CALL CALL CALL TEMPO1 TEMPO1 TEMPO1 TEMPO1 TEMPO1 .TEMPORIZACIONES PARA EL BUEN .LA LECTURA EL ADC.CALL FUNCIONAMIENTO CALL CALL CALL CALL TEMPO1 TEMPO1 TEMPO1 TEMPO1 TEMPO1 . . .TEMPORIZACION PARA TERMINAR DE REALIZAR .DEL DISPLAY LCD. .RP0 MOVLW B'00011100' MOVWF PORTA BTFSS GOTO TEMPERATURA. MOVLW '-' CALL LCD_DATO FINT CALL BCDT .7 .POSICION 0XC9 DEL DISPLAY LCD.SALTA A LA POSICION PRINCIPAL.DEL DISPLAY LCD Y SALTA A LA POSICION . .MANDA EL SIGNO '+' A LA POSICION 0XC7 . GOTO POSITIVO MOVLW CALL MOVLW CALL GOTO BCF NEGATIVO 0XC7 LCD_REG '+' LCD_DATO FINT STATUS. TEMPERATURA.PREGUNTA SI EL DATO ES POSITIVO O POSITIVO .ESTOS DATOS EN REGISTRO TEMPERATURA.HABILITACION DEL ADC COMO LECTURA.

Entradas: TEMPERATURA.EN DECIMAL 255 Y 40 RESPECTIVAMENTE.################ FIN PROGRAMA PRINCIPAL ##################### END . XORWF UNIT MOVF ASCI. . .DOS CONTADORES CARGADOS CON LOS NUMEROS MOVLW .LAS UNIDADES. GOTO CINCO MOVF ASCI. MOVWF UNO GOTO DOS PRINCI INCF DECT.1 GOTO BUCLE3 RETURN .VARIABLE DIEZ=10. de 255 y 40 respectivamente. .W . DECT.************ CONVERSION A BCD DE LA TEMPERATURA. .40 .Salidas: UNIT..INCREMENTAMOS UNIT EN 1 POR CADA CUATRO MOVF UNO. .C .Rutina: BCDT .DECENA DE TEMPERATURA.Salidas: Ninguna.*************************************************** ********** TEMPO1 MOVLW .F .F .********************************* *************************** CLRF UNIT . XORWF DECT RETURN .CONVERTIMOS EL VALOR DE DECT A ASCI.W SUBWF TEMPERATURA.SUBRUTINA DE TEMPORIZACION MEDIANTE MOVWF CONTA3 .F . GOTO PRINCI GOTO CUATRO CINCO INCF UNIT.UNIDAD DE TEMPERATURA.Rutina: TEMPO1 .Funcion: Retardo para la correcta lectura del ADC con 2 contadores en decimal .CONTA4 .1 GOTO BUCLE3 DECFSZ CONTA4.CONVERTIMOS EL VALOR DE UNIT A ASCI. SUBWF UNI.SUBRUTINA UE CONVIERTE EL VALOR EN CLRF DECT .Funcion: Convierte los valores analogicos de temperatura a digitales para .INCREMENTAMOS DECT EN 1 POR CADA DOS MOVF TEMPERATURA.************* .************************************************************ . Fin de programa BCDT Después de compilar el código y generar su código hexadecimal se simulara su funcionamiento en el Software Proteus de acuerdo al siguiente gráfico 8 .Entradas: Ninguna.W .RESTAMOS 1 A LAS UNIDADES PARA SABER BTFSC STATUS. separar las decenas de las unidades y convertirlo en valor ASCI. MOVLW B'00001010' . . .SEPARAR LAS DECENAS DE LAS UNIDADES. ASCI.F .W .VARIABLE UNO=1. TRES MOVWF UNI MOVF DIEZ.RESTAMOS 10 A LA TEMPERATURA PARA BTFSC STATUS.C .255 . MOVWF CONTA4 BUCLE3 BUCLE4 DECFSZ CONTA3.Variables utilizadas: Ninguna. MOVWF DIEZ MOVLW B'00000001' .Variables utilizadas: CONTA3.BINARIO DE UN REGISTRO A BCD.W .

Diagrama del termómetro en proteus .

edición Editorial Mc Graw Hill Págs. 29. Ignacio Ángulo Martínez 2da.5.monografias.com www.microchip.com www. la que será convertida a digital por el convertidor analógico digital que otorgara como salida una señal digital de 8bits que serán interpretadas por el PIC 16f877A y se realizará la visualización de los datos en el LCD.samsung. Ángulo Usategui. Diseño práctico de aplicaciones José Ma. BIBLIOGRAFÍA y Microcontroladores PIC. nevera.30 1999 www.com www. SÍNTESIS Como hemos explicado el proyecto realiza la medición de la temperatura del ambiente usando un sensor LM35 el cual nos da la medida en una señal analógica. etc. Con este dispositivo podemos medir la temperatura de un ambiente o aparato en concreto como pudiera ser un motor.com y y y y .fairchildsemi.

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->