Sunteți pe pagina 1din 15

Contenido

BITS DE CONFIGURACION. ............................................................................................................................ 2


ORGANIZACIÓN DE MEMORIA. ..................................................................................................................... 3
REGISTROS PRINCIPALES DEL MICROCONTROLADOR. ................................................................................. 6
DISPOSITIVOS DE ENTRADA Y SALIDA. .......................................................................................................... 6
CONVETIDOR ANALOGICO DIGITAL .............................................................................................................. 9
CONFIGURACION. ..................................................................................................................................... 9
CONFIGURACIÓN DE PUERTOS. ............................................................................................................ 9
CONFIGURACIÓN DE CANALES. ............................................................................................................ 9
SELECCIONA DE VOLTAJE DEL ADC. ...................................................................................................... 9
FUENTE DE RELOJ PARA LA CONVERSIÓN DEL ADC. ........................................................................... 10
CONTROL DE INTERRUPCIÓN. ............................................................................................................. 10
FORMATO DE RESULTADOS. ............................................................................................................... 10
OPERACIÓN DEL ADC. ............................................................................................................................. 11
MANEJO DE PERIFERICOS ESPECIALES. ....................................................................................................... 11
DISPLAY DE 7 SEGMENTOS. .................................................................................................................... 11
PANTALLA LCD ........................................................................................................................................ 12
TECLADO MATRICIAL............................................................................................................................... 12
TEMPORIZADORES. ..................................................................................................................................... 13
TIMER0 .................................................................................................................................................... 13
INTERRUPCIONES. ....................................................................................................................................... 14
APUNTES PARA EL ETS DE MICROCONTROLADORES E INTERFAZ.

BITS DE CONFIGURACION.
Todos los PIC disponen de un cierto número de bits para configurar el microcontrolador. Estos bits de
configuración esta disponibles en memoria no volátil (EEPROM). Estos bits tienen la característica de no
ser modificables durante la ejecución de programa almacenado en la memoria ROM, una vez que estos
bits han tomado algún valor durante la programación de PIC, ya no pueden ser modificados por el
programa de la aplicación.

Los bits de cpnfiguracion permiten que el usuario programe ciertas caracteriticas del dispositivo para
adaptarlo mejor a las necesidades de la aplicación. Una vez que el microcontrolador se ha puesto en
marcha, estos bits determinaran la forma en que operara el mismo.

 SELECCIÓN DE OSCILADOR.
 PERRO GUARDIAN
 PROTECCION DE LA MEMORIA
 PROTECCION DE LA MEMORIA EEPROM
 TIPO DE RESET
El reinicio de un microcontrolador hace que el dispositivo va a un estado conocido. Mientras
se encuentra transitoriamente en estado de reinicio, el dispositivo esta detenido, no ejecuta
ninguna instrucción. En particular, cuando un PIC sale de un estado de reset, el contador del
programa se pone en 0, de modo que la siguiente instrucción que se ejecuta es la que está
en esa dirección de memoria de programa.
o RESET EXTERNO
o RESET POR ENCENDIDO
o RESET POR DESBORDAMIENTO DEL WDT
 El perro guardian esta realizado mediante un oscilador independiente del
oscilador principal, de modo que funciona durante el modo de bajo consumo. Si
el contador se desborda mientras el microcontrolador está operando
normalmente se genera un reset.
Por el contrario, si se desborda el perro guardia en un estado de bajo consumo,
el microcontrolador despierta y se ejecuta la siguiente instrucción que está a
continuación de la instrucción SLEEP.
o RESET POR FALLO DE ALIMENTACION
 Este fallo ocurre cuando hay una disminución bresca y transitoria de la tensión
de alimentación. El microcontrolador incluye un circuito que produce un reinicio
en estas condiciones y mantiene dicho estado mientras la tensión de
alimentación este por debajo de la tensión de umbral. Una vez que la
alimentación se ha restablecido, el reset se mantiene por unos 72 ms más, este
retardo es generado por el temporizador PWRT. Con este retardo se garantiza
que el oscilador principal y el voltaje de alimentación este estable.
El desbordamiento del perro guardia ocurre cada 18 ms, para evitar que el
contador se desborde hay que poner el valor en 0 por medio de la instrucción
CLRWDT. Este tiempo se puede ampliar por medio de una un post-divisor, se
realiza con los Bits PS2, PS1, PS0 del registro Option. El Bit PSA debe ser 1 para
que se asigne al WDT.
PS2-PS0 FACTOR DE DIVISION TIEMPO DE DESBORDAMIENTO
000 1:1 18 ms
001 1:2 36 ms
010 1:4 72 ms
011 1:8 144 ms
100 1:16 288 ms
101 1:32 576 ms
110 1:64 1152 ms
111 1:128 2304 ms

 PROGRAMACION SERIAL EN CIRCUITO.


 INTERRUPCIONES

ORGANIZACIÓN DE MEMORIA.
MEMORIAS.

La memoria es la parte de un computador encargada de almacenar la información que éste maneja. En


ella se guardan tanto los programas como los datos implicados en la ejecución de los mismos. Estos datos
pueden ser temporales o por un largo periodo.

Estos dispositivos poseen la característica de poder escribir y leer datos según sea el caso. En términos
generales una memoria es un conjunto de registros, cada uno de los cuales almacena varios bits que esto
recibe el nombre de palabra. El tamaño de la palabra está comprendido entre 4 y 64 bits. Se denomina
byte al conjunto de 8 bits.

Se denomina celda al elemento de la memoria que es capaz de almacenar un bit. Cada palabra ocupa una
posición de memoria a la cual se le referencia mediante una dirección.

DIRECCIONAMIENTO.

Tanto al realizar una operación de lectura como de escritura sobre una memoria, debemos indicar cuál es
concretamente la posición a la que accedemos. Este proceso se denomina direccionar la memoria. Se
denomina dirección a un número binario que define una posición concreta de la memoria. Dado que para
indicar la dirección de cada una de las posiciones de memoria se emplea una cantidad determinada de
bits, el número de posiciones de una memoria siempre es una potencia de 2.

El número de posiciones en una memoria se puede calcular como

2𝑘
Donde:
K es el número de líneas del bus de direcciones.

Así de esta forma una memoria que posee un bus de direccionamiento de 8 bits, tiene 256 espacios o
posiciones de memoria puede almacenar hasta 256 palabras de 8 bits cada 1.

CAPACIDAD

Es el número total de bits que puede almacenar una memoria. Se obtiene multiplicando el número de
espacios o posiciones de memoria por el número de bits en cada palabra.

Para abreviar se utiliza la siguiente notación:

1 K = 1024.

DURACION DE LA INFORMACION.

En relación con la permanencia en la memoria de la información grabada, existen fundamentalmente


tres posibilidades:

Memorias permanentes.

Son las que contienen siempre la misma información y no pueden borrarse. La información puede
haberse grabado en el proceso de fabricación de la memoria o puede haberse efectuado
posteriormente en un proceso de grabado destructivo.

Memorias Volátiles.

Precisan estar continuamente alimentadas de energía, si se corta el suministro, se borra la información


que almacenan. En contraposición están las memorias no volátiles, en las que permanece la
información, aunque se suprima la alimentación.

Memorias con refresco.

La información dura solamente un tiempo determinado. Para que no desaparezca hay que grabarlas
constantemente.

CLASIFICACION

Existen 2 tipo fundamentales de memoria ROM.

MEMORIA ROM: De solo lectura.

En estas memorias los datos permanecen invariables de forma permanente. Son memorias no volátiles
porque, aunque se les suprima la alimentación eléctrica, mantienen inalterada la información grabada.

Dentro de este tipo de memorias encontramos 4 subtipos de memorias:

ROM o ROM con mascara: Se trata de la ROM básica caracterizada, porque ha sido el propio fabricante
del circuito integrado el encargado de grabar la información almacenada. Resultan las memorias mas
económicas pero no permiten la alteración de la información.
PROM o ROM programable: Se trata de una memoria de solo lectura, pero que puede grabar su contenido
el propio usuario empleando ciertas herramientas. El único detalle es que solo se pueden programar una
sola vez.

EPROM o ROM programable y borrable: Es un ROM programable por el usuario, que tiene la propiedad
de poder borrarse sometiéndola a una exposición de rayos ultravioleta, permitiendo grabar esta con una
información diferente.

EEPROM o ROM programable y borrable electrónicamente.

MEMORIA RAM: De lectura y escritura.

La memoria RAM recibe su nombre del acrónimo ingles << Random Access Memory>> o memoria de
acceso aleatorio, estas memorias permiten realizar tanto la operación de lectura como la de escritura,
pero su gran inconveniente es que son volátiles, perdiendo la información almacenada en sus celdas
cuando se suprime la alimentación.

Dentro de las memorias RAM encontramos 2 tipos fundamentales:

SRAM o RAM estática: Sus celdas se implementan mediante bi-estables que almacenan un bit

DRAM o RAM dinámica: Sus celdas son muy simples y están formadas por un condensador cuya carga
representa el bit de información.

El pic 16F887 tiene un contador de programa de 13 bits, una memoria ROM reservada para el programa
de 8K x 14 espacios disponibles, esta cuenta con tecnología Flash capaz de re-programarse cerca de
100,000.

Ahora que ya conocemos los conceptos básicos de memorias, es momento de abordar las características
principales del microcontrolador PIC 16F887.

Este microcontrolador de gama media posee tres tipos diferentes de memoria, ROM, RAM, EEPROM cada
una destinada a diversas funciones.

ROM: la memoria ROM se utiliza para guardar permanentemente el programa que se está ejecutando.
Tiene 8 K (8192 localidades de memoria) y posee tecnología Flash.

EEPROM: Esta memoria es muy similar a la memoria del programa, el contenido se queda guardado al
apagar el microcontrolador, sin embargo, este contenido se puede modificar.

MEMORIA RAM.

Este dispositivo cuenta con una memoria RAM dividida en 4 bancos, los cuales contienen 2 tipos de
registros, los registros de propósito general y los registros de propósito específico.

Los registros de propósito de propósito específico están localizados en los primeros 32 localidades de cada
banco, y los registros de propósito general implementados en memoria ram estatica, se encuentran
localizados en los últimos 96 localidades de cada banco.

Esta Memoria para el caso del microcontrolador PIC16F887 tiene 368 localidades de memoria, con 8 bits
cada una.
Para seleccionar cada banco, se utilizan los bits del registro STATUS RP1 y RP0.

REGISTROS PRINCIPALES DEL MICROCONTROLADOR.


REGISTRO DE ESTADO (STATUS).

Es un registro de 8 bits, este registro de estado contiene información sobre tres elementos muy
importantes del microcontrolador.

 Estado aritmético de la unidad lógica aritmética.


 El estado de reinicio
 Los bits de selección de banco de la memoria RAM.

Los bits son los siguientes:

bit Función Descripcion


7 Bit de selección de banco
IRP
(direccionamiento indirecto)
6 RP1 Por medio de la combinación binaria de estos 2 bits
Bits de selección de banco
5 RP0 es posible acceder a los 4 bancos de memoria
4 To Bit de tiempo fuera
3 PD Bit De corriente cortada
2 Toma el valor de 1 cuando el resultado de una
Z Bit Zero operación lógica o aritmética es 0
Toma el valor de 0 si el resultado es diferente de 0.
1 DC Bit de Acarreo o préstamo (4to bit)
0 C Bit de préstamo o acarreo (bit8)

DISPOSITIVOS DE ENTRADA Y SALIDA.


Existen 35 pines de propósito general disponibles, todo depende del periférico que se quiera accionar,
no todos los pines están disponibles como I/O de propósito general.

Registros PORTA y TRISA.

El puerto A es una vía bidireccional de 8 bits, está asociado con el registro de dirección TRISA, este
último registro lo que permite es hacer la selección entre salida o entrada. Dependiendo del valor que
tome este último registro se hace salida o entrada un pin.

Por otro lado, al leer o escribir el registro PORTA, lo que está sucediendo es que estamos leyendo o
escribiendo los pines de este puerto.
REGISTRO ANSEL.

El registro ANSEL es usado para configurar el modo de entrada de los puertos I/O, podemos seleccionar
analógico o digital. Configurando adecuadamente el bit del registro ANSEL podemos leer estados
digitales o podemos leer funciones analógicas.

ANSEL
0 Digital
1 Analógico.
PORTB Y TRISB

El puerto b es un puerto bidireccional con una anchura de 8 bits. El correspondiente registro de


dirección es TRISB, este registro permite configurar el modo de uso del puerto b, si en alguno de los bits
de este puerto se escribe un 0, el puerto b se configurará como una salida, y si se escribe un cero se
configura como una entrada.

TRISB
0 Salida
1 entrada
Al leer el registro del puerto b, se leen el estado de los pines, de la misma forma si se escribe en el
puerto b, este efecto se ve en el estado de los pines.

FUNCIONES ADICIONALES DEL PUERTO B.


 REGISTRO ANSELH

El registro ANSELH es utilizado para configurar la forma de entrada del puerto, gracias a este puerto
podemos tener 2 configuraciones en este puerto, analógico y digital.

ANSELH
0 Analógico
1 Digital

 INTERRUPCION POR CAMBIO EN EL PUERTO B

Todos los pines del puerto b son individualmente configurables como un pin de interrupción por cambio
de estado. Esta función de cada pin es controlada por el registro IOCB. La función de interrupción
funciona de la siguiente forma.

Se toma una lectura en el puerto b, la cual es comparada con una lectura anterior, de esta forma es
posible saber que bits sufrieron un cambio o un valor de inconsistencia con el valor anterior.

Una vez que se a detectado un cambio en algún bit del puerto b, se dispara la bandera RBIF en el
registro INTCON.

El usuario debe eliminar la inconsistencia en el puerto b, esto se hace en la rutina de atención de


interrupción leyendo o escribiendo el puerto b y limpiando el bit RBIF del registro INTCON.

1.
CONVETIDOR ANALOGICO DIGITAL
El módulo analógico digital permite la conversión de una señal analógica en una representación binaria
de 10 bits. El resultado de esta conversión se almacena en los registros ADRESL y ADRESH. Para
funcionar el convertidor analógico digital necesita de un voltaje de referencia que ese selecciona
mediante software y puede ser el voltaje interno o externo del microcontrolador.

CONFIGURACION.
Para configurar este periférico se necesitan tener las siguientes consideraciones para evitar tener
posibles errores.

CONFIGURACIÓN DE PUERTOS.
Cuando se desea convertir una señal analógica a una digital es necesario configurar los respecticos
puertos para que puedan aceptar la señal analógica de forma correcta, esto se hace con el registro
ANSEL y ANSELH, también es importante poner configurar los respectivos pines como una entrada por
medio del respectivo registro TRIS.

CONFIGURACIÓN DE CANALES.
Una vez que se ha configurado el puerto como analógico y los pines como una entrada, es importante
especificarle al microcontrolador en que canal del ADC se encuentra conectada la muestra que se quiere
transformar.

Los bits para seleccionar el canal son 4 y se nombran como CHS <3:0> pertenecen al registro ADCON0 y
la selección se lleva a cabo de la siguiente forma.

CHS<3:0> Selección de canal


0000 AN0
0001 AN1
0010 AN2
0011 AN3
0100 AN4
0101 AN5
0110 AN6
0111 AN7
1000 AN8
1001 AN9
1010 AN10
1011 AN11
1100 AN12
1101 AN13
1110 Vref
1111 REF FIX 0.6 VOLTS

SELECCIONA DE VOLTAJE DEL ADC.


Para el funcionamiento adecuado del ADC se necesita una fuente de voltaje de referencia, esta puede
ser interna externa, esta fuerte puede ser el voltaje de alimentación de microcontrolador o la referencia
a tierra.
Para seleccionar el voltaje de referencia se utilizan los bits VCFG1 y VCFG0 del registro ADCON1.

BIT VALOR SELECCION


VCFG0 0 VOLTAJE DE ALIMENTACION POSITIVA
1 VOLTAJE EN EL PIN DE REFERENCIA

BIT VALOR SELECCION


VCFG1 0 VOLTAJE DE ALIMENTACION NEGATIVA
1 VOLTAJE EN EL PIN DE REFERENCIA

FUENTE DE RELOJ PARA LA CONVERSIÓN DEL ADC.


El proceso de tomar una muestra de la señal y asignarle un valor binario requiere cierto tiempo, este
tiempo esta relacionado con una frecuencia de muestreo. Se designa 𝑇𝐴𝐷 como el tiempo necesario para
convertir un bit. En el caso de estar trabajando con los 10 bits del resultado, se requieren 12𝑇𝐴𝐷 para
llevar a cabo toda la conversión.

Es importante notar que la frecuencia de conversión se realiza mediante los bits ADCS del registro
ADCON0 y solo tenemos 4 posibilidades.

ADCS <1:0>
00 Fosc /2
01 Fosc/4
10 Fosc/8
11 FRC

CONTROL DE INTERRUPCIÓN.
El ADC puede generar una interrupción cuando ha terminado de realizar una conversión, la bandera de
control es el bit ADIF en el registro PIR1. Esta función se activa por medio del bit ADIE en el registro PIR1.

NOTA IMPORTANTE: UNA VEZ QUE SE HA PRODUCIDO UNA INTERRUPCION POR MEDIO DEL BIT ADIF,
ESTE DEBE SER LIMPIADO POR SOFTWARE SI SE QUIERE VOLVER A UTILIZAR.

FORMATO DE RESULTADOS.
Como se menciono anteriormente le ADC almacena el resultado de la conversión en 10 bits, como
sabemos el PIC 16F887 maneja registros de 8 bits, por lo que es imposible almacenar todo el resultado
en un solo registro. La solución de este problema consiste en utilizar 2 registros ADRESH y ADRESL. Este
resultado podemos darle un formato que nos pueda facilitar el trabajo con la información. Para esto
podemos usar los siguientes formatos.

La justificación se realiza mediante la configuración del Bit ADFM del registro ADCON1.

Estado Selección
0 Izquierda
1 Derecha
JUSTIFICACIÓN A LA IZQUIERDA.

Este formato almacena los bits más significativos del resultado en la parte alta del registro ADRESH.

JUSTIFICACION A LA DERECHA.

Este formato almacena los bits menos significativos del resultado en la parte baja del registro ADRESL.

OPERACIÓN DEL ADC.


1. para iniciar el ADC se debe activar primero el modulo por medio del bit ADON del registro
ADCON0. Este bit ADON debe tener un 1.
2. Posteriormente que se ha iniciado el modulo se necesita que el se inicie la adquisición de datos,
esto lo logramos por medio poner un valor de ‘1’ en el bit GO/DONE# del registro ADCON0.
NOTA: ESTOS 2 PASOS NO DEBEN DE HACERSE EN LA MISMA INSTRUCCIÓN. PARA
ELLO PODEMOS UTILIZAR UNA SUBRUTINA DE RETARDO QUE LE DE UN CORRECTO
FUNCIONAMIENTO AL ADC.
3. Cuando el modulo termine de realizar la conversión sucederán 3 eventos.
o El Bit GO/DONE se pondrá en un estado ‘0’.
o Se activará la bandera interrupción en el bit ADIF.
o Se actualizará el valor almacenado en los registros ADRESH y ADRESL.

MANEJO DE PERIFERICOS ESPECIALES.


DISPLAY DE 7 SEGMENTOS.
Un display de 7 segmentos es un dispositivo empleado para la representación de números, esta función
la realizan gracias a sus 7 leds distribuidos en forma de segmentos. Adicionalmente poseen un led extra
para representar las cantidades con punto decimal.

Dentro de la variedad de dispositivos encontramos 2 tipos de displays de 7 segmentos, Ánodo común y


cátodo común.

ANODO COMUN. El ánodo de un led es la parte positiva del elemento, en este tipo de configuración todos
los ánodos del dispositivo están conectados al mismo nodo, es necesario poner una resistencia en cada
led que limite la corriente (330 Ω), la característica principal de estos elementos es que, para encender 1
led asignado, se debe mandar un estado bajo (0 en estado lógico) para cerrar el circuito y permitir el flujo
de corriente.

CATODO COMUN. El cátodo es la parte negativa de un led, todos los cátodos están conectados al mismo
nodo, por lo que para encender un led del arreglo es necesario poner su respectiva resistencia limitadora
y mandar un estado alto (1 lógico) para permitir el flujo de corriente.

Cada led se activa de forma independiente y se identifica mediante una letra (A-G). de
esta forma es posible generar diversas combinaciones de 8 bits.

7 Seg Hex a b c d e f g
0 0x3F 1 1 1 1 1 1 0
1 0x06 0 1 1 0 0 0 0
2 0x5B 1 1 0 1 1 0 1
3 0x4F 1 1 1 1 0 0 1
4 0x66 0 1 1 0 0 1 1
5 0x6D 1 0 1 1 0 1 1
6 0x7D 1 0 1 1 1 1 1
7 0x07 1 1 1 0 0 0 0
8 0x7F 1 1 1 1 1 1 1
9 0x67 1 1 1 1 0 1 1

PANTALLA LCD
TECLADO MATRICIAL
TEMPORIZADORES.
Cada uno de los temporizadores disponibles en un PIC de clase media tiene un elemento vital en su
estructura, un contador sincrónico ascendente de 8 o 16 bits. Estos contadores se pueden programar
para contar pulsos internos o externos.

El numero almacenado en cada contador se puede leer o modificar mediante la lectura o escritura de
registros de funciones especiales asociados al temporizador en cuestión. El desbordamiento de los
contadores queda reportado en bits indicadores disponibles en estos registros, y puede generr también
una solicitud de interrupción al microcontrolador.

TIMER0
el timer0 es un modulo que funciona como temporizador/Contador.

 Posee un pre-escalador de 8 bits.


 Fuente de reloj interna o externa.
 Interrupción de desbordamiento.
 Selección de flanco (positiva o negativa)
 Capacidad de Lectura/Escritura

Los pulsos que llegan al bloque de sincronización, en este bloque, los pulsos que entran son muestreados
en dos instantes de tiempo dentro de cada ciclo máquina, de lo que resulta una señal cuyos flancos
ocurren en fase con el reloj del microcontrolador. Para que no se pierdan pulsos en la sincronización, es
necesario que los pulsos que entran en el bloque de sincronización permanezcan en 1 o 0 al menos
durante la mitad de tiempo que dura un ciclo máquina.

Existen 3 registros importantes para el correcto uso del timer0:

TMR0 REGISTER: Es el corazón del modulo TMR0, Puede ser leído o escrito en cualquier momento. El
TMR0 <7:0> se incrementará automáticamente por cada ciclo de instrucción.

OPTION REGISTER: En este registro se encuentra el bit <T0CS> para seleccionar el tipo de fuente que con
el que trabaja el timer0(Externa o Interna), También se encuentra el bit de selecciona de flanco <T0SE>,
así como también encontramos el bit de asignación del prescalador <PS2:PS0> (WDT o TMR0) y al final
se encuentran los bits para seleccionar el valor del prescalador.

INTCON REGISTER: En este registro se encuentra el bit T0IE que permite activar la interrupción por
desbordamiento de contador, así como también encontramos la bandera T0IF que se pone en 1 cuando
ocurre una interrupción por desbordamiento del contador.
TEMPORIZADOR TIMER0.

El tiempo empleado en una temporización se puede calcular a partir de un ciclo de instrucción, es decir,
si se usa un oscilador de 4 Mhz, 1 instrucción por cada microsegundo, necesitaremos el valor del divisor
de frecuencia, y además, también se necesita el valor cargado en el registro tmr0.

ECUACION:
4
𝑅𝐸𝑇𝐴𝑅𝐷𝑂 = ∗ (256 − 𝑇𝑀𝑅𝑂) ∗ 𝑃𝑅𝐸𝑆𝐶𝐴𝐿𝐸𝑅
𝑇𝑂𝑆𝐶
PASOS PARA CONFIGURAR EL TIMER0 COMO TEMPORIZADOR.

1. Seleccionar la fuente de oscilación para el timer0 (interna).


2. Seleccionar el flanco de detección.
3. Asignar un valor al prescalador (tmr0).
4. Configurar el registro OPTION_REG.
5. Determinar el valor adecuado para el registro auxiliar (en caso de retardos máximos a 65.536
ms).
6. Programar subrutina de atención a interrupciones.
7. Configurar el registro INTCON en caso de permitir la interrupción por desbordamiento.
8. Cargar el valor calculado en el registro tmr0.

Pasos para configurar el timer0 como contador.

1. Seleccionar el tipo de flanco que debe identificar el microcontrolador.


2. Configurar la fuente de oscilación del timer0 (externa)
3. Asignar el valor del prescalador al WDT
4. Configurar el registro OPTION_REG
5. Configurar subrutina de atención a interrupciones.
6. Configurar el registro INTCON en caso de permitir la interrupción por desbordamiento.
7. Limpiar la bandera de desbordamiento T0IF.

TIMER1

TIMER2

INTERRUPCIONES.
Una interrupción es un evento que hace que el microcontrolador deje de ejecutar la tarea que esta
realizando para atender dicho acontecimiento y luego regrese y continúe la tarea que esta realizando
antes de presentar la interrupción.

El PIC 16f887 puede presentar 10 tipos de interrupción diferentes

 interrupción externa por el terminal INT del microcontrolador.


 interrupción por cambio en el estado lógico de las entradas RB4:RB7 del puerto B.
 Interrupción por desbordamiento de los temporizadores TIMER0, TIMER1, TIMER2.
 interrupción por algún evento del módulo CCP
 interrupción por el puerto serie USART.
 interrupción por el convertidor A/D.

Aunque el PIC cuente con 10 fuentes de interrupción, solamente tiene un vector de atención a
interrupción, por lo que, si se habilitan varias interrupciones al momento de presentarse cualquier de
ellas, el programa saltara a la misma rutina de atención de interrupción. Es responsabilidad del
programador crear una rutina que identifique la fuente de interrupción.

Las interrupciones de los microcontroladores PIC de la gama media son enmascarables o fijas, de modo
que se pueden inhabilitar globalmente y además cada fuente de interrupción se puede habilitar o
inhabilitar individualmente.

El sistema que habilita o inhabilita globalmente las interrupciones es el bit GIE (Global Interruption
Enable) Del registro INTCON (Interrupt Control Register).

El registro INTCON es un registro leíble y escribible que contiene los diferentes bits de activación de
algunas fuentes de interrupción.

Estas fuentes de interrupción son:

 Bit de Encendido de la Interrupción por cambio en el puerto B.


 Bit de encendido de la interrupción por desbordamiento del TIMER0
 Bit de encendido de la entrada de interrupciones externas.
 Bit de encendido de interrupción en otros periféricos.

COMUNICACIÓN SERIAL.

S-ar putea să vă placă și