• No se han encontrado resultados

Elaboración de Módulos Didácticos Basados en Microprocesadores

N/A
N/A
Protected

Academic year: 2021

Share "Elaboración de Módulos Didácticos Basados en Microprocesadores"

Copied!
158
0
0

Texto completo

(1)

Elaboración de Módulos Didácticos Basados en

Microprocesadores

AUTOR: Antonio Miguel Zaplana Alcaraz DIRECTOR: José Luís Ramírez Falo

(2)

2

Índice

MEMORIA DESCRIPTIVA 5

1. Objeto del Proyecto 6

2. Titular 6

3. Antecedentes 6

4. Posibles Soluciones y Solución Adoptada 7

4.1 Módulo 1: Control de un Display LCD 7

4.2 Módulo 2: Control de Temperatura 7

4.3 Práctica de Controlador de Teclado 9

5. Descripción de la Solución Adoptada 10

5.1 Módulo 1: Control de un Display LCD 10

5.1.1 Objetivo Didáctico del Módulo 10

5.1.2 Planificación de la Práctica 11

5.1.3 Conocimientos Adquiridos 11

5.1.4 Descripción del Hardware 11

5.2 Módulo 2: Control de Temperatura 15

5.2.1 Objetivo Didáctico del Módulo 15

5.2.2 Planificación de la Práctica 16

5.2.2.1 Práctica de Control de Temperatura con Lectura de 8 bits 16 5.2.2.2 Práctica de Control de Temperatura con Lectura de 10 bits 17 5.2.2.3 Práctica de Conversión A / D y Visualización en 7 Segmentos 18

5.2.3 Descripción del Hardware 19

5.2.3.1 Medición de Temperatura 22

5.2.3.2 Conversión Analógico – Digital 23 5.2.3.3 Visualización en 7 Segmentos 25 5.2.3.4 Conversión Digital – Analógico 26 5.2.3.5 Conexión con el Microinstructor TM-683 27

5.2.3.6 Módulo de Calor 28

5.2.3.7 Programador PIC16F873 28

5.2.3.7.1 Software de Programación del PIC16F873 30

(3)

3

5.3 Práctica de Controlador de Teclado 33

5.3.1 Objetivo Didáctico del Módulo 33

5.3.2 Planificación de la Práctica 33

5.3.3 Descripción del Hardware 34

5.3.3.1 Funcionamiento del Teclado 36 5.3.3.1.1 Códigos de Rastreo del Teclado 36

5.3.3.2 Programación de la DUART 37

6. Resumen del Presupuesto 37

PLANOS 38

Plano Nº1: Módulo Control LCD. Esquema Eléctrico

Plano Nº2: Módulo Control LCD. Situación de Componentes Plano Nº3: Módulo Control LCD. Fotolitos

Plano Nº4: Módulo Control de Temperatura. Esquema Eléctrico

Plano Nº5: Módulo Control de Temperatura. Situación de Componentes Plano Nº6: Módulo Control de Temperatura. Fotolito Cara Superior Plano Nº7: Módulo Control de Temperatura. Fotolito Cara Inferior Plano Nº8: Controlador de Teclado. Esquema Eléctrico

PRESUPUESTO 39

1. Módulo de Control LCD 40

1.1 Cuadro de Precios 40

1.2 Aplicación de Precios 41

1.3 Resumen del Presupuesto 41

2. Módulo de Control de Temperatura 42

2.1 Cuadro de Precios 42

2.2 Aplicación de Precios 43

2.3 Resumen del Presupuesto 44

3. Práctica de Controlador de Teclado 45

3.1 Cuadro de Precios 45

3.2 Aplicación de Precios 45

3.3 Resumen del Presupuesto 46

(4)

4

ANEXOS 47

ANEXO 1: Módulo de Control LCD. Información para el Alumno 48 ANEXO 2: Módulo de Control LCD. Solución de la Práctica 56 ANEXO 3: Guión de la Práctica Control de Temperatura con Lectura de 8 bits 73 ANEXO 4: Guión de la Práctica Control de Temperatura con Lectura de 10 bits 79 ANEXO 5: Guión de la Práctica Conversión A/D y Visualización en 7 segmentos 87 ANEXO 6: Módulo Control de Temperatura. Solución de las Prácticas 99 ANEXO 7: Módulo Control de Temperatura. Programa Residente en el

Microcontrolador

132

ANEXO 8: Práctica Controlador de Teclado. Información para el Alumno 140 ANEXO 9: Práctica Controlador de Teclado. Solución de la Práctica 146

(5)

MEMORIA

(6)

MEMORIA DESCRIPTIVA

6

MEMORIA DESCRIPTIVA

1. Objeto del Proyecto:

El presente proyecto tiene como objetivo la elaboración de módulos didácticos para la realización de prácticas de programación. Estos módulos están propuestos para asignaturas sobre sistemas digitales con microprocesadores y microcontroladores. Como por ejemplo, las asignaturas de Sistemas Digitales – II y Sistemas Electrónicos con Microcontroladores, del primer ciclo de Ingeniería Técnica Industrial, especialidad en Electrónica Industrial y, la asignatura de Sistemas Electrónicos Digitales del segundo ciclo de la carrera de Ingeniería en Automática y Electrónica Industrial.

Los módulos y prácticas que se proponen en este proyecto pretenden ofrecer al alumno la oportunidad de afianzar sus conocimientos, sobre el temario correspondiente a los dispositivos de entrada-salida de acceso programado y control digital. Ayudar al alumno a entender el entorno hardware y software del microprocesador MC68000. Permitir al alumno conocer el diseño de circuitos electrónicos basados en microcontroladores y microprocesadores, los recursos que ofrecen estos dispositivos y optimizar su uso. Programar estructuradamente aplicaciones. Introducirle en los microcontroladores PIC y hacerle ver los problemas de hardware y software que surgen en los sistemas digitales.

2. Titular:

El promotor de este proyecto es el Departamento de Ingeniería Eléctrica, Electrónica y Automática (DEEEA), de la Escuela Técnica Superior de Ingeniería de la Universidad Rovira i Virgili con dirección: Campus Sescelades, avenida Països Catalans, 26. C.P.: 43007 Tarragona. Y en su nombre el señor Don José Luís Ramírez Falo.

3. Antecedentes:

En el segundo curso de la enseñanza de Ingeniería Técnica Industrial, Especialidad en Electrónica Industrial, se realiza la asignatura obligatoria de Sistemas Digitales – II. Los objetivos de esta asignatura son: el análisis y uso eficaz de sistemas basados en microprocesadores, estudiando el entorno hardware y software del MC68000 de Motorola. El programa de la asignatura incluye el estudio de cada una de las partes que componen un sistema basado en microprocesadores, así como la programación en lenguaje ensamblador de éstos.

Para ayudar al alumno a entender mejor todos los conceptos expuestos en las clases teóricas, se realizan una serie de prácticas de programación sobre el microinstructor TM-683 de Promax. Este dispositivo incluye un microprocesador MC68000 lo que lo hace idóneo para esta asignatura. En total se realizan dos prácticas, la primera de carácter introductorio y la segunda con la ayuda de módulos de aplicación. Estos módulos se conectan a las diferentes puertas de entrada-salida que dispone el microinstructor. Simulan aparatos o procesos reales que el alumno debe controlar mediante la programación en ensamblador. Los módulos descritos en este proyecto están destinados a la realización de la segunda práctica de la asignatura.

(7)

MEMORIA DESCRIPTIVA

7

Además, proporcionan al alumno un mejor conocimiento sobre dispositivos digitales que, por falta de tiempo, se ven de una forma muy general en las clases teóricas, como son los dispositivos de entrada-salida de acceso programado.

Estos módulos están formados por nuevos elementos muy utilizados actualmente, como las pantallas de cristal líquido y los microcontroladores PIC de MICROCHIP.

4. Posibles Soluciones y Solución Adoptada:

4.1 Módulo 1: Control de un Display LCD

Dado que el módulo está formado básicamente por un display LCD tenemos las siguientes posibilidades:

a) Display LCD de siete segmentos

b) Módulo de display LCD alfanumérico de matriz de puntos.

Los módulos LCD de siete segmentos disponen de un gran número de líneas a controlar. Esto hace que sea bastante difícil su control mediante los conectores de aplicación del microinstructor TM-683. El principal inconveniente de esta solución es que disponen de muy pocos dígitos con los que no es posible presentar mensajes de texto.

La segunda opción es la solución adoptada. Los módulos alfanuméricos disponen de una matriz de 8, 16, 20, 32, 40, etc. caracteres, e incluso disponen de 1, 2, 4 o más líneas. Son capaces de visualizar caracteres, números y símbolos. Están gobernados por un microcontrolador incluido en el módulo capaz de generar los caracteres y funciones especiales y se controlan mediante 14 líneas, lo que es idóneo para ser conectado al microinstructor TM-683.

4.2 Módulo 2: Control de Temperatura:

El módulo de control de temperatura está formado básicamente por cuatro bloques: medición de temperatura y acondicionamiento de la señal, conversión analógico – digital, conversión digital – analógico, resistencia de calentamiento.

Como elementos de medición de temperaturas tenemos los siguientes:

- Termopares: el rango de temperaturas que ofrecen es bastante amplio, aunque la circuitería necesaria hace que sea algo complicado su uso. Además, se necesita otro elemento sensor para compensar el efecto producido por la unión fría. El precio de estos sensores es de unos 9€ aproximadamente.

- PT100: Detector de película de platino. Ofrecen también un amplio rango de temperaturas y en precio es bastante aproximado al de los termopares. Para su correcta medición se puede utilizar un puente linealizador con resistencias de baja tolerancia y un amplificador de instrumentación.

(8)

MEMORIA DESCRIPTIVA

8

- PRC100: Es una alternativa de bajo coste al sensor de resistencia de hilo arrollado de platino. Tiene una resistencia a temperatura cero de 100Ω y presenta un comportamiento lineal con sensibilidad media de 0.00385Ω/ºC, en el margen de temperaturas de -40ºC a 150ºC. El precio es de unos 9 € aproximadamente. La circuitería adicional para la medición sería la misma que para una PT100.

- C.I. LM35: es un circuito integrado sensor de temperatura con tres terminales, que proporciona una salida lineal de tensión de 10mV/ºC. Es el elemento más económico (4€ aprox.) y más fácil de usar. El rango de temperaturas va de 0ºC a 100ºC y tiene una precisión de aproximadamente ±1ºC.

Para la realización del módulo no se requiere que el sensor tenga un amplio rango de temperaturas, ni tampoco demasiada precisión. Por este motivo se considera que la opción más indicada es la del C.I. LM35.

Independientemente del elemento utilizado como sensor de temperatura, podemos tener más o menos prestaciones según la conversión de la señal analógica a digital se haga mediante un chip conversor o utilizando un microcontrolador con conversor A / D incluido.

En el primer caso, el módulo dispone de una circuitería de adaptación de la señal analógica para ser introducida en el conversor A / D. El resultado de la conversión se envía al microinstructor mediante uno de los dos puertos disponibles en la VIA (Versatile Interface Adapter, en adelante VIA). El puerto restante de la VIA se conecta a un conversor digital - analógico cuya salida está a su vez conectada con la resistencia de calentamiento mediante un transistor de potencia.

Por otro lado, si utilizamos un microcontrolador, las funciones del módulo se ven muy incrementadas. Se puede utilizar un microcontrolador de la clase PIC con conversor analógico digital. De esta forma podemos realizar las mismas funciones que con el caso anterior. También podemos conectar uno de los puertos de entrada - salida del PIC a un display de tres dígitos de siete segmentos, para visualizar el valor de la temperatura.

Además, incluyendo en el módulo un conector DB25 junto con una circuitería simple es posible realizar la programación del PIC en el propio módulo, sin tener que quitar el microcontrolador y sin utilizar grabadores adicionales.

Todo este conjunto sería de una gran utilidad didáctica, no sólo para la asignatura de Sistemas Digitales - II, sino también, para la asignatura de Sistemas Electrónicos con Microcontroladores y, en definitiva, para cualquier asignatura que pueda tener prácticas sobre microcontroladores, con la particularidad añadida del tratamiento digital de señales analógicas como el de la medición de temperatura.

Existe una amplia gama de microcontroladores PIC que nos permiten seleccionar el más conveniente para nuestro proyecto. MICROCHIP dispone de cuatro familias de microcontroladores de ocho bits: la gama enana de ocho pins (PIC12C(F)XXX), la gama baja con instrucciones de 12 bits (PIC16C5X), la gama media con instrucciones de 14 bits (PIC16C(F)XXX) y, la gama alta con instrucciones de 16 bits (PIC17CXXX). De las cuatro gamas anteriores, la gama enana y la gama baja no se adaptan a nuestras necesidades, ya que tienen menos líneas de entrada – salida de las

(9)

MEMORIA DESCRIPTIVA

9

que necesitamos. Los microcontroladores de la gama alta tienen unas características demasiado potentes e incrementarían el precio final del proyecto innecesariamente. La gama media de microcontroladores PIC es la que mejor se ajusta a nuestras necesidades. En esta gama disponemos de microcontroladores con conversor analógico – digital, que es la principal característica que necesitamos. Se podría utilizar el PIC16F73, el cual dispone de 22 líneas de E / S, conversor A / D de 8 bits y 5 canales, 3 temporizadores y memoria flash; la cual es idónea para la realización de las prácticas puesto que se puede grabar y borrar mediante un software adecuado muchas veces. El precio de este microcontrolador es de 6,66€ (según catálogo de FARNELL, número de producto: 3529137). También se puede utilizar el microcontrolador PIC16F873, que tiene las mismas características que el anterior pero con un conversor A / D de 10 bits. Además, este microcontrolador es más fácil de conseguir.

El precio de un conversor analógico - digital simple, de 8 bits se encuentra a partir de 5€ (según catálogo de RS - COMPONENTS: ADC0804LCN, RS #:411-674, precio: 5,48€). Por lo tanto, se pueden aumentar considerablemente las prestaciones y funcionalidad del módulo incluyendo en él, un microcontrolador para realizar las tareas del tratamiento de la señal analógica.

4.3 Práctica de Controlador de Teclado

Para la realización de esta práctica existen dos posibles alternativas:

La primera de ellas es proporcionar al alumno de un módulo de aplicación ya montado y verificado, sobre el que sólo tendría que realizar su programación.

La segunda alternativa es proporcionar al alumno el esquema eléctrico del módulo y que él mismo realizase el montaje, verificación y, seguidamente, programación del circuito.

Para cada una de las soluciones anteriores se plantean otras dos posibles alternativas. La primera consiste en realizar este módulo con un microcontrolador como elemento de comunicación con el teclado y, un visualizador LCD para presentar los caracteres.

La segunda opción consiste en aprovechar el conector del canal A disponible en el microinstructor TM-683 para conectar el teclado.

De entre estas alternativas expuestas, la solución adoptada para la realización de la práctica es, proporcionar al alumno el esquema eléctrico del módulo para que lo monte y utilizar el microinstructor como comunicación con el teclado.

Los motivos que nos han llevado a esta elección son, en primer lugar, hacer que el alumno realice un montaje de un sistema digital con sus propias manos para conocer más en detalle al problema que se enfrenta y, para que no se centre exclusivamente en la programación. Se ha elegido también utilizar el microinstructor TM-683 porque el alumno no tendría tiempo de asimilar los conceptos necesarios que supone aprender a programar un dispositivo que no se había visto antes. Ya que según la cronología de las asignaturas de Ingeniería Técnica Industrial, Especialidad en Electrónica Industrial, el tema de microcontroladores no se ve hasta tercer curso. La asignatura de Sistemas Digitales – II, del segundo cuatrimestre del segundo curso, es la que trata más a fondo el tema de los microprocesadores. Debido a que en esta asignatura sólo se disponen de

(10)

MEMORIA DESCRIPTIVA

10

quince horas de prácticas, que corresponden a siete sesiones para realizar dos prácticas, en cuatro sesiones de prácticas el alumno no tendría el suficiente tiempo para realizarla.

5. Descripción de la Solución Adoptada:

5.1 Módulo 1: Control de un Display LCD:

5.1.1 Objetivo Didáctico del Módulo

El principal objetivo del módulo de Control LCD es dar a conocer a los alumnos el funcionamiento de los dispositivos de salida de acceso programado, ya que se pueden encontrar en muchos de los aparatos electrónicos del mercado, y también, que el alumno adquiera experiencia en la programación de microprocesadores en lenguaje ensamblador.

Para llevar a cabo este cometido se ha diseñado un guión de práctica que consta de las siguientes partes:

En primer lugar, el alumno estudiará la composición y funcionamiento de una pantalla de cristal líquido mediante el análisis de sus hojas de características. Una vez se entienda el funcionamiento de la misma, los alumnos responderán un cuestionario a modo de estudio previo a la práctica para comprobar sus conocimientos. Este cuestionario se encuentra en el Capítulo de Anexos con el título de Anexo 1: Documentación para el alumno.

Una vez realizado el estudio previo indicado anteriormente, el alumno está ya preparado para afrontar la práctica. Con la ayuda de las hojas de características del visualizador LCD y los conocimientos de programación adquiridos en las clases de teoría de la asignatura, debe realizar una librería de funciones básicas de manejo de la LCD tales como: enviar un comando, enviar un dato, configuración, etc.

Finalmente, para evaluar la capacidad de diseño y estructuración en la programación en ensamblador del alumno, éste deberá programar una aplicación utilizando las funciones de librería que creó anteriormente. Como ejemplo práctico, se propone que el alumno programe un marcador de un estadio de fútbol, en el que se visualicen los nombres de los equipos que juegan, junto con sus respectivos goles marcados. Los pulsadores disponibles en el módulo se pueden utilizar para ir incrementando cada uno de los marcadores, borrarlos, etc.

En el capítulo de Anexos, con el nombre Anexo 2, se encuentra la solución a la práctica del marcador de estadio de fútbol, el código del programa de ejemplo, así como el código de las funciones de librería de manejo de la LCD.

(11)

MEMORIA DESCRIPTIVA

11

5.1.2 Planificación de la Práctica

En el diagrama siguiente se puede ver la planificación de cada una de las tareas necesarias para la realización de esta práctica, considerando que el alumno dispone de cuatro sesiones de laboratorio de dos horas por sesión.

HORAS TAREAS

1 2 3 4 5 6 7 8 Programación de la librería de funciones básicas Programación de la aplicación

Teniendo en cuenta que el alumno debe realizar el estudio previo de la práctica antes de la primera sesión y, según el diagrama anterior, se establece un reparto de horas de tal forma que: la primera sesión de prácticas y la primera hora de la segunda, se dedican a la programación de la librería de funciones básicas de manejo de la LCD. El resto de la segunda sesión, la tercera y la cuarta se dedican a la programación de la aplicación.

5.1.3 Conocimientos Adquiridos

Con la realización de esta práctica el alumno aprenderá el funcionamiento de un módulo LCD, así como el funcionamiento de la comunicación paralela con dispositivos de entrada salida. Aprenderá a crear temporizadores y comprobará la necesidad del uso de los tiempos de espera en el tratamiento de dispositivos lentos. También aprenderá a dividir un problema para llegar a su solución con más facilidad.

5.1.4 Descripción del Hardware

Tal y como se puede apreciar en el esquema de bloques de la Figura 1, este módulo está basado en un display LCD. Una LCD estándar es una pantalla de cristal líquido con una matriz de 8, 16, 32, 40, etc. caracteres de 5x7 puntos. La LCD del módulo es una LCD estándar (Powetip PC-1602) de 16 caracteres y 2 líneas (16x2). Estos módulos contienen además un controlador que las gobierna, generalmente el HITACHI HD44780.

(12)

MEMORIA DESCRIPTIVA

12

La LCD del módulo tiene 14 patillas, se alimenta con una tensión de +5V y es posible regular el contraste de la pantalla mediante un potenciómetro. De estas 14 patillas, 8 son para el bus de datos (D0 - D7) y 3 de control, que son EN (habilitación), RS (Selector de registros, instrucción o datos) y R / W (Lectura / Escritura).

El esquema eléctrico se encuentra en el capítulo de Planos señalado con el número de plano 1. En él se pueden observar cada una de las partes que forman este módulo de aplicación, las cuales se describen a continuación:

El módulo se comunica con el conector de aplicación del microinstructor TM-683 mediante el conector CN11 de cincuenta contactos. La relación de los contactos del conector CN1 con las señales de la VIA se muestran en la Tabla 1.

CN1 VIA 1,2 Vcc 3,4,5,6 GND 7,8 PB0 9,10 PB1 11,12 PB2 13,14 PB3 15,16 PB4 17,18 PB5 19,20 PB6 21,22 PB7 23,24 CA1 25,26 CA2 27,28 PA0 29,30 PA1 31,32 PA2 33,34 PA3 35,36 PA4 37,38 PA5 39,40 PA6 41,42 PA7 43 a 50 GND

Tabla 1. Equivalencia entre las señales del conector CN1

del módulo y las de la VIA

El circuito integrado U1 es del tipo 74LS245. Son ocho amplificadores de corriente bidireccionales conectados al puerto B de la VIA. Puesto que es bidireccional, controlamos la dirección de los datos mediante la línea R / W que está conectada a la patilla DIR del integrado, según se quiera leer o escribir en la LCD.

1

NOTA IMPORTANTE: En el conector de aplicación del microinstructor tenemos que el pin 1 es GND mientras que en el conector CN1 del módulo es Vcc. Lo mismo ocurre con el conector de alimentación. Todos los módulos de aplicación PROMAX tienen esta característica. Por lo tanto, hay que poner especial cuidado en no cortocircuitar estas señales. Para evitar esto se deben usar cables planos con los conectores cruzados.

(13)

MEMORIA DESCRIPTIVA

13

El circuito integrado U2 es del tipo 74LS04. Son seis inversores que hacen la función de amplificadores de corriente de las tres líneas de control de la LCD (EN, RS, R/W) ya que las líneas de salida de la VIA del microinstructor no proporcionan la suficiente corriente. La línea RS se controla mediante los inversores U2A y U2B, conectados a la línea PA0 de la VIA. La línea R / W se controla mediante los inversores U2C y U2D, conectados a la línea PA1 de la VIA. La línea EN se controla mediante los inversores U2E y U2F, conectados a la línea PA2 de la VIA.

Las 14 patillas de la LCD están disponibles en un conector de cable plano de 16 pins designado en el esquema eléctrico con el nombre de LCD1. Este conector sigue la misma numeración que las líneas de la LCD, su correspondencia con las líneas de ésta se muestran en la Tabla 2.

La explicación de cada una de las líneas de la LCD, así como su manejo se puede observar detenidamente en la hoja de características.

LCD1 LCD 1 Vss 2 Vcc 3 Vo (Alimentación Driver) 4 RS (Selector de Registro) 5 R/W (Lectura / Escritura) 6 EN (Habilitación) 7 D0 8 D1 9 D2 10 D3 11 D4 12 D5 13 D6 14 D7 15 No utilizado 16 No utilizado

Tabla 2. Correspondencia entre el conector LCD1 y

las líneas del display LCD.

El módulo de aplicación se alimenta mediante el conector CN2 que está unido a la fuente de alimentación MM-600. La relación de las tensiones de la fuente con las patillas del conector se muestra en la Tabla 3:

CN2 1,3,4,5,7,9 GND 10 +5V 8 +15V 6 -15V 2 +30V

(14)

MEMORIA DESCRIPTIVA

14

Por último el módulo dispone de 5 pulsadores de propósito general conectados al puerto A de la VIA. Estos pulsadores disponen de un filtro paso bajo formado por una red RC para eliminar los rebotes en el contacto.

Al pulsar el pulsador se detecta un nivel lógico "0" mientras que en reposo se detecta un nivel lógico "1".

En la Tabla 4 se puede observar la correspondencia entre cada una de las líneas de la VIA y las líneas de la LCD y los pulsadores.

VIA PB0 D0 PB1 D1 PB2 D2 PB3 D3 PB4 D4 PB5 D5 PB6 D6 PB7 D7 PA0 RS PA1 R / W PA2 EN PA3 SW1 PA4 SW2 PA5 SW3 PA6 SW4 PA7 SW5

Tabla 4. Correspondencia entre las líneas de la VIA

y las líneas de control y datos del módulo

En la Tabla 5 se puede observar la lista de todos los componentes que forman el módulo de aplicación.

Código Descripción

U1 C.I. octal bus bidireccional 3 estados 74LS245 U2 C.I. inversores 74LS04 C1 Condensador plaqueta 220 nF/100V C2 Condensador plaqueta 220 nF/100V C3 Condensador plaqueta 220 nF/100V C4 Condensador plaqueta 220 nF/100V C5 Condensador plaqueta 220 nF/100V R1 Potenciómetro 10kΩ R2 Resistencia 12kΩ 5% 1/4W R3 Resistencia 12kΩ 5% 1/4W R4 Resistencia 12kΩ 5% 1/4W R5 Resistencia 12kΩ 5% 1/4W R6 Resistencia 12kΩ 5% 1/4W

(15)

MEMORIA DESCRIPTIVA 15 Código Descripción R7 Resistencia 100Ω 5% 1/4W R8 Resistencia 100Ω 5% 1/4W R9 Resistencia 100Ω 5% 1/4W R10 Resistencia 100Ω 5% 1/4W R11 Resistencia 100Ω 5% 1/4W SW1 Pulsador para PCB SW2 Pulsador para PCB SW3 Pulsador para PCB SW4 Pulsador para PCB SW5 Pulsador para PCB

CN1 Conector macho acodado 50 pins LCD1 Conector macho recto 16 pins

CN2 Conector macho acodado 10 pins

Tabla 5. Componentes del módulo de Control de una LCD

El tipo de módulo LCD elegido es de dieciséis caracteres y dos líneas, a pesar de esto se pueden colocar otros tipos de módulos como los de 8x2, 12x2, 16x1, 20x1, 16x4, 20x2, 20x4, 24x2 y 40x2. En efecto, es posible conectar cualquier módulo alfanumérico de pantalla de cristal líquido que tenga la misma descripción de patillaje que el módulo elegido.

En el capítulo de Planos, además del esquema eléctrico señalado con el plano número 1, se encuentran también los diseños del circuito impreso, situación de componentes (plano número 2) y fotolitos de la placa (plano número 3).

5.2 Módulo 2: Control de Temperatura:

5.2.1 Objetivo Didáctico del módulo

Como se explicó anteriormente, este módulo dispone de unas prestaciones bastante elevadas, lo que hace que tenga diversos usos didácticos. Su utilización va más allá de la asignatura de Sistemas Digitales – II, ya que también puede ser utilizado en otras asignaturas de la carrera como Sistemas Electrónicos con Microcontroladores e incluso, en asignaturas de la carrera de segundo ciclo, Ingeniería en Automática y Electrónica Industrial como Sistemas Electrónicos Digitales.

En la asignatura de Sistemas Digitales – II se puede utilizar este módulo para practicar los temas de interrupciones, así como controles digitales. Para esta asignatura se han diseñado dos prácticas con diferente nivel de dificultad. La primera y más sencilla de ellas trata del control de temperatura de un aparato calefactor, como por ejemplo un horno, basado en la adquisición del valor de la temperatura de ocho bits mediante interrupciones.

(16)

MEMORIA DESCRIPTIVA

16

La segunda de las prácticas es un poco más compleja ya que la adquisición del dato se realiza con una precisión de diez bits. Además provoca una interrupción por cada dato que envía al microinstructor, de forma que se obtiene un valor de conversión cada dos interrupciones.

Para la asignatura de Sistemas Electrónicos con Microcontroladores se ha diseñado una práctica con el objetivo de procesar digitalmente señales analógicas y presentar el resultado en un visualizador de siete segmentos.

También es útil este módulo para realizar prácticas en la asignatura de Sistemas Electrónicos Digitales, proporcionando al alumno un mejor conocimiento sobre los temas del programa de la asignatura que tratan sobre los dispositivos microprocesadores y microcontroladores y, en el tema de problemas y limitaciones del hardware en la implementación de sistemas digitales.

5.2.2 Planificación de la Práctica

5.2.2.1 Práctica de Control de Temperatura con Lectura de Ocho Bits

Con esta práctica el alumno aprenderá el manejo de las interrupciones y también a procesar el resultado de una conversión analógico–digital para realizar un control digital.

Para llevar a cabo estos objetivos se ha preparado un guión de prácticas que se encuentra en el Anexo 3 del capítulo de Anexos.

La práctica se ha dividido en tres partes:

a) Estudio Previo de la práctica: con este estudio previo se introducirá al alumno al tema del procesado digital de señales analógicas y a los controladores digitales. El alumno deberá estudiar la información técnica de la placa y responder a un cuestionario para comprobar sus conocimientos.

b) Adquisición y Procesado de la Señal: En este apartado el alumno deberá adquirir el valor de la conversión analógico–digital de la temperatura utilizando interrupciones. Posteriormente, el valor adquirido debe ser procesado para obtener el valor real de la temperatura.

c) Controlador Digital: El alumno deberá escoger entre uno de los siguientes controles, los cuales están ordenados de menor a mayor dificultad de programación:

- Todo – Nada

- Todo – Nada con Histéresis - Proporcional (P)

- Proporcional – Integral (PI)

(17)

MEMORIA DESCRIPTIVA

17

Una vez elegido el control y argumentada su elección, deberá programarlo para hacer que el valor de la temperatura medida siga a un valor de consigna dado.

En el diagrama siguiente se puede ver la planificación de cada una de las tareas necesarias para la realización de esta práctica, considerando que el alumno dispone de cuatro sesiones de laboratorio de dos horas por sesión.

HORAS TAREAS

1 2 3 4 5 6 7 8 Adquisición y procesado de la señal Programación del control digital

Teniendo en cuenta que el alumno debe realizar el estudio previo de la práctica antes de la primera sesión y, según el diagrama anterior, se establece un reparto de horas de tal forma que: las dos primeras sesiones de prácticas se dedican a la programación del microinstructor para adquirir y procesar el resultado de la conversión analógico-digital. Las dos siguientes sesiones se dedican a la programación del control digital.

5.2.2.2 Práctica de Control de Temperatura con Lectura de Diez Bits

Con esta práctica el alumno aprenderá el manejo de interrupciones para la adquisición de un dato de diez bits dividido en dos bytes (5 + 5) multiplexados en tiempo. También aprenderá a reconstruir y procesar este dato para hacer un control digital de una magnitud física.

Para llevar a cabo estos objetivos se ha preparado un guión de prácticas que se encuentra en el Anexo 4 del capítulo de Anexos.

Esta práctica está dividida en tres partes, que son:

a) Estudio Previo: El alumno hará un estudio del sistema mediante la lectura de la información técnica del módulo para ver la relación entre la variable que se quiere medir y el resultado de la conversión. También responderá un cuestionario para comprobar sus conocimientos adquiridos.

b) Adquisición y Procesado de la Señal: En este apartado, el alumno deberá adquirir el valor de la conversión analógico – digital en dos veces utilizando las interrupciones. Posteriormente deberá procesar el dato adquirido para reconstruir y obtener el valor real de la temperatura.

d) Controlador Digital: El alumno deberá escoger uno de los siguientes controles, los cuales están ordenados de menor a mayor dificultad de programación:

- Todo – Nada

- Todo – Nada con Histéresis - Proporcional (P)

- Proporcional Integral (PI)

(18)

MEMORIA DESCRIPTIVA

18

Una vez elegido según su criterio uno de los controles, argumentando la elección, deberá programarlo para que el valor de la temperatura medida siga a un valor de consigna dado.

En el diagrama siguiente se puede ver la planificación de cada una de las tareas necesarias para la realización de esta práctica, considerando que el alumno dispone de cuatro sesiones de laboratorio de dos horas por sesión.

HORAS TAREAS

1 2 3 4 5 6 7 8 Adquisición y procesado de la señal Programación del control digital

Teniendo en cuenta que el alumno debe realizar el estudio previo de la práctica antes de la primera sesión y, según el diagrama anterior, se establece un reparto de horas de tal forma que: las dos primeras sesiones de prácticas se dedican a la programación del microinstructor para adquirir y procesar el resultado de la conversión analógico-digital. Las dos siguientes sesiones se dedican a la programación del control digital.

5.2.2.3 Práctica de Conversión A / D y Visualización en Display de Siete Segmentos

Esta práctica está enfocada para la asignatura de Sistemas Electrónicos con Microcontroladores. Tiene como objetivos que el alumno aprenda a programar un microcontrolador para que realice la conversión analógico – digital de una señal. Aprenderá a procesar el dato obtenido y a visualizar el resultado en un display de siete segmentos. También aprenderá el uso de las interrupciones y a crear tablas de datos.

Para alcanzar estos objetivos se ha preparado un guión de prácticas que se encuentra en el Anexo 5 del capítulo de Anexos.

Esta práctica se ha dividido en tres partes, que son las siguientes:

a) Estudio Previo: El alumno deberá estudiar la información técnica de la placa y responder a un cuestionario para comprobar sus conocimientos.

b) Conversión A / D: En este apartado el alumno deberá programar el microcontrolador de la placa para que realice la conversión analógico – digital de la señal analógica procedente del sensor de temperatura, utilizando las interrupciones.

c) Procesado y Visualización: El alumno deberá procesar el dato obtenido de la conversión para obtener el valor real de la temperatura. También tendrá que visualizar el valor calculado en un display de siete segmentos.

En el diagrama siguiente se puede ver la planificación de cada una de las tareas necesarias para la realización de esta práctica, considerando que el alumno dispone de cuatro sesiones de laboratorio de dos horas por sesión.

(19)

MEMORIA DESCRIPTIVA

19

HORAS TAREAS

1 2 3 4 5 6 7 8 Conversión Analógico – Digital Procesado y Visualización

Teniendo en cuenta que el alumno debe realizar el estudio previo de la práctica antes de la primera sesión y, según el diagrama anterior, se establece un reparto de horas de tal forma que: la primera sesión de prácticas se dedica a la programación del microcontrolador para que realice la conversión analógico - digital. El resto de las sesiones se dedican al procesado digital de la señal analógica y visualización del resultado en el display de siete segmentos.

5.2.3 Descripción del Hardware

Este módulo está formado por un elemento sensor de temperatura cuya salida está acondicionada por un circuito analógico. Posteriormente la salida acondicionada se muestrea mediante el conversor analógico – digital disponible en el microcontrolador PIC16F873. La señal muestreada se trata mediante un programa que se ejecuta en el microcontrolador. Mediante uno de los puertos de sus entrada – salidas se envía el valor de la conversión al puerto A de la VIA, para su tratamiento en el programa de control que se ejecuta en el microinstructor TM-683. Mediante otro puerto del microcontrolador se visualiza la temperatura medida en un visualizador de siete segmentos formado por tres módulos de cátodo común.

El programa de control genera un valor digital que es convertido, mediante un conversor digital–analógico, a una señal analógica. Esta señal es la encargada de excitar un transistor de potencia, que regula la corriente que pasa por la resistencia de calentamiento. Y, por consiguiente, controla la potencia disipada por la resistencia cuya temperatura queremos controlar.

El módulo dispone de un circuito de programación en serie del PIC16F873 mediante un conector de 25 pins conectado al puerto paralelo de un PC.

El esquema eléctrico del módulo de control de temperatura se encuentra en el capítulo de Planos señalado con el número 4.

En la Figura 2 se puede ver el diagrama de bloques del módulo de control de temperatura.

(20)

MEMORIA DESCRIPTIVA

20

Figura 2. Diagrama de Bloques del Módulo de Control de Temperatura

En la Tabla 6 se muestra una lista de todos los componentes utilizados para el montaje del módulo de control de temperatura.

Código Descripción

CN1 Conector macho 10 pins recto cable plano CN2 Conector DB25 macho acodado

CN3 Conector macho 50 pins recto cable plano C1 Condensador 330 pF

C2 Condensador electrolítico 470uF C3 Condensador electrolítico 10uF C4 Condensador electrolítico 10uF C5 Condensador 27pF

C6 Condensador 27pF C7 Condensador 0.01uF C8 Condensador 0.1uF C9 Condensador 0.1uF

DIG2 Dígito LED de 7 segmentos de cátodo común DIG1 Dígito LED de 7 segmentos de cátodo común DIG0 Dígito LED de 7 segmentos de cátodo común

D1 Diodo 1N4004 D2 Diodo 1N4004 D3 Diodo 1N4004

D4 Diodo LED 3mm rojo D5 Diodo LED 3mm rojo D6 Diodo LED 3mm verde

IC1 Sensor de Temperatura LM35DZ IC2 Amplificador Operacional OP07

(21)

MEMORIA DESCRIPTIVA

21

Código Descripción

IC3 Amplificador Operacional OP07 IC4 Amplificador Operacional OP07 IC5 Regulador de Tensión L7812 IC6 Regulador de Tensión L7810 IC7 CI 74LS06

IC8 Microcontrolador PIC16F873 IC9 CI 74LS139

IC10 Conversor Digital – Analógico DAC08C IC11 Amplificador Operacional OP07

J1 Puente de configuración Q1 Transistor PNP BC557 Q2 Transistor PNP BC557 Q3 Transistor PNP BC557 Q4 Transistor NPN BD139 R1 Resistor 39kΩ 1% ¼ W R2 Resistor 10kΩ 1% ¼ W R3 Resistor 10kΩ 5% ¼ W R4 Resistor 10kΩ 5% ¼ W R5 Resistor 4k7Ω 5% ¼ W R6 Resistor 4k7Ω 5% ¼ W R7 Resistor 4k7Ω 5% ¼ W R8 Resistor 4k7Ω 5% ¼ W R9 Resistor 4k7Ω 5% ¼ W R10 Resistor 4k7Ω 5% ¼ W R11 Resistor 1kΩ 5% ¼ W R12 Resistor 680Ω 5% ¼ W R13 Resistor 10kΩ 5% ¼ W R14 Resistor 10kΩ 5% ¼ W R15 Resistor 5kΩ 5% ¼ W R16 Resistor 5kΩ 5% ¼ W R17 Resistor 5kΩ 5% ¼ W R18 Resistor 100Ω 5% ¼ W R19 Resistor de potencia 10Ω 15 W

R20 Red de 8 resistencias individuales en encapsulado DIL de 270Ω

R21 Resistor 10kΩ 5% ¼ W

SW1 Pulsador cuadrado para circuito impreso SW2 7 Microinterruptores de configuración

Y1 Cristal de cuarzo de 4MHz

(22)

MEMORIA DESCRIPTIVA

22

5.2.3.1. Medición de Temperatura:

El elemento sensor de temperatura IC1, es un circuito integrado tipo LM35, el cual dispone de tres terminales y proporciona una salida lineal de tensión de 10mV/ºC. El rango de temperatura es de 0ºC a 100ºC, aproximadamente. Las c aracterísticas técnicas de este circuito se pueden ver en la Tabla 7:

Factor de escala lineal +10mV/ºC

Precisión a 25ºC 0.5ºC

Alimentación 4 a 30V

No linealidad ±¼ ºC

Impedancia de salida baja 0.1Ω para una carga de 1mA.

Tabla 7. Características técnicas del CI. LM35DZ

Tal y como muestra el esquema de bloques de la Figura 3, el sensor de temperatura reacciona ante el calor emitido por la resistencia de potencia, produciendo una diferencia de tensión, proporcional a la temperatura de la resistencia, entre su salida y el nodo de referencia.

Figura 3. Esquema de la medición de temperatura

La salida del sensor de temperatura se introduce en el circuito de acondicionamiento de señal por medio del integrado IC2, que es un amplificador operacional tipo OP07 en configuración de seguidor de tensión. La salida de esta etapa seguidora se introduce en IC3, que es un amplificador de ganancia 5, realizado también con un amplificador operacional OP07, en configuración no inversora. Las resistencias utilizadas son de baja tolerancia para respetar al máximo la señal del sensor.

Posteriormente, la salida del amplificador de tensión, se introduce en otra etapa separadora IC4, formada también por un amplificador operacional tipo OP07 de la misma forma que IC2. Por último, la señal de salida se introduce a uno de los canales analógicos del microcontrolador, concretamente, a la entrada AN0.

(23)

MEMORIA DESCRIPTIVA

23

5.2.3.2. Conversión Analógico – Digital:

El microcontrolador utilizado en el módulo, dispone de un conversor analógico-digital con una resolución de 10 bits. Este módulo se ha diseñado para medir temperaturas dentro de un rango de 0 a 100 ºC. Tal y como se vio en el apartado anterior, el sensor de temperatura proporciona una salida lineal de tensión de 10mV/ºC que es proporcional a la temperatura a la que está sometido. Estos datos se representan en el Gráfico 1, que relaciona la tensión de salida del sensor con la temperatura.

Gráfico 1. Tensión de salida del sensor Vs. Temperatura

La salida del sensor de temperatura se acondiciona por medio de un circuito analógico, consistente en un amplificador de tensión con ganancia cinco. Por lo tanto, la relación existente entre la tensión de entrada al conversor analógico-digital y la temperatura es la que se muestra en el Grafico 2.

(24)

MEMORIA DESCRIPTIVA

24

Grafico 2. Tensión de entrada al conversor A/D Vs. Temperatura

El conversor analógico-digital está configurado con unas tensiones de referencia de 0V y 5V. Con esta configuración, para una entrada de 0V se obtiene el valor digital 00000000002 y, para una entrada de 5V se obtiene el valor digital 11111111112 (1023).

El Gráfico 3 muestra la relación entre el valor digital obtenido respecto a la temperatura.

(25)

MEMORIA DESCRIPTIVA

25

Como se ha indicado previamente, la conversión analógico – digital de la señal se hace mediante el microcontrolador IC8 del tipo PIC16F873 fabricado por MICROCHIP, el cual dispone de un conversor analógico – digital (ADC) de 10 bits y cinco canales. Este microcontrolador dispone, además, de 22 líneas de entrada – salida capaces de entregar una corriente máxima de 25mA por línea, 7168 bytes de memoria FLASH, 192 bytes de memoria RAM, 128 bytes de memoria EEPROM, dos módulos de modulación de anchura de pulsos (PWM) con una precisión de 10 bits, un temporizador de 16 bits, dos temporizadores de 8 bits, un temporizador de perro guardián (WDT), módulo universal de transmisión / recepción síncrona / asíncrona de datos vía serie (USART), bus I²C (Inter-Integrated Circuit Bus), interfase serie de periféricos (SPI), todo ello en un encapsulado de 28 pins tipo SP (Lead Skinny PDIP).

El microcontrolador funciona con una señal de reloj de 4MHz procedente del cristal de cuarzo Y1.

5.2.3.3. Visualizador de 7 Segmentos:

La visualización de la temperatura se realiza mediante tres módulos de siete segmentos LED de cátodo común tipo ELS-511IDB de color rojo y frontal negro. Los segmentos tienen una altura de 7.62mm y están dispuestos en encapsulados de 10 pines. Estos displays están diseñados para dar un óptimo contraste entre encendido / apagado. La versión de cátodo común dispone de un punto decimal. Las características técnicas de estos módulos se pueden observar en la Tabla 8:

Tensión directa nominal 1.6V

Nominal 10mA

Corriente directa

Máxima 30mA

Intensidad luminosa nominal por dígito 2.5mcd

Tensión inversa máxima 6V

Ángulo de visión ±75º

Potencia máxima disipada por segmento 60mW

Temperatura de funcionamiento De –40ºC a +85ºC

Tabla 8. Características técnicas del módulo de 7 segmentos.

Cada uno de los segmentos del display está conectado a una línea del puerto C del microcontrolador mediante resistencia limitadoras de corriente. La relación entre los segmentos del display y las líneas del puerto C del microcontrolador se encuentra en la Tabla 9: SEGMENTO PUERTO C A RC6 B RC5 C RC4 D RC3 E RC2 F RC1 G RC0 Punto decimal RC7

(26)

MEMORIA DESCRIPTIVA

26

En la figura 4 siguiente se muestra la posición de cada segmento:

Figura 4. Posición de los segmentos

en el display

Como se ha indicado antes, los dígitos del display son de cátodo común. El cátodo de cada dígito está conectado a una salida del decodificador IC9 del tipo 74LS139. El circuito IC9 es un decodificador 2 a 4 cuyas entradas son las líneas RA4 y RA5 del PIC. En la Tabla 10 se detallan los estados de cada una estas señales para activar los digitos.

RA4 RA5 DIGITO

0 0 DIG0

0 1 DIG1

1 0 DIG2

1 1 No utilizado

Tabla 10. Selección de los dígitos de 7 segmentos 5.2.3.4. Conversor Digital – Analógico:

La conversión digital – analógico se realiza mediante el circuito integrado IC10 tipo DAC08CN. Es un circuito integrado con tecnología CMOS en un encapsulado de 16 pins tipo DIL. Las características técnicas se presentan en la Tabla 11:

Resolución 8 bits Datos Paralelo Tiempo de conversión 1µs Alimentación 18V (máx) Error de ganancia ±1% Canales 2

Tabla 11. Características del conversor DAC08CN

El conversor DAC está polarizado con una corriente de 2mA, resultado de aplicar una tensión de 10 voltios, procedente de un regulador lineal de tensión IC6 tipo 7810, a una resistencia de polarización de 5kΩ. La salida analógica del conversor se introduce en IC11 que es un amplificador operacional tipo OP07 realimentado con una resistencia de 5kΩ, para producir una tensión de salida entre 0V y 10V.

(27)

MEMORIA DESCRIPTIVA

27

5.2.3.5. Conexión con el Microinstructor TM-683:

En el microinstructor TM-683 están disponibles dos conectores de aplicación (Aplicación 1 y Aplicación 2) con dos puertos de 8 bits cada uno (puerto A y puerto B). En el microcontrolador disponemos de tres puertos de entrada-salida. De estos tres puertos, sólo dos de ellos (puerto B y puerto C) disponen de ocho líneas de datos. El puerto A del microcontrolador sólo dispone de cinco líneas de datos.

El microinstructor TM-683 se conecta al módulo de aplicación mediante el conector de aplicación CN3. En este conector están disponibles las señales de la VIA. El puerto A (PA0 – PA7) de la VIA está conectado al puerto B (RB0 – RB7) del microcontrolador; mientras que el puerto B (PB0 – PB7) de la VIA está conectado a las entradas digitales del conversor DAC. Por el puerto A de la VIA, el microcontrolador envía al microinstructor el valor de la conversión analógico – digital de la temperatura.

La señal RA1 del microcontrolador está conectado a un interruptor de configuración. Si el estado lógico del interruptor es “1”, el microcontrolador envía al microinstructor un valor de 8 bits correspondientes a los ocho bits más significativos de la conversión. Cuando el estado lógico del interruptor es “0”, el microcontrolador envía los 10 bits de la conversión multiplexados en tiempo con el siguiente formato:

MSB LSB 0 0 0 X X X X X Byte Bajo MSB LSB 1 0 0 X X X X X Byte Alto

En ambos casos, el microcontrolador provoca un flanco descendente en su línea RA3, que está conectada a la línea CA1 del microinstructor, indicando que en el puerto A hay un valor de conversión.

El valor de la conversión, se envía al puerto A de la VIA porque en el conector de aplicación sólo están disponibles las señales de control del puerto A. Estas señales de control son necesarias para realizar una petición de interrupción y para el reconocimiento de la interrupción por parte del microcontrolador. Programando debidamente el microinstructor, un flanco de bajada en la línea CA1 sería motivo de interrupción externa.

La línea RA2 del microcontrolador está conectada a la línea CA2 de la VIA. El programa de control del microinstructor debe programar los registros de la VIA para que al leer el dato de la conversión del puerto A, la línea CA2 baje a nivel lógico “0”, hecho que el microcontrolador interpreta como que se ha recibido el dato de la conversión y puede enviar el siguiente.

(28)

MEMORIA DESCRIPTIVA

28

En el Gráfico 4 se representa la variación de las líneas de datos y control (CA1 y CA2) cuando el microcontrolador envía un dato a la VIA del microinstructor.

Grafico 4. Comportamiento de las líneas que intervienen en el envío de un dato a la VIA.

5.2.3.6. Módulo de Calor:

La salida procedente del conversor DAC junto con el amplificador operacional, se conectan a la base del transistor de potencia Q4 tipo DB139. El colector del transistor está conectado a la tensión de alimentación de la fuente de +15V y, el emisor está conectado a la resistencia de potencia R19 de 10Ω y 15W. Según pase más o menos corriente por el transistor, el conjunto transistor – resistencia de potencia se calentará más o menos. Esta corriente se controla con la tensión de salida del DAC. Hay que tener en cuenta a la hora de realizar el control digital de la temperatura, que la resistencia de potencia presenta una gran inercia, es decir, la variación de la temperatura no es instantánea, sino que tarda un tiempo en llegar a la temperatura deseada. En el control digital de la temperatura no sólo intervienen las características eléctricas del resistor de potencia, sino que también influyen considerablemente otros aspectos como la temperatura ambiental que no podemos controlar.

5.2.3.7. Programador PIC16F873:

El circuito de programación es muy sencillo pero mantiene un nivel de prestaciones alto y cumple las especificaciones de MICROCHIP como programador ICSP (In Circuit Serial Programmer) de desarrollo.

Se conecta al puerto paralelo del PC mediante el conector CN2 y necesita, además, una alimentación continua comprendida entre 15V y 30V. El consumo de corriente del programador es inferior a 100mA.

Este montaje es capaz de leer, verificar, programar y comparar los PIC sin ninguna restricción, lo mismo que puede leer y programar sus fusibles de configuración.

Los microcontroladores PIC de MICROCHIP están todos provistos de memoria de acceso serie. Tres de las patillas del encapsulado cambian momentáneamente de función durante la fase de programación para dar acceso a la memoria de programa interna; este cambio se desencadena simplemente aplicando una tensión 13.8V (tensión alta de programación) en la patilla VPP.

Aunque las memorias PIC se programan en serie, el programador se conecta al puerto paralelo del PC. En efecto, por una parte este puerto se puede controlar muy fácilmente por software y, por otra parte, suministra niveles TTL directamente utilizables. Además,

(29)

MEMORIA DESCRIPTIVA

29

debemos disponer de algunas líneas de control para conmutar las diversas alimentaciones del microcontrolador en el curso de la programación.

Las señales del puerto paralelo son señales TTL bastante deterioradas por el cable de conexión. Por este motivo se restauran por medio de los inversores contenidos en el circuito IC7 tipo 74LS06. Este circuito dispone de salidas de colector abierto, lo cual permite controlar fácilmente los transistores Q1, Q2 y Q3. Q2 y Q3 permiten aplicar la tensión alta de programación VPP a las patillas adecuadas. El transistor Q1 gobierna la tensión normal de alimentación VDD y permite no alimentar el circuito a programar más que cuando es verdaderamente necesario acceder a él.

Figura 5. Esquema eléctrico del programador del PIC16F873

Para indicar la aplicación o no de estas tensiones, se utilizan dos LED rojos, D4 y D5, gobernados por las dos tensiones VPP. En cuanto al diodo D6, se enciende simplemente cuando el programador está bajo tensión, con el fin de señalar el buen funcionamiento de la alimentación.

Los datos a programar en el circuito transitan por la puerta IC7a, pasando por IC7b en caso de una segunda lectura del circuito. En cuanto al reloj de programación pasa por IC7c.

El programador se alimenta mediante la fuente de alimentación MM-600, común a todos los módulos de aplicación del microinstructor TM-683. La salida de +15V pasa a través del regulador lineal de tensión IC5 tipo 7812, el cual tiene en su patilla común tres diodos (D1, D2, D3, tipo 1N4004) conectados en serie que elevan la tensión de salida a 13.8V.

El programador dispone también de 5 microinterruptores disponibles en SW2 cuya función es la de dejar las señales del programador en circuito abierto en caso de que no se tenga que programar y se esté en fase de ejecución.

(30)

MEMORIA DESCRIPTIVA

30

En la Figura 6 se puede ver la posición de los siete microinterruptores disponibles en SW2 cuando se está en fase de grabación del PIC16F873 y cuando se está ejecutando el programa.

Cuando se está en fase de programación (ver Figura 6a), cerramos los interruptores 1 a 5 de forma que por el primer microinterruptor se gobierna la tensión alta de programación, por el tercer microinterruptor se gobierna la tensión de alimentación del chip, por el cuarto transita el reloj de programación; y por el quinto transitan los datos a programar. Los microinterruptores 6 y 7 deben estar abiertos ya que el 6 gobierna la tensión del chip en la fase de ejecución y el microinterruptor 7 indica la longitud del dato de conversión A / D que se envía al microinstructor TM-683.

Figura 6. Posición de los microinterruptores para (a) programación,

o (b) ejecución

5.2.3.7.1 Software de Programación del PIC16F873

Numerosos programas disponibles en Internet pueden utilizarse con el programador que incorpora el módulo de Control de Temperatura. Se ha elegido el programa P16Pro de Bojan Dobaj. Este software se adapta perfectamente al montaje del programador.

Antes de ejecutar el programa se deben poner los interruptores de configuración tal y como indica la Figura 6a. Con el módulo apagado, conectar el programador al puerto paralelo del PC.

Una vez alimentado el módulo, comprobar que el LED verde está encendido. Los LEDs rojos pueden estar encendidos o apagados según el estado del puerto paralelo del PC.

Ejecutar entonces el programa P16PRO. Tratándose de un programa DOS se ejecuta bajo MS-DOS, en modo MS-DOS si se trabaja con Windows 9x.

Cualquiera que sea el modo de ejecución se accede a una pantalla principal. En la parte superior izquierda de la pantalla se encuentran accesibles dos menús desplegables pulsando la tecla Alt. Estos menús dan acceso a todo lo concerniente a los ficheros (menú FILE) y a la configuración hardware (menú SETTINGS).

La primera operación a realizar consiste en configurar los parámetros del programador. Para esto, vaya al menú Settings y sitúese en Other por medio de las teclas de desplazamiento del cursor. Entonces puede seleccionar el puerto paralelo al cual se

(31)

MEMORIA DESCRIPTIVA

31

encuentra conectado el módulo. Una vez hecho esto ir al menú Settings y situarse en Hardware.

Para que el programador funcione se debe configurar de la siguiente forma:

OutData D0 Neg Clock D1 Neg Vdd D2 - Vpp D3 - Vpp1 D4 - Data In ACK Neg

A continuación ir al menú Settings y situarse en Device. Aparece una pantalla en la que debemos escribir el número 9 (PIC16F873) y pulsar ENTER.

Entonces se debe elegir el fichero con extensión .HEX a programar en el menú FILE->Open Program. Para programar el microcontrolador basta con pulsar la tecla F4.

5.2.4 Descripción del Software

Para realizar las prácticas de la asignatura de Sistemas Digitales – II, es necesario programar el microcontrolador PIC16F873 de la placa con el programa que se encuentra en el Anexo 7 del capítulo de Anexos. A continuación se describe el funcionamiento de dicho programa.

El código del programa está dividido en dos archivos:

a) Fichero TEMP.ASM: contiene el código principal del programa

b) Fichero TEMP.INC: contiene la implementación de las funciones utilizadas.

Cuando el programa empieza a ejecutarse, inicializa todas las posiciones de memoria que se usan como variables. Seguidamente, se configuran los puertos de entrada – salida del microcontrolador, el conversor analógico – digital y las interrupciones.

Cuando el conversor analógico – digital termina una conversión, provoca una interrupción al microcontrolador, cuya rutina de servicio guarda los valores de la conversión en la memoria para ser procesados posteriormente por las funciones del programa.

Mientras no llega ninguna interrupción, el microcontrolador decodifica el resultado de la conversión analógico – digital guardado en memoria y envía el resultado de la conversión al microinstructor provocándole una interrupción. Seguidamente, convierte el resultado de la decodificación en tres dígitos BCD, los cuales son convertidos de nuevo mediante una tabla para ser visualizados en el display de siete segmentos.

A continuación, se describe el funcionamiento de las dos funciones más importantes utilizadas.

(32)

MEMORIA DESCRIPTIVA

32

La primera de ellas (DEC_ADRES) se encarga de decodificar el resultado de la conversión analógico – digital. Para ello divide el valor de la conversión por diez. Esto es así porque el margen de temperaturas que queremos medir es de 0ºC a 100ºC. Para este margen, el sensor de temperatura proporciona una salida de entre 0V y 1V.

Como el amplificador conectado a la salida del sensor tiene ganancia 5, en la entrada analógica del microcontrolador tendremos un margen de 0V a 5V para un margen de temperaturas de 0ºC a 100ºC.

La precisión del conversor analógico – digital del microcontrolador PIC16F873 es de diez bits, por lo tanto, tenemos 1024 posibles estados. Si programamos el microcontrolador para que el conversor analógico – digital tenga un margen de tensión de referencia entre 0V y 5V, obtendremos una precisión en la conversión analógico – digital de: estado C estado C estados C º 1 . 0 º 097656 . 0 1024 º 100 ≅ = (1)

Por lo tanto, la expresión que relaciona la temperatura real con el resultado de la conversión es:

10 ADRES

Treal = (2)

Donde ADRES es el resultado de la conversión analógico – digital.

Entonces, para obtener el valor de la temperatura, basta con dividir el resultado de la conversión analógico – digital por diez.

La siguiente función (ADRES_VIA) se encarga de enviar el resultado de la conversión por la VIA del microinstructor provocándole una interrupción.

Si el interruptor número siete de configuración de la placa está abierto (estado lógico “1”) entonces, colocará en el puerto de entrada – salida del microcontrolador los ocho bits más significativos de la conversión, despreciando los dos bits menos significativos y, provocando posteriormente una interrupción al microinstructor con un flanco descendente en la línea CA1.

Finalmente, si por el contrario el interruptor de configuración de la placa está cerrado (estado lógico “0”), enviará los diez bits de la conversión analógico – digital en dos paquetes de cinco bits. Primero enviará los cinco bits menos significativos seguidos de una interrupción. Cuando el microinstructor acepte la interrupción y lea el dato que se le ha enviado (línea CA2 = 0), el microcontrolador enviará el segundo paquete con los cinco bits más significativos provocando otra interrupción.

(33)

MEMORIA DESCRIPTIVA

33

En el capítulo de Planos, se encuentra, además del esquema eléctrico del módulo, un plano con la situación de los componentes en el circuito impreso (Plano Nº 5) y los planos con los fotolitos del circuito impreso de las caras superior e inferior (Planos Nº 6 y Nº 7, respectivamente).

5.3 Práctica de Controlador de Teclado

5.3.1 Objetivo Didáctico del módulo

El objetivo de esta práctica es dar una visión práctica al alumno en el tema de las comunicaciones serie, coincidiendo con el Capítulo 5 “Entrada / Salida” del programa de la asignatura de Sistemas Digitales – II. Y más concretamente, estudiando uno de los protocolos más utilizados en la comunicación serie, el RS232.

Con esta práctica el alumno aprenderá cuales son los parámetros que definen un protocolo. Además, aprenderá también a controlar un dispositivo digital de entrada de acceso programado, el teclado.

5.3.2 Planificación de la Práctica

Para llevar a cabo los objetivos descritos en el apartado anterior, se ha diseñado un guión de prácticas para el alumno que se encuentra en el Anexo 8 del capítulo Anexos. La práctica se ha dividido en tres partes con el fin de guiar al alumno en todo el proceso. Las partes de las que se compone la práctica son las siguientes:

a) Estudio Previo. Consta de una serie de recomendaciones que debe seguir el alumno para realizar con éxito la práctica. También dispone de una serie de preguntas a las que debe responder antes de la realización de la práctica.

b) Montaje y Verificación del Circuito. En este apartado el alumno montará un sencillo circuito de adaptación de señales para conectar el teclado de un ordenador personal (PC) al conector del Canal A del microinstructor TM-683.

c) Programación del Controlador de Teclado. El alumno deberá crear un programa en ensamblador que sea capaz de identificar las teclas pulsadas en el teclado y presentarlas en la pantalla del ordenador.

En el diagrama siguiente se puede ver la planificación de cada una de las tareas necesarias para la realización de esta práctica, considerando que el alumno dispone de cuatro sesiones de laboratorio de dos horas por sesión.

HORAS TAREAS

1 2 3 4 5 6 7 8 Montaje y Verificación del Circuito Programación del Controlador de Teclado

(34)

MEMORIA DESCRIPTIVA

34

Teniendo en cuenta que el alumno debe realizar el estudio previo de la práctica antes de la primera sesión y, según el diagrama anterior, se establece un reparto de horas de tal forma que: la primera sesión de prácticas se dedica al montaje del circuito y a su posterior verificación. El resto de las sesiones se dedican a la programación del controlador del teclado.

5.3.3 Descripción del Hardware

El esquema eléctrico del circuito que tiene que montar el alumno se encuentra en el Plano N º 8 del capítulo de Planos. En él se pueden observar las siguientes partes: En primer lugar, un conector tipo DIN hembra de cinco contactos para la conexión del teclado. En la Figura 7 se puede observar el aspecto de este conector.

Figura 7. Conector DIN – 5

En la Tabla 12 se explican las funciones de cada uno de los contactos del conector DIN de cinco contactos. Pin Señal 1 Reloj 2 Datos 3 Reset 4 Masa 5 Vcc (+5V)

Tabla 12. Señales del conector

DIN – 5

Por los contactos 1 y 2 circulan las señales de reloj y datos respectivamente. Estas dos líneas son bidireccionales de colector abierto y niveles TTL. En nuestro caso la comunicación será asíncrona por lo que la línea de reloj no se conectará.

Por la línea de datos, el teclado envía los códigos de exploración de las teclas pulsadas con el siguiente formato:

- Un bit de inicio

- Ocho bits de datos correspondientes al código de exploración de la tecla pulsada empezando por el bit menos significativo.

- Un bit de paridad impar - Un bit de parada.

La línea número tres corresponde a la señal de RESET, la cual tampoco conectaremos. Finalmente las líneas cuatro y cinco son para la conexión del nodo de referencia y alimentación, respectivamente.

(35)

MEMORIA DESCRIPTIVA

35

En segundo lugar, tenemos un conector hembra de 25 contactos tipo DB25 para la conexión del circuito de adaptación al conector del Canal A del microinstructor.

El significado de cada uno de los contactos del conector se encuentra en la Tabla 13.

Pin Señal Canal A

1 GND 2 TxA 3 RxA 4 RTSA 5 CTSA 6 DSRA 7 GND 8 CDA 9 – 19 No conectadas 20 DTRA 21 – 25 No conectadas

Tabla 13. Señales del conector serie DB25

De los veinticinco contactos disponibles, sólo se utilizan dos; el contacto número tres para la recepción de datos del teclado y, el contacto número siete para la conexión al nodo de referencia.

Por último, tenemos un circuito integrado tipo MAX232 cuya función es la de adaptar la señal de datos enviada por el teclado con niveles TTL, al nivel de tensión que define el protocolo RS-232, que es el usado por el micoinstructor para comunicaciones serie. Este protocolo define los niveles de tensiones descritos en la Tabla 14.

“0” Lógico +5V a +15V “0” Lógico +3V a +25V “1” Lógico -5V a -15V “1” Lógico -3V a –25V

(a) (b)

Tabla 14. Niveles lógicos RS-232, (a) para las salidas, (b) para las entradas

El circuito integrado MAX232 se caracteriza por tener dos transmisores y dos receptores, se alimenta con una tensión de +5V y necesita cuatro condensadores electrolíticos de un microfaradio.

La solución de la práctica del Controlador de Teclado se encuentra en el Anexo 9 del capítulo de Anexos.

(36)

MEMORIA DESCRIPTIVA

36

5.3.3.1. Funcionamiento del Teclado

A continuación se explica el funcionamiento del teclado utilizado para la realización de este módulo. Los códigos generados por el teclado pueden variar en función de la clase de teclado. Sólo se consideran para esta práctica la utilización de las teclas de caracteres y números del teclado normal. No se ha considerado la pulsación de las teclas de función, las teclas extendidas ni las teclas del teclado numérico.

Cuando se pulsa una tecla, el teclado envía un código que identifica la tecla pulsada, estos códigos se conocen con el nombre de códigos de exploración del teclado. Al soltar la tecla, el teclado envía dos códigos: el primer código, llamado código BREAK, es el 0xF0. El segundo código es el mismo código de exploración que envió al pulsar la tecla. Por ejemplo, cuando se pulsa la tecla de la letra “R”, el teclado envía el código 0x2D. Al soltar la tecla, envía los códigos 0xF0 seguido del código 0x2D.

5.3.3.1.1. Códigos de Rastreo del Teclado

En la Tabla 15 se presentan los códigos de rastreo de las teclas correspondientes al teclado utilizado. Como se ha indicado anteriormente, estos códigos pueden variar según el teclado utilizado.

Código Código Código

Hex. Dec. Tecla Hex. Dec. Tecla Hex. Dec. Tecla

0D 13 TAB 2B 43 F 42 66 K 15 21 Q 2C 44 T 43 67 I 16 22 1 2D 45 R 44 68 O 1A 26 Z 2E 46 5 45 69 0 1B 27 S 31 49 N 46 70 9 1C 28 A 32 50 B 49 73 .: 1D 29 W 33 51 H 4A 74 -_ 1E 30 2 34 52 G 4B 75 L 21 33 C 35 53 Y 4C 76 Ñ 22 34 X 36 54 6 4D 77 P 23 35 D 3ª 58 M 4E 78 ‘? 24 36 E 3B 59 J 5A 90 INTRO 25 37 4 3C 60 U 5D 93 Ç 26 38 3 3D 61 7 76 118 ESCAPE 29 41 ESPACIO 3E 62 8 2A 42 V 41 65 ,;

(37)

MEMORIA DESCRIPTIVA

37

5.3.3.2 Programación de la DUART

En este apartado se explica como debe ser programado el chip de comunicaciones serie que lleva incorporado el microinstructor, DUART (Dual Universal Asynchronous Receiver Transmitter). De la misma forma que se indicó en el apartado anterior respecto de los códigos de exploración del teclado, la programación de la DUART puede variar según el teclado, ya que la velocidad de transmisión de los datos puede ser diferente.

Para que el microinstructor pueda recibir los códigos de exploración de las teclas pulsadas, el canal A de la DUART debe ser programado de la siguiente forma:

- Paridad Impar

- Ocho bits por carácter - Un bit de parada

- Control de RxRTS = NO

- Selección de RxINT por RxRDY - Modo de error por carácter - Modo de canal normal - Control de RxRTS = NO - Control de Tx por CTS = NO

- Modo y reloj del Timer = TIMER (X1/CLK)

- Interrupciones generadas por cambio en IP3, IP2, IP1, IP0 = NO - Valor de inicio del Timer = 0x0009

- Velocidad de recepción por Timer - Interrupciones habilitadas: RxRDYA

6. Resumen del Presupuesto

El precio total de ejecución de este proyecto de elaboración de módulos didácticos basados en microprocesadores es de CUATRO MIL OCHOCIENTOS SIETE EUROS con NOVENTA Y SIETE CÉNTIMOS.

Tarragona, 30 de agosto de 2002

Antonio Miguel Zaplana Alcaraz Ingeniero Técnico.

(38)
(39)
(40)
(41)
(42)
(43)
(44)
(45)
(46)
(47)

Referencias

Documento similar

La misión del Centro Nacional de Educación Tecnológica –CeNET– comprende el diseño, el desarrollo y la implementación de proyectos innovadores en el área de la

Esta corriente dentro de la arquitectura, registra al Diseño como herramienta fundamental para mejorar la sustentabilidad en el hábitat.. Es más abarcativa que la corriente

Artículo 13. Las solicitudes de reconocimiento presentadas, en las que se aleguen créditos obtenidos en títulos universitarios oficiales de Graduado, para la convalidación

Volviendo a la jurisprudencia del Tribunal de Justicia, conviene recor- dar que, con el tiempo, este órgano se vio en la necesidad de determinar si los actos de los Estados

On one hand, during the lifetime of the project ARIADNE will generate data coming from three different experimental techniques: light scattering (static and dynamic),

Práctica final para la Asignatura “Fundamentos de Informática” 6 de 11 Un programa del juego del ratón y los cuatro gatos puede tener tantas implementaciones

 Tejidos de origen humano o sus derivados que sean inviables o hayan sido transformados en inviables con una función accesoria..  Células de origen humano o sus derivados que

Se hace presente el instrumento a ser aplicado en la empresa CONSUTIC dentro del área de Sistemas informáticos en los servicios de mesa de ayuda mediante un