módulo 1: principios de electrónica digital · módulo 1: principios de electrónica digital...

68
INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII E04 -Total 0702.doc Página 1 de 68 INSTITUTO DE FOMACION TÉCNICA LEON XIII 1 Módulo 1: Principios de electrónica digital Tanto la electrónica análoga como la digital trabaja con señales eléctricas, pero en el segundo caso éstas son señales cuantizadas. Esto quiere decir que hay un número pequeño de valores posibles de voltaje, en sistemas binarios a un determinado nivel de tensión se lo llama estado alto (High) o Uno lógico; y a otro, estado bajo (Low) o Cero lógico. En un familia lógica específica, la TTL que es más común, las señales eléctricas con las que trabaja un sistema digital son 0V y 5V. Sin embargo, no siempre 5V será el estado alto o uno lógico, hay que tener en cuenta que existe la Lógica Positiva y la Lógica Negativa, veamos cada una de ellas. Lógica Positiva En esta notación al 1 lógico le corresponde el nivel más alto de tensión y al 0 lógico el nivel mas bajo (que también podría ser un voltaje negativo), en este gráfico se puede ver con mayor claridad cada estado lógico y su nivel de tensión. Lógica Negativa Aquí ocurre todo lo contrario, es decir, se representa al estado "1" con los niveles más bajos de tensión y al "0" con los niveles más altos. Por lo general se suele trabajar con lógica positiva, la forma más sencilla de representar estos estados es como se puede ver en el siguiente gráfico. Compuertas Lógicas Las compuertas lógicas son dispositivos que operan con aquellos estados lógicos mencionados y funcionan igual que una calculadora, de un lado se ingresan los datos, ésta realiza una operación, y muestra el resultado.

Upload: dotu

Post on 13-Oct-2018

280 views

Category:

Documents


2 download

TRANSCRIPT

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 1 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 1

Módulo 1: Principios de electrónica digital

Tanto la electrónica análoga como la digital trabaja con señales eléctricas,

pero en el segundo caso éstas son señales cuantizadas. Esto quiere decir que hay un número pequeño de valores posibles de voltaje, en sistemas binarios a un determinado nivel de tensión se lo llama estado alto (High) o Uno lógico; y

a otro, estado bajo (Low) o Cero lógico. En un familia lógica específica, la TTL que es más común, las señales

eléctricas con las que trabaja un sistema digital son 0V y 5V. Sin embargo, no siempre 5V será el estado alto o uno lógico, hay que tener en cuenta que existe la Lógica Positiva y la Lógica Negativa, veamos cada una de ellas.

Lógica Positiva En esta notación al 1 lógico le corresponde el nivel más alto de tensión y al 0

lógico el nivel mas bajo (que también podría ser un voltaje negativo), en este gráfico se puede ver con mayor claridad cada estado lógico y su nivel de tensión.

Lógica Negativa

Aquí ocurre todo lo contrario, es decir, se representa al estado "1" con los niveles más bajos de tensión y al "0" con los niveles más altos.

Por lo general se suele trabajar con lógica positiva, la forma más sencilla de

representar estos estados es como se puede ver en el siguiente gráfico.

Compuertas Lógicas

Las compuertas lógicas son dispositivos que operan con aquellos estados

lógicos mencionados y funcionan igual que una calculadora, de un lado se ingresan los datos, ésta realiza una operación, y muestra el resultado.

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 2 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 2

Cada una de las compuertas lógicas se las representa mediante un Símbolo, y la operación que realiza (Operación lógica) se corresponde con una tabla,

llamada Tabla de Verdad. Compuerta NOT

También conocida como inversora o negadora, ya que invierte el dato de

entrada. Por ejemplo: si se pone su entrada a 1 (nivel alto) se obtendrá en su salida un 0 (o nivel bajo), y viceversa. Esta compuerta dispone de una sola

entrada. Su operación lógica es s igual a a invertida

Compuerta AND

Una compuerta AND tiene dos entradas como mínimo y su operación lógica es un producto entre ambas, no es un producto aritmético, aunque en este

caso coincidan. *Observa que su salida será alta ÚNICAMENTE si sus dos entradas están a nivel alto simultáneamente*

Compuerta OR

Al igual que la anterior posee dos entradas como mínimo y la operación

lógica, será una suma lógica entre ambas. *Es decir, basta que CUALQUIERA de las entradas sea 1 para que su salida

sea también 1*

Es importante notar que estas son las 3 operaciones básicas definidas para la

lógica booleana, otras funciones como la NAND, NOR, EXOR, EQUI, se obtienen a partir de estas tres.

Circuitos combinacionales Un circuito combinacional es un sistema que contiene operaciones booleanas

básicas (AND, OR, NOT), algunas entradas y un juego de salidas, como cada

salida corresponde a una función lógica individual, un circuito combinacional a menudo implementa varias funciones booleanas diferentes, es muy importante

recordar éste hecho, cada salida representa una función booleana diferente.

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 3 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 3

Un ejemplo común de un circuito combinacional es el decodificador de siete

segmentos, se trata de un circuito que acepta cuatro entradas y determina cuál de los siete segmentos se deben iluminar para representar la respectiva

entrada, de acuerdo con lo dicho en el párrafo anterior, se deben implementar siete funciones de salida diferentes, una para cada segmento. Las cuatro

entradas para cada una de éstas funciones booleanas son los cuatro bits de un número binario en el rango de 0 a 9. Sea D el bit de alto orden de éste número y A el bit de bajo orden, cada función lógica debe producir un uno (para el

segmento encendido) para una entrada dada si tal segmento en particular debe ser iluminado, por ejemplo, el segmento e debe iluminarse para los

valores 0000, 0010, 0110 y 1000. En la siguiente tabla se puede ver qué segmentos deben iluminarse de acuerdo al valor de entrada, tenga en cuenta

que sólo se están representando valores en el rango de 0 a 9, los decodificadores para las pantallas de siete segmentos comerciales tienen capacidad para desplegar valores adicionales que corresponden a las letras A a

la F para representaciones hexadecimales, sin embargo la mecánica para iluminar los respectivos segmentos es similar a la aquí representada para los

valores numéricos.

0 a b c d e f

1 b c

2 a b d e g

3 a b c d g

4 b c f g

5 a c d f g

6 c d e f g

7 a b c

8 a b c d e f g

9 a b c f g

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 4 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 4

Los circuitos combinacionales son la base de muchos componentes en un sistema de cómputo básico, se puede construir circuitos para sumar, restar,

comparar, multiplicar, dividir y muchas otras aplicaciones más. Circuitos secuenciales

Un problema con la lógica secuencial es su falta de "memoria". En teoría,

todas las funciones de salida en un circuito combinacional dependen del estado actual de los valores de entrada, cualquier cambio en los valores de entrada se

refleja (después de un intervalo de tiempo llamado retardo de propagación) en las salidas. Desafortunadamente las computadoras requieren de la habilidad

para "recordar" el resultado de cálculos pasados. Éste es el dominio de la lógica secuencial. Una celda de memoria es un circuito electrónico que recuerda un valor de entrada después que dicho valor ha desaparecido. La

unidad de memoria más básica es el flip-flop Set/Reset. Aunque recordar un bit sencillo es importante, la mayoría de los sistemas de cómputo requieren

recordar un grupo de bits, esto se logra combinando varios flip-flop en paralelo, una conexión de éste tipo recibe el nombre de registro. A partir de aquí es posible implementar diferentes circuitos como registros de corrimiento

y contadores, éstos últimos también los conocemos como circuitos de reloj. Con los elementos mencionados es posible construir un microprocesador

completo. Relación entre la lógica combinacional y secuencial con la programación

Con todos los elementos aquí descritos, es posible implementar máquinas de estado, estas son circuitos que responden de forma predeterminada a un

conjunto de condiciones presentes en los datos o bits de entrada. Estos circuitos combinacionales pueden ser considerados como circuitos “inteligentes” ya que sus salidas corresponden a funciones lógicas o decisiones

con base en las señales de entrada y el estado en el que se encuentra el sistema. Como conclusión es importante decir que cualquier algoritmo que

podamos implementar en software, lo podemos a su vez implementar directamente en hardware. Esto sugiere que la lógica booleana es la base computacional en los modernos sistemas de cómputo actuales. Cualquier

programa que se escriba, independientemente del lenguaje que utilice, sea éste de alto ó bajo nivel, se puede especificar como una secuencia de

ecuaciones booleanas. Un hecho igualmente interesante es el punto de vista opuesto, es posible

implementar cualquier función de hardware directamente en software. En la

actualidad ésta es la función principal del lenguaje ensamblador y otros con capacidad de trabajar directamente en hardware, ya que a partir de unas

entradas en texto, son capaces de convertirse en instrucciones que ejecutará el procesador o CPU.

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 5 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 5

Módulo 2: Periféricos más simples.

Pulsadores

Elemento que permite el paso o interrupción de la corriente mientras es accionado. Cuando ya no se actúa sobre él vuelve a su posición de reposo.

Puede ser el contacto normalmente cerrado en reposo (NC), o con el

contacto normalmente abierto (Na). Consta del botón pulsador; una lámina conductora que establece contacto

con los dos terminales al oprimir el botón y un muelle que hace recobrar a la lámina su posición primitiva al cesar la presión sobre el botón pulsador.

En el esquema izquierdo de la figura la línea de entrada (IN) recibe un nivel

lógico alto cuando el pulsador está en reposo. Cuando se acciona se introduce un nivel lógico bajo.

El pulsador de la derecha funciona al revés. Interruptores

Los interruptores tienen dos estados estables y hay que accionarlos para

cambiar de uno a otro. El interruptor admite el estado abierto y el estado cerrado. En la figura se muestran las dos formas de conectar los

interruptores. El esquema de la izquierda de la figura, por la línea de entrada al

microcontrolador (IN) se introduce un nivel lógico alto cuando el interruptor

está abierto, mientras que cuando se cierra aplica un nivel lógico bajo. El interruptor de la derecha funciona al revés.

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 6 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 6

Diodos LED El diodo electroluminiscente o led es uno de los dispositivos de salida digital

más sencillo y económico. Según el nivel lógico que se les aplique a su cátodo o ánodo se encienden o se apagan. En realidad todos los periféricos digitales

de salida funcionan como el led. Uno de sus extremos lo tienen conectado al positivo de la alimentación o a tierra y por el otro se les aplica el nivel lógico que saca una de las líneas del microcontrolador. En el caso del diodo led, se

encenderá cuando la polarización entre sus electrodos sea la directa, o sea, positivo en el ánodo y negativo en el cátodo.

Las líneas de de los PIC pueden suministrar suficiente corriente como para encender un diodo led, por eso se les puede conectar directamente a través de una resistencia de absorción, como se muestra en la figura.

Display a 7 segmentos

Cuando se precisa realizar presentaciones de números la solución más económica es el display de 7 segmentos. En realidad cada display consta de 8 segmentos, pues además de los 7 (a, b, c, d, e, f y g) que sirven para mostrar

el número, hay un octavo para indicar el punto decimal (pd), si hay que ponerlo detrás del dígito.

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 7 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 7

Optoacopladores

Un optoacoplador combina un dispositivo semiconductor formado por un fotoemisor, un fotoreceptor y entre ambos hay un camino por donde se transmite la luz. Todos estos elementos se encuentran dentro de un

encapsulado que por lo general es del tipo DIP.

Funcionamiento del Optoacoplador

La señal de entrada es aplicada al fotoemisor y la salida es tomada del fotoreceptor. Los optoacopladores son capaces de convertir una señal eléctrica

en una señal luminosa modulada y volver a convertirla en una señal eléctrica. La gran ventaja de un optoacoplador reside en el aislamiento eléctrico que puede establecerse entre los circuitos de entrada y salida.

Los fotoemisores que se emplean en los optoacopladores de potencia son

diodos que emiten rayos infrarrojos (IRED) y los fotoreceptores pueden ser tiristores o transistores.

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 8 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 8

Cuando aparece una tensión sobre los terminales del diodo IRED, este emite un haz de rayos infrarrojo que transmite a través de una pequeña guia-ondas

de plástico o cristal hacia el fotorreceptor. La energía luminosa que incide sobre el fotorreceptor hace que este genere una tensión eléctrica a su salida. Este responde a las señales de entrada, que podrían ser pulsos de tensión.

Diferentes tipos de Optoacopladores Fototransistor: se compone de un optoacoplador con una etapa de salida

formada por un transistor BJT. Fototriac: se compone de un optoacoplador con una etapa de salida formada

por un triac

Fototriac de paso por cero: Optoacoplador en cuya etapa de salida se encuentra un triac de cruce por cero. El circuito interno de cruce por cero conmuta al triac sólo en los cruce por cero de la corriente alterna.

El Optoacoplador es un dispositivo que se compone de un diodo LED y un

fototransistor, de manera de que cuando el diodo LED emita luz, ésta ilumine el fototransistor y conduzca. Estos dos elementos están acoplados de la forma

más eficiente posible. La corriente de salida IC (corriente de colector del fototransistor) es

proporcional a la corriente de entrada IF (corriente en el diodo LED). La

relación entre estas dos corrientes se llama "razón de transferencia de corriente" (CTR) y depende de la temperatura ambiente. A mayor temperatura

ambiente, la corriente de colector en el fototransistor es mayor para la misma corriente IF (la corriente por el diodo LED)

La entrada (circuito del diodo) y la salida (circuito del fototransistor) están 100% aislados y la impedancia de entrada es muy grande (1013 ohms típico)

El optoacoplador es un dispositivo sensible a la frecuencia y el CTR disminuye al aumentar esta.

Este elemento puede sustituir a elementos electromecánicos como relés,

conmutadores. De esta manera se eliminan los golpes, se mejora la velocidad de conmutación y casi no hay necesidad de mantenimiento.

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 9 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 9

Otros tipos de optoacopladores

Optoacoplador con fotodiodo

Optoacoplador con Darlington

Optoacoplador con fototiristor (SCR)

Optoacoplador con TRIAC

Transistor.

A veces puede haber diodos led u otro tipo de carga que necesiten más corriente que la pueden entregar las líneas del PIC, en cuyo caso es necesario

introducir un transistor amplificador, como se muestra en la siguiente figura.

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 10 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 10

Relés.

Un relé es un sistema mediante el cuál se puede controlar una potencia mucho mayor con un consumo en potencia muy reducido.

Tipos de relés:

Relés electromecánicos:

A) Convencionales. B) Polarizados.

C) Reed inversores.

Relés híbridos. Relés de estado sólido.

Estructura de un relé

En general, podemos distinguir en el esquema general de un relé los siguientes

bloques:

Circuito de entrada, control o excitación.

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 11 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 11

Circuito de acoplamiento. Circuito de salida, carga o maniobra, constituido por:

- circuito excitador.

- dispositivo conmutador de frecuencia. - protecciones.

Características generales

Las características generales de cualquier relé son:

El aislamiento entre los terminales de entrada y de salida. Adaptación sencilla a la fuente de control.

Posibilidad de soportar sobrecargas, tanto en el circuito de entrada como en el de salida.

Las dos posiciones de trabajo en los bornes de salida de un relé se

caracterizan por:

- En estado abierto, alta impedancia. - En estado cerrado, baja impedancia.

Para los relés de estado sólido se pueden añadir :

Gran número de conmutaciones y larga vida útil. Conexión en el paso de tensión por cero, desconexión en el paso de

intensidad por cero.

Ausencia de ruido mecánico de conmutación. Escasa potencia de mando, compatible con TTL y MOS. insensibilidad a las sacudidas y a los golpes.

Cerrado a las influencias exteriores por un recubrimiento plástico.

Relés electromecánicos. Están formados por una bobina y unos contactos los cuales pueden conmutar

corriente continua o bien corriente alterna. Vamos a ver los diferentes tipos de relés electromecánicos. Relés de tipo armadura

Son los más antiguos y también los más utilizados. El esquema siguiente nos explica prácticamente su constitución y funcionamiento. El electroimán hace

vascular la armadura al ser excitada, cerrando los contactos dependiendo de si es N.O ó N.C (normalmente abierto o normalmente cerrado).

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 12 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 12

Relés de Núcleo Móvil Estos tienen un émbolo en lugar de la armadura anterior. Se utiliza un

solenoide para cerrar sus contactos, debido a su mayor fuerza atractiva (por

ello es útil para manejar altas corrientes).

Relé tipo Reed o de Lengüeta

Formados por una ampolla de vidrio, en cuyo interior están situados los

contactos (pueden se múltiples) montados sobre delgadas láminas metálicas. Dichos contactos se cierran por medio de la excitación de una bobina, que está

situada alrededor de dicha ampolla.

Relés Polarizados

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 13 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 13

Llevan una pequeña armadura, solidaria a un imán permanente. El extremo inferior puede girar dentro de los polos de un electroimán y el otro lleva una

cabeza de contacto. Si se excita al electroimán, se mueve la armadura y cierra los contactos. Si la polaridad es la opuesta girará en sentido contrario, abriendo los contactos ó cerrando otro circuito( ó varios)

Relés de estado sólido

Un relé de estado sólido SSR (Solid State Relay), es un circuito eléctrónico

que contiene en su interior un circuito disparado por nivel, acoplado a un interruptor semiconductor, un transistor o un tiristor. Por SSR se entenderá un

producto construido y comprobado en una fábrica, no un dispositivo formado por componentes independientes que se han montado sobre una placa de circuito impreso.

Estructura del SSR:

Circuito de Entrada o de Control:

Control por tensión continua: el circuito de entrada suele ser un LED ( Fotodiodo), solo o con una resistencia en serie, también podemos encontrarlo

con un diodo en antiparalelo para evitar la inversión de la polaridad por accidente. Los niveles de entrada son compatibles con TTL, CMOS, y otros valores normalizados ( 12V, 24V, etc.).

Control por tensión Alterna: El circuito de entrada suele ser como el anterior incorporando un puente rectificador integrado y una fuente de corriente

continua para polarizar el diodo LED. Acoplamiento.

El acoplamiento con el circuito se realiza por medio de un optoacoplador o por medio de un transformador que se encuentra acoplado de forma magnética con el circuito de disparo del Triac.

Circuito de Conmutación o de salida. El circuito de salida contiene los dispositivos semiconductores de potencia con

su correspondiente circuito excitador. Este circuito será diferente según queramos conmutar CC, CA.Introducción a los Microcontroladores PIC.

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 14 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 14

Zumbador. Se trata de un periférico que genera zumbido sonoro cuando se activa. Hay muchos modelos y en la siguiente figura se muestra uno piezoeléctrico, cuya

activación se produce cuando por la línea de salida aparece un nivel bajo. Existen potentes zumbadores que precisan de una etapa previa de

amplificación.

Motores PaP o Motores Paso a Paso. A diferencia de los Motores-CC que giran a todo lo que dan cuando son

conectados a la fuente de alimentación, los Motores-PaP solamente giran un ángulo determinado, los primeros sólo disponen de dos terminales de conexión, mientras los otros pueden tener 4, 5 o 6, según el tipo de motor que

se trate, por otro lado los motores de corriente continua no pueden quedar enclavados en una sola posición, mientras los motores paso a paso sí.

Los motores paso a paso son comúnmente utilizados en situaciones en que se requiere un cierto grado de precisión, por ejemplo en las disketeras puedes encontrarlo unido al cabezal haciéndolo avanzar, retroceder o posicionarse en

una determinada región de datos alojadas en el disket.

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 15 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 15

El ángulo de giro de estos motores es muy variado pasando desde los 90º hasta los 1.8º e incluso 0.72º, cada ángulo de giro, (también llamado paso) se

efectúa enviando un pulso en uno de sus terminales, es decir que por ejemplo en motores que tienen 90º de giro por paso, se requiere 4 pulsos para dar una vuelta completa, mientras que en los de 1,8º necesitas 200 pulsos, y en los

otros necesitas 500. Los Motores-PaP suelen ser clasificado en dos tipos, según su diseño y

fabricación pueden ser Bipolares o Unipolares:

Los Unipolares disponen de dos bobinas independientes los Bipolares

parecieran tener 4 debido al terminal central que es el común de cada par de bobinas, pues a eso se debe aquello de los 6 cables y que si unes los

terminales Com1 y Com2 tienes un terminal común y 4 terminales de control (es decir 5 cables).

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 16 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 16

Módulo 3: Introducción a los Microcontroladores.

El microcontrolador nace cuando las técnicas de integración han progresado lo bastante para permitir su fabricación; pero también porque, muy a menudo,

tanto en las aplicaciones domésticas como industriales, se tiene la necesidad de sistemas “inteligentes” o, al menos programables. Un ejemplo muy simple es el programador de una lavadora, el cual debe controlar una cierta cantidad

de elementos con ciclos y cadencias perfectamente definidas, pero variables en función del programa seleccionado. Otras aplicaciones más técnicas tienen,

igualmente, necesidad de sistemas programables. Por ejemplo, una fotocopiadora debe controlar permanentemente un gran número de elementos y de funciones. Gracias a la llegada de los microcontroladores, tarjetas que

contenían varias decenas de circuitos lógicos clásicos se han visto reducidas a dos o tres microcontroladores.

Antes de ver qué es un microcontrolador y de analizar sus puntos fuertes y sus defectos, será útil hacer un repaso relativo a la estructura de cualquier sistema programable, que pueda hacer uso de un microcontrolador.

Unidad

CentralMemoria

ROMMemoria

RAM

Circuitos

de interfaz

Buses del Sistema

Exterior

Figura 1.

La figura 1 presenta el esquema tipo de cualquier sistema

programable. Veamos que elementos son indispensables para su funcionamiento:

La unidad central La memoria ROM

La memoria RAM Los circuitos de interfaz

Un bus de interconexión

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 17 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 17

La presencia de estos elementos básicos es indispensable y aun cuando no siempre se presenten tan claramente como en nuestro esquema siempre

existen. Obsérvese, que son los mismos que los de un sistema informático clásico, pero dentro del marco de una aplicación que pueda ser tratada por un microcontrolador.

La unidad central, generalmente constituida por un microprocesador más o menos evolucionado, ejecuta el programa que da vida a la aplicación. Los

programas pueden ser muy diversos, puesto que, como es evidente, el que asegura la gestión de un termostato inteligente no tiene nada que ver con el

que controla el correcto funcionamiento de una fotocopiadora. Sin embargo, estos programas tienen en común el hecho de que muy raramente necesitan cálculos complejos y, en cambio, sí suelen incluir numerosas manipulaciones

de la información de entrada/salida. El programa se almacena en un segundo elemento, que es la memoria ROM.

Esta memoria puede constituirse de diferentes formas: UVPROM, EEPROM u OTPROM, cualquiera que sea la que se utilice es una memoria no volátil desde la que se ejecutará el programa una vez alimentado el sistema. Para poder

trabajar correctamente, nuestro microprocesador necesita, a menudo, almacenar datos temporales en alguna parte, y aquí es donde interviene la

memoria RAM, que no necesita ser de grandes dimensiones. El último elemento y que, generalmente, es el más importante en una

aplicación susceptible de utilizar un microcontrolador es todo lo concerniente a

los circuitos de interfaz con el mundo exterior, que relacionará al microprocesador con elementos tan dispares como un motor paso a paso, un

display de cristal líquido o una botonera hexadecimal. Después de este pequeño análisis nos podemos preguntar por qué se habla

de microcontrolador y, no de un conjunto de elementos que realizan esta

función. La respuesta es que el objetivo de los microcontroladores es integrar, tanto como sea posible, en un único encapsulado el conjunto de funciones de

la figura 1.

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 18 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 18

I. Contenido típico de un microcontrolador.

Controlador de

interrupciones

CPU

ROM

UVPROM

OTPROMRAM EEPROM

Osc.

Controlador

de busPuertos de

entrada/salidaPuerto

serie

Interfaz

específica

Temporizador 1

Temporizador 0

.....

Figura 2

De lo descrito anteriormente, es evidente que un microcontrolador debe

contener todos los elementos de la figura 1 en un único encapsulado; aunque no con un diseño tan simple. A la vista de los análisis de los sistemas

realizados antes de la aparición de los microcontroladores, los fabricantes de circuitos integrados han perfilado la definición de lo que se debería integrar, para llegar al esquema de la figura 2.

Evidentemente, encontramos en él nuestra unidad central pero, salvo casos particulares, frecuentemente se ha simplificado con respecto a los

microprocesadores clásicos. En contrapartida se le han añadido instrucciones de manejo de bits, muy útiles para las entradas/salidas. En ciertos circuitos,

esta unidad central está dotada de un gran número de registros internos, que sirven de memoria RAM, por lo que puede parecer que ésta última está ausente de algunos esquemas.

A continuación podemos ver la memoria ROM, aunque ésta no siempre aparece. En determinados encapsulados y hasta hace unos años, esta memoria

no podía programarse más que mediante máscara durante la fabricación del circuito. Esto imponía al potencial usuario del microcontrolador comprar un número significativo de piezas idénticas, lo cual era aceptable para una serie

grande, pero no para fabricaciones limitadas. Cierto número de microcontroladores estaban, y todavía están, disponibles sin ROM (versiones

ROMless en los catálogos). Posteriormente, los fabricantes han introducido en el chip una memoria

programable eléctricamente y borrable mediante rayos ultravioleta (UVPROM)

o, más recientemente, borrable eléctricamente (EEPROM). Como los encapsulados que contenían la memoria UVPROM eran relativamente caros

(por la ventana de cuarzo), han aparecido otro tipo denominado OTPROM (One Time PROM), la memoria UVPROM existe siempre y se programa como

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 19 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 19

cualquier circuito, pero debido a la ausencia de ventana, no se puede borrar. Es una solución interesante para la producción de series pequeñas y están

disponibles en plásticos baratos. Un último producto para almacenar de forma no volátil son las memorias

FLASH, de bajo consumo, que se puede escribir y borrar en circuito al igual

que las EEPROM, pero suelen disponer de mayor capacidad que estas últimas. El borrado solo es posible con bloques completos y no se puede realizar sobre

posiciones concretas. Son muy recomendables en aplicaciones en las que sea necesario modificar el programa a lo largo de la vida del producto, como

consecuencia del desgaste o cambios de piezas, como sucede con los vehículos.

En lo referente a la memoria RAM, suele utilizarse una del tipo SRAM (RAM

estática) de pequeño tamaño, por qué generalmente la unidad central posee suficientes registros para realizar operaciones intermedias. En algunos casos,

esta memoria se completa con una EEPROM de datos, que memoriza de forma semipermanente datos del usuario que se manejan como constante en la ejecución del programa y que de vez en cuando (pasados meses o años) deben

ser modificados. Algo más delicado es hacer un esquema tipo para los circuitos de interfaz, ya

que es un punto donde se distinguen los diferentes microcontroladores, en función de las aplicaciones que pretenden. No obstante se pueden encontrar los siguientes elementos básicos:

Líneas de entrada/salida paralelo, en cantidad variable, según la

finalidad y el tamaño del encapsulado (se plantea un problema de número máximo de pines debido al crecimiento del número de estas líneas).

Al menos una interfaz de entrada/salida serie asíncrona, más o

menos evolucionada según los circuitos. Uno o varios temporizadores internos cuyas posibilidades pueden ser

muy variables pero que, generalmente, funcionan como contadores ascendentes y descendentes, generadores de impulsos programables,

etc. Uno o varios convertidores analógicos/digitales, precedidos o no de

multiplexores para ofrecer varias vías.

A veces, pero es raro, un covertidor digital/analógico.

Por último, aunque no sea una verdadera interfaz de entrada/salida en el sentido en que nosotros entendemos, ciertos microcontroladores disponen de

un acceso a su bus interno. Esto permite conectar con otros circuitos

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 20 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 20

destinados a cumplir funciones que faltan en el chip, lo que a veces resulta útil. Precisemos, aunque es evidente, que todos los microcontroladores sin

memoria ROM interna disponen necesariamente de esta interfaz, puesto que es necesario permitirle acceder a una memoria ROM externa.

II. Las ventajas y defectos de los Microcontroladores.

En primer lugar, un microcontrolador integra en un único encapsulado lo que antes necesitaba una o varias decenas de elementos distintos. Como resultado

de estos, se ha obtenido una evidente disminución en el volumen del hardware y del circuito impreso. Esta integración también ha tenido como consecuencia

inmediata la simplificación del diseño del circuito impreso, ya que no es necesario llevar los buses de direcciones y de datos de un componente a otro.

En segundo lugar, de todo lo anterior se deriva un aumento de la fiabilidad

del sistema ya que, al disminuir el número de componentes, el número potencial de fuentes de error también disminuye. Además, la cantidad de

conexiones entre componentes/zócalos o componentes/circuito impreso también disminuye, lo que aumenta la fiabilidad del sistema. Así mismo, la disminución de componentes reduce el consumo global de todo el sistema, lo

que puede resultar ventajoso según en que aplicaciones y con tipos de alimentación se utilice el microcontrolador.

Los mayores inconvenientes de los microcontroladores son bastante pocos y, principalmente, se encuentran en el nivel de la programación, pero en dos planos diferentes. El primer inconveniente es el sistema de almacenamiento de

los programas que lo hacen funcionar, como ya hemos visto, las opciones de almacenamiento pasan por utilizar una memoria ROM en alguna de su

variantes (ROM por máscara, UVPROM, OTPROM, EEPROM, etc...), esto implica que la modificación de los programas realizados va a suponer un esfuerzo de borrado de la memoria completa (o de bloques en le mejor de los casos) o la

sustitución del chip de memoria por uno nuevo, lo cual conlleva gastos adicionales en material o en esfuerzo.

El otro inconveniente es el de que en los microcontroladores, como cualquier sistema programado, hay que disponer de una herramienta o medio de desarrollo, es necesario escribir los programas, probarlos y comprobarlos sobre

el hardware que rodea al microcontrolador, antes de instalarlos y hacer funcionar el sistema. Este sistema de desarrollo representa, por tanto, una

inversión que hay que tener en cuenta en el coste del producto final. Si se prevé la realización de aparatos diversos que utilicen microcontroladores de la misma familia, es bastante fácil de amortizar; en caso contrario puede ser más

difícil.

III. Diferencias entre microcontrolador y microprocesador

Es muy habitual confundir los términos de microcontrolador y microprocesador, cayendo así en un error de cierta magnitud. Un

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 21 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 21

microcontrolador es, como ya se ha comentado previamente, un sistema completo, con unas prestaciones limitadas que no pueden modificarse y que

puede llevar a cabo las tareas para las que ha sido programado de forma autónoma. Un microprocesador, en cambio, es simplemente un componente que conforma el microcontrolador, que lleva a cabo ciertas tareas que

analizaremos más adelante y que, en conjunto con otros componentes, forman un microcontrolador.

Debe quedar clara por tanto la diferencia entre microcontrolador y microprocesador: a modo de resumen, el primero es un sistema autónomo e

independiente, mientras que el segundo es una parte, cabe decir que esencial, que forma parte de un sistema mayor.

1. Arquitectura interna de un microcontrolador

Como ya hemos visto, un microcontrolador es un dispositivo complejo, formado por otros más sencillos. A continuación se analizan los más

importantes.

Procesador

Es la parte encargada del procesamiento de las instrucciones. Debido a la

necesidad de conseguir elevados rendimientos en este proceso, se ha desembocado en el empleo generalizado de procesadores de arquitectura

Harvard frente a los tradicionales que seguían la arquitectura de von Neumann. Esta última se caracterizaba porque la CPU se conectaba con una memoria única, donde coexistían datos e instrucciones, a través de un sistema

de buses.

Arquitectura von Neumann

En la arquitectura Harvard son independientes la memoria de instrucciones y

la memoria de datos y cada una dispone de su propio sistema de buses para el acceso. Esta dualidad, además de propiciar el paralelismo, permite la

adecuación del tamaño de las palabras y los buses a los requerimientos específicos de las instrucciones y de los datos.

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 22 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 22

Arquitectura Harvard

El procesador de los modernos microcontroladores responde a la arquitectura

RISC (Computadores de Juego de Instrucciones Reducido), que se identifica por poseer un repertorio de instrucciones máquina pequeño y simple, de forma que la mayor parte de las instrucciones se ejecutan en un ciclo de instrucción.

Otra aportación frecuente que aumenta el rendimiento del computador es el fomento del paralelismo implícito, que consiste en la segmentación del

procesador (pipe-line), descomponiéndolo en etapas para poder procesar una instrucción diferente en cada una de ellas y trabajar con varias a la vez.

Memoria de programa

El microcontrolador está diseñado para que en su memoria de programa se almacenen todas las instrucciones del programa de control. Como éste siempre

es el mismo, debe estar grabado de forma permanente. Existen algunos tipos de memoria adecuados para soportar estas funciones, de las cuales se citan las

siguientes: - ROM con máscara: se graba mediante el uso de máscaras. Sólo es

recomendable para series muy grandes debido a su elevado coste.

- EPROM: se graba eléctricamente con un programador controlador por un PC. Disponen de una ventana en la parte superior para someterla a luz

ultravioleta, lo que permite su borrado. Puede usarse en fase de diseño, aunque su coste unitario es elevado.

- OTP: su proceso de grabación es similiar al anterior, pero éstas no pueden

borrarse. Su bajo coste las hacen idóneas para productos finales. - EEPROM: también se graba eléctricamente, pero su borrado es mucho

más sencillo, ya que también es eléctrico. No se pueden conseguir grandes capacidades y su tiempo de de escritura y su consumo es elevado.

- FLASH: se trata de una memoria no volátil, de bajo consumo, que se puede escribir y borrar en circuito al igual que las EEPROM, pero que

suelen disponer de mayor capacidad que estas últimas. Son recomendables aplicaciones en las que es necesario modificar el programa a lo largo de la vida del producto. Por sus mejores prestaciones, está

sustituyendo a la memoria EEPROM para contener instrucciones. De esta forma Microchip comercializa dos microcontroladores prácticamente

iguales que sólo se diferencian en que la memoria de programa de uno de

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 23 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 23

ellos es tipo EEPROM y la del otro tipo Flash. Se trata del PIC16CXX y el PIC16FXX, respectivamente.

Memoria de datos

Los datos que manejas los programas varían continuamente, y esto exige que la memoria que los contiene debe ser de lectura y escritura, por lo que la

memoria RAM estática (SRAM) es la más adecuada, aunque sea volátil. Hay microcontroladores que disponen como memoria de datos una de lectura y

escritura no volátil, del tipo EEPROM. De esta forma, un corte en el suministro de la alimentación no ocasiona la pérdida de la información, que está

disponible al reiniciarse el programa. El PIC16F84 dispone de 64 bytes de memoria EEPROM para contener datos.

Líneas de E/S

A excepción de dos patitas destinadas a recibir la alimentación, otras dos para el cristal de cuarzo, que regula la frecuencia de trabajo, y una más para

provocar el Reset, las restantes patitas de un microcontrolador sirven para soportar su comunicación con los periféricos externos que controla.

Las líneas de E/S que se adaptan con los periféricos manejan información en

paralelo y se agrupan en conjuntos de ocho, que reciben el nombre de Puertas. Hay modelos con líneas que soportan la comunicación en serie; otros disponen

de conjuntos de líneas que implementan puertas de comunicación para diversos protocolos, como el I2C, el USB, etc.

Recursos auxiliares

Según las aplicaciones a las que orienta el fabricante cada modelo de microcontrolador, incorpora una diversidad de complementos que refuerzan la

potencia y la flexibilidad del dispositivo. Entre los recursos más comunes se citan los siguientes: - Circuito de reloj: se encarga de generar los impulsos que sincronizan el

funcionamiento de todo el sistema. - Temporizadores, orientados a controlar tiempos.

- Perro Guardián o WatchDog: se emplea para provocar una reinicialización cuando el programa queda bloqueado.

- Conversores AD y DA, para poder recibir y enviar señales analógicas.

- Sistema de protección ante fallos de alimentación - Estados de reposos, gracias a los cuales el sistema queda congelado y el

consumo de energía se reduce al mínimo.

Programación de microcontroladores

La utilización de los lenguajes más cercanos a la máquina (de bajo nivel)

representan un considerable ahorro de código en la confección de los programas, lo que es muy importante dada la estricta limitación de la

capacidad de la memoria de instrucciones. Los programas bien realizados en

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 24 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 24

lenguaje Ensamblador optimizan el tamaño de la memoria que ocupan y su ejecución es muy rápida.

Los lenguajes de alto nivel más empleados con microcontroladores son el C y el BASIC de los que existen varias empresas que comercializan versiones de compiladores e intérpretes para diversas familias de microcontroladores

Hay versiones de intérpretes de BASIC que permiten la ejecución del programa línea a línea, y en ocasiones, residen en la memoria del propio

microcontrolador. Con ellos se puede escribir una parte del código, ejecutarlo y comprobar el resultado antes de proseguir.

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 25 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 25

Módulo 4: Arquitectura interna e Introducción al simulador.

I. Microcontroladores PIC16CXX/FXX de Microchip

Me referiré a estos porque serán los que utilizaré aquí, (al menos por ahora). Estos micros pertenecen a la gama media y disponen de un set de 35 instrucciones, por eso lo llaman de tipo RISC (Reduced Instruction Set

Computer) en entendible sería "Computador con Set de Instrucciones Reducido" pocas instrucciones pero muy poderosas, otras son de tipo CISC

(Complex Instruction Set Computer - Computador con Set de Instrucciones Complejo), demasiadas instrucciones, y lo peor, difíciles de recordar.

Esta familia de microcontroladores se divide en tres rangos según la

capacidad de los microcontroladores. El más bajo lo compone la familia 16C5X. El rango medio lo componen las familias 16C6X/ 7X/ 8X, algunos con

conversores A/D, comparadores, interrupciones, etc. La familia de rango superior lo componen los 17CXX.

En este módulo se menciona lo referente al PIC16C84, en la práctica de

laboratorio se trabajará con base en el manual del PIC16F87X que hace parte de los anexos.

1. PIC 16X84 El P1C16C84 está fabricado en tecnología CMOS, consume baja potencia, y

es completamente estático (si el reloj se detiene, los datos de la memoria no

se pierden). El 16F84 tiene las mismas características pero posee memoria FLASH, esto hace que tenga menor consumo de energía, y como si fuera poco

tiene mayor capacidad de almacenamiento. El encapsulado más común para estos microcontrolador es el DIP (Dual In

line Package) de 18 pines, utiliza un reloj de 4 MHz (cristal de cuarzo). Sin

embargo, hay otros tipos de encapsulado, por ejemplo, el encapsulado tipo surface mount (montaje superficial) es mucho más pequeño.

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 26 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 26

Terminales del microcontrolador y sus respectivas funciones:

Encapsulado DIP - PIC16C84/F84

Patas 1, 2, 3, 17 y 18 (RA0-RA4/TOCKI): Es el PORT A. Corresponden a 5 líneas bidireccionales de E/S (definidas por programación). Es capaz de

entregar niveles TTL cuando la alimentación aplicada en VDD es de 5V ± 5%. El pin RA4/TOCKI como entrada puede programarse en funcionamiento normal o como entrada del contador/temporizador TMR0. Cuando este pin se

programa como entrada digital, funciona como un disparador de Schmitt (Schmitt trigger), puede reconocer señales un poco distorsionadas y llevarlas a

niveles lógicos (cero y cinco voltios). Cuando se usa como salida digital se comporta como colector abierto; por lo tanto se debe poner una resistencia de

pull-Up (resistencia externa conectada a un nivel de cinco voltios, ...no te preocupes, mas abajo lo entenderás mejor). Como salida, la lógica es inversa: un "0" escrito al pin del puerto entrega a la salida un "1" lógico. Este pin como

salida no puede manejar cargas como fuente, sólo en el modo sumidero. Pata 4 (MCLR / Vpp): Es una pata de múltiples aplicaciones, es la entrada

de Reset (master clear) si está a nivel bajo y también es la habilitación de la tensión de programación cuando se está programando el dispositivo. Cuando su tensión es la de VDD el PIC funciona normalmente.

Patas 5 y 14 (VSS y VDD): Son respectivamente las patas de masa y alimentación. La tensión de alimentación de un PIC está comprendida entre 2V

y 6V aunque se recomienda no sobrepasar los 5.5V. Patas 6, 7, 8, 9, 10, 11, 12, 13 (RB0-RB7): Es el PORT B. Corresponden

a ocho líneas bidireccionales de E/S (definidas por programación). Pueden

manejar niveles TTL cuando la tensión de alimentación aplicada en VDD es de 5V ± 5%. RB0 puede programarse además como entrada de interrupciones

externas INT. Los pines RB4 a RB7 pueden programarse para responder a interrupciones por cambio de estado. Las patas RB6 y RB7 se corresponden con las líneas de entrada de reloj y entrada de datos respectivamente, cuando

está en modo programación del integrado. Patas 15 y 16 (OSC1/CLKIN y OSC2/CLKOUT): Corresponden a los

pines de la entrada externa de reloj y salida de oscilador a cristal respectivamente.

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 27 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 27

Precauciones Como estos dispositivos son de tecnología CMOS, todos los pines deben estar

conectados a alguna parte, nunca dejarlos al aire porque se puede dañar el integrado. Los pines que no se estén usando se deben conectar a la fuente de alimentación de +5V, como se muestra en la siguiente figura.

Capacidad de corriente en los puertos

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. La máxima capacidad de corriente total de los puertos es:

PUERTO A PUERTO B Modo Sumidero 80 mA 150 mA Modo Fuente 50 mA 100 mA

Así se vería la conexión para ambos modos de funcionamiento.

Práctica: Circuito de reloj y de reset

El oscilador externo Es un circuito externo que le indica al micro la velocidad a la que debe

trabajar. Este circuito, que se conoce como oscilador o reloj, es muy simple pero de vital importancia para el buen funcionamiento del sistema. El P1C16C84/F84 puede utilizar cuatro tipos de reloj diferentes. Estos tipos son:

RC. Oscilador con resistencia y condensador. XT. Cristal. HS. Cristal de alta velocidad.

LP. Cristal para baja frecuencia y bajo consumo de potencia.

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 28 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 28

En el momento de programar o "quemar" el microcontrolador se debe especificar que tipo de oscilador se usa. Esto se hace a través de unos fusibles

llamados "fusibles de configuración" o fuses. Aquí utilizaremos el cristal de 4 MHz, porque garantiza mayor precisión y un

buen arranque del microcontrolador. Internamente esta frecuencia es dividida

por cuatro, lo que hace que la frecuencia efectiva de trabajo sea de 1 MHz, por lo que cada instrucción se ejecuta en un microsegundo. El cristal debe ir

acompañado de dos condensadores y el modo de conexión es el siguiente:

Si no se requiere mucha precisión en el oscilador, se puede utilizar una

resistencia y un condensador, como se muestra en la figura siguiente, en esta configuración OSC2 queda libre entregando una señal cuya frecuencia es la del

OSC/4.

Según las recomendaciones de Microchip R puede tomar valores entre 5k y

100k, y C superior a 20pf.

Reset El PIC 16C84/F84 posee internamente un circuito temporizador conectado al

pin de reset que funciona cuando se da alimentación al micro, se puede entonces conectar el pin de MCLR a la fuente de alimentación. Esto hace que al encender el sistema el microcontrolador quede en estado de reset por un

tiempo mientras se estabilizan todas las señales del circuito (lo cual es bastante bueno, por eso siempre la usaremos...).

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 29 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 29

II. MPLAB.

Actualmente en Microchip se encuentra disponible la versión 7, y este módulo apunta a la versión 5.70.40, ya que esta versión se encuentra para descarga

libre. Esta es la página inicial del entorno de programación:

Barra de Herramientas y Menús:

MPLAB pone a disposición 4 barras de herramientas personalizables según la

tarea que se esté realizando.

La primera es la barra USER, la segunda es la barra EDIT, todo lo

relacionado a la Edición de texto. La tercera es la barra DEBUG, con todo lo

necesario para simular un programa, depurarlo, etc. Finalmente la barra PROJECT, todo lo referido al proyecto que se está realizando.

Menú File: NEW: Crea un nuevo archivo con extensión .asm OPEN: Abre un archivo que puede ser .asm/.obj/.c/.err/.h/.lkr/.map/.hex/.lst

VIEW: Abre un archivo en modo solo lectura. SAVE (Guardar), SAVE AS (guardar como), SAVE ALL (guardar todo), CLOSE

(cerrar un proyecto), CLOSE ALL (cerrar todos los proyectos abiertos). PRINT (Imprime), y PRINT SETUP te permite configurar el modo de

impresión, EXIT cierra MPLAB, y finalmente los 5 últimos archivos utilizados.

Menú Project: NEW PROJECT: Abre un cuadro de diálogo para crear un nuevo proyecto y en

él todo lo que necesites para tenerlo más a tu alcance. OPEN PROJECT: Abrir un proyecto CLOSE PROJECT: Cerrar un proyecto

SAVE PROYECT: Guardar Proyecto EDIT PROJECT: similar a New Project, pero referido a un proyecto ya abierto,

al que se le puede agregar nodos, librerías y la forma en que desarrollarás el proyecto en cuestión.

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 30 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 30

MAKE PROJECT: ensamblará todo, pero teniendo en cuenta la fecha de creación del archivo .HEX, la cual compara con el archivo .asm del que

ensambló. Si éste tiene una fecha mas reciente que el archivo .HEX asociado, debido digamos a una actualización del código, entonces ensamblará nuevamente el proyecto. En caso de que la fecha sea anterior al archivo .HEX

generado (es decir, archivo .ASM mas viejo que el .HEX) este no hará nada. BUILD ALL: No tiene en cuenta la fecha y ensambla todo.

BUIL NODE: Ensamblar un nodo que hayamos asociado al proyecto. INSTALL LANGUAGE TOOL: Es para configurar el lenguaje a utilizar, que en

nuestro caso es el ASM de Microchip. Menú Edit:

UNDO: Deshacer, y en ese orden Cortar, Copiar y Pegar

SELECT ALL: seleccionar todo SELECT WORD: selecciona la palabra sobre la que esta el cursor.

DELETE LINE: borra la línea sobre la que esta el cursor. DELETE EOL: borra desde donde esta el cursor hasta el final de la línea. GOTO LINE: Abre un cuadro de diálogo para saltar a una determinada línea

(Line to go to), te indica además la cantidad total de líneas (Last Line) y la línea en que tienes el cursor (Current Line), es algo así como el "Ir a" de Word.

FIND: es para buscar algún texto dentro de nuestro código REPLACE es para reemplazar un texto o una pequeña frase. REPEAT FIND: es para repetir la búsqueda si es que hay otra palabra o frase

igual. REPEAT REPLACE es para repetir el reemplazo.

TEMPLATE: como todos los templates, para crear unos archivos personalizados o plantillas. TEXT: También tiene sus opciones; Transpose intercambia los caracteres que

están a ambos lados del cursor; Upper case cambiar a mayúsculas; Lower case cambiar a minúsculas; Indent mantiene la tabulación de la línea anterior; Un-

Indent lo opuesto. Menú Debug:

RUN:

RUN: inicia la simulación. Útil cuando colocas algunos puntos de ruptura (breakpoints) para detener la ejecución y así no estar esperando que se ejecute todo aquello que sabes que esta correcto.

RESET: Resetea el micro y te ubica en la primer línea donde comenzará la simulación (en ese caso verás toda la línea pintada de negro y las

letras blancas) "listo para comenzar la simulación" HALT: Detiene la ejecución. HALT TRACE: Detiene un traceo que se este haciendo.

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 31 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 31

ANIMATE: es igual que RUN pero lo hace más lento, para que vayas siguiendo la ejecución, mostrándote línea por línea todo lo que se está

ejecutando. STEP: paso, es decir, un paso por cada vez que lo presionas (en la barra

de herramientas verás dos huellas de zapato, pues es eso, paso a paso).

Simplemente ejecuta una a una cada línea de código por cada vez que lo presionas.

STEP OVER: Igual que el anterior pero con un pequeño detalle, cada vez que se encuentre con un call lo ejecuta completamente sin entrar en

él. UPDATE ALL REGISTER: Actualiza el valor de todos los registros. CHANGE PROGRAM COUNTER: Cambia el valor del PC y te ubica en la

etiqueta del código a la que quieres ir.

EXECUTE:

EXECUTE AN OPCODE: te permite ejecutar un código cualquiera desde cualquier sitio en el que te encuentras, por ejemplo ingresas un goto

inicio y hacia allí irá. independiente a la secuencia del programa. CONDITIONAL BREAK: Para ejecutar un breakpoint en forma

condicional, Por ejemplo por que cambió el valor de un registro, o por

que quieres ver que paso hasta ese punto, o bueno, en fin. (por si las moscas, para quien no tenga idea de que es un Breakpoint, es un punto

de ruptura en el código del programa, es decir, si se está ejecutando..., cuando se encuentre con el breakpoint se detendrá y allí se quedará

hasta que le des la orden de continuar).

SIMULATOR STIMULUS: desde aquí se podrá simular que se le envían señales al PIC por uno de sus pines, este submenú tiene 4 opciones:

ASYNCHRONOUS STIMULUS: abrirá un pequeño diálogo con 12 botones como el que se muestra en la imagen, vendrían a ser como

interruptores, en este caso, al primero se le asignó el pin RA0 (pin 17) y entre paréntesis una T (de TOGGLE)

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 32 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 32

Si presionas con el botón derecho del mouse en uno de esos botones verás las opciones de configuración de estos estímulos, desde donde los

puedes configurar:

o ASSIGN PIN: muestra los pines del puerto para que selecciones aquel que llevará un estímulo.

o PULSE: un pulso, hasta ahora no hice uso de él... o LOW: Le asigna un nivel bajo permanente

o HIGH: Lo contrario, nivel alto permanente o TOGGLE: Cada vez que lo pulses cambiará de nivel de alto a bajo

o de bajo a alto.

o HELP: tampoco lo utilicé así que no preguntes...!!!

PIN STIMULUS: Es para cuando creas un archivo de texto con

extensión .sti, desde aquí lo cargas o lo quitas, se trata de utilizar un archivo que creaste con esta extensión y que contiene los estímulos ya asignados para cada uno de los pines.

CLOCK STIMULUS: Desde aquí puedes enviarle pulsos de reloj a un determinado pin, indicando el tiempo que se mantendrá en nivel alto y

el tiempo en nivel bajo, tipo (timer).

Tiene un par de opciones como ser; Guardarlo como un archivo .sti,

Abrir alguno si es que ya lo tienes creado, Aplicar los cambios, agregarle mas impulsos a otros pines, y el help (por supuesto, la ayuda).

REGISTER STIMULUS: Es exactamente lo mismo que con los pines,

solo que lleva la extensión .reg y sirve para que en una determinada

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 33 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 33

posición del programa se cargue un registro con el valor que tu le quieras dar.

CENTER DEBUG LOCATION: te ubica en la posición en la cual el programa

se está ejecutando, por si perdiste la línea de ejecución, se suele utilizar cuando detienes la ejecución y se pierde el puntoincial

BREAK SETTINGS, Te muestra un diálogo para que le des nombre a los breakpoints y luego desde aquí los habilitas, los quitas, los guardas etc.

TRIGGER IN/OUT SETTINGS: Son para los emuladores MPLABICE y

PICMASTER. TRIGGER OUTPUT POINTS: Para PICMASTER.

CLEAR ALL POINT limpia todos los breakpoints y los tracepoints que pusiste a lo largo del programa.

COMPLEX TRIGGER SETTING y ENABLE CODE COVERAGE Para MPLAB-

ICE CLEAR PROGRAM MEMORY: Borra la memoria de programa.

SYSTEM RESET: Eso mismo, Resetea el sistema POWER ON RESET: Para el caso en que se podría producir un reset en el

micro, y así saber que ocurre o que es lo que hace el micro si esto llegara a

ocurrir.

Sólo le das a Power On Reset y habrás ocasionado un reset en el pin4 del

micro (MCLR), luego le das a "cancel" y continúas con la ejecución para saber que hace el pic.

Menú Options: DEVELOPMENT MODE: es donde hacemos las configuraciones del proyecto. WINDOW SETUP: como estamos en la sección de personalización, puedes

personalizar totalmente la forma en que vas a trabajar, tus preferencias, luego Guardarlas (Save Setup), Cargarlas (Load Setup) si es que ya las tienes

guardadas, o utilizar una por defecto (Default Configuration). CURRENT EDITOR MODES: Es para que personalices el modo de edición,

por ejemplo las tabulaciones de 8 espacios, que se mantenga la indentación de

la línea anterior, que se muestre el número de líneas al margen del código, hacer un backup cada cierto tiempo, etc. aquí hay una imagen de esas

opciones...

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 34 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 34

RESET EDITOR MODES: Elimina los cambios que hiciste anteriormente ENVIRONMENT SETUP: para una personalización completa.

PROGRAMMER OPTIONS: Son las opciones para configurar el programador que usarás con MPLAB, pero como no lo utilizaremos para cargar el pic

Menú Window: El más importante de todos, ya que desde aquí nos veremos cara a cara con

cada uno de los bits de los registros del micro, el estado que tienen y como se

modifican, claro que lo verás cuando lo ejecutes en modo "step" (paso a paso) o "Animate" (de forma animada).

PROGRAM MEMORY: Verás la memoria de programa, y así sabes cuanto

espacio te queda disponible. STACK: La pila, recuerda que son de 8 posiciones y la ultima en ingresar es la primera en salir

FILE REGISTER: Para que veas como se modifican los registros mientras el

programa se está ejecutando, solo en modo "Step" o "Animate".

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 35 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 35

SPECIAL FUNCTION REGISTER: Los Registros de funciones especiales,

con nombre: trisa/b, porta/b, status, w, también se pueden ver como se

modifican los bits de entrada y salida de los puertos, como antes, sólo los verás cuando lo ejecutas en modo "Step" o "Animate".

SHOW SIMBOL LIST: todos los símbolos utilizados y su respectiva

ubicación (dirección de registro), aquello que definimos al iniciar nuestro

código, como "status equ 0x03". Del otro lado las etiquetas utilizadas a lo largo del programa.

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 36 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 36

STOPWATCH: Para que veas el tiempo en milisegundo consumidos por el

micro que cuenta por ejemplo con un XT de 4 MHz.

PROJECT: Los datos del proyecto que estas realizando WATCH WINDOW: Para crear tu propia ventana de registros. MODIFY: Para modificar los valores de algún registro determinado, en caso

de que no quieras esperar demasiado por ejemplo cuando haces un retardo.

I. Cómo crear un proyecto con MPLAB:

Selecciona el menú File-->New y verás un diálogo como el siguiente...

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 37 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 37

Luego de darle clic a “Yes”, verás una nueva ventana "New Project" en la que nos pide el nombre del proyecto y el directorio en que lo vamos a guardar.

Pues bien, seleccionas OK y comenzaremos a crear nuestro proyecto desde

la ventana Edit Project (Edición de Proyecto).

Aquí es donde comenzamos a ajustar todos los detalles para nuestro

proyecto. Un detalle a tener en cuenta es que MPLAB ya le asignó la extensión

.hex al proyecto que estamos creando, el cual por defecto lleva el mismo nombre, de hecho la finalidad es esa, crear un archivo con extensión .hex para

luego grabarla en la memoria del pic. Si seleccionamos cqpic[.hex] en Projects Files (parte inferior de la ventana), podrás ver que se nos habilita el botón Node Properties. como se

ve en la imagen anterior, haces un click en él, y verás la ventana desde la cual configuraremos la forma en que MPLAB debe generar el archivo .hex, debería

quedar algo así:

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 38 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 38

Aquí se configura por ejemploINHX8M (nuestro código objeto con extensión

.hex), el fichero de errores (.err), el archivo list (.lst), Default Radix que

vendría a ser el formato de los números que vamos a utilizar (hexadecimal), etc., bien, ahora presionamos OK y volvemos a la ventana anterior, seleccionas Add Node y verás el siguiente diálogo:

Desde aquí vamos a ligar al proyecto nuestro archivo .asm, que es el que

codificaremos, y que todavía no hemos creado, de todos modos sabemos que se llamará cqpic.asm otra cosa que debes tener en cuenta es que deberás

guardarlo en el mismo directorio en que creaste el proyecto, luego presionas Aceptar y regresarás al cuadro Edit Project pero de la mano de nuestro

cqpic[.asm]

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 39 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 39

Ahora presionas OK y regresas al IDE de MPLAB en el cual tienes esa página

en blanco para ingresar el código, el tema es que aún sigue siendo Untitled1. Anteriormente solo creamos un proyecto llamado cqpic.pjt, luego le ligamos

un nodo con cqpic.asm (el cual aún no existe) e incluso le dijimos donde lo

guardaremos, y nos pusimos de acuerdo con MPLAB la forma en que queremos crear el archivo .hex, pues bueno lo que estamos haciendo ahora, es crear

cqpic.asm, así es que te diriges a File-->Save As y lo guardas como cqpic.asm.

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 40 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 40

Práctica: Suma de dos registros.

Código del programa:

LIST P=16F84A OPERANDO1 EQU 0X0C

OPERANDO2 EQU 0X0D RESULTADO EQU 0X0E

W EQU 0 F EQU 1

ORG 0X00 GOTO INICIO

INICIO

MOVLW D'05' MOVWF OPERANDO1 MOVLW D'20'

MOVWF OPERANDO2 ADDWF OPERANDO1,W

MOVWF RESULTADO END

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 41 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 41

Módulo 5: Instrucciones y programación del PIC.

A continuación se presenta un resumen de los nemónicos para su uso en la fase de programación del PIC.

W : es el registro de trabajo y almacena datos de forma momentánea f : es la dirección de un registro, si es llamada apunta al contenido de

ese registro d : es el destino donde se guarda el resultado de una operación, si es 1

se guarda en el registro f, y si es 0 en W.

OPERACIONES ORIENTADAS A REGISTROS

Nemotécnicos Operación Estados

afectados

ADDWF f,d ANDWF f,d CLRF f

CLRW COMF f,d

DECF f,d DECFSZ f,d INCF f,d

INCFSZ f,d IORWF f,d

MOVF f,d MOVWF f

NOP RLF f,d

RRF f,d

SUBWF f,d SWAPF f,d XORWF f,d

Sumar W y f AND entre W y f Limpiar f

Limpiar W Complementar f

Decrementar f Decrementar f, saltar si cero

Incrementar f Incrementar f, saltar si

cero OR entre W y f

Mover f Mover W a F No Operación

Rotar a la izquierda a través del carry

Rotar a la derecha a través del carry Restar W de f

Intercambiar nibbles de f OR exclusiva entre W y f

C,DC,Z Z Z

Z Z

Z Z

Z

Z

C

C

C,DC,Z

Z

En este otro cuadro, a demás de f aparece b. que vendría a ser uno de los 8

bits del registro f

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 42 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 42

OPERACIONES ORIENTADAS A BITS

Nemotécnicos Operación Estados

afectados

BCF f,b BSF f,b BTFSC f,b

BTFSS f,b

Limpiar bit b de f Activar bit b de f Probar bit b de f,

saltar si cero Probar bit b de f,

saltar si uno

Por último, aparece k que viene a ser una constante de 8 bit, es decir que k puede tomar valores entre 0 y 255, éstos inclusive, según la instrucción a

utilizar

OPERACIONES ORIENTADAS A LITERALES Y DE

CONTROL

Nemotécnicos Operación Estados

afectados

ADDLW k ANDLW k CALL k

CLRWDT GOTO K

IORLW K MOVLW K RETFIE

RETLW K RETURN

SLEEP SUBLW K XORLW K

Sumar literal k a W AND entre k y W Llamar subrutina

Limpiar WDT Salta a dirección k

OR entre k y W Cargar W con literal k Retornar de interrupción

Retornar y cargar W con k Retornar de subrutina

Ir al modo de bajo consumo Restarle k a W

OR exclusiva entre k y W

C,DC,Z Z

-TO,-TD

Z

-TO,-TD C,DC,Z

Z

NOTACION PARA NUMEROS

Decimal D'100' ó .100 Hexadecimal H'64' ó 0x64 ó 64 Octal O'144' Binario B'01101100'

ASCII A'C' ó 'C'

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 43 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 43

NOTACION PARA REGISTROS Y LITERALES

w Registro W, similar al acumulador, es el registro de trabajo. f Campo de 5 bits (fffff), contiene la dirección del banco de

registros, que ocupa el banco 0 del área de datos. Direcciona uno de esos registros.

k Representa una constante de 8 bits. d Bit del código OP de la instrucción. Selecciona el destino donde se

guarda el resultado de una operación. Si d=0, el destino es W, y si d=1

el destino es f. b Determina la posición de un bit dentro de un registro de 8 bits, (o

sea, tomará valores entre 0 y 7)

SIMBOLOS

[] : Opciones. () : Contenido.

=> : Se asigna a ... <> : Campo de bits de un registro. E : Pertenece al conjunto ...

Label : Nombre de la etiqueta. TOS : Cima de la pila con 8 niveles en la gama media.

PC : Contador de programa que direcciona la memoria de instrucciones.

FLAGS

Los Flags o banderas son marcadores, representados por bits dentro del registro STATUS, y son:

Z : Flag de cero, se pone a 1 cuando una operación lógica o aritmética

da 0 (cero)como resultado. En cualquier otro caso se pone a 0. C : Flag de Carry, se pone a 1 cuando la operación que le afecta

sobrepasa el nivel de representación del procesador, en nuestro caso es

de 8 BIT's , de esta manera si sumamos a 0b11111111 un 0b00000011 el resultado sería 0b00000010 y el BIT de Carry pasaría a 1.

DC : Flag de carry del nibble inferior, este se comporta igual que el BIT de Carry, solo que el límite de representación son los 4 bits inferiores, de esta manera si tenemos 0b00001111 y sumamos 0b00000111, el

resultado será 0b00010110 y el BIT de DC se pone a 1, el BIT de Carry estará a 0 al no superarse los 8 bits y el de Z a 0 al ser el número

diferente de 0.

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 44 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 44

II. Set de instrucciones:

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 45 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 45

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 46 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 46

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 47 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 47

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 48 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 48

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 49 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 49

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 50 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 50

Práctica: Circuito de reloj y de reset.

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 51 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 51

Módulo 6: Periféricos del PIC.

1. Temporizador/Contador TMR0.

Una de las labores más habituales en los programas de control de dispositivos suele ser determinar intervalos concretos de tiempo, y recibe le nombre de

“temporizador” (timer) el elemento encargado de realizar esta función. También suele ser frecuente contar los impulsos que se producen en el exterior del sistema,

y el elemento destinado a este fin se denomina “contador”. Si las labores del temporizador o contador las asignamos al programa principal robarían mucho tiempo al procesador en detrimento de actividades más importantes. Por este

motivo se diseñan recursos específicamente orientados a estas misiones.

Los PIC16X84 poseen un temporizador/contador de 8 bits, llamado TMR0, que actúa de dos maneras diferentes:

1. Como contador de sucesos, que están representados por los impulsos que se aplican a la patilla RA4/T0CKI. Al llegar al valor FF H se desborda

el contador y, con el siguiente impulso, pasa a 00 H, advirtiendo esta circunstancia con la activación de un señalizador y/o provocando una interrupción.

2. Como temporizador, cuando se carga en el registro que implementa el recurso un valor inicial se incrementa con cada ciclo de instrucción

(Fosc/4) hasta que se desborda, o sea, pasa de FF H a 00 H y avisa poniendo a el bit señalizador y/o provocando una interrupción.

Para que el TMR0 funcione como un cantador de impulsos aplicados a la patilla T0CKI hay que poner a 1 el bit T0CS, que es el que ocupa la posición 5 del

registro OPTION. En esta situación, el registro TMR0, que es el ubicado en la dirección 1 del banco 0 de la memoria de datos, se incrementa con cada flanco

activo aplicado a la patilla T0CKI. El tipo de flanco activo se elige programando el bit T0SE, que es el que ocupa la posición 4 del registro OPTION. Si T0SE 0 1, el flanco activo es el de bajada, y si T0SE = 0, es el de subida. Cuando se desea que TMR0

funcione como temporizador el bit T0CS = 0.

En realidad, los PIC16X84 disponen de dos temporizadores, el TMR0 y el Perro Guardián (Watchdog). El primero actúa como principal y sobre él recae el control de tiempos y la cuenta de impulsos. El otro vigila que el programa no se

cuelgue, y para ello cada cierto tiempo comprueba si el programa se está ejecutando normalmente. En caso contrario, si el control está detenido en un bucle

infinito a la espera de algún acontecimiento que no se produce, el Perro Guardián “ladra”, lo que se traduce en un Reset que inicializa todo el sistema.

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 52 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 52

A menudo el TMR0 y el Perro Guardián precisan controlar largos intervalos de tiempo y necesitan aumentar la duración de los impulsos de reloj que les

incrementa. Para cubrir este requisito se dispone de un circuito programable denominado Divisor de frecuencia, que divide la frecuencia utilizada por diversos rangos. Para programar el comportamiento del TMR0, el Perro Guardián y el Divisor

de frecuencia se utilizan algunos bits del registro OPTION y de la Palabra de Configuración, que se verán más adelante. En la figura 10 se proporciona un

esquema simplificado de la arquitectura del circuito de control de tiempos usado en los PIC16X84.

Figura 10

El Divisor de frecuencias puede usarse con el TMR0 o con el WDT. Con el TMR0 actúa como Pre-divisor, es decir, los impulsos pasan primero por el Divisor y

luego se aplican al TMR0, una vez aumentada su duración. Con el WDT actúa después, realizando la función de Post-divisor. Los impulsos, que divide por un

rango el Divisor de frecuencia, pueden provenir de la señal de reloj interna (Fosc/4)

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 53 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 53

o de los que se aplican a la patilla T0CKI. El TMR0 se comporta como un registro de propósito específico (SFR) ubicado en la dirección 1 del banco 0 de la memoria de

datos. EN igual dirección, pero en el banco 1, se halla el registro OPTION. TMR0 puede ser leído y escrito en cualquier momento al estar conectado al

bus de datos. Funciona como un contador ascendente de 8 bits. Cuando funciona como temporizador conviene cargarle con el valor de los impulsos que se quiere

temporizar, pero expresados en complemento a 2. De esta manera, al llegar al número de impulsos deseados se desborda y al pasar por 00 H se activa el

señalizador TOIF y/o se produce una interrupción. Para calcular los tiempos a controlar con TMR0 se utilizan las siguientes

fórmulas prácticas.

Temporización = 4 • Tosc • (Valor cargado en TMR0) • (Rango del Divisor)

Valor a cargar en TMR= = Temporización/4 • Tosc • Rango del Divisor

En cualquier momento se puede leer el valor que contiene TMR0, sin detener su cuenta. En la figura 11 se ofrece el esquema de funcionamiento de TMR0. Obsérvese que hay un bloque que retrasa 2 ciclos la cuenta para sincronizar el

momento del incremento producido por la señal aplicada a T0CKI con el que se producen los impulsos internos de reloj. Cuando se escribe TMR0 se retrasan 2

ciclos su reincremento y se pone a 0 el Divisor de frecuencia.

Figura 11

El registro OPTION.

La misión principal de este registro es controlar TMR0 y el Divisor de frecuencia. Ocupa la posición 81 H de la memoria de datos, que equivale a la

dirección 1 del banco 1. EL bit T0CS (Timer 0 Clock edge Select) selecciona en el

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 54 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 54

multiplexor MPX1 la procedencia de los impulsos de reloj, que pueden ser del oscilador interno (Fosc/4) o los que se aplican desde el exterior por la patilla T0CKI.

El bit T0SE (Timer 0 clock Source sElect) elige el tipo de flanco activo en los impulsos externos. El bit PSA del registro OPTION asigna el Divisor de frecuencia al TMR0 (PSA= 0) o al WDT (PSA = 1).

Los 3 bits de menos peso de OPTION seleccionan el rango por el que divide el

Divisor de frecuencia los impulsos que se le aplican en su entrada. El bit 6 INTEDG (INTerrupt EDGe) sirve para determinar el flanco activo que provocará una

interrupción externa al aplicarse a la patilla RB0/INT. Un 1 si es de subida y un 0 si es de bajada. El bit 7 RBPU# (RB Pull-Up) activa, si vale 0, o desactiva, cuando vale 1, las resistencias Pull-Up que pueden conectarse en las líneas de la Puerta B. .La

figura 12 muestra la distribución y función de los bits de OPTION.

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 55 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 55

Figura 12

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 56 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 56

El Perro Gardián (WDT).

Se trata de un contador interno de 8 bits que origina un Reset cuando se desborda. Su control de tiempos es independiente del TMR0 y está basado en un simple circuito R-C. Su actuación es opcional y puede bloquearse para que no

funcione programando el bit WDTE de la palabra de Configuración. La temporización nominal con la que se halla programado el Perro Guardián es de 18 ms, pero

utilizando el Divisor de frecuencia puede aumentarse hasta alcanzar los 2,3 segundos.

Para evitar que se desborde el Perro Guardián hay que refrescarle previamente. En realidad este refresco consiste en ponerle a cero mediante las

instrucciones clrwdt y sleep. El programador debe analizar las instrucciones de la tarea y situar alguna de esas dos en sitios estratégicos por los que pase el flujo de

control antes que transcurra el tiempo asignado al WDT. De esta manera si el programa se cuelga no se refresca el Perro Guardián y se produce la reinicialización del sistema.

La instrucción clrwdt borra al WDT y reinicia su cuenta. Sin embargo, la

instrucción sleep, además de borrar WDT detiene al sistema y lo mete en un estado de reposo o de bajo consumo. Si no se desactiva el Perro Guardián al entrar en modo de reposo, al completar su cuenta provocará un Reset y sacará al

microcontrolador del modo de bajo consumo. Para desactivar el Perro Guardián hay que escribir un 0 en el bit 2 (WDTE) de la Palabra de Configuración.

Las Puertas de E/S.

Los PIC16X84 sólo disponen de dos puertas de E/S. La Puerta A posee 5 líneas, RA0-RA4, y una de ellas soporta dos funciones multiplexadas. Se trata de

RA4/TOCKI, que puede actuar como línea de E/S o como la patilla por la que se reciben los impulsos que debe contar TMR0. La Puerta B tiene 8 líneas, RB0-RB7, y también tiene una con funciones multiplexadas, la RB0/INT, que, además de línea

típica de E/S, también sirve como patilla por la que reciben los impulsos externos que provocan una interrupción.

Cada línea de E/S puede configurarse independientemente como entrada o como salida, según se ponga a 1 o a 0, respectivamente, el bit asociado del registro

de configuración de cada puerta (TRISA y TRISB). Se llaman PUERTAA y PUERTAB los registros que guardan la información que entra o sale por la puerta y ocupan las

direcciones 5 y 6 del banco 0 de la memoria de datos. Los registros de configuración TRISA y TRISB ocupan las mismas direcciones pero en el banco 1. Al reiniciarse el PIC todos los bits de los registros TRIS quedan a 1, con lo que las

líneas de las puertas quedan configuradas como entradas. Cada línea de salida puede suministrar una corriente máxima de 20 mA y si es de entrada puede

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 57 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 57

absorber hasta 25 mA. Al existir una limitación en la disipación máxima de la potencia del chip se restringe la corriente máxima de absorción de la Puerta A a 80

mA y la de suministro a 50 mA. La Puerta B puede absorber un máximo de 150 mA y suministrar un total de 100 mA.

La Puerta A.

Las líneas RA3-RA0 admiten niveles de entrada TTL y de salida CMOS. La línea RA4/TOCKI dispone de un circuito Trigger Schmitt que proporciona una buena

inmunidad al ruido y la salida tiene drenador abierto. RA4 multiplexa su función de E/S con la entrada de impulsos externos para el TMR0. En el circuito de la figura 13 se muestra la adaptación de las patillas RA3-RA0 a las señales internas del

procesador.

Figura 13

Cuando se lee una línea de la Puerta A se recoge el nivel lógico que tiene en

ese momento. Las líneas cuando actúan como salidas están conectadas a unos

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 58 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 58

biestable, lo que significa que sus patillas sacan el nivel lógico que se haya cargado por última vez en el registro PUERTAA. La escritura de una puerta, tal y como se ve

en la figura 13, implica que primero se deposita el nivel lógico en la línea correspondiente del bus interno de datos y se activa la señal WRITE, lo que origina el almacenamiento de dicho nivel en el biestable. En esta situación, el biestable de

configuración (TRIS) debería tener valor 0 para que actuase como salida. Con estos valores la puerta OR tendría un 0 a su salida y la AND también. Estos valores

producen la conducción de los transistores MOS, en función del valor escrito, dando como salida final VDD o VSS (1 ó 0 respectivamente).

Si una línea actúa como entrada, el nivel lógico depositado en ella desde el exterior pasa a la línea correspondiente del bus interno de datos cuando se activa la

señal READ y se hace conductor el dispositivo triestado que les une. Al programarse como entrada, los dos transistores MOS de salida quedan bloqueados y la línea de

alta impedancia. Téngase en cuenta que cuando se lee una línea de entrada se obtiene el estado actual que tiene su patilla correspondiente (almacenado en el tercer biestable) y no el que haya almacenado en el biestable de datos. La

información presente en una línea de entrada se muestrea al iniciarse el ciclo de instrucción y debe matenerse estable durante su desarrollo.

La Puerta B.

Consta de 8 líneas bidireccionales de E/S, RB7-RB0, cuya información se almacena en el registro PUERTAB, que ocupa la dirección 6 del banco 0. El registro

de configuración TRISB ocupa la misma dirección pero del banco 1. La línea RB0/INT tiene dos funciones multiplexadas; además de patilla de E/S actúa como la patilla para la petición de una interrupción externa, cuando se autoriza esta función

mediante la adecuada programación del registro INTCON.

A todas las líneas de esta puerta se las permite conectar una resistencia pull-up de elevado valor con el positivo de la alimentación. Para este fin hay que programar en el registro OPTION el bit RBPU# = 0, afectando la conexión de la

resistencia a todas las líneas. Con el Reset todas las líneas quedan configuradas como entradas y se desactivan las resistencias de pull-up.

Las cuatro líneas de más peso, RB7-RB4, pueden programarse para soportar una misión especial. Cuando las 4 líneas actúan como entradas se las puede

programar para generar una interrupción si alguna de ellas cambia su estado lógico. Esta posibilidad es muy práctica en el control de teclados. En la figura 14 se

muestra el esquema de conexionado entre las patillas RB7-RB4 y las líneas correspondientes del bus interno.

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 59 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 59

Figura 14

El estado de las patillas RB7-RB4 en modo de entrada se compara con el valor antiguo que tenían y que se había almacenado en un biestable durante la última lectura de la Puerta B. El cambio de estado en alguna de esas líneas origina

una interrupción y la activación del señalizador RBIF. La línea RB6 también se utiliza para la grabación serie de la memoria de programas y sirve para soportar la señal

de reloj. La línea RB7 constituye la entrada de los datos en serie. La Palabra de CONFIGURACION.

Se trata de una posición reservada de la memoria de programa situada en la

dirección 2007 H y accesible únicamente durante el proceso de grabación. Al escribirse el programa de la aplicación es necesario grabar el contenido de esta posición de acuerdo con las características del sistema. En la figura 15 se muestra

la distribución y asignación de los 14 bits de la Palabra de Configuración de los PIC16F84, que tienen las siguientes funciones:

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 60 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 60

CP CP CP CP CP CP CP CP CP CP PWRT

E#

WDT

E

FOSC

1

FOSC

0

Figura 15

CP: BITS DE PROTECCIÓN DE LA MEMORIA DE CÓDIGO 1: No protegida

0: Protegida. El programa no se puede leer, evitando copias. Tampoco se puede sobreescribir. Además evita que pueda ser accedida la memoria EEPROM de

datos y, finalmente, si se modifica el bit CP de 0 a 1, se borra completamente la EEPROM.

PWRTE: ACTIVACIÓN DEL TEMPORIZADOR “POWER-UP” El temporizador “power-up” retrasa 72 ms la puesta en marcha o Reset que

se produce al conectar la alimentación al PIC, para garantizar la estabilidad de la tensión aplicada. 1: Desactivado

0: Activado

WDT: ACTIVACIÓN DEL PERRO GUARDIÁN 1: Activado el WDT 0: Desactivado

FOSC1-FOSC0: SELECCIÓN DEL OSCILADOR UTILIZADO

1-1: Oscilador RC 1-0: Oscilador HS 0-1: Oscilador XT

0-0: Oscilador LP

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 61 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 61

Practica: Interruptores y led’s.

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 62 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 62

Módulo 7: Manejo de Interrupciones

Interrupciones

Los 16CXX agregan la posibilidad de contar con sistema de interrupciones. Este sistema consiste en un mecanismo por el cual un evento interno o externo, asincrónico respecto del programa, puede interrumpir la ejecución de éste

produciendo automáticamente un salto a una subrutina de atención, de manera que pueda atender inmediatamente el evento, y retomar luego la ejecución del

programa exactamente en donde estaba al momento de ser interrumpido. Este mecanismo es muy útil por ejemplo para el manejo de timers o rutinas que deben repetirse periódicamente (refresh de display, antirebote de teclado, etc.), detección

de pulsos externos, recepción de datos, etc. Existen de tres a doce eventos que pueden generar interrupciones en los

PIC16CXX existentes hasta el momento, pero nada impide que puedan agregarse más en versiones futuras. Funcionamiento

En los 16CXX las interrupciones se comportan casi exactamente igual que las subrutinas. Desde el punto de vista del control del programa, al producirse una

interrupción se produce el mismo efecto que ocurriría si el programa tuviese un CALL 0004h en el punto en que se produjo la interrupción. En uno de los registros de control del sistema de interrupciones existe un bit de habilitación general de

interrupciones GIE, que debe ser programado en 1 para que las interrupciones puedan actuar. Al producirse una interrupción, este bit se borra automáticamente

para evitar nuevas interrupciones. La instrucción RETFIE que se utiliza al final de la rutina de interrupción, es idéntica a un retorno de subrutina, salvo que además coloca en uno automáticamente el bit GIE volviendo a habilitar las interrupciones.

Dentro de la rutina de interrupción, el programa deberá probar el estado de los flags de interrupción de cada una de las fuentes habilitadas, para detectar cual fue

la que causo la interrupción y así decidir que acción tomar. Causas de Interrupción.

La señal que produce la interrupción es en realidad una sola, que resulta de la combinación de todas las fuentes posibles y de los bits de habilitación. Existen dos grupos de fuentes, unas que se habilitan con solo colocar en uno el bit GIE, y otras

que además necesitan que este puesto a uno el bit PEIE. En algunas versiones de los 16CXX solo existe el primer grupo. Además, cada fuente de interrupciones tiene

su respectivo bit de habilitación individual. Las fuentes de interrupción varían con cada versión, y pueden ser por

ejemplo:

· Interrupción externa por pin RB0/INT · Desborde del Timer 0 o RTCC

· Cambio en el estado de los bits 4 a 7 del puerto B · Desborde del timer 1 · Desborde del timer 2

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 63 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 63

· Interrupción del capture/compare 1 · Interrupción del capture/compare 2

· transmisión o recepción de un caracter por la interface serie sincrónica · transmisión o recepción de un caracter por la interface serie asincrónica · Fin de conversión A/D

· Lectura/escritura del puerto paralelo de comunicación con otros microprocesadores

· Escritura de EEPROM finalizada Los PIC16X84 tienen 4 causas o fuentes posibles de interrupción:

1ª Activación de la patilla RB0/INT 2ª Desbordamiento del temporizador TMR0

3ª Cambio de estado en una de las 4 patillas de más peso (RB7-RB4) de la Puerta B

4ª Finalización de la escritura en la EEPROM de datos Cuando ocurre cualquiera de los 4 sucesos indicados se origina una petición de

interrupción, que si se acepta y se atiende comienza depositando el valor del PC actual en la Pila, poniendo el bit GIE = 0 y cargando en el PC el valor 0004 H, que

es el Vector de Interrupción donde se desvía el flujo de control. Cada fuente de interrupción dispone de un señalizador o “flag”, que es un bit que se pone automáticamente a 1 cuando se produce. Además cada fuente de interrupción tiene

otro bit de permiso, que según su valor permite o prohibe la realización de dicha interrupción.

El Registro de Control de Interrupciones INTCON.

La mayor parte de los señalizadores y bits de permiso de las fuentes de interrupción en los PIC16X84 están implementados sobre los bits del registro INTCON, que

ocupa la dirección 0B H del banco 0, hallándose duplicado en el banco 1. El significado de cada bit, que se muestra en la figura 17, es el siguiente:

GIE EEIE T0IE INTE RBIE T0IF INTF RBIF

Figura 17

GIE: Permiso Global de Interrupciones 0: Prohíbe todas las interrupciones.

1: Permite la ejecución de todas las interrupciones, cuyos bits de permiso individuales también las permitan.

EEIE: Permiso de Interrupción por fin de escritura en la EEPROM 0: Prohíbe que se produzca esta interrupción.

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 64 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 64

1: Permite que se origine esta interrupción cuando termina la escritura en la EEPROM de datos.

T0IE: Permiso de Interrupción por sobrepasamiento del TMR0 0: Prohíbe esta interrupción.

1: Permite una interrupción al desbordarse el TMR0.

INTE: Permiso de Interrupción por activación de la patilla RB0/INT 0: Prohíbe esta interrupción.

1: Permite la interrupción al activarse RB0/INT. RBIE: Permiso de Interrupción por cambio de estado en RB7-RB4

0: Prohíbe esta interrupción 1: Permite esta interrupción.

T0IF: Señalizador de sobrepasamiento del TMR0 0: Indica que el TMR0 no se ha desbordado.

1: Toma este valor cuando ha ocurrido el desbordamiento.

INTF: Señalizador de activación de la patilla RB0/INT 0: Indica que RB0/INT aún no se ha activado. 1: Se pone a 1 al activarse RB0/INT.

RBIF: Señalizador de cambio de estado en las patillas RB7-RB4

0: No ha cambiado el estado de RB7-RB4. 1: Pasa a 1 cuando cambia el estado de alguna de esas líneas.

Siempre que se produzca una interrupción por cualquier causa, GIE=1 y el PC se carga con el valor 0004 H, que es el Vector de Interrupción. Para conocer que causa

ha provocado la interrupción se exploran los señalizadores, tres de los cuales se ubican en el registro INTCON y el cuarto, EEIF, que se pone a 1 cuando finaliza la escritura en le EEPROM, se halla en el bit 4 del registro EECON1. Los señalizadores

deben ponerse a 0 por programa antes del retorno de la interrupción y son operativos aunque la interrupción esté prohíbida con su bit de permiso

correspondiente. Interrupción Externa INT. Esta fuente de interrupciones es sumamente importante para atender los

acontecimientos externos en tiempo real. Cuando ocurre alguno de ellos activa la patilla RB0/INT y se hace una petición de interrupción. Entonces, de forma

automática, el bit INTF=1 y, si el bit de permiso INTE=1 se autoriza el desarrollo de la interrupción. Mediante el bit 6, llamado INTDEG, del registro OPTION se puede seleccionar cual

sereá el flanco activo en RB0/INT. Si se desea que sea ascendente se escribe un 1 en dicho bit, y si se desea descendente se escribe un 0. El procesador explora el

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 65 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 65

señalizador INTF al final del primer ciclo de reloj de cada ciclo de instrucción. Recuérdese que cada ciclo de instrucción constaba de 4 ciclos de reloj: Q1, Q2, Q3 y

Q4. Al terminar Q1 se exploran los señalizadores produciéndose un período de latencia de 3 ó 4 ciclos de instrucción desde el momento que hay un señalizador activado hasta que se inicializa la interrupción.

Interrupción por desbordamiento del TMR0.

Cuando el TMR0 se desborda y pasa del valor FF H al 00 H, el señalizador T0IF se

pone automáticamente a 1. Sí además, el bit de permiso de interrupción del TMR0 T0IE=1 y el bit de Permiso Global de Interrupciones GIE=1, se produce una interrupción.

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 66 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 66

Practica: 7 Segmentos.

Practica: 7 Segmentos2.

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 67 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 67

Practica: Contador.

Practica: Teclado Matricial.

INSTITUTO DE FORMACIÓN TÉCNICA LEÓN XIII

INSTITUTO DE FORMACIÓN TÉCNICA

LEÓN XIII

E04 -Total 0702.doc Página 68 de

68

INSTITUTO DE FOMACION TÉCNICA LEON XIII 68

Practica: Motor Paso a Paso.