PIC_16F877_2

67
Ing. Edgar Fernando Tipán C. 1 PIC16F877 Microcontroladores

Transcript of PIC_16F877_2

Page 1: 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

Page 2: PIC_16F877_2

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

Page 3: PIC_16F877_2

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.

Page 4: PIC_16F877_2

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.

Page 5: PIC_16F877_2

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

Page 6: PIC_16F877_2

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.

Page 7: PIC_16F877_2

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

Page 8: PIC_16F877_2

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.

Page 9: PIC_16F877_2

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

Page 10: PIC_16F877_2

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

Page 11: PIC_16F877_2

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.

Page 12: PIC_16F877_2

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

Page 13: PIC_16F877_2

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

Page 14: PIC_16F877_2

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

Page 15: PIC_16F877_2

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.

Page 16: PIC_16F877_2

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

Page 17: PIC_16F877_2

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.

Page 18: PIC_16F877_2

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 

Page 19: PIC_16F877_2

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

Page 20: PIC_16F877_2

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

Page 21: PIC_16F877_2

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 

Page 22: PIC_16F877_2

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.

Page 23: PIC_16F877_2

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

Page 24: PIC_16F877_2

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.

Page 25: PIC_16F877_2

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.

Page 26: PIC_16F877_2

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.

Page 27: PIC_16F877_2

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

Page 28: PIC_16F877_2

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

Page 29: PIC_16F877_2

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)

Page 30: PIC_16F877_2

8/3/2019 PIC_16F877_2

http://slidepdf.com/reader/full/pic16f8772 30/67

Page 31: PIC_16F877_2

8/3/2019 PIC_16F877_2

http://slidepdf.com/reader/full/pic16f8772 31/67

Ing. Edgar Fernando Tipán C.31

Page 32: PIC_16F877_2

8/3/2019 PIC_16F877_2

http://slidepdf.com/reader/full/pic16f8772 32/67

Ing. Edgar Fernando Tipán C.32

Page 33: PIC_16F877_2

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

Page 34: PIC_16F877_2

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

Page 35: PIC_16F877_2

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.

Page 36: PIC_16F877_2

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

Page 37: PIC_16F877_2

8/3/2019 PIC_16F877_2

http://slidepdf.com/reader/full/pic16f8772 37/67

Ing. Edgar Fernando Tipán C.37

Circuito Básico

Page 38: PIC_16F877_2

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

Page 39: PIC_16F877_2

8/3/2019 PIC_16F877_2

http://slidepdf.com/reader/full/pic16f8772 39/67

Page 40: PIC_16F877_2

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

Page 41: PIC_16F877_2

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 

Page 42: PIC_16F877_2

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

Page 43: PIC_16F877_2

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

Page 44: PIC_16F877_2

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

Page 45: PIC_16F877_2

8/3/2019 PIC_16F877_2

http://slidepdf.com/reader/full/pic16f8772 45/67

Ing. Edgar Fernando Tipán C.45

Page 46: PIC_16F877_2

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)

Page 47: PIC_16F877_2

8/3/2019 PIC_16F877_2

http://slidepdf.com/reader/full/pic16f8772 47/67

Ing. Edgar Fernando Tipán C.47

REGISTRO ADCON1

Page 48: PIC_16F877_2

8/3/2019 PIC_16F877_2

http://slidepdf.com/reader/full/pic16f8772 48/67

Ing. Edgar Fernando Tipán C.48

Page 49: PIC_16F877_2

8/3/2019 PIC_16F877_2

http://slidepdf.com/reader/full/pic16f8772 49/67

Ing. Edgar Fernando Tipán C.49

Page 50: PIC_16F877_2

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

Page 51: PIC_16F877_2

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

Page 52: PIC_16F877_2

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

Page 53: PIC_16F877_2

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

Page 54: PIC_16F877_2

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

Page 55: PIC_16F877_2

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

Page 56: PIC_16F877_2

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.

Page 57: PIC_16F877_2

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.

Page 58: PIC_16F877_2

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).

Page 59: PIC_16F877_2

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.

Page 60: PIC_16F877_2

8/3/2019 PIC_16F877_2

http://slidepdf.com/reader/full/pic16f8772 60/67

Ing. Edgar Fernando Tipán C.60

INTERRUPCIONES

Page 61: PIC_16F877_2

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.

Page 62: PIC_16F877_2

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.

Page 63: PIC_16F877_2

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).

Page 64: PIC_16F877_2

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 

Page 65: PIC_16F877_2

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

Page 66: PIC_16F877_2

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

Page 67: PIC_16F877_2

8/3/2019 PIC_16F877_2

http://slidepdf.com/reader/full/pic16f8772 67/67

TIMER 0