TERMÓMETRO DIGITAL














INTRODUCCIÓN












COMPONENTES



ESQUEMÁTICOS



ARCHIVOS



CRÉDITOS















1. INTRODUCCIÓN:


1.1- CARACTERÍSTICAS.




1.2- COMO SE HIZO.
























2. COMPONENTES:






2.1- LISTA DE COMPONENTES.


2.2- MODULO LCD.


2.3- SENSOR LM35.


2.4- CONVERTIDOR ANALÓGICO-DIGITAL ADC 0804.


2.5- MICROCONTROLADOR PIC16F84.





















3. ESQUEMAS:



3.1- TERMOMETRO.



3.2- PIC16F84.

























4. ARCHIVOS:




4.1- ESQUEMÁTICOS:








-PIC

TERMÓMETRO

4.2- CÓDIGO ENSAMBLADOR.

4.3- INCLUDE DEL LCD.

























5. CREDITOS:

PÁGINA DISEÑADA POR LUIS A. MARTÍNEZ BERZOSA, BAJO LA SUPERVISIÓN DEL PROFESOR JUAN MUÑOZ BARBO, PARA LA ASIGNATURA DESARROLLO DE PROYECTOS DE PRODUCTOS ELECTÓNICOS DEL CICLO FORMATIVO: DESARROLLO DE PRODUCTOS ELECTRÓNICOS, DEL CURSO 2001-2002.


e-m@il: luys@andanza.com

























LISTA DE COMPONENTES

CANTIDAD

TIPO/REFERENCIA

DENOMINACIÓN

PRECIO

TOTAL

1

LM35

SENSOR DE CALOR

1,24

1,24

1

LCD-WM-C1602

DISPLAY LCD

6,34

6,34

1

ACD 0804

CONVERTIDOR ANALÓGICO-DIGITAL

2

2

1

TPOT 10K

POTENCIÓMETRO DE 10 K

0,09

0,09

4

1N4148

DIODOS

0,06

0,24

1

R10K

RESISTENCIA DE 10K

0,01

0,01

1

R1K8

RESISTENCIA DE 1K8

0,01

0,01

1

R18K

RESISTENCIA DE 18K

0,01

0,01

1

C220p

CONDENSADOR DE 220pF

0,02

0,02




TOTAL EUROS

9,96€




IVA (16%)

1,59€




TOTAL +IVA

11.55€




























MODULO LCD



Se trata de un módulo microcontrolado capaz de representar 2

líneas de 16 caracteres cada una. A través de 8 líneas de datos se le envía el carácter ASCII que se desea visualizar así como ciertos códigos de control que permiten realizar diferentes efectos de visualización. Igualmente mediante estas líneas de datos el módulo devuelve información de su estado interno. Con otras tres señales adicionales se controla el flujo de información entre el módulo LCD y el equipo informática que lo gestiona. A continuación se presenta la descripción de señales empleadas por el módulo LCD así como el número de patilla a la que corresponden.

PIN Nº

SIMBOLO

CONEXIÓN

DESCRIPCIÓN

1

Vss

Vss

Patilla de tierra de alimentación

2

Vdd

Vdd

Patilla de alimentación de +5V

3

Vo

Vo

Patilla de contraste del cristal líquido. Normalmente se conecta a un potenciómetro a través del cual se aplica una tensión variable entre 0 y +5V que permite regular el contraste del cristal líquido.

4

RS

RA0

Selección del registro de control/registro de datos: RS =0 Selección del registro de control RS=1 Selección del registro de datos

5

R/W

RA1

Señal de lectura/escritura R/W=0 El Módulo LCD es escrito R/W=1 El Módulo LCD es leído

6

E

RA2

Señal de activación del módulo LCD: E=0 Módulo desconectado E=1 Modulo conectado

7,14

D0-D7

RB0-RB7

Bus de datos bi-direccional. A través de estas líneas se realiza la transferencia de información entre el módulo LCD y el sistema informático que lo gestiona

ARCHIVO.PDF































SENSOR LM35

La serie de sensores LM35 son unos circuitos integrados que realizan la función de sensor de temperatura de alta precisión, cuya tensión de salida es proporcional a la temperatura en grados centígrados. Este, no requiere de ninguna calibración externa o circuito auxiliar para detectar variaciones calibradas. Además puede usarse con la fuente de alimentación del sistema en el que se instale, ya que consume solo 60 microA de corriente en reposo.






ARCHIVO.PDF


























CONVERTIDOR ADC0804









La serie de convertidores A/D08XX está compuesta por

el ADC0801, ADC 0802, ADC 0803 y ADC0804.

Estos convertidores de aproximaciones sucesivas son muy utilizados por su relación velocidad / precio. Disponen de 8 bits de salida con posibilidad de triestado, lo que facilita su conexión a un microprocesador, teniendo un tiempo de conversion de 100 nanoseg. Los dispositivos trabajan con una tensión de alimentación de + 5 V y disponen de un reloj interno, si bien admite que se conecte uno externo. Su diagrama se muestra en el circuito 1.

Por un reloj externo, en cuyo caso se debe aplicar al pin 4. Conectando una resistencia, R, entre los pines 19 (CLK OUT) y 4 (CLK IN) y un condensador, C, entre el pin 4 y masa, como puede verse en el diagrama

En ese caso la frecuencia de reloj viene dada por la expresión: f = 1 / ( RCLn3) = 1 / (1,1RC)

Las entradas analógicas Vin(+) y Vin(-), están protegidas contra sobrecargas, pero para un correcto funcionamiento, las señales aplicadas deben estar comprendidas entre 0V y Vcc.

La salida del convertidor corresponde a la diferencia de potencial aplicada entre las dos señales de entrada, es decir Vin (+) - Vin (-). Esta particularidad tiene la ventaja de que para las señales de entrada diferentes se reduce el efecto del ruido.

Si se deja el pin 9 (Vref / 2) en circuito abierto, la tensión de referencia que se obtiene internamente es (Vcc / 2). Aplicando una tensión externa en este pin (9), se puede hacer un ajuste a fondo de escala. En este caso una tensión de conducción es dos veces la tensión de conducción de un dioxido de silicio D3 y D4, que aproximadamente es de 1,2 V.

Las líneas DB0 a DB7 son salidas en lógica triestado de los datos digitales, siendo DB7 el bit más significativo (MSB) y DB0 el menos (LSB). La línea #CD (chip select) autoriza el funcionamiento del convertidor, #WR (write) da la orden de inicio de conversión y #RD (read) realiza la lectura de datos. Por otro lado, la salida #INTR es la señal que indica si la conversión ha finalizado.

Cuando el pin #CS se encuentra a nivel alto, independientemente de #WR y #RD, el chip no se encuntra seleccionado y en estas condiciones, las salidas de datos están en estado de alta impedancia. La salida #INTR está a nivel bajo, el registro de aproximaciones sucesivas que se pone a cero. Mientras que #CS y #WR permanezcan a nivel bajo, el convertidor permaneze en estado de Reset. Ocho periodos después de que #CS o #WR (usualmente #WR) hagan una transición de nivel bajo a nivel alto, se inicia el proceso de conversión y la salida #INTR pasa a nivel alto.

El final de conversión se indica cuando en la señal #INT se produzca un flanco de bajada.

Cuando #CS y #WR están a nivel bajo, el lanch de salida triestado se habilita y el código de salida se aplica a las líneas #DB0 a #DB7. Cuando la entrada #CS o #WR están a nivel bajo y la línea #RD pasa a nivel alto, las salidas DB0 a DB7 pasan a estado de alta impedancia y la línea INTR pasas a nivel alto.

En la figurase muestran el cronográma de lectura y escritura así como la salida, habilitación y reinicio de INTR.

En este esquema se muestra el patillaje del ADC 0804.

ARCHIVO .PDF



























MICROCONTROLADOR PIC 16F84





El microcontrolador 16F84 dispone de dos puertos de E / S. El puerto B formado por ocho líneas y el puerto A por cinco. Las ocho líneas del puerto B están compartidas por los pines de datos de la pantalla LCD y con las salidas digitales del convertidor A/D; esto es posible gracias que estos dispositivos disponen de una pantilla de selección de chip (CS) que los pone en estado de alta impedancia o los habilita. En el LCD el CS se activa a nivel alto y la hemos conectado a RA2 mientras que en el DAC0804 el #CS es activo a nivel bajo y está conectado a RA3.

El pic16f80 es un microcontrolador con memoria de programa tipo flash, lo que representan gran facilidad en el desarrollo de prototipos y en su aprendizaje ya que no se requiere de borrado con anterioridad.

El pic16c86 es un microcontrolador de la familia microchip, totalmente compatible con el pic 16f84. Su principal característica es que posee una memoria EEPROM en lugar de memoria FLASH, pero su manejo es igual. Las diferencias con respecto al 16f84, son:

· La memoria de datos tiene mayor tamaño, aquí se tienen 32 rejistros de proposito general (mapa de memoria hasta 2Fh)

· En el momento de programar el microcontrolador, el fusible de selección del temporizador de arranque (Power Up Timer) trabaja de forma inversa, es decir, el pic16f84 se selecciona la opción Low para activarlo, en el 16c84 se debe seleccionar High

El microcontrolador ha sido reemplazado de forma gradual por el pic16f84.

Este microcontrolador se basa en la Arquitectura Harvard, en el cual el programa y los datos puden trabajar desde memorias separadas, lo que posibilita que las instrucciones y los datos posean longitudes difentes. Esta misma estructura es la que permite la superposición de los ciclos de búsqueda y ejecución de las instrucciones, lo cual se ve reflejado en una mayor velocidad del microcontrolador.

-Memoria de programa

En un programa de 1 Kbyte de lonjitud con la palabra de 14 bits. Como es tipo FLASH se pueden programar y borrar eléctricamente, se puden programar y borrar sin necesisdad de un borrador de luz ultravioleta, lo que facilita el desarrollo de programas y la experimentación.

Como el pic16f84 tiene un controlador de programa de 13 bits, tiene una capacidadde direccionamiento de 8K x 14, pero solamente tiene implementado el primer 1K x 14 (000h hasta 03FFh). Si se direccionan posiciones de memoria superiores a 3FFh se causará un solapamiento o desborde con el espacio del primer 1K.

-Vector de Reset

Cuando ocurre un reset o se enciende el microcontrolador, el controlador de programa se pone en ceros (000h). Por esta razón, en la primera dirección del programa se debe escribir todo lo relacionado con la iniciación del mismo

-Vector de Interripción

Cuando un microcontrolador recibe una señal de interrupción el controlador de programa apunta a la dirección 04h de la memoria de programa, por eso allí se debe escribir toda la programación necesaria para obtener dicha interrupción.

-Registros (memoria RAM)

El pic16f84 puede direccionar 128 posiciones de memoria RAM, pero solamente tiene implementado físicamente los primeros 80 (0 a 4Fh). De estos los primeros 12 son registros que cumplen un propósito especial en el control del microcontrolador y los 68 siguientes son de registro general que se pueden usar para guardar los datos temporales de la tarea que se ha ejecutado. Los registros están arganizados como dos bancos (páginas) de 128 posiciones de 8 bits cada una (128 x 8); todas las posicionezs se pueden accesar directa o indirectamente (estas ultimas a través del registro FSR). Para seleccionar que pagina de registro se trabaja en un momento determinado se utilliza el bit RPO del registro STATUS.

PINES Y SUS FUNCIONES.



Los puertos son el puente entre el microcontrolador y el exterior. Son las líneas digitales que trabajan entre cero y cinco voltios y se pueden configurar como entradas o salidas.

El pic 16f84 tiene dos puertos. El puerto A con cinco líneas y el puerto B con 8 líneas. Cada pin se puede configurar como entrada o como salida independiente programado por un par de registros diseñados para tal fin. En ese registro con un 0 configura el pin del puerto correspondiente como salida y un 1 lo configura como entrada.

-Puerto A

RA0 = Pin de entrada/salida (TTL) RA1 = Pin de entrada/salida (TTL) RA2 = Pin de entrada/salida (TTL) RA3 = Pin de entrada/salida (TTL) RA4/TOCKI = Pin de entrada/salida o entrada de Reloj Externo para TMR0, cuando este pin se configura como salida es de tipo Open Drain (ST), cuando funciona como salida se debe conectar a Vcc (+5V) a traves de una resistencia.

-Puerto B

RBO/INT = Pin de entrada/salida o entrada de interrupción externa (TTL/ST) RB1 = Pin de entrada/salida (TTL) RB2 = Pin de entrada/salida (TTL) RB3 = Pin de entrada/salida (TTL) RB4 = Pin de entrada/salida con interrupción por cambio de flanco (TTL) RB5 = Pin de entrada/salida con interrupción por cambio de flanco (TTL) RB6 = Pin de entrada/salida con interrupción por cambio de flanco (TTL/ST) RB7 = Pin de entrada/salida con interrupción por cambio de flanco (TTL/ST)

-Pines adicionales

MCLR = Pin de reset del microcontrolador (Master Clear). Se activa (el pic se reinicia) cuando tiene un "0" lógico en su entrada. Vss = Ground o Masa Vdd = Fuente positiva (+5V) OSC2/CLKOUT = Entrada del oscilador del cristal / entrada de reloj de una fuente externa

El puerto B tiene internamente unas resistencias de pull-up conectadas a sus pines (sirven para fijar el pin a un nivel de cinco voltios), su uso puede ser habilitado o deshabilitado bajo el control del programa. Todas las resistencias de pull-up es desconectada automáticamente en un pin si este se programa como salida. El pin RB0/INT se puede configurar por software para que funcione con interrupción externa.

El pin RA4/TOCKI del puerto A puede ser configurado como un pin de entrada/salida como se mencionaba anteriormente o como entrada del temporizador/controlador. Cuando este pin se programa como entrada digital, funciona como un disparador de Schmitt (Schmitt trigger, ST), esto quiere decir que puede reconocer señales un poco distorsionadas y llevarlas a niveles lógicos (cero y cinco voltios). Cuando se usa como salida digital se comkporta como colector abierto, por lo tanto se debe poner una resistencia pull-up (resistencia externa conectada a un nivel lógico de cinco voltios). Como salida, la logica es inversa: un "0" escrito al pin del puerto entrega en el pin un "1" lógico. Además como salida no puede manejar cargas como fuente, sólo en el modo sumidero.

Como este dispositivo es de tecnología CMOS, todos los pines deben estar conectado a alguna parte, nunca dejarlos al aire por lo que se puede dañar el integrado. Los pines que se estén usando se deben conectar la fuente de alimentación +5V con una resistencia de < 5 K Ohmio

La máxima capacidad de corriente de cada uno de los pines de los puertos en modo sumidero (sink) es de 25 mA y en modo fuente (source) es de 20 mA

El consumo de corriente del microcontrolador para su funcionamiento depende del voltaje de operación, la frecuencia y de las cargas que tengan sus pines

EL OSCILADOR EXTERNO.



Todo microcontrolador requiere un circuito esterno que le indique la velocidad a la que debe trabajar. Este circuito, que se conoce con el nombre de oscilador o reloj, es muy simple pero de vital importancia para el buen funcionamiento del sistema. El pic16f84 puede utilizar cuatro tipos de osciladores diferentes:

· RC. Oscilador con resistencia y condensador · XT. Criltal de cuarzo · HS. Cristal de alta velocidad · LP. Cristal para baja frecuencia y bajo consumo de potencia

En el momento de programar el microcontrolador se debe especificar que tipo de oscilador usa. Esto se hace a través de unos fusibles llamados "fusibles de configuración"

En la mayoria de las practicas que realizaremos se sugiere el cristal de 4MHz, por que garantiza una mayor precisión y un buen arranque del microcontrolador. Internamente esta frecuencia esta dividida por cuatro, lo que hace que la frecuencia efectiva de trabajo sea de 1 Mhz, por lo que cada instrucción se realiza en un microsegundo. El cristal debe ir acompañado de dos condensadores y se conecta de la siguiente forma:




Dependiendo de la aplicación, se pueden utilizar cristales de otras frecuencias.

Si no se requiere mucha precisión en el oscilador y se require economizar dinero, se puede utilizar una resistencia y un condensador, de la siguiente forma:




Los valores recomendados para este tipo de oscilador son: 5KKW £ Rext £ 100 KW y Cext > 20 pF

Cuando el oscilador del dispositivo está en modo RC, no maneje el pin OSC1 con un rejoj externo ya que puede dañar el dispositivo.

La frecuencia del oscilador dividita por cuatro está disponible en el pin OSC2/CLKout, y puede ser usada para chequear propósitos o para sincronizar otra lógica.




RESET



En los microcontroladores se requiere un pin de reset para reiniciar el funcionamiento del sistema cuando sea necesario, ya sea por una falla que se presente o por que así se halla diseñado el sistema. El pin de reset en los PIC es llamado "Master Clear". El pic16f84 admite diferentes tipos de reset:

· Al encendido (Power On Reset) · Pulso en el pin Master Clear durante operación normal · Pulso en el pin Master Clear durante el modo bajo consumo (modo sleep) · El rebase del conteo del circuito de vigilancia (watchdog) durante operación normal · El rebase del conteo del circuito de vigilancia (warchdog) durante el moo de bajo consumo (sleep)

El reset al encendido se consigue gracias a dos temporizadores. El primero de ellos es el OST (Oscilador Star-Up Timer: Temporizador de encendido del oscilador), orientado a mantener el microcontrolador en reset hasta que el oscilador de cristal es estable. El segundo es el PWRT (Power-Up Timer: temporizador de encendido), que provee un retardo fijo de 72mS (nominal) en el encendido únicamente, diseñado para mantener el dispositivo en reset mientras la fuente se estabiliza. Para utilizar estos temporizadores, solo basta con conectar el pin Master Clear a la fuente de alimentación evitándose utilizar laslas tradicionales redes RC externas en el pin de reset.

El reset por Master Clear se consigue llevando momentáneamente este pin a un estado lógico bajo, mientras que el watchdog WDT produce un reset cuando su temporizador renbasa la cuenta, es decir pasa de 0FFh a 00H. Cuando se quiere tener el control sobre el reset del sistema se puede conectar un botón como se muestra en la siguiente figura:




Reset por Brow-Out: es una condición en donde la alimentación de dispositivo (Vdd) baja a un valor mínimo, pero no a cero y más tarde se normaliza. El dispositivo debe resetearse en caso de presentarse un brow-out. Para resetear un pic16f84 cuando un brow-out ocurre se debe construir un circuito de protección




Es circuito entrará en reset activo cuando Vdd baja por debajo de Vz + 0.7, en donde Vz = Voltaje del Zener




Este circuito es más economico aunque menos eficaz. El transistor Q1 pasará a un estado de corte vuando Vdd está por debajo de cierto nivel tal que:

Vdd · (R1/ (R1 + R2)) = 0.7 V




ARCHIVO.PDF





















CARACTERÍSTICAS

El siguiente proyecto es un termómetro digital con un rango de medida de -10ºC a +40ºC, que presenta la temperatura sobre una pantalla de cristal líquido (LCD) de dos filas y dieciséis columnas. El circuito está basado en el microcontrolador PIC16F84 de Arizona Microchip Tecnology (AMT), el sensor de temperatura LM35 y el convertidor Analógico-Digital ADC 0804 ambos de National Semiconductor.

























ESQUEMA TERMOMÓMETRO
















ESQUEMA PIC16F84










COMO SE HIZO

Para la realización de este proyecto lo primero que se hizo fue buscar información sobre los componentes más importantes del circuito (conversor ADC, pantalla LCD, sensor LM35 y pic16F84), luego se montó el circuito en placa board según el esquema facilitado por el profesor, el cual había que retocar como veremos posteriormente sirviéndonos del programa Eagle. A continuación se procedió a la realización del programa en lenguaje ensamblador para programar el pic16F84 mediante el programador SUPERPRO/Z. Para la realización de este programa se partió de un antiguo programa realizada por David García Rodríguez alumno de este mismo instituto el año anterior, el cual había que depurar, pues, aparte de que no funcionaba, no estaba muy comprensible a primera vista, cambiando algunas rutinas como la de los valores de temperatura (rutina BCD) y la tabla de temperatura la cual había que regular para ajustar y obtener la temperatura, real, añadiendo o quitando valores de –10ºC. Pero como ya se dijo antes se tuvo que rediseñar la parte de los diodos del circuito para que nos dieran valores de tensión iguales en las entradas VREF y VI- del ADC0804 para así no obtener valores erróneos en la entrada VI+, que es la que recoge los valores de temperatura del sensor de temperatura. Para obtener esta igualdad de tensiones se pusieron dos diodos 1N4007 para la entrada VI- y uno en la entrada VREF con una resistencia de 46ohm a vcc, pero esto hacia conducir mucha intensidad de corriente a través de la resistencia generando gran consumo y pudiendo quemarse esta resistencia transcurrido un tiempo, por esto se puso una resistencia de 1K5ohm junto con otro diodo en la entrada VREF y aunque no coincidían exactamente los valores de tensión no afectaba a la obtención de los valores de temperatura, aunque el rango de temperatura se vio reducido para darnos la temperatura desde -3ºC a +40ºC, dando así por finalizado el proyecto, después de documentarlo mediante la realización de esta página web.