PIC_16F877_2
-
Upload
dan-tabarez -
Category
Documents
-
view
217 -
download
0
Transcript of PIC_16F877_2
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 1/67
Ing. Edgar Fernando Tipán C.1
PIC16F877
Microcontroladores
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 2/67
Ing. Edgar Fernando Tipán C.2
Contenidos:
Introducción
Características principales de los PICs PIC 16F877:
– Arquitectura
– Distribución de pines
– Pórticos
– Clases y distribución de la memoria
Registros especiales
Manejo de interrupciones y timers
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 3/67
Ing. Edgar Fernando Tipán C.3
Introducción
Un microcontrolador es un
circuito integradoprogramable el cual contienetodos los componentes de uncomputador. Es uncomputador completo de
limitadas prestaciones, queestá contenido en un únicochip.
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 4/67
Ing. Edgar Fernando Tipán C.4
Introducción
Por lo general se lo emplea para controlar el
funcionamiento de una única tarea y gracias a sureducido tamaño suele incorporarse en el propiodispositivo que controla, lo que se denominaEmbedded System.
Un microcontrolador normalmente dispone de unamemoria limitada, en la que se almacena un soloprograma.
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 5/67
Ing. Edgar Fernando Tipán C.5
Introducción
Las líneas de entrada y salida se conectan consensores y actuadores al dispositivo físico que
controlan. Una vez programado el microcontrolador sólo sirve
para atender la tarea para la que ha sido programado. Las ventajas de los microcontroladores son:
– Aumento de servicios y utilidades para el usuario.
– Aumento de la fiabilidad. – Reducción de tamaño en el producto acabado. – Mayor flexibilidad. – El Sistema es adaptable para futuros cambios
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 6/67
Ing. Edgar Fernando Tipán C.6
Introducción
Existen varios fabricantes de Microcontroladores perolas principales son: Intel, Atmel, Motorola y Microchip
Este curso se basa en el Microcontrolador PIC 16F877de Microchip, El AT89C51 de Atmel y la familiaMC68HCXX de Motorola.
La Programación de los mismo se realizara enlenguaje ensamblador.
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 7/67
Ing. Edgar Fernando Tipán C.7
Introducción
Los PIC (Peripheral Interface Controller) soncircuitos integrados de Microchip, que pertenecen a
la categoría de los microcontroladores. Los PICs se clasifican en familias en función de sus
características internas
El microprocesadorbásicamente está formadode la CPU y la ALU
MICROCONTROLADOR
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 8/67
Ing. Edgar Fernando Tipán C.8
Clasificación de Los PICs
Una variedad de opciones están disponibles. Dependiendo de laaplicación y requisitos de la producción, la opción apropiada deldispositivo puede seleccionarse. En función del tipo de memoria se
clasifican en: F, como en el PIC16F877. Estos dispositivos tienen memoria de
programa Flash y operan encima del rango de voltaje normal.
LF, como en el PIC16LF84. Tienen memoria de programa Flash yoperan encima de un rango de voltaje extendido
CR, como en el PIC16CR83. Estos dispositivos tienen memoria de
programa ROM y operan encima del rango de voltaje normal. LCR, como en el PIC16LCR84. Estos dispositivos tienen memoria de
programa ROM y operan encima de un rango de voltaje extendido.
CE, como en el PIC12CE518. Tienen memoria de programa ROM yoperan en el rango de voltaje normal y tienen memoria EEPROM.
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 9/67
Ing. Edgar Fernando Tipán C.9
Partes de un microcontrolador
Existen diferentes tipos de Microcontroladores PIC, con el finde que el diseñador pueda escoger el que mejor satisfaga las
necesidades del proyecto que desea realizar. Estas son:
GAMA ENANA: Son de la serie 12C(F)XXX, de 8 pines, 6lineas I/O digitales, reloj interno RC, Memoria de programaentre 512 y 1Kb, Memoria RAM de 25 a 41 Bytes y EEPROMde 16 Bytes(CE), y cuentan con varios recursos auxiliares
como Conversor A/D, Watch Dog Timer, Comparadores yTimer. El formato de sus instrucciones puede ser de 12 o 14bits y su set de instrucciones es de 33 o 35 instruccionesrespectivamente
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 10/67
Ing. Edgar Fernando Tipán C.10
Partes de un microcontrolador
GAMA MEDIA: PIC16C(F)XXX de 18 hasta 40 pines, Es una gamamuy variada y completa, donde se encuentra el PIC16C(F)877; (C =Memoria EEPROM; F = Memoria FLASH). Esta gama poseeinstrucciones de 14 bits, con un Set de 35 instrucciones. Dispone deinterrupciones y una pila de 8 niveles que permiten el anidamiento desubrutinas.
Esta gama se clasifica en las siguientes subfamilias: Gama media estándar (PIC16C55X) Gama media con comparador analógico (PIC 16C62x/64X/66X)
Gama media con módulos de captura (CCP), modulación de anchurade impulsos (PWM) y puerto serial (PIC16C6X)
Gama media con ADC de 8 bits (PIC16C7X) Gama media con memoria Flash y EEPROM ( PIC 16X8X)Donde el PIC 16F877 pertenece a esta familia y equivale a los 16C6XX
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 11/67
Ing. Edgar Fernando Tipán C.11
Partes de un microcontrolador
GAMA ALTA: PIC17CXXX y PIC18C(F)XXX, los hay de 40hasta 68 pines, alcanzan las 58 instrucciones de 16 bits.
Disponen de un sistema de gestión de interrupcionesvectorizadas muy potente. También incluyen variadoscontroladores de periféricos, Puertos seriales y Paralelos.
La característica más destacable de estos microcontroladoreses su arquitectura abierta, que consiste en la posibilidad deampliación con elementos externos. Para tal fin, los pinessacan al exterior las líneas de los buses de datos, direccionesy control, a las que se conectan memorias o controladoresperiféricos. Esta filosofía de construcción del sistema es la quese emplea en los Microprocesadores y no suele ser habitualcuando se emplean microcontroladores.
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 12/67
Ing. Edgar Fernando Tipán C.12
Partes de un microcontrolador
El procesador Memoria de programa Memoria de datos Líneas de entrada y salida (I/O) Recursos auxiliares
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 13/67
Ing. Edgar Fernando Tipán C.13
Características de los PICs
Los PIC utilizan arquitectura Harvard en lugar de latradicional Von Neumann .
La arquitectura Harvard se caracteriza por tener dosmemorias independientes, una para instrucciones yotra para datos. Cada una tiene su propio bus por loque la CPU puede acceder simultáneamente a lasdos. Esto agilita el proceso de lectura y ejecuciónde las instrucciones
Arquitectura Harvard
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 14/67
Ing. Edgar Fernando Tipán C.14
El Procesador
Otra característica importante es que el procesadores de tipo RISC con un repertorio pequeño y sencillo
de 35 instrucciones, de forma que la mayor parte delas instrucciones se ejecutan en un ciclo demáquina, a excepción de las de salto.
Además se introduce una segmentación (pipeline )
en el procesador, dividiendo la ejecución de unainstrucción en varias etapas. De esta forma sepuede trabajar sobre varias instruccionessimultáneamente cada una en una etapa distinta.
RISC: Reduced Instruction Set Computer
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 15/67
Ing. Edgar Fernando Tipán C.15
Memoria de programa
Es una memoria de almacenamiento no volátil(PROM, EPROM, EEPROM o FLASH), en la que se
almacena el programa que gobierna la aplicación ala que está destinado el microcontrolador.
En general tiene un tamaño reducido desde 512 a8K palabras en la familia de los PIC. Además al
tener una memoria específica de programa sepuede adecuar el tamaño de las instrucciones y losbuses al más apropiado para cada aplicación.
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 16/67
Ing. Edgar Fernando Tipán C.16
Memoria de datos
La memoria para almacenar datos debe ser delectura y escritura, por lo que en general se usa
memoria RAM, aunque algunos micros llevanmemoria EEPROM para evitar la pérdida de losdatos en caso de corte en el suministro de corriente.
Los tamaños son mucho más reducidos que la
memoria de programa; por ejemplo el PIC16F84Adispone solamente de 68 bytes de datos RAM y 64bytes de EEPROM y el PIC16F877 tiene 368 bytesde RAM y 256 bytes de EEPROM
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 17/67
Ing. Edgar Fernando Tipán C.17
Líneas de entrada/salida
Estas líneas son los pines del microcontrolador que
sirven para comunicarse con los periféricosconectados al sistema.
Pueden enviar o recibir datos digitales al o desde elperiférico. Manejan la información en paralelo y seagrupan en conjuntos que reciben el nombre de
puertos o pórticos. Los pines de los puertospueden configurarse independientemente cada unade ellos como entrada o salida.
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 18/67
Ing. Edgar Fernando Tipán C.18
Oscilador
Oscilador tipo "HS" para frecuencias mayores de 4Mhz. En el caso del PIC16F877 podrá instalarse
un oscilador hasta 20 Mhz. Oscilador "XT" para frecuencias de 455KHz a 4
Mhz.
Oscilador tipo "LP" para frecuencias entre 32 y
200 Khz., usando un cristal de baja potencia. Oscilador tipo "RC" para frecuencias no mayores a
5.5 Mhz., usando resistencia y capacitor.
Oscilador “INTRC”es un reloj interno de 4MHz
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 19/67
Ing. Edgar Fernando Tipán C.19
Banco de registros
Los registros son las diferentes posiciones de lamemoria RAM.
Se clasifican en Especiales y Generales.
Los Especiales son registros reservados para lasconfiguraciones internas del PIC y los Generalespara el almacenamiento de datos del programa.
La memoria RAM se divide en 1, 2 o 4 Bancos enfunción del tamaño de la memoria, por lo que sedebe seleccionar el banco correspondiente antesde almacenar o leer un determinado registro
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 20/67
Ing. Edgar Fernando Tipán C.20
Temporizadores
Los temporizadores son contadores descendentes yprogramables, en los cuales se carga un valor inicial
y se decrementa en función de los pulsos de relojrecibidos y su configuración.
El Watch Dog Timer (WDT) se considera untemporizador especial, que permite el reseteo delPIC pasado un tiempo de espera programado sinser reiniciado por software
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 21/67
Ing. Edgar Fernando Tipán C.21
Oscilador
Oscilador tipo "HS" para frecuencias mayores de 4Mhz. En el caso del PIC16F877 podrá instalarse
un oscilador hasta 20 Mhz. Oscilador "XT" para frecuencias de 455KHz a 4
Mhz.
Oscilador tipo "LP" para frecuencias entre 32 y
200 Khz., usando un cristal de baja potencia. Oscilador tipo "RC" para frecuencias no mayores a
5.5 Mhz., usando resistencia y capacitor.
Oscilador “INTRC” es un reloj interno RC de 4MHz
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 22/67
Ing. Edgar Fernando Tipán C.22
Contador de Programa (PC) y Pila
Es el que establece el flujo de losdireccionamientos de la memoria deprograma, su tamaño depende de lacapacidad de la memoria de programa, por
ejemplo para un PIC de 512 es de 9 Bits ypara uno de 8K es de 13 Bits.
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 23/67
Ing. Edgar Fernando Tipán C.23
Reset
Posee un MCLR (Master Clear) externo, quegenera una reiniciación del PIC al recibir un pulso
bajo en el pin correspondiente. Tiene un POR (Power-On Reset) que se genera
siempre que la tensión desciende entre 2.1V y1.5V.
Por desbordamiento del WDT. Por despertar de un comando SLEEP
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 24/67
Ing. Edgar Fernando Tipán C.24
Recursos auxiliares
Temporizadores para controlar los tiempos.
Perro guardián (Watch Dog Timer ).
Conversor A/D para recibir señales analógicas.
Comparador analógico para comprobar el valor deuna señal analógica.
Sistema de protección ante fallos de alimentación. Estado de reposo, para minimizar el consumo de
energía.
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 25/67
Ing. Edgar Fernando Tipán C.25
PIC 16F877
En la actualidad es uno de los PICs más completos,cuenta con:
Comparadores Analógicos. Tres temporizadores TMR0 y TMR2 de 8 bits y
TMR1 de 16 bits.
Memoria de Programa de 8 K de 14 bits, FLASH,
por lo que abarca un rango de direcciones desde00000H a la 1FFFH.
Memoria de Datos RAM de 368 bytes.
Memoria de Datos EEPROM de 256 bytes.
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 26/67
Ing. Edgar Fernando Tipán C.26
Características del PIC 16F877
Tiene 14 tipos diferentes de interrupciones.
Un juego de 35 instrucciones RISC.
El encapsulado es de plástico DIP con 40 pines.
Permite un rango de frecuencias de trabajo de hasta20 MHz.
Soporta osciladores de tipo externo: LP, RC, HS,
XT. No tiene oscilador interno. Perro guardián Watch Dog Timer (WDT) con el reloj
RC interno para mejor seguridad.
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 27/67
Ing. Edgar Fernando Tipán C.27
2 Canales PWM max. resolución: 10-bit
Puerto Serial: Synchronous Serial Port (SSP) con SPI
(Master mode) e I2C (Master/Slave), USART Puerto paralelo esclavo de 8 Bits
Voltaje de alimentación VDD debe estar entre 2 y 5.5 V.
Voltaje de grabación de programa (Vpp) debe estar
entre 12 y 14 V DC. Tiene 33 líneas de E/S digitales, divididas en cinco
puertos (puerto A 6 líneas y puerto B, C y D 8 líneas ypuerto E de 3 líneas).
Características del PIC 16F877
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 28/67
Ing. Edgar Fernando Tipán C.28
8 conversores A/D de 10 bits.
Corriente máxima absorbida por los puertos A, B y E
o C y D combinados: 200 mA. Corriente máxima suministrada por los puerto A, B y
E o C y D combinados: 200 mA .
Corriente máxima absorbida por línea: 25 mA.
Corriente máxima suministrada por línea: 25 mA.
Características del PIC 16F877
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 29/67
Ing. Edgar Fernando Tipán C.29
Modos de direccionamiento
Inmediato: aquí la instrucción utiliza un datodeterminado. Ej: movlw 0x15
Directo: el operando utilizado por lainstrucción se da por medio de unadirección. Así por ejemplo: movwf trisa
Indirecto: la instrucción usa como operandoal registro INDF (dirección de memoria dedatos 00H, pero en la práctica noimplementada físicamente)
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 30/67
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 31/67
Ing. Edgar Fernando Tipán C.31
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 32/67
Ing. Edgar Fernando Tipán C.32
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 33/67
Ing. Edgar Fernando Tipán C.33
Conexión de osciladores
OSCILADOR TIPO XT
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 34/67
Ing. Edgar Fernando Tipán C.34
Conexión de osciladores
RC
5K < R1 < 100 K
C1 = 22 pf
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 35/67
Ing. Edgar Fernando Tipán C.35
Circuito de Reset
La entrada MCLR permite reiniciar el estadodel micro, llevándose a cabo dos accionesimportantes
– Se carga un 0 en el Contador de Programa, deforma que después de un Reset siempre seejecuta la instrucción que está en la posición 0 dela memoria de programa.
– Los registros de estado y control toman un estadoconocido y determinado.
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 36/67
Ing. Edgar Fernando Tipán C.36
Circuito de Reset
Dos circuitos muy usados para RESET
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 37/67
Ing. Edgar Fernando Tipán C.37
Circuito Básico
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 38/67
Ing. Edgar Fernando Tipán C.38
Registro: STATUS
Tiene varias funciones:
– Avisar el estado de la ALU (C, DC, Z) – Indicar el estado de reset (TO, PD)
– Seleccionar el banco de memoria
El registro Status está ubicado en la localidad 03hde la RAM
Bits del registro status
STATUS
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 39/67
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 40/67
Ing. Edgar Fernando Tipán C.40
Registro: STATUS
RP0: Se usa para seleccionar el banco de memoriaque se utilizará en direccionamiento directo.
RP1: Igual que RP0, para seleccionar el banco.RP1 RP0 BANC00 0 00 1 11 0 21 1 3
IRP: Selecciona el banco de direccionamientoindirecto. 0=banco 0 o 1 y 1=banco 2 o 3.
STATUS
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 41/67
Ing. Edgar Fernando Tipán C.41
Registros: PORTA, PORTB, PORTC,
PORTD y PORTE
El PIC16F877 tiene 33 líneas paracomunicarse con el medio externo. Estas
pueden ser utilizadas como entradas ysalidas.
Seis líneas forman el pórtico A: RA0 … RA5
Ocho líneas forman el pórtico B: RB0 … RB7
Ocho líneas forman el pórtico C: RC0 … RC7
Ocho líneas forman el pórtico D: RD0 … RD7
Tres líneas forman el pórtico E: RE0 … RE2
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 42/67
Ing. Edgar Fernando Tipán C.42
Registros: TRIS A, B, C, D y E
Cada línea de los pórticos debe especificarse si será usadacomo entrada o como salida.
Los registros TRISA, TRISB, TRISC, TRISD y TRISE sirvenpara indicar si las líneas son entradas o salidas: con 1Lentrada, con 0L salida
00011001TRISB
entradas
salidas
b7 b6 b5 b4 b3 b2 b1 b0
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 43/67
Ing. Edgar Fernando Tipán C.43
Registros: TRIS
Si se selecciona TRISB = 10011000, como en la láminaanterior, entonces las líneas del pórtico B quedan
especificadas como se indica.
entradas salidas
b7 b6 b5 b4 b3 b2 b1 b0
XXXXXXXXPORTB
X datos
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 44/67
Ing. Edgar Fernando Tipán C.44
Registros TRISA Y PORTA
Este gráfico es útilpara comprender
mejor lo explicadoen las dos láminasanteriores
No olvide que TRISA estáen el banco 1 de la
memoria, PORTA está enel banco 0
El registro STATUS nos permite pasar de un banco aotro de la memoria
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 45/67
Ing. Edgar Fernando Tipán C.45
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 46/67
Ing. Edgar Fernando Tipán C.46
Registro ADCON1 (9Fh)
ADFM.- Selección de formato del resultado. Alponerlo en 1 se selecciona resultado de 10 bits
justificado a la derecha. Y con un 0 se selecciona justificación a la izquierda.
PCFG3:PCFG0.- Bits de configuración de lasentradas del convertidor. Configuran las patitas de
entrada del convertidor de acuerdo a la siguientetabla, (en donde A = Entrada Analógica D = Entrada
/Salida digital)
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 47/67
Ing. Edgar Fernando Tipán C.47
REGISTRO ADCON1
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 48/67
Ing. Edgar Fernando Tipán C.48
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 49/67
Ing. Edgar Fernando Tipán C.49
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 50/67
Ing. Edgar Fernando Tipán C.50
PINES DEL PUERTO C
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 51/67
Ing. Edgar Fernando Tipán C.51
Registro: OPTION
Su función principal es controlar el TMR0
Está ubicado en la localidad 81H, banco 1de la RAM
Su formato es:
RBPU: 1 activa, 0 desactiva, las resistencias Pull-up de PortBINTEDG: 0 activa flanco descendente, 1 activa flanco ascendente de la
interrupción externa RB0/INTTOCS: 1 contador de pulsos por RA4/TOCK1, 0 temporizador, se
incrementa por el ciclo de instrucción interno.TOSE: 0 incrementa TMR0 en el flanco ascendente, 1 incrementa
TMR0 en el flanco descendente
OPTION
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 52/67
Ing. Edgar Fernando Tipán C.52
Registro: OPTION
PSA: 0 el prescalador es para TMR0, 1 el prescalador es para WDT
PS2 – PS0: indican el valor del divisor de frecuencia
OPTION
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 53/67
Ing. Edgar Fernando Tipán C.53
Registros del PIC: INTCON
Su función principal es controlar las interrupciones
Está ubicado en la localidad 0BH de la RAM
Su formato es:
GIE: permiso global de las interrupciones, con 1 habilita
PEIE: habilitación de interrupciones de los periféricos.
TOIE: 1 habilita interrupción de TMR0, 0 lo deshabilita
INTE: 0 deshabilita interrupción externa RB0/INT, 1 la habilita
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 54/67
Ing. Edgar Fernando Tipán C.54
Registros del PIC: INTCON
TOIF: bandera de activación de TMR0
1: ha sobrepasado (debe borrarse por software)
0: No ha sobrepasado
INTF: bandera de interrupciones en RB01: ha ocasionado una interrupción (debe borrarse por software)0: No ha ocasionado interrupción
RBIF: bandera de interrupciones en RB4 a RB71: han cambiado bits RB4 a RB7 (debe borrarse por software)0: No ha cambiado el estado
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 55/67
Ing. Edgar Fernando Tipán C.55
Registros asociados a las
interrupciones
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 56/67
Ing. Edgar Fernando Tipán C.56
Manejo de Interrupciones
Interrupción es un salto especial a una subrutina queno está contemplado en un punto específico del
programa principal, sino que puede ocurrir encualquier punto de éste y no es provocado por una instrucción en el programa, sino por un evento interno o externo al sistema del microcontrolador.
Los dispositivos que manejan eventos capaces de
provocar una solicitud de interrupción se denominanfuentes de interrupción. El PIC16F877 cuenta con14 fuentes de interrupción.
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 57/67
Ing. Edgar Fernando Tipán C.57
Manejo de Interrupciones
Cada fuente de interrupción posee dos bitsasociados a ella:
Una Bandera (terminada en F) de Interrupción, lacual es activada (en alto) por el evento para solicitaruna interrupción.
Una Máscara (terminada en E) Local deInterrupción, la cual si está desactivada (en bajo)bloqueará la solicitud de interrupcióncorrespondiente, pero si está activada (en alto)permitirá la solicitud de Interrupción.
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 58/67
Ing. Edgar Fernando Tipán C.58
Manejo de Interrupciones
Además existe una máscara de interrupción globalGIE (INTCON<7>), la cual bloqueará todas las
solicitudes de interrupción si está desactivada(GIE=0).
Algunas fuentes de interrupción también poseen unasegunda máscara de interrupción globaldenominada PEIE (INTCON<6>). De hecho, actúa
sobre todas las fuentes de interrupción, excepto lasinterrupciones debidas a INT, el sobreflujo del Timer0 y las interrupciones del puerto B (INTF, T0IF yRBIF).
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 59/67
Ing. Edgar Fernando Tipán C.59
Manejo de InterrupcionesLa única manera en que una solicitud de interrupción provoca en
efecto una interrupción en el programa es cuando:
La máscara global está activada (GIE=1).
(En su caso) la máscara global de periféricos está activada(PEIE=1)
La máscara local está activada
Ocurre un evento que activa la bandera correspondiente.
La lógica de activación de máscaras y banderas descrita puedeentenderse en términos de un diagrama lógico. En estediagrama se muestran las 14 fuentes de interrupción delPIC16F877 y se usan los nombres específicos de cada fuentede interrupción para sus respectivas banderas y máscaras deinterrupción.
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 60/67
Ing. Edgar Fernando Tipán C.60
INTERRUPCIONES
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 61/67
Ing. Edgar Fernando Tipán C.61
Proceso de reconocimiento de una
interrupción
Cuando se cumplen las siguientes trescondiciones simultáneamente:
El bit GIE está activado (en alto)
Se produce un evento que solicitainterrupción (se activa alguna de lasbanderas de interrupción)
Está activada la máscara correspondiente ala bandera activada.
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 62/67
Ing. Edgar Fernando Tipán C.62
Proceso de reconocimiento de unainterrupción
Entonces la CPU es interrumpida inmediatamente y ejecuta lo siguiente: Termina la ejecución de la instrucción actual. Desactiva el bit GIE (GIE=0) para bloquear cualquier otra solicitud de
interrupción. La dirección de programa de la siguiente instrucción a ejecutar es guardada en
el stack. Ejecuta un salto a la localidad de programa 0004h denominada vector de
interrupción , en donde el usuario deberá haber colocado el inicio de la rutina de atención a la interrupción .
Ejecuta la rutina de atención a la interrupción escrita por el usuario, en la cualéste podrá constatar la fuente de interrupción consultando por poleo las
banderas de interrupción. La rutina de atención a la interrupción deberá limpiar los bits de la bandera que
solicitó la interrupción antes de rehabilitar interrupciones, para evitarinterrupciones recursivas.
La rutina de atención deberá terminar con una instrucción RETFIE, la cualactiva nuevamente el bit GIE (GIE=1) y lee el stack para continuar la ejecucióndel programa que fue interrumpido en la siguiente instrucción.
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 63/67
Ing. Edgar Fernando Tipán C.63
Salvando el contexto durante una
interrupción.
Dado que el programa principal no puede prever enque punto será interrumpido, la rutina de atención ala interrupción debe ser tal que no altere ninguno delos registros que requiere paso a paso el programaprincipal para su operación normal. Estos registrosson los que van guardando el contexto del programa(tal como en qué banco está, el resultado de laúltima operación, etc.) y son:
Registro STATUS Registro W Registro PCLATH (si se están usando las páginas 1,
2 o 3).
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 64/67
Ing. Edgar Fernando Tipán C.64
;* Salva información de contexto previo a la rutina de atención a la interrupciónMOVWF W_Temp ;Salva el registro W en en un registro temporalSWAPF STATUS,W ;Copia STATUS en W (usa SWAP para no alterarlo al copiarlo)
CLRF STATUS ;Banco cero, sin importar banco actualMOVWF STATUS_temp ;Salva STATUS en STATUS_temp (Banco 0); MOVF PCLATH,W ;sólo se requiere si se están usando las páginas 1,2,y/o 3; MOVWF PCLATH_temp ;salva PCLATH; CLRF PCLATH ;página 0 sin importar página actual...;aquí se escribe el código de la rutina de atención a la interrupción... ;* A continuación restablece la información de contexto que salvó al inicio; MOVF PCLATH_Temp.,W ;rescata PCLATH; MOVWF PCLATH ;si se usan las paginas 1,2 y/o 3
SWAPF STATUS_temp,W ;rescata el STATUS originalMOVWF STATUS ;restablece banco originalSWAPF W_temp,F ;rescata el W originalSWAPF W_temp,W ;sin alterar el STATUS ya rescatado.RETFIE
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 65/67
Ing. Edgar Fernando Tipán C.65
Conexión de Display 7 segmentos
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 66/67
Ing. Edgar Fernando Tipán C.66
Programación de Display
8/3/2019 PIC_16F877_2
http://slidepdf.com/reader/full/pic16f8772 67/67
TIMER 0