Utilizacion de Los Microcontroladores Pic Serie 16f87x

58
UTILIZACIÓN DE LOS MICROCONTROLADORES PIC serie 16F87X MICROCHIP TECHNOLOGY Docente: Oscar Celis ****** CEE ******* UTN - Facultad Regional Córdoba

description

Microcontroladores

Transcript of Utilizacion de Los Microcontroladores Pic Serie 16f87x

  • UTILIZACIN DE LOS MICROCONTROLADORES PIC serie 16F87XMICROCHIP TECHNOLOGY

    Docente: Oscar Celis

    ****** CEE *******UTN - Facultad Regional Crdoba

  • Pgina 02 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    NDICE

    Arquitectura Harvard vs. Arquitectura Von Neuman 3Diagrama de Bloques, del Microcontrolador 4Mapa de Memoria Interna (RAM) 5Memoria de Programa 6Camino de los datos y Registro W 6Contador de Programa 8Stack (Pila) 8Registro STATUS 9Registros Especiales 10Puertos de Entrada / Salida 10Diagrama Lgico (PIN-OUT) 11Temporizador 0 12Interrupciones 13Los Puertos Paralelos 19Los Temporizadores 24Los Modulos de Captura, Comparacin y PWM 27Interfaz Serie - USART 31El Convertidor Analgico / Digital 38El Temporizador WDT 42Escritura de un programa fuente 43Conjunto de Instrucciones 43Modos de Direccionamiento 46Herramientas de desarrollo 47Simulacin 50Apndice 1 51Apndice 2 52

  • Pgina 03 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    1.1 Arquitectura Harvard vs. Arquitectura Von Neuman

    La arquitectura tradicional de computadoras y microprocesadores se basa en elesquema propuesto por John Von Neumann, en el cual la unidad central de proceso, oCPU, esta conectada a una memoria nica que contiene las instrucciones del programa ylos datos (figura 1.1.1). El tamao de la unidad de datos o instrucciones esta fijado por elancho del bus de la memoria. Es decir que un microprocesador de 8 bits, que tieneadems un bus de 8 bits que lo conecta con la memoria, deber manejar datos einstrucciones de una o ms unidades de 8 bits (bytes) de longitud. Cuando deba accedera una instruccin o dato de ms de un byte de longitud, deber realizar ms de un accesoa la memoria. Por otro lado este bus nico limita la velocidad de operacin delmicroprocesador, ya que no se puede buscar de memoria una nueva instruccin, antes deque finalicen las transferencias de datos que pudieran resultar de la instruccin anterior.Es decir que las dos principales limitaciones de esta arquitectura tradicional son :

    a) que la longitud de las instrucciones esta limitada por la unidad de longitud de los datos,por lo tanto el microprocesador debe hacer varios accesos a memoria para buscarinstrucciones complejas,

    b) que la velocidad de operacin (o ancho de banda de operacin) esta limitada por elefecto de cuello de botella que significa un bus nico para datos e instrucciones queimpide superponer ambos tiempos de acceso.

    FIG. 1.1.1 Arquitectura Von Newmann

    La arquitectura Harvard y sus ventajas:

    La arquitectura conocida como Harvard, consiste simplemente en un esquema en el que elCPU esta conectado a dos memorias por intermedio de dos buses separados. Una de lasmemorias contiene solamente las instrucciones del programa, y es llamada Memoria dePrograma. La otra memoria solo almacena los datos y es llamada Memoria de Datos(figura 1.1.2). Ambos buses son totalmente independientes y pueden ser de distintosanchos. Para un procesador de Set de Instrucciones Reducido, o RISC (ReducedInstruccin Set Computer), el set de instrucciones y el bus de la memoria de programapueden disearse de manera tal que todas las instrucciones tengan una sola posicin dememoria de programa de longitud. Adems, como los buses son independientes, el CPUpuede estar accediendo a los datos para completar la ejecucin de una instruccin, y almismo tiempo estar leyendo la prxima instruccin a ejecutar. Se puede observarclaramente que las principales ventajas de esta arquitectura son:

  • Pgina 04 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    a) que el tamao de las instrucciones no esta relacionado con el de los datos, y por lotanto puede ser optimizado para que cualquier instruccin ocupe una sola posicin dememoria de programa, logrando as mayor velocidad y menor longitud de programa,

    b) que el tiempo de acceso a las instrucciones puede superponerse con el de los datos,logrando una mayor velocidad de operacin.

    Una pequea desventaja de los procesadores con arquitectura Harvard, es que debenposeer instrucciones especiales para acceder a tablas de valores constantes que puedaser necesario incluir en los programas, ya que estas tablas se encontraran fsicamente enla memoria de programa (por ejemplo en la EPROM de un microprocesador).

    FIG. 1.1.2 Arquitectura Harvard

    Los microcontroladores PIC 16C5X, 16F87X, 16CXX y 17CXX poseen arquitecturaHarvard, con una memoria de datos de 8 bits, y una memoria de programa que, segn elmodelo, puede ser de 12 bits para los 16C5X, 14 bits para los 16CXX y 16 bits para los17CXX.

    1.2 Diagrama de bloquesF L A S H

    P rog ra mM e m o ry

    13 D a ta B u s 8

    14P rog ra mB u s

    In s tru c tio n re g

    P ro g ra m C ou n te r

    8 L e v e l S ta c k(13-b it)

    R A MF ile

    R e g is te rs

    D ire c t A d d r 7

    R A M A dd r (1) 9

    A d d r M U X

    In d ire c tA d d r

    F S R re g

    S TAT U S re g

    M U X

    A L U

    W re g

    P ow e r-u pT im e r

    O s c illa to rS ta r t-u p T im e r

    P ow e r-o nR e s e t

    W a tc h d o gT im e r

    In s tru c tio nD e c o d e &

    C o n tro l

    T im in gG e n e ra tio n

    O S C 1/C L K INO S C 2/C L K O U T

    M C L R V D D , V S S

    P O R TA

    P O R T B

    P O R T C

    P O R T D

    P O R T E

    R A 4/T 0C K IR A 5/A N 4/S S

    R C 0/T 1O S O /T 1C K IR C 1/T 1O S I/C C P 2R C 2/C C P 1R C 3/S C K /S C LR C 4/S D I/S D AR C 5/S D OR C 6/T X /C KR C 7/R X /D T

    R D 7/P S P 7:R D 0/P S P 0

    R E 0/A N 5/R D

    R E 1/A N 6/W R

    R E 2/A N 7/C S

    8

    8

    B row n -o u tR e s e t

    N o te 1 : H ig h e r o rd e r b its a re from th e S TAT U S re g is te r.

    U S A R TC C P 1,2S y n c h ro n o u s

    10-b it A /DT im e r0 T im e r1 T im e r2

    S e ria l P o r t

    R A 3/A N 3/V R E FR A 2/A N 2R A 1/A N 1R A 0/A N 0

    P a ra lle l S la v e P o r t

    8

    3

    D a ta E E P R O M

    R B 0/IN TR B 1R B 2R B 3/P G MR B 4R B 5R B 6/P G CR B 7/P G D

    In -C irc u itD e bu g g e r

    L ow -V o lta g eP ro g ra m m in g

    D e v i c e P ro g ra mF L A S H

    D a ta M e m o ry D a ta E E P RO M

    P IC 16F 874 4K 192 B y te s 128 B y te s

    P IC 16F 877 8K 368 B y te s 256 B y te s

  • Pgina 05 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    1.3 Mapas de memoria Memoria Interna (RAM)

    Organizacin

    La memoria interna de datos, tambin llamada archivo de registros (register file), estadividida en dos grupos: los registros especiales, y los registros de propsito generales.Los primeros ocupan las primeras 32 posiciones de los cuatro bancos de memoria RAM.Entre los registros especiales se encuentran el registro de estado (STATUS), los registrosde datos de los cinco puertos de entrada salida (Puerto A, Puerto B, Puerto C, Puerto D,Puerto E), los 8 bits menos significativos del program counter (PC), los registros de lostimers, TMR0, TMR1L, TMR1H, TMR2, un registro puntero llamado File Select Register(FSR). La posicin 00 no contiene ningn registro en especial y es utilizada en elmecanismo de direccionamiento indirecto.Como se observa este microcontrolador posee cuatro bancos de memoria y puedenseleccionarse desde el registro STATUS.

    In d ire c t a d d r.(*)

    T M R 0P C L

    S TAT U SF S R

    P O R TAP O R T BP O R T C

    P C L AT HIN T C O N

    P IR 1

    T M R 1LT M R 1HT 1C O NT M R 2

    T 2C O NS S P B U FS S P C O NC C P R 1LC C P R 1H

    C C P 1C O N

    O P T IO N _R E GP C L

    S TAT U SF S R

    T R IS AT R IS BT R IS C

    P C L AT HIN T C O N

    P IE 1

    P C O N

    P R 2S S PA D DS S P S TAT

    00h01h02h03h04h05h06h07h08h09h0A h0B h0C h0D h0E h0F h10h11h12h13h14h15h16h17h18h19h1A h1B h1C h1D h1E h1F h

    80h81h82h83h84h85h86h87h88h89h8A h8B h8C h8D h8E h8F h90h91h92h93h94h95h96h97h98h99h9A h9B h9C h9D h9E h9F h

    20h A 0h

    7F h F F hB a n k 0 B a n k 1

    U n im p le m e n te d d a ta m e m o ry lo c a tio n s , re a d a s '0 '.* N o t a p hy s ic a l re g is te r.

    N o te 1 : T h e s e re g is te rs a re n o t im p le m e n te d o n 28-p in d e v ic e s .2 : T h e s e re g is te rs a re re s e rv e d , m a in ta in th e s e re g is te rs c le a r.

    F ileA d d re s s

    In d ire c t a d d r.(*) In d ire c t a d d r.(*)

    P C LS TAT U S

    F S R

    P C L AT HIN T C O N

    P C LS TAT U S

    F S R

    P C L AT HIN T C O N

    100h101h102h103h104h105h106h107h108h109h10A h10B h10C h10D h10E h10F h110h111h112h113h114h115h116h117h118h119h11A h11B h11C h11D h11E h11F h

    180h181h182h183h184h185h186h187h188h189h18A h18B h18C h18D h18E h18F h190h191h192h193h194h195h196h197h198h199h19A h19B h19C h19D h19E h19F h

    120h 1A 0h

    17F h 1F F hB a n k 2 B a n k 3

    In d ire c t a d d r.(*)

    P O R T DP O R T E

    T R IS D

    A D R E S L

    T R IS E

    T M R 0 O P T IO N _R E G

    P IR 2 P IE 2

    R C S TAT X R E GR C R E GC C P R 2LC C P R 2H

    C C P 2C O NA D R E S HA D C O N 0

    T X S TAS P B R G

    A D C O N 1

    G e n e ra lP u rp o s eR e g is te r

    G e n e ra lP u rp o s eR e g is te r

    G e n e ra lP u rp o s eR e g is te r

    G e n e ra lP u rp o s eR e g is te r

    1E F h1F 0ha c c e s s e s

    70h - 7F h

    E F hF 0ha c c e s s e s

    70h -7F h

    16F h170ha c c e s s e s

    70h -7F h

    G e n e ra lP u rp o s eR e g is te r

    G e n e ra lP u rp o s eR e g is te r

    T R IS BP O R T B

    96 B y te s80 B y te s 80 B y te s 80 B y te s

    16 B y te s 16 B y te s

    (1)

    (1)

    (1)

    (1)

    S S P C O N 2

    E E D ATAE E A D R

    E E C O N 1E E C O N 2

    E E D AT HE E A D R H

    R e s e rv e d (2)

    R e s e rv e d (2)

    FIG. 1.3.1 Organizacin de la memoria Interna (RAM) en la familia PIC16F87X

  • Pgina 06 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    Memoria de Programa

    Organizacin

    La memoria de programa, que en los PIC16F87X puede ser de 2K, 4K u 8K instrucciones,debe ser considerada a los efectos de la programacin, como compuesta por secciones opginas de 2K posiciones. Esto se debe, como se ver, a las limitaciones dedireccionamiento de las instrucciones de salto

    FIG. 1.3.2 Organizacin de la memoria de programa en la familia PIC16F87X

    1.4 Registros de funciones especiales Camino de los datos y registro W

    La figura 1.4.2 representa un diagrama simplificado de la arquitectura interna del caminode los datos en el CPU de los microcontroladores PIC. Este diagrama puede norepresentar con exactitud el circuito interno de estos microcontroladores, pero es exacto yclaro desde la ptica del programador. La figura 1.4.1 representa el mismo diagrama paraun microprocesador ficticio de arquitectura tradicional. Se puede observar que la principaldiferencia entre ambos radica en la ubicacin del registro de trabajo, que para los PIC'sse denomina W (Working Register), y para los tradicionales es el Acumulador (A).

  • Pgina 07 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    Figura 1.4.1

    En los microcontroladores tradicionales todas las operaciones se realizan sobre elacumulador. La salida del acumulador esta conectada a una de las entradas de la UnidadAritmtica y Lgica (ALU), y por lo tanto ste es siempre uno de los dos operandos decualquier instruccin. Por convencin, las instrucciones de simple operando (borrar,incrementar, decrementar, complementar), actan sobre el acumulador. La salida de laALU va solamente a la entrada del acumulador, por lo tanto el resultado de cualquieroperacin siempre quedara en este registro. Para operar sobre un dato de memoria, luegorealizar la operacin siempre hay que mover el acumulador a la memoria con unainstruccin adicional.En los microcontroladores PIC, la salida de la ALU va al registro W y tambin a lamemoria de datos, por lo tanto el resultado puede guardarse en cualquiera de los dosdestinos. En las instrucciones de doble operando, uno de los dos datos siempre debeestar en el registro W, como ocurra en el modelo tradicional con el acumulador. En lasinstrucciones de simple operando el dato en este caso se toma de la memoria (tambinpor convencin). La gran ventaja de esta arquitectura es que permite un gran ahorro deinstrucciones ya que el resultado de cualquier instruccin que opere con la memoria, yasea de simple o doble operando, puede dejarse en la misma posicin de memoria o en elregistro W, segn se seleccione con un bit de la misma instruccin. Las operaciones conconstantes provenientes de la memoria de programa (literales) se realizan solo sobre elregistro W.

  • Pgina 08 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    En la memoria de datos de los PIC's se encuentran ubicados casi todos los registros decontrol del microprocesador y sus perifricos autocontenidos, y tambin las posiciones dememoria de usos generales.

    Contador de Programa

    Este registro, normalmente denominado PC, es totalmente equivalente al de todos losmicroprocesadores y contiene la direccin de la prxima instruccin a ejecutar. Seincrementa automticamente al ejecutar cada instruccin, de manera que la secuencianatural de ejecucin del programa es lineal, una instruccin despus de la otra. Algunasinstrucciones que llamaremos de control, cambian el contenido del PC alterando lasecuencia lineal de ejecucin. Dentro de estas instrucciones se encuentran el GOTO y elCALL que permiten cargar en forma directa un valor constante en el PC haciendo que elprograma salte a cualquier posicin de la memoria. Otras instrucciones de control son losSKIP o "salteos" condicionales, que producen un incremento adicional del PC si secumple una condicin especifica, haciendo que el programa saltee, sin ejecutar, lainstruccin siguiente.El PC es un registro de 13 bits en los 16F87X, lo que permite direccionar 8192 posicionesde memoria de programa.Al resetearse el microprocesador, todos los bits del PC toman valor 0, de manera que ladireccin de arranque del programa es siempre la primera posicin de memoria deprograma. En esta posicin se deber poner la primera instruccin del programa.A diferencia de la mayora de los microprocesadores convencionales, el PC es tambinaccesible al programador como registro de memoria interna de datos, en la posicin de02. Es decir que cualquier instruccin comn que opere sobre registros puede serutilizada para alterar el PC y desviar la ejecucin del programa. El uso indiscriminado deeste tipo de instrucciones complica el programa y puede ser muy peligroso, ya que puedeproducir comportamientos difciles de predecir. Sin embargo, algunas de estainstrucciones utilizadas con cierto mtodo, pueden ser muy tiles para implementarpoderosas estructuras de control tales como el goto computado. Como elmicroprocesador opera con datos de 8 bits, y la memoria de datos es tambin de 8 bits,estas instrucciones solo pueden leer o modificar los bits 0 a 7 del PC.

    Stack

    En los microcontroladores PIC el stack es una memoria interna dedicada, de tamaolimitado, separada de las memorias de datos y de programa, inaccesible al programador,y organizada en forma de pila, que es utilizada solamente, y en forma automtica, paraguardar las direcciones de retorno de subrrutinas e interrupciones. Cada posicin es de13 bits y permite guardar una copia completa del PC. Como en toda memoria tipo pila, losdatos son accedidos de manera tal que el primero que entra es el ultimo que sale.En los 16F87X el stack es de solo ocho posiciones, mientras que en los 17CXX es de 16posiciones. Esto representa, en cierta medida, una limitacin de estos microcontroladores,ya que no permite hacer uso intensivo del anidamiento de subrutinas. En los 16F87X, solose pueden anidar ocho niveles de subrutinas, es decir que una subrutina que es llamadadesde el programa principal, puede a su vez llamar a otra subrutina, hasta un mximo de8, siempre que no existan interrupciones habilitadas, en tal caso debern disminuir lacantidades de rutinas anidadas en el main, porque de lo contrario se desbordar el Stack.

  • Pgina 09 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    Esto de hecho representa una traba para el programador y adems parece impedir odificultar la programacin estructurada, sin embargo es una buena solucin decompromiso ya que estos microcontroladores estn diseados para aplicaciones de altavelocidad en tiempo real, en las que el overhead (demoras adicionales) que ocasiona unexcesivo anidamiento de subrutinas es inaceptable. Por otra parte existen tcnicas deorganizacin del programa que permiten mantener la claridad de la programacinestructurada, sin necesidad de utilizar tantas subrutinas anidadas.Como ya se menciono anteriormente, el stack y el puntero interno que lo direcciona, soninvisibles para el programador, solo se los accede automticamente para guardar orescatar las direcciones de programa cuando se ejecutan las instrucciones de llamada oretorno de subrutinas, o cuando se produce una interrupcin o se ejecuta una instruccinde retorno de ella.

    Registro de Estado del Procesador (STATUS - Direccin 0x03, 0x83, 0x103, 0x183)

    La palabra de estado del procesador contiene los tres bits de estado de la ALU (C, DC yZ), y otros bits que por comodidad se incluyeron en este registro.

    R /W -0 R /W -0 R /W -0 R -1 R -1 R /W -x R /W -x R /W -x

    IR P R P 1 R P 0 T O P D Z D C C R = R e a d a b le b itW = W rita b le b it

    U = U n im p le m e n te d b it,re a d a s 0

    - n = V a lu e a t P O R re s e t

    b it7 b it0

    b it 7 : IR P : R e g is te r B a n k S e le c t b it (u s e d fo r in d ire c t a d d re s s in g )1 = B a n k 2 , 3 (100h - 1F F h )0 = B a n k 0 , 1 (00h - F F h )

    b it 6 -5 : R P 1 : R P 0: R e g is te r B a n k S e le c t b its (u s e d fo r d ire c t a d d re s s in g )11 = B a n k 3 (180h - 1F F h )10 = B a n k 2 (100h - 17F h )01 = B a n k 1 (80h - F F h )00 = B a n k 0 (00h - 7F h )E a c h b a n k is 128 by te s

    b it 4 : T O : T im e -o u t b it1 = A fte r p ow e r-u p, CLRWDT in s tru c tio n , o r SLEEP in s tru c tio n0 = A W D T tim e -o u t o c c u rre d

    b it 3 : P D : P ow e r-d ow n b it1 = A fte r p ow e r-u p o r by th e CLRWDT in s tru c tio n0 = B y e x e c u tio n o f th e SLEEP in s tru c tio n

    b it 2 : Z : Z e ro b it1 = T h e re s u lt o f a n a rith m e tic o r lo g ic o p e ra tio n is ze ro0 = T h e re s u lt o f a n a rith m e tic o r lo g ic o p e ra tio n is n o t ze ro

    b it 1 : D C : D ig it c a rry /b o rrow b it (ADDWF, ADDLW,SUBLW,SUBWF in s tru c tio n s ) (fo r b o rrow th e p o la rity is re v e rs e d )1 = A c a rry -o u t from th e 4th low o rd e r b it o f th e re s u lt o c c u rre d0 = N o c a rry -o u t from th e 4th low o rd e r b it o f th e re s u lt

    b it 0 : C : C a rry /b o rrow b it (ADDWF, ADDLW,SUBLW,SUBWF in s tru c tio n s )1 = A c a rry -o u t from th e m o s t s ig n ic a n t b it o f th e re s u lt o c c u rre d0 = N o c a rry -o u t from th e m o s t s ig n ic a n t b it o f th e re s u lt o c c u rre dN o te : F o r b o rrow th e p o la rity is re v e rs e d . A s u b tra c tio n is e x e c u te d by a d d in g th e tw o s c om p le m e n t o f th es e c o n d o p e ra n d . F o r ro ta te (RRF, RLF) in s tru c tio n s , th is b it is lo a d e d w ith e ith e r th e h ig h o r low o rd e r b it o fth e s o u rc e re g is te r.

  • Pgina 10 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    REGISTROS ESPECIALES IMPORTANTES

    Las primeras posiciones del rea de datos estn reservadas para alojar registros depropsito especial, quedando las restantes libres para contener los datos u operandosque se desee (registros de propsito general).El registro INDF que ocupa la posicin 0 no est implementando fsicamente y, como seha explicado, se le referencia en el direccionamiento indirecto de datos aunque se utilizael contenido de FSR.En la direccin 0x01 esta el registro TMR0 (Temporizador) que puede ser ledo y escritocomo cualquier otro registro. Puede incrementar su valor con una seal externa aplicadaal pin T0CKI o mediante el oscilador interno.El PC ocupa la posicin 2 del rea de datos en donde se halla el registro PCL al que seaaden 5 bits del registro PCLATH que se encuentra en pla posicin 0x0A.El registro de Estado ocupa la posicin 3 y entre sus bits se encuentran lossealizadores C, DC y Z y el resto de los bits vistos anteriormente.FSR se ubica en la direccin 4 y puede usarse para contener las direccin del dato en lasinstrucciones con direccionamiento indirecto y tambin para guardar operandos.Los registros que ocupan las posiciones 5, 6, 7, 8 y 9 soportan los Puertos A, B, C, D y Ede E/S. Pueden ser ledos y escritos como cualquier otro registro y manejan los valores delos bits que entran y salen por los pines de E/S del microcontrolador.

    1.5 Puertos de entrada / salida

    Los microprocesadores PIC16F87X tienen tres o cinco puertos de entrada/salida paralelode usos generales llamados Puerto A, Puerto B, Puerto C, Puerto D y Puerto E. El PuertoA es de cinco bits, el Puerto E es de tres bits y los dems son de 8 bits cada uno. ElPuerto D y E solamente esta disponible en el 16F874 y el 16F877.

    Circuito equivalente

    Cada puerto tiene, particularidades en el diseo de su celda de entrada / salida, segn losperifricos asociados, etc. En la siguiente figura podemos ver en forma reducida ungrfico tpico, con los elementos comunes para todos los puertos.

    Circuito equivalente de puerto I/O

  • Pgina 11 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    El latch L1 corresponde a un bit del registro de datos del puerto, mientras que L2 es un bitdel registro de control de tristate del mismo. B1 es el buffer tristate de salida que tienecapacidad de entregar 20 mA y drenar 25 mA. B1 es controlado por L2. Si L2 tienecargado un "1", B1 se encuentra en tri-state, es decir con la salida desconectada (en altaimpedancia), y el puerto puede ser usado como entrada. Si L2 tiene cargado un "0", lasalida de B1 esta conectada (baja impedancia) y el puerto esta en modo de salida. B2 esel buffer de entrada, es decir el que pone los datos en el bus interno del microcontroladorcuando se lee el registro de datos del puerto. Puede verse que el dato ledo esdirectamente el estado del pin de entrada

    1.6 Diagrama lgico

    Diagrama lgico para los microcontroladores PIC16F87X (Pin-Out)

    R B 7/P G DR B 6/P G C

    R B 5

    R B 4R B 3/P G M

    R B 2

    R B 1

    R B 0/IN T

    V D D

    V S S

    R D 7/P S P 7

    R D 6/P S P 6R D 5/P S P 5

    R D 4/P S P 4

    R C 7/R X /D T

    R C 6/T X /C K

    R C 5/S D O

    R C 4/S D I/S D AR D 3/P S P 3

    R D 2/P S P 2

    M C L R /V P P /T H VR A 0/A N 0

    R A 1/A N 1R A 2/A N 2/V R E F -

    R A 3/A N 3/V R E F +

    R A 4/T 0C K I

    R A 5/A N 4/S S

    R E 0/R D /A N 5

    R E 1/W R /A N 6

    R E 2/C S /A N 7V D D

    V S S

    O S C 1/C L K IN

    O S C 2/C L K O U T

    R C 0/T 1O S O /T 1C K I

    R C 1/T 1O S I/C C P 2

    R C 2/C C P 1

    R C 3/S C K /S C LR D 0/P S P 0

    R D 1/P S P 1

    1

    2

    3

    4

    5

    6

    7

    8

    910

    11

    12

    13

    14

    15

    16

    17

    18

    1920

    40

    39

    38

    37

    36

    35

    34

    33

    3231

    30

    2928

    27

    26

    25

    24

    23

    2221

    PIC

    16F877/874

    P D IP

    PIC1

    6F87

    6/87

    3

    1011

    23456

    1

    87

    9

    121314 15

    1617181920

    232425262728

    2221

    M C L R /V P P /T H VR A 0/A N 0R A 1/A N 1

    R A 2/A N 2/V R E F -R A 3/A N 3/V R E F +

    R A 4/T 0C K IR A 5/A N 4/S S

    V S SO S C 1/C L K IN

    O S C 2/C L K O U TR C 0/T 1O S O /T 1C K I

    R C 1/T 1O S I/C C P 2R C 2/C C P 1

    R C 3/S C K /S C L

    R B 7/P G DR B 6/P G CR B 5R B 4R B 3/P G MR B 2R B 1R B 0/IN TV D DV S SR C 7/R X /D TR C 6/T X /C KR C 5/S D OR C 4/S D I/S D A

    D IP , S O IC

    1011121314151617

    18 19 20 21 22 23 24 25 26

    44

    87

    6 5 4 3 2 1

    27 28

    29303132333435363738394

    0414243

    9

    P IC 16F 877

    R A 4/T 0C K IR A 5/A N 4/S SR E 0/R D /A N 5

    O S C 1/C L K INO S C 2/C L K O U T

    R C 0/T 1O S O /T 1C K 1N C

    R E 1/W R /A N 6R E 2/C S /A N 7

    V D DV S S

    R B 3/P G MR B 2R B 1R B 0/IN TV D DV S SR D 7/P S P 7R D 6/P S P 6R D 5/P S P 5R D 4/P S P 4R C 7/R X /D T

    RA

    3/A

    N3/

    VR

    EF+

    RA

    2/A

    N2/

    VR

    EF-

    RA

    1/A

    N1

    RA

    0/A

    N0

    MC

    LR/V

    PP/T

    HV

    NC

    RB

    7/P

    GD

    RB

    6/P

    GC

    RB

    5R

    B4

    NC

    NC

    RC

    6/T

    X/C

    KR

    C5/

    SD

    OR

    C4/

    SD

    I/SD

    AR

    D3/

    PS

    P3

    RD

    2/P

    SP

    2R

    D1/

    PS

    P1

    RD

    0/P

    SP

    0R

    C3/

    SC

    K/S

    CL

    RC

    2/C

    CP

    1R

    C1/

    T1O

    SI/C

    CP

    2

    P L C C

    P IC 16F 874

    1011

    23456

    1

    18

    19

    20

    21

    22

    12

    13

    14

    15

    38

    87

    44

    43

    42

    41

    40

    39

    16

    17

    2930313233

    232425262728

    36

    34

    35

    9

    P IC 16F 877

    37

    RA

    3/A

    N3/V

    RE

    F+

    RA

    2/A

    N2/V

    RE

    F-

    RA

    1/A

    N1

    RA

    0/A

    N0

    MC

    LR

    /VP

    P/T

    HV

    NC

    RB

    7/P

    GD

    RB

    6/P

    GC

    RB

    5R

    B4

    NC

    RC

    6/T

    X/C

    KR

    C5/S

    DO

    RC

    4/S

    DI/

    SD

    AR

    D3/P

    SP

    3R

    D2/P

    SP

    2R

    D1/P

    SP

    1R

    D0/P

    SP

    0R

    C3/S

    CK

    /SC

    LR

    C2/C

    CP

    1R

    C1/T

    1O

    SI/

    CC

    P2

    NC

    N CR C 0/T 1O S O /T 1C K IO S C 2/C L K O U TO S C 1/C L K INV S SV D DR E 2/A N 7/C SR E 1/A N 6/W RR E 0/A N 5/R DR A 5/A N 4R A 4/T 0C K I

    R C 7/R X /D TR D 4/P S P 4R D 5/P S P 5R D 6/P S P 6R D 7/P S P 7

    V S SV D D

    R B 0/IN TR B 1R B 2

    R B 3/P G M

    Q F P

    P IC 16F 874

  • Pgina 12 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    1.7 Temporizador 0 / Contador (TMR0)

    Este dispositivo es uno de los tres que posee esta familia de microcontroladores, llamadoReal Time Clock / Counter, es bsicamente un contador de 8 bits, constituido por elregistro operacional TMR0 que se encuentra en la posicin 01 de la memoria de datos.Este registro puede usarse para contar eventos externos por medio de un pin de entradaespecial (modo contador) o para contar pulsos internos de reloj de frecuencia constante(modo timer). Adems, en cualquiera de los dos modos, se puede insertar un prescaler,es decir un divisor de frecuencia programable que puede dividir por 2, 4, 8, 16, 32, 64,128 o 256. Este divisor puede ser utilizado alternativamente como prescaler del TMR0 ocomo postscaler del Watch Dog Timer, segn se lo programe.Para su programacin se dispone de dos registros: el TMR0 ya mencionado y el registroOPTION. Este registro contiene los bits necesarios para seleccionar modo contador omodo timer, flanco de conteo en modo contador, prescaler para TMR0 o para WDT yconstante de divisin del prescaler, segn el siguiente esquema:

    R /W -1 R /W -1 R /W -1 R /W -1 R /W -1 R /W -1 R /W -1 R /W -1

    R B P U IN T E D G T 0C S T 0S E P S A P S 2 P S 1 P S 0 R = R e a d a b le b itW = W rita b le b it

    U = U n im p le m e n te d b it,re a d a s 0

    - n = V a lu e a t P O R re s e t

    b it7 b it0

    b it 7 : R B P U : P O R T B P u ll-u p E n a b le b it1 = P O R T B pu ll-u p s a re d is a b le d0 = P O R T B pu ll-u p s a re e n a b le d by in d iv id u a l p o r t la tc h v a lu e s

    b it 6 : IN T E D G : In te rru p t E d g e S e le c t b it1 = In te rru p t o n ris in g e d g e o f R B 0/IN T p in0 = In te rru p t o n fa llin g e d g e o f R B 0/IN T p in

    b it 5 : T 0C S : T M R 0 C lo c k S o u rc e S e le c t b it1 = Tra n s itio n o n R A 4/T 0C K I p in0 = In te rn a l in s tru c tio n c y c le c lo c k (C L K O U T )

    b it 4 : T 0S E : T M R 0 S o u rc e E d g e S e le c t b it1 = In c re m e n t o n h ig h -to -low tra n s itio n o n R A 4/T 0C K I p in0 = In c re m e n t o n low -to -h ig h tra n s itio n o n R A 4/T 0C K I p in

    b it 3 : P S A : P re s c a le r A s s ig n m e n t b it1 = P re s c a le r is a s s ig n e d to th e W D T0 = P re s c a le r is a s s ig n e d to th e T im e r0 m odu le

    b it 2 -0 : P S 2 : P S 0 : P re s c a le r R a te S e le c t b its

    000001010011100101110111

    1 : 21 : 41 : 81 : 161 : 321 : 641 : 1281 : 256

    1 : 11 : 21 : 41 : 81 : 161 : 321 : 641 : 128

    B it V a lu e T M R 0 R a te W D T R a te

  • Pgina 13 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    Circuito equivalente del TMR0 y el prescaler.

    N o te 1 : T 0C S , T 0S E , P S A , P S 2 :P S 0 (O P T IO N _R E G ).2 : T h e p re s c a le r is s h a re d w ith W a tc h d o g T im e r (re fe r to F ig u re 5-2 fo r d e ta ile d b lo c k d ia g ra m ).

    R A 4/T 0C K I

    T 0S E

    0

    1

    1

    0p in

    T 0C S

    F o s c /4

    P ro g ra m m a b leP re s c a le r

    S y n c w ithIn te rn a lc lo c k s

    T M R 0

    P S o u t

    (2 c y c le d e la y )

    P S o u t

    D a ta bu s

    8

    P S AP S 2, P S 1 , P S 0S e t in te rru p ta g b it T 0 IFo n ov e ro w

    3

    En el esquema se puede observar claramente como operan los bits de configuracinT0SE, T0CS y PSA, en cualquiera de sus combinaciones. Se observa adems que en laentrada del contador TMR0 hay un circuito de sincronizacin que introduce una demora dedos ciclos del clock de instrucciones (Fosc. / 4). Al escribir sobre el TMR0automticamente se resetea este circuito, por lo tanto solo se incrementara dos ciclosdespus.El prescaler es un contador asincrnico de 8 bits ms un multiplexor 8 a 1 comandado porlos bits PS0 a PS2, que permite seleccionar como salida a cualquiera de los bits delcontador. Al escribir sobre el TMR0, si este esta programado para operar con prescaler(PSA=0), se borra automticamente el prescaler. Las instrucciones CLRWDT y SLEEPborran el prescaler, si este esta programado para operar como postscaler del watch dogtimer (PSA=1).

    1.8 Interrupciones

    Los 16F87X tienen la posibilidad de contar con sistema de interrupciones. Este sistemaconsiste en un mecanismo por el cual un evento interno o externo, asincrnico respectodel programa, puede interrumpir la ejecucin de ste produciendo automticamente unsalto a una subrutina de atencin, de manera que pueda atender inmediatamente elevento, y retomar luego la ejecucin del programa exactamente en donde estaba almomento de ser interrumpido. Este mecanismo es muy til por ejemplo para el manejo detimers o rutinas que deben repetirse peridicamente (refresh de display, antirebote deteclado, etc.), deteccin de pulsos externos, recepcin de datos, etc. Existen catorcefuentes de interrupcin en los PIC16F87X.

    Funcionamiento

    En los 16F87X las interrupciones se comportan casi exactamente igual que las subrutinas.Desde el punto de vista del control del programa, al producirse una interrupcin seproduce el mismo efecto que ocurrira si el programa tuviese un CALL 0004h en el puntoen que se produjo la interrupcin. En uno de los registros de control del sistema deinterrupciones existe un bit de habilitacin general de interrupciones GIE, que debe serprogramado en 1 para que las interrupciones puedan actuar. Al producirse unainterrupcin, este bit se borra automticamente para evitar nuevas interrupciones. Lainstruccin RETFIE que se utiliza al final de la rutina de interrupcin, es idntica a unretorno de subrutina, salvo que adems coloca en uno automticamente el bit GIE,

  • Pgina 14 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    volviendo a habilitar las interrupciones. Dentro de la rutina de interrupcin, el programadeber probar el estado de los flags de interrupcin de cada una de las fuenteshabilitadas, para detectar cual fue la que causo la interrupcin y as decidir que accintomar.

    P S P IFP S P IE

    A D IFA D IE

    R C IFR C IE

    T X IFT X IE

    S S P IFS S P IE

    C C P 1 IFC C P 1 IE

    T M R 2IFT M R 2IE

    T M R 1IFT M R 1IE

    T 0 IFT 0 IE

    IN T FIN T E

    R B IFR B IE

    G IE

    P E IE

    W a ke -u p (I f in S L E E P m od e )

    In te rru p t to C P U

    C C P 2 IEC C P 2 IF

    T h e fo llow in g ta b le s h ow s w h ic h d e v ic e s h a v e w h ic h in te rru p ts .

    D e v i c e T 0 IF IN T F R B IF P S P IF A D IF R C IF T X IF S S P IF C C P 1 IF T M R 2IF T M R 1IF E E IF B C L IF C C P 2 IF

    P IC 16F 876/873 Ye s Ye s Y e s - Y e s Y e s Y e s Y e s Y e s Y e s Y e s Y e s Y e s Y e s

    P IC 16F 877/874 Ye s Ye s Y e s Y e s Y e s Y e s Y e s Y e s Y e s Y e s Y e s Y e s Y e s Y e s

    B C L IEB C L IF

    E E IFE E IE

    Lgica de interrupciones para los controladores PIC16F8X

    Fuentes

    La seal que produce la interrupcin es en realidad una sola, que resulta de lacombinacin de todas las fuentes posibles y de los bits de habilitacin. Existen dosgrupos de fuentes, unas que se habilitan con solo colocar en uno el bit GIE, y otras queadems necesitan que este puesto a uno el bit PEIE. Adems, cada fuente deinterrupciones tiene su respectivo bit de habilitacin individual.

    REGISTRO INTCON (DIRECCIONES 0B Y 8B)

    Este registro sirve para el control global de las interrupciones y para indicar laprocedencia de algunas a travs de los bits de estado. El PIC 16F87X dispone de docefuentes de potenciales interrupciones:

    Cada bit del registro INTCON tiene un significado particular, que es:

  • Pgina 15 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    Registro INTCON - Direccin 0x0B, 0x8B, 0x10B, 0x18B

    R /W -0 R /W -0 R /W -0 R /W -0 R /W -0 R /W -0 R /W -0 R /W -x

    G IE P E IE T 0 IE IN T E R B IE T 0 IF IN T F R B IF R = R e a d a b le b itW = W rita b le b it

    U = U n im p le m e n te d b it,re a d a s 0

    - n = V a lu e a t P O R re s e t

    b it7 b it0

    b it 7 : G IE : G lo b a l In te rru p t E n a b le b it1 = E n a b le s a ll u n -m a s ke d in te rru p ts0 = D is a b le s a ll in te rru p ts

    b it 6 : P E IE : P e rip h e ra l In te rru p t E n a b le b it1 = E n a b le s a ll u n -m a s ke d p e rip h e ra l in te rru p ts0 = D is a b le s a ll p e rip h e ra l in te rru p ts

    b it 5 : T 0 IE : T M R 0 O ve ro w In te rru p t E n a b le b it1 = E n a b le s th e T M R 0 in te rru p t0 = D is a b le s th e T M R 0 in te rru p t

    b it 4 : IN T E : R B 0/IN T E x te rn a l In te rru p t E n a b le b it1 = E n a b le s th e R B 0/IN T e x te rn a l in te rru p t0 = D is a b le s th e R B 0/IN T e x te rn a l in te rru p t

    b it 3 : R B IE : R B P o r t C h a n g e In te rru p t E n a b le b it1 = E n a b le s th e R B po r t c h a n g e in te rru p t0 = D is a b le s th e R B po r t c h a n g e in te rru p t

    b it 2 : T 0 IF : T M R 0 O ve ro w In te rru p t F la g b it1 = T M R 0 re g is te r h a s o v e ro w e d (m u s t b e c le a re d in s o ftw a re )0 = T M R 0 re g is te r d id n o t o v e ro w

    b it 1 : IN T F : R B 0/IN T E x te rn a l In te rru p t F la g b it1 = T h e R B 0/IN T e x te rn a l in te rru p t o c c u rre d (m u s t b e c le a re d in s o ftw a re )0 = T h e R B 0/IN T e x te rn a l in te rru p t d id n o t o c c u r

    b it 0 : R B IF : R B P o r t C h a n g e In te rru p t F la g b it1 = A t le a s t o n e o f th e R B 7:R B 4 p in s c h a n g e d s ta te (m u s t b e c le a re d in s o ftw a re )0 = N on e o f th e R B 7:R B 4 p in s h a v e c h a n g e d s ta te

    Debemos hacer algunos comentarios sobre la gestin de los bits de este registro.

    En primer lugar, cada indicador de interrupcin individual (RBIF, INTF, etc.) se debe ponera 0 mediante software en el programa de tratamiento de la interrupcin correspondiente.Como hemos visto en la figura 1.3.2, en el PIC16F87X slo hay disponible un vector deinterrupcin situado en la direccin 0004. A dicho programa de interrupcin le correspondecomprobar estos bits para saber cul es el origen de la interrupcin.Cuando llega una interrupcin, el PIC pone automticamente a 0 el bit GIE, de forma queno se perturbe el tratamiento de la interrupcin en curso por otras interrupcioneseventuales. Este bits se pone automticamente a 1 al finalizar el programa de interrupcincuando se ejecuta la instruccin RETFIE.Por ltimo, los bits de indicacin de interrupcin permanecen funcionales incluso cuandolas interrupciones correspondientes no se autorizan.Debido a la incorporacin de una cantidad importante de perifricos dentro de el PIC quese est analizando, es necesario contar con mas registros dedicados a configurar lasinterrupciones, estos son PIR1, PIE1, PIR2 y PIE2.

  • Pgina 16 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    Registro PIE1 - Direccin 0x8C

    R /W -0 R /W -0 R /W -0 R /W -0 R /W -0 R /W -0 R /W -0 R /W -0

    P S P IE (1) A D IE R C IE T X IE S S P IE C C P 1 IE T M R 2IE T M R 1IE R = R e a d a b le b itW = W rita b le b it

    U = U n im p le m e n te d b it,re a d a s 0

    - n = V a lu e a t P O R re s e t

    b it7 b it0

    b it 7 : P S P IE (1): P a ra lle l S la v e P o r t R e a d /W rite In te rru p t E n a b le b it1 = E n a b le s th e P S P re a d /w rite in te rru p t0 = D is a b le s th e P S P re a d /w rite in te rru p t

    b it 6 : A D IE : A /D C o n v e r te r In te rru p t E n a b le b it1 = E n a b le s th e A /D c o n v e r te r in te rru p t0 = D is a b le s th e A /D c o n v e r te r in te rru p t

    b it 5 : R C IE : U S A R T R e c e iv e In te rru p t E n a b le b it1 = E n a b le s th e U S A R T re c e iv e in te rru p t0 = D is a b le s th e U S A R T re c e iv e in te rru p t

    b it 4 : T X IE : U S A R T Tra n sm it In te rru p t E n a b le b it1 = E n a b le s th e U S A R T tra n sm it in te rru p t0 = D is a b le s th e U S A R T tra n sm it in te rru p t

    b it 3 : S S P IE : S y n c h ro n o u s S e ria l P o r t In te rru p t E n a b le b it1 = E n a b le s th e S S P in te rru p t0 = D is a b le s th e S S P in te rru p t

    b it 2 : C C P 1 IE : C C P 1 In te rru p t E n a b le b it1 = E n a b le s th e C C P 1 in te rru p t0 = D is a b le s th e C C P 1 in te rru p t

    b it 1 : T M R 2IE : T M R 2 to P R 2 M a tc h In te rru p t E n a b le b it1 = E n a b le s th e T M R 2 to P R 2 m a tc h in te rru p t0 = D is a b le s th e T M R 2 to P R 2 m a tc h in te rru p t

    b it 0 : T M R 1IE : T M R 1 O ve ro w In te rru p t E n a b le b it1 = E n a b le s th e T M R 1 ov e ro w in te rru p t0 = D is a b le s th e T M R 1 ov e ro w in te rru p t

    N o te 1 : P S P IE is re s e rv e d o n 28-p in d e v ic e s , a lw a y s m a in ta in th is b it c le a r.

  • Pgina 17 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    Registro PIR1 - Direccin 0x0C

    R /W -0 R /W -0 R -0 R -0 R /W -0 R /W -0 R /W -0 R /W -0

    P S P IF (1) A D IF R C IF T X IF S S P IF C C P 1 IF T M R 2IF T M R 1IF R = R e a d a b le b itW = W rita b le b it

    - n = V a lu e a t P O R re s e tb it7 b it0

    b it 7 : P S P IF (1): P a ra lle l S la v e P o r t R e a d /W rite In te rru p t F la g b it1 = A re a d o r a w rite o p e ra tio n h a s ta ke n p la c e (m u s t b e c le a re d in s o ftw a re )0 = N o re a d o r w rite h a s o c c u rre d

    b it 6 : A D IF : A /D C o n v e r te r In te rru p t F la g b it1 = A n A /D c o n v e rs io n c om p le te d0 = T h e A /D c o n v e rs io n is n o t c om p le te

    b it 5 : R C IF : U S A R T R e c e iv e In te rru p t F la g b it1 = T h e U S A R T re c e iv e bu ffe r is fu ll0 = T h e U S A R T re c e iv e bu ffe r is e m p ty

    b it 4 : T X IF : U S A R T Tra n sm it In te rru p t F la g b it1 = T h e U S A R T tra n sm it bu ffe r is e m p ty0 = T h e U S A R T tra n sm it bu ffe r is fu ll

    b it 7 : S S P IF : S y n c h ro n o u s S e ria l P o r t (S S P ) In te rru p t F la g1 =T h e S S P in te rru p t c o n d itio n h a s o c c u rre d , a n d m u s t b e c le a re d in s o ftw a re b e fo re re tu rn in g from th ein te rru p t s e rv ic e ro u tin e . T h e c o n d itio n s th a t w ill s e t th is b it a re :S P IA tra n sm is s io n /re c e p tio n h a s ta ke n p la c e .I2C S la v eA tra n sm is s io n /re c e p tio n h a s ta ke n p la c e .I2C M a s te rA tra n sm is s io n /re c e p tio n h a s ta ke n p la c e .T h e in itia te d s ta r t c o n d itio n w a s c om p le te d by th e S S P m odu le .T h e in itia te d s to p c o n d itio n w a s c om p le te d by th e S S P m odu le .T h e in itia te d re s ta r t c o n d itio n w a s c om p le te d by th e S S P m odu le .T h e in itia te d a c k n ow le d g e c o n d itio n w a s c om p le te d by th e S S P m odu le .A s ta r t c o n d itio n o c c u rre d w h ile th e S S P m odu le w a s id le (M u ltim a s te r s y s te m ).A s to p c o n d itio n o c c u rre d w h ile th e S S P m odu le w a s id le (M u ltim a s te r s y s te m ).0 = N o S S P in te rru p t c o n d itio n h a s o c c u rre d .

    b it 2 : C C P 1 IF : C C P 1 In te rru p t F la g b itC a p tu re M od e1 = A T M R 1 re g is te r c a p tu re o c c u rre d (m u s t b e c le a re d in s o ftw a re )0 = N o T M R 1 re g is te r c a p tu re o c c u rre dC om pa re M od e1 = A T M R 1 re g is te r c om pa re m a tc h o c c u rre d (m u s t b e c le a re d in s o ftw a re )0 = N o T M R 1 re g is te r c om pa re m a tc h o c c u rre dP W M M odeU n u s e d in th is m od e

    b it 1 : T M R 2IF : T M R 2 to P R 2 M a tc h In te rru p t F la g b it1 = T M R 2 to P R 2 m a tc h o c c u rre d (m u s t b e c le a re d in s o ftw a re )0 = N o T M R 2 to P R 2 m a tc h o c c u rre d

    b it 0 : T M R 1IF : T M R 1 O ve ro w In te rru p t F la g b it1 = T M R 1 re g is te r o v e ro w e d (m u s t b e c le a re d in s o ftw a re )0 = T M R 1 re g is te r d id n o t o v e ro w

    N o te 1 : P S P IF is re s e rv e d o n 28-p in d e v ic e s , a lw a y s m a in ta in th is b it c le a r.

  • Pgina 18 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    U -0 R /W -0 U -0 R /W -0 R /W -0 U -0 U -0 R /W -0

    (1) E E IE B C L IE C C P 2IE R = R e a d a b le b itW = W rita b le b it

    U = U n im p le m e n te d b it,re a d a s 0

    - n = V a lu e a t P O R re s e t

    b it7 b it0

    b it 7 : U n im p l e m e n te d : R e a d a s '0 '

    b it 6 : R e s e r v e d : A lw a y s m a in ta in th is b it c le a r

    b it 5 : U n im p l e m e n te d : R e a d a s '0 '

    b it 4 : E E IE : E E P R O M W rite O p e ra tio n In te rru p t E n a b le1 = E n a b le E E W rite In te rru p t0 = D is a b le E E W rite In te rru p t

    b it 3 : B C L IE : B u s C o llis io n In te rru p t E n a b le1 = E n a b le B u s C o llis io n In te rru p t0 = D is a b le B u s C o llis io n In te rru p t

    b it 2 -1 : U n im p l e m e n te d : R e a d a s '0 '

    b it 0 : C C P 2 IE : C C P 2 In te rru p t E n a b le b it1 = E n a b le s th e C C P 2 in te rru p t0 = D is a b le s th e C C P 2 in te rru p t

    N o te 1 : P IE 2 is re s e rv e d , a lw a y s m a in ta in th is b it c le a r.

    Registro PIE2 - Direccin 0x8D

    U -0 R /W -0 U -0 R /W -0 R /W -0 U -0 U -0 R /W -0

    (1) E E IF B C L IF C C P 2IF R = R e a d a b le b itW = W rita b le b it

    U = U n im p le m e n te d b it,re a d a s 0

    - n = V a lu e a t P O R re s e t

    b it7 b it0

    b it 7 : U n im p l e m e n te d : R e a d a s '0 '

    b it 6 : R e s e r v e d : A lw a y s m a in ta in th is b it c le a r

    b it 5 : U n im p l e m e n te d : R e a d a s '0 '

    b it 4 : E E IF : E E P R O M W rite O p e ra tio n In te rru p t F la g b it1 = T h e w rite o p e ra tio n c om p le te d (m u s t b e c le a re d in s o ftw a re )0 = T h e w rite o p e ra tio n is n o t c om p le te o r h a s n o t b e e n s ta rte d

    b it 3 : B C L IF : B u s C o llis io n In te rru p t F la g1 =A bu s c o llis io n h a s o c c u rre d in th e S S P, w h e n c o n g u re d f o r I2C m a s te r m od e0 =N o bu s c o llis io n h a s o c c u rre d

    b it 2 -1 : U n im p l e m e n te d : R e a d a s '0 '

    b it 0 : C C P 2 IF : C C P 2 In te rru p t F la g b itC a p tu re M od e1 = A T M R 1 re g is te r c a p tu re o c c u rre d (m u s t b e c le a re d in s o ftw a re )0 = N o T M R 1 re g is te r c a p tu re o c c u rre dC om pa re M od e1 = A T M R 1 re g is te r c om pa re m a tc h o c c u rre d (m u s t b e c le a re d in s o ftw a re )0 = N o T M R 1 re g is te r c om pa re m a tc h o c c u rre dP W M M odeU n u s e d

    N o te 1 : P IR 2 is re s e rv e d , a lw a y s m a in ta in th is b it c le a r.

    Registro PIR2 - Direccin 0x0D

  • Pgina 19 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    LOS PUERTOS PARALELOS

    Los PIC16F874/7 disponen de cinco puertos paralelo, denominados puerto A hasta puertoE. Las lneas de estos puertos se pueden programar individualmente como entradas ocomo salidas. No obstante, con el fin de que los encapsulados del PIC 16F87X no tenganexcesivos pines, y teniendo en cuenta la cantidad de recursos internos disponibles, lamayora de las lneas de estos puertos se comparten con las lneas de entrada/salida deotros recursos, punto del que ya se mension anteriormente. Vamos a ver que alcompartir lneas a veces influye en la estructura de los correspondientes puertos, y puedeimponer algunas restricciones de utilizacin.

    EL PUERTO A

    El puerto "A" dispone de seis bits. Las lneas representan el esquema interno de lasiguiente figura. Todas ellas estn provistas como salidas con un buffer CMOS normal, ycomo entradas aceptan niveles TTL. Como puede comprobar en esta figura, la entrada yla salida pasan por un latch.

    D a tabu s

    QD

    QC K

    QD

    QC K

    Q D

    E N

    P

    N

    W RP o r t

    W RT R IS

    D a ta L a tc h

    T R IS L a tc h

    R D T R IS

    R D P O R T

    V S S

    V D D

    I/O p in (1)

    N o te 1 : I/O p in s h a v e p ro te c tio n d io d e s to V D D a n dV S S .

    A n a lo gin p u tm od e

    T T Lin p u tbu ffe r

    To A /D C o n v e r te r

    D a tabu s

    W RP O R T

    W RT R IS

    R D P O R T

    D a ta L a tc h

    T R IS L a tc h

    R D T R IS

    S c h m ittTrig g e rin p u tbu ffe r

    N

    V s s

    I/O p in (1)

    T M R 0 c lo c k in p u t

    N o te 1 : I /O p in h a s p ro te c tio n d io d e s to V S S o n ly.

    QD

    QC K

    QD

    QC K

    EN

    Q D

    E N

    RA0, RA1, RA2, RA3 y RA5

    RA4

    En el PIC16F87X, lasinco lneas del primer grfico pueden ser usadas como entradas delconversor analgico/digital integrado. Cuando este conversor se activa, estas lneaspasan a ser entradas analgicas. Si las intenta leer como lneas del puerto A, las vercomo si estuvieran todas ellas a 0. Como se ve en la figura de la derecha la lnea RA4tiene una estructura algo diferente. En efecto, en este caso, la salida es de tipo drenadorabierto (el equivalente en MOS al clsico colector abierto), y la entrada est provista de untrigger Schmitt. Es comn con la entrada externa del temporizador 0.

  • Pgina 20 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    EL PUERTO B

    El puerto B es un puerto bidireccional de 8 bits completo, en le que slo una lnea secomparte con otro recurso interno. Las lneas RB0-RB3 adoptan la estructura interna quepuede ver en la figura de la izquierda, mientras que las lneas RB4-RB7 tienen laestructura de la figura derecha. El motivo de esto se encuentra en el hecho de que esposible programar una interrupcin durante un cambio de estado de una cualquiera de laslneas RB0-RB3. Si se utiliza esta posibilidad, el simple hecho de que cualquiera de laslneas cambie de estado genera una interrupcin (ver la descripcin anterior del registroINTCON). Tenga presente que slo las lneas programadas como entradas sonsusceptibles de ser monitorizadas mediante este procedimiento.

    D a ta L a tc h

    R B P U (2)P

    V D D

    QD

    C K

    QD

    C K

    Q D

    E N

    D a ta bu s

    W R P o r t

    W R T R IS

    R D T R IS

    R D P o r t

    w e a kp u ll-u p

    R D P o r t

    R B 0/IN T

    I/Op in (1)

    T T LIn p u tB u ffe r

    N o te 1 : I/O p in s h a v e d io d e p ro te c tio n to V D D a n d V S S .2 : To e n a b le w e a k p u ll-u p s , s e t th e a p p ro p ria te T R IS b it(s )

    a n d c le a r th e R B P U b it (O P T IO N _R E G ).

    S c h m itt Trig g e rB u ffe r

    T R IS L a tc h

    D a ta L a tc h

    F rom o th e r

    R B P U (2)P

    V D D

    I/O

    QD

    C K

    QD

    C K

    Q D

    E N

    Q D

    E N

    D a ta bu s

    W R P o r t

    W R T R IS

    S e t R B IF

    T R IS L a tc h

    R D T R IS

    R D P o r t

    R B 7:R B 4 p in s

    w e a kp u ll-u p

    R D P o r t

    L a tc h

    T T LIn p u tB u ffe r

    p in (1)

    N o te 1 : I/O p in s h a v e d io d e p ro te c tio n to V D D a n d V S S .

    S TB u ffe r

    R B 7:R B 6 in s e ria l p ro g ra m m in g m od e

    Q 3

    Q 1

    2: To e n a b le w e a k p u ll-u p s , s e t th e a p p ro p ria te T R IS b it(s )a n d c le a r th e R B P U b it (O P T IO N _R E G ).

    Como puede comprobar en ambas figuras, cada una de las lneas del puerto B disponede una resistencia de pull-up de alto valor conectada a la alimentacin. Esta resistenciade pull-up puede activarse o no gracias al bit RBPU del registro OPTION (ver ladescripcin anterior de este registro al hablar del temporizador 0, al que afecta,principalmente). La activacin o no de esta resistencia de pull-up es comn a todas laslneas del puerto B. Adems, sta se desactiva automticamente durante un reset, ascomo las lneas que estn configuradas como salida.El sentido de trabajo de todas las lneas de este puerto se controla mediante el registroTRISB, en el que un bit a 0 activa a la lnea correspondiente como salida, y un bit a 1 laactiva como entrada. Evidentemente, despus de un reset, todos los bits del registroTRISB se ponen a 1.

  • Pgina 21 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    EL PUERTO C

    El puerto C es un puerto bidireccional de 8 bits completo, en el que todas las lneas secomparten con los dems recursos internos, segn la reparticin vista en la descripcin delas seales disponibles en el circuito. A pesar de esto, cada una de las lneas de estepuerto adoptan la misma estructura, la cual se puede ver en la siguiente figura. se disponede un buffer CMOS clsico como salida, y de un trigger Schmitt como entrada.

    P O R T /P E R IP H E R A L S e le c t(2)

    D a ta bu s

    W RP O R T

    W RT R IS

    R D

    D a ta L a tc h

    T R IS L a tc h

    R D T R ISS c h m ittTrig g e r

    QD

    QC K

    Q D

    E N

    P e rip h e ra l D a ta O u t0

    1

    QD

    QC K

    P

    N

    V D D

    V S S

    P O R T

    P e rip h e ra l

    O E (3)

    P e rip h e ra l in p u t

    I/Op in (1)

    N o te 1 : I/O p in s h a v e d io d e p ro te c tio n to V D D a n d V S S .2 : P o r t/P e rip h e ra l s e le c t s ig n a l s e le c ts b e tw e e n p o r t

    d a ta a n d p e rip h e ra l o u tp u t.3 : P e rip h e ra l O E (o u tp u t e n a b le ) is o n ly a c tiv a te d if

    p e rip h e ra l s e le c t is a c tiv e .

    P O R T /P E R IP H E R A L S e le c t(2)

    D a ta bu sW RP O R T

    W RT R IS

    R D

    D a ta L a tc h

    T R IS L a tc h

    R D T R ISS c h m ittTrig g e r

    QD

    QC K

    Q D

    E N

    P e rip h e ra l D a ta O u t0

    1

    QD

    QC K

    P

    N

    V D D

    V S S

    P O R T

    P e rip h e ra l

    O E (3)

    S S P l in p u t

    I/Op in (1)

    N o te 1 : I/O p in s h a v e d io d e p ro te c tio n to V D D a n d V S S .2 : P o r t/P e rip h e ra l s e le c t s ig n a l s e le c ts b e tw e e n p o r t

    d a ta a n d p e rip h e ra l o u tp u t.3 : P e rip h e ra l O E (o u tp u t e n a b le ) is o n ly a c tiv a te d if

    p e rip h e ra l s e le c t is a c tiv e .

    0

    1

    C K E

    S S P S TAT

    S c h m ittTrig g e rw ithS M B u sle v e ls

    RC0-RC2 / RC5-RC7

    RC3-RC4

    El sentido de trabajo de cada una de las lneas de este puerto es controlado por el registroTRISC, en el que un bit a 0, activa a la lnea correspondiente como salida, y un bit a 1 laactiva como entrada. Evidentemente, despus de un reset, todos los bits del registroTRISC se ponen a 1.

  • Pgina 22 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    EL PUERTO D

    El puerto D es un puerto bidireccional de 8 bits completo, que no comparte sus lneas deentrada/salida con ningn otro recurso. En la siguiente figura puede ver su esquemainterno, en el que observamos un buffer TTL como salida, y un trigger Schimtt comoentrada.

    D a tabu s

    W RP O R T

    W RT R IS

    R D P O R T

    D a ta L a tc h

    T R IS L a tc h

    R D T R IS

    S c h m ittTrig g e rin p u tbu ffe r

    I /O p in (1)

    N o te 1 : I/O p in s h a v e p ro te c tio n d io d e s to V D D a n d V S S .

    QD

    C K

    QD

    C K

    E N

    Q D

    E N

    Este puerto tambin dispone de un modo de funcionamiento especial, denominado modoesclavo paralelo, que se muestra en la siguiente figura, y que utiliza tres lneas delpuertoE.

    D a ta bu s

    W RP O R T

    R D

    R D x

    QD

    C K

    E N

    Q D

    E NP O R T

    p in

    O n e b it o f P O R T D

    S e t in te rru p t a g

    P S P IF (P IR 1)

    R e a d

    C h ip S e le c t

    W rite

    R D

    C S

    W R

    N o te : I /O p in h a s p ro te c tio n d io d e s to V D D a n d V S S .

    T T L

    T T L

    T T L

    T T L

  • Pgina 23 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    PRINCIPIO DE UTILIZACION DEL PUERTO D EN MODO ESCLAVO PARALELO.

    En este modo, los PIC16F87X se deben considerar como circuitos de interfaz clsicospara un microprocesador de 8 bits. Las lneas del puerto D se convierten en las lneas delbus de datos de este micro, mientras que las tres lneas de control clsicas: de lectura, deescritura y de activacin del circuito (chip select) estn disponibles en el puerto E. Msadelante, en el aparato dedicado al registro TRISE, veremos el principio defuncionamiento de este modo mediante los bits de control contenidos en este registro.

    Cuando no funciona en modo esclavo paralelo, el puerto D se puede utilizarnormalmente. El sentido de trabajo de cada una de las lneas de este puerto es controladopor el registro TRISD, en el que un bit a 0 activa a la lnea correspondiente como salida, yun bit a 1 la activa como entrada. Evidentemente, despus de un reset, todos los bits delregistro TRISD se ponen a 1.

    EL PUERTO E

    El puerto E no dispone ms que de tres lneas bidireccionales, que respetan el esquemade la siguiente figura. Suministran un buffer CMOS como salida y trigger Schmitt comoentrada.

    D a tabu s

    W RP O R T

    W RT R IS

    R D P O R T

    D a ta L a tc h

    T R IS L a tc h

    R D T R IS

    S c h m ittTrig g e rin p u tbu ffe r

    QD

    C K

    QD

    C K

    E N

    Q D

    E N

    I/O p in (1)

    N o te 1 : I/O p in s h a v e p ro te c tio n d io d e s to V D D a n d V S S .

    Estas lneas se pueden utilizar normalmente como las lneas de cualquier puerto paralelo,o pueden servir de seales de control cuando el puerto "D" est activado en modoesclavo paralelo. El registro de control para el sentido de funcionamiento del puerto E,TRISE, adopta una estructura especial, como se ve a continuacin

  • Pgina 24 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    Registro TRISE - Direccin 0x89

    R -0 R -0 R /W -0 R /W -0 U -0 R /W -1 R /W -1 R /W -1IB F O B F IB O V P S P M O D E b it2 b it1 b it0 R = R e a d a b le b it

    W = W rita b le b itU = U n im p le m e n te d b it,re a d a s 0 - n = V a lu e a t P O R re s e t

    b it7 b it0

    b it 7 : IB F : In p u t B u ffe r F u ll S ta tu s b it1 = A w o rd h a s b e e n re c e iv e d a n d is w a itin g to b e re a d by th e C P U0 = N o w o rd h a s b e e n re c e iv e d

    b it 6 : O B F : O u tp u t B u ffe r F u ll S ta tu s b it1 = T h e o u tp u t bu ffe r s til l h o ld s a p re v io u s ly w ritte n w o rd0 = T h e o u tp u t bu ffe r h a s b e e n re a d

    b it 5 : IB O V : In p u t B u ffe r O v e ro w D e te c t b it (in m ic ro p ro c e s s o r m od e )1 = A w rite o c c u rre d w h e n a p re v io u s ly in p u t w o rd h a s n o t b e e n re a d (m u s t b e c le a re d in s o ftw a re )0 = N o ove ro w o c c u rre d

    b it 4 : P S P M O D E : P a ra lle l S la v e P o r t M od e S e le c t b it1 = P a ra lle l s la v e p o r t m od e0 = G e n e ra l p u rp o s e I/O m od e

    b it 3 : U n im p l e m e n te d : R e a d a s '0 '

    P O R T E D a ta D i r e c t i o n B i tsb it 2 : B i t2 : D ire c tio n C o n tro l b it fo r p in R E 2/C S /A N 7

    1 = In p u t0 = O u tp u t

    b it 1 : B i t1 : D ire c tio n C o n tro l b it fo r p in R E 1/W R /A N 61 = In p u t0 = O u tp u t

    b it 0 : B i t0 : D ire c tio n C o n tro l b it fo r p in R E 0/R D /A N 51 = In p u t0 = O u tp u t

    Estas funciones y asignaciones se corresponden perfectamente con lo que habitualmentese encuentra en cualquier circuito de interfaz para microprocesadores de 8 bits.Para poder funcionar en modo esclavo paralelo, y adems de la puesta a 1 del bitPSPMODE, las lneas deben activarse como entradas mediante la escritura de un 1 enlos bits 0 a 2 del registro TRISE. En el modo esclavo, los bits del registro TRISD no seutilizan, ya que el sentido de trabajo del puerto D est bajo el control del microprocesadorexterno a travs de y .Observe tambin que, como hemos visto en la descripcin del registro PIR1, es posiblegenerar una interrupcin durante la lectura o escritura en el puerto D si est configuradoen este modo.

    LOS TEMPORIZADORES

    Los PIC16F87X contienen tres temporizadores distintos, que disponen de diversasposibilidades de funcionamiento, las cuales vamos a describir a continuacin. Cadatemporizador puede generar una interrupcin, como hemos visto en la presentacin de losregistros INTCON y PIR1. Los temporizadores 1 y 2 pueden adems asociarse a losmdulos funcionales denominados y PWM, que permiten realizar la captura de datoscomo entrada, la comparacin de datos como salida y la modulacin de impulsos enduracin. Todas estas caractersticas son comparables a las que se encuentrentradicionalmente en los temporizadores de mayores prestaciones de los micros de 8 bits.

  • Pgina 25 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    EL TEMPORIZADOR 0

    El temporizador 0 es el ms sencillo de los tres y como se vi anteriormente est formadopor el conjunto TMR0 y el registro OPTION.

    EL TEMPORIZADOR 1

    El temporizador1 est constituido principalmente por un registro de 16 bits dividido en dosregistros de 8 bits, TMR1L y TMR1H, los cuales pueden ser escritos y ledos. El contenidode este registro vara de 0000 hasta FFFF, y vuelve a 0000 despus de sudesbordamiento, generando una interrupcin en ese momento, si sta se autoriza.El esquema de la siguiente figura permite comprender los diversos modos dedireccionamiento de este temporizador.

    T M R 1H T M R 1L

    T 1O S CT 1S Y N C

    T M R 1C S

    T 1C K P S 1:T 1C K P S 0S L E E P in p u t

    T 1O S C E NE n a b leO s c illa to r(1)

    F o s c /4In te rn a lC lo c k

    T M R 1O Non /o ff

    P re s c a le r1 , 2 , 4 , 8

    S y n c h ro n ize

    d e t

    1

    0

    0

    1

    S y n c h ro n ize d

    c lo c k in p u t

    2

    R C 0/T 1O S O /T 1C K I

    R C 1/T 1O S I

    N o te 1 : W h e n th e T 1O S C E N b it is c le a re d , th e in v e r te r a n d fe e d b a c k re s is to r a re tu rn e d o ff. T h is e lim in a te s p ow e r d ra in .

    S e t a g b itT M R 1IF o nO ve ro w

    T M R 1

    ESQUEMA DEL TEMPORIZADOR 1.

    En modo temporizador, el registro se incrementa en una unidad con cada ciclo del reloj deinstruccin (es decir, en cada ciclo de reloj dividido por cuatro). En modo contador, esteincremento tiene lugar en cada periodo de la seal aplicada en el pin RC0, o en cadaperiodo generado por el oscilador que se puede implementar conectando un cristal decuarzo entre los pines RC0 y RC1.En todos los casos, la seal de reloj del temporizador pasa por un prescaler de tasaprogramable, que puede sincronizar despus con el reloj interno. Evidentemente, estasincronizacin es perfectamente intil cuando se utiliza esa fuente como reloj. En modoexterno (o reloj suministrado por el oscilador del temporizador 1) puede seleccionar o noesta sincronizacin.Si se valida la sincronizacin, es posible utilizar el temporizador 1 conjuntamente con elmdulo CCP que se presenta ms adelante. Este modo hace entonces una puesta a 0 deltemporizador a partir de la ocurrencia del evento (comprobacin o captura) para el queest programado. Sin embargo, el temporizador 1 deja de funcionar en modo SLEEP, yaque la sincronizacin no puede tener lugar debido a la parada del reloj interno en estemodo.Si no se valida la sincronizacin, no es posible el funcionamiento con los mdulos CCP,pero el temporizador contina contando incluso en modo SLEEP, y puede por tanto"despertar" al microcontrolador y hacerle salir automticamente de este modo cuando sedesborda, si ha autorizado la generacin de una interrupcin en esta situacin.

  • Pgina 26 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    Los diferentes modos de funcionamiento de este temporizador son controlados por elregistro T1CON, en el que cada bit tiene un significado propio, que es el siguiente:

    Registro T1CON - Direccin 0x10

    U -0 U -0 R /W -0 R /W -0 R /W -0 R /W -0 R /W -0 R /W -0

    T 1C K P S 1 T 1C K P S 0 T 1O S C E N T 1S Y N C T M R 1C S T M R 1O N R = R e a d a b le b itW = W rita b le b itU = U n im p le m e n te d b it,re a d a s 0 - n = V a lu e a t P O R re s e t

    b it7 b it0

    b it 7 -6 : U n im p l e m e n te d : R e a d a s '0 '

    b it 5 -4 : T 1C K P S 1: T 1C K P S 0: T im e r1 In p u t C lo c k P re s c a le S e le c t b its11 = 1:8 P re s c a le v a lu e10 = 1:4 P re s c a le v a lu e01 = 1:2 P re s c a le v a lu e00 = 1:1 P re s c a le v a lu e

    b it 3 : T 1O S C E N : T im e r1 O s c illa to r E n a b le C o n tro l b it1 = O s c illa to r is e n a b le d0 = O s c illa to r is s h u t o ffN o te : T h e o s c illa to r in v e r te r a n d fe e d b a c k re s is to r a re tu rn e d o ff to e lim in a te p ow e r d ra in

    b it 2 : T 1S Y N C : T im e r1 E x te rn a l C lo c k In p u t S y n c h ro n iz a tio n C o n tro l b it

    T M R 1C S = 11 = D o n o t s y n c h ro n ize e x te rn a l c lo c k in p u t0 = S y n c h ro n ize e x te rn a l c lo c k in p u t

    T M R 1C S = 0T h is b it is ig n o re d . T im e r1 u s e s th e in te rn a l c lo c k w h e n T M R 1C S = 0.

    b it 1 : T M R 1C S : T im e r1 C lo c k S o u rc e S e le c t b it1 = E x te rn a l c lo c k from p in R C 0/T 1O S O /T 1C K I (o n th e ris in g e d g e )0 = In te rn a l c lo c k (F O S C /4)

    b it 0 : T M R 1O N : T im e r1 O n b it1 = E n a b le s T im e r10 = S to p s T im e r1

    El oscilador que se sita entre los pines RC0 y RC1, se realiza mediante la conexin deun cuarzo entre dichos pines. La frecuencia mxima de funcionamiento prevista es de 200kHz, y este circuito est optimizado para un cristal de cuarzo a 32 kHz.

    EL TEMPORIZADOR 2

    Como muestra el esquema de la siguiente figura este temporizador est formado por unregistro de 8 bits denominado TMR2, asociado a un predivisor y a un postdivisor, as comoa un registro de periodo.

    C om pa ra to r

    T M R 2S e ts a g

    T M R 2 re g

    o u tp u t (1)

    R e s e t

    P o s ts c a le r

    P re s c a le r

    P R 2 re g

    2

    F o s c /4

    1 :1 1 :16

    1 :1 , 1 :4 , 1 :16

    E Q

    4

    b it T M R 2IF

    N o te 1 : T M R 2 re g is te r o u tp u t c a n b e s o ftw a re s e le c te dby th e S S P M odu le a s a b a u d c lo c k .

    to

  • Pgina 27 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    El contenido de este registro se inicia en el valor 00 y aumenta con cada impulso del relojde instruccin, despus de la eventual divisin realizada por el prescaler. Cuando elcontenido se hace igual que el registro de periodo, se pone a 0 y se aplica una seal alpostdivisor. La salida de ste puede generar entonces una interrupcin, si ha sidoautorizada por el registro PIE1.Los contenidos del prescaler y el postdivisor se ponen automticamente a 0 durante unaescritura en el registro TMR2 o en el registro de control T2CON, as como en un reset, seacual sea su origen.

    Registro T2CON - Direccin 0x12

    U -0 R /W -0 R /W -0 R /W -0 R /W -0 R /W -0 R /W -0 R /W -0

    T O U T P S 3 T O U T P S 2 T O U T P S 1 T O U T P S 0 T M R 2O N T 2C K P S 1 T 2C K P S 0 R = R e a d a b le b itW = W rita b le b itU = U n im p le m e n te d b it,re a d a s 0 - n = V a lu e a t P O R re s e t

    b it7 b it0

    b it 7 : U n im p l e m e n te d : R e a d a s '0 '

    b it 6 -3 : T O U T P S 3: T O U T P S 0: T im e r2 O u tp u t P o s ts c a le S e le c t b its0000 = 1:1 P o s ts c a le0001 = 1:2 P o s ts c a le1111 = 1:16 P o s ts c a le

    b it 2 : T M R 2O N : T im e r2 O n b it1 = T im e r2 is o n0 = T im e r2 is o ff

    b it 1 -0 : T 2C K P S 1: T 2C K P S 0: T im e r2 C lo c k P re s c a le S e le c t b its00 = P re s c a le r is 101 = P re s c a le r is 41x = P re s c a le r is 16

    LOS MODULOS DE CAPTURA, COMPARACION Y MODULACION DE ANCHO DEPULSOS

    Los PIC16F87X disponen de dos mdulos de captura, comparacin y generacin demodulacin ancho de pulsos (PWM), denominados CCP1 y CCP2. Estos dos mdulosfuncionan de la misma forma; excepto en el modo de arranque especial. Por tanto, losvamos a presentar simultneamente, y observaremos en qu se distinguen cuandoveamos dicho modo.Cada mdulo est formado por un registro de 16 bits, accesible tanto para escritura comopara lectura, bajo la forma de dos registros de 8 bits sucesivos, CCPxL para los bits demenor peso y CCPxH para los bits de mayor peso.

    EL MODO CAPTURA

    En este modo, el registro CCPx captura el contenido del temporizador 1 cuando en el pinRcx/CCPx se produce una de las siguientes condiciones: Un flanco de bajada. Un flanco de subida. Una captura cada cuatro flancos de subida. Una captura cada diecisis flancos de subida.

  • Pgina 28 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    La eleccin de estos eventos se realiza con los bits contenidos en el registro CCPxCON,que veremos a continuacin.Cuando tiene lugar una captura, se puede generar una interrupcin, siempre que hayasido autorizada por el bit apropiado de los registros PIE1 o PIE2, vistos anteriormente.Si se produce otra captura antes de que el contenido de CCPx se haya ledo, estecontenido se sustituye por el nuevo.Observe tambin que, para que este sistema funcione correctamente, evidentemente elpin Rcx/CCPx debe estar programado como entrada. Si est configurado como salida y seproduce una escritura en el puerto C, puede generarse una captura falsa.La siguiente figura muestra de forma extremadamente visual el funcionamiento de estemodo de captura. Observe la presencia de un prescaler, que permite la captura de cadaun flanco, cada cuatro flancos o cada diecisis flancos. Su contenido se pone 0 duranteun reset, as como durante cualquier parada del mdulo CCP.Preste atencin al hecho de que, si vara el valor del prescaler con el fin de definir otrascondiciones de captura, se puede generar una falsa interrupcin, por lo que esaconsejable detener el mdulo CCP antes de cambiar las condiciones de captura, paraevitar este fenmeno.

    C C P R 1H C C P R 1L

    T M R 1H T M R 1L

    S e t a g b it C C P 1 IF(P IR 1)

    C a p tu reE n a b le

    Q sC C P 1C O N

    R C 2/C C P 1

    P re s c a le r 1, 4 , 16

    a n de d g e d e te c t

    P in

    ESQUEMA DE UN MODULO CCP EN MODO CAPTURA.

    EL MODO COMPARACION

    En este modo, el contenido del registro CCP se compara permanente con el contenido deltemporizador 1. Cuando se produce una igualdad, cualquiera de los fenmenos siguientesse puede producir:

    Pone un nivel alto en el pin RCx/CCPx. Pone un nivel bajo en el pin RCx/CCPx. Ninguna variacin en el pin, pero se genera una interrupcin, por supuesto si esta esthabilitada.

    Evidentemente, en los dos primeros casos, el pin correspondiente del puerto C debeprogramarse como salida, poniendo a 0 el bit correspondiente del registro TRISC.Existe un modo suplementario que se denomina modo de arranque especial. En estecaso, una comparacin correcta da lugar a los eventos siguientes:

    Para CCP1: el temporizador 1 se pone a 0, lo que permite utilizar el registro CCP1 comoun registro de periodo de 16 bits para el temporizador 1. Para CCP2: el temporizador 1 se pone a 0, y se desencadena una conversin analgico/ digital si, por supuesto, la funcin correspondiente ha sido autorizada por el convertidor.Esto permite llevar a cabo muy fcilmente conversiones a intervalos regulares sin que seanecesario utilizar la unidad central.

  • Pgina 29 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    La siguiente figura muestra de forma muy clara el principio de funcionamiento de estemodo de comparacin.

    C C P R 1H C C P R 1L

    T M R 1H T M R 1L

    C om pa ra to rQ S

    R

    O u tp u tL o g ic

    S p e c ia l E v e n t Trig g e r (C C P 2 o n ly )

    S e t a g b it C C P 1 IF(P IR 1)

    m a tc hR C 2/C C P 1

    T R IS C C C P 1C O N M ode S e le c t

    O u tp u t E n a b le

    P in

    S p e c ia l e v e n t trig g e r w ill:re s e t T im e r1 , bu t n o t s e t in te rru p t a g b itT M R 1IF (P IR 1), a n d s e t b it G O /D O N E

    ESQUEMA DE UN MODULO CCP EN MODO COMPARACION.

    EL MODO PWM O MODULACION DE ANCHO DE PULSO

    En este modo, el pin RCx/CCPx permite disponer de una salida que es una seal conmodulacin de ancho de pulsos, con una resolucin que puede llegar hasta 10 bits.Evidentemente, este pin debe configurarse como salida por medio del registro TRISC.Como muestra la siguiente figura, el principio de este modo de funcionamiento es el quesigue. El usuario escribe, en el registro CCPx, el ciclo de trabajo deseado utilizando 8 bits.El registro CCPxL, el ciclo de trabajo deseado utilizando 8 bits. El registro CCPxH seutiliza como esclavo de CCPxL, por lo que no se puede escribir en l.El periodo de la seal generada se determina mediante el contenido del registro periododel temporizador 2 (PR2). En estas condiciones, y teniendo en cuanta el funcionamientodel temporizador 2 visto anteriormente, se puede escribir:

    Periodo de la seal = (PR2 +1) x 4T x (Predivisor de TMR2)

    Donde T es el periodo de la seal de reloj del PIC.

    Ciclo de trabajo = DC1 x T x (Predivisor TMR2)

    Donde T es el periodo del reloj del PIC, y de DC1 es la palabra de 10 bits, formada por los8 bits de CCPxL, y los bits 4 y 5 de CCPxCON, utilizados como bits de menor peso.La resolucin de este modo PWM es, por tanto, programable hasta alcanzar los 10 bits, si

    los bits 4 y 5 son distintos de 0. En caso contrario, el modo PWM funciona con unaresolucin de 9 bits (un nico bit a 0), o de 8 bits (los dos bits a 0).

  • Pgina 30 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    ESQUEMA DE UN MODULO CCP EN MODO PWM.

    EL REGISTRO DE CONTROL DE LOS MODULOS CCP

    Vistos los diversos modos de funcionamiento, vamos a presentar el anlisis del contenidodel registro de control de cada mdulo CCP. Cada mdulo CCP dispone de su propioregistro de control, denominado CCPxCON, en el que cada uno de sus bits tiene lasiguiente funcin:

    Registro CCP1CON / CCP2CON - Direccin 0x17 / 0x1D

    C C P R 1L

    C C P R 1H (S la v e )

    C om pa ra to r

    T M R 2

    C om pa ra to r

    P R 2

    (N o te 1)

    R Q

    S

    D u ty c y c le re g is te rs C C P 1C O N

    C le a r T im e r,C C P 1 p in a n dla tc h D .C .

    T R IS C

    R C 2/C C P 1

    N o te 1 : 8-b it tim e r is c o n c a te n a te d w ith 2-b it in te rn a l Q c lo c ko r 2 b its o f th e p re s c a le r to c re a te 10-b it tim e -b a s e .

    U -0 U -0 R /W -0 R /W -0 R /W -0 R /W -0 R /W -0 R /W -0

    C C P x X C C P x Y C C P x M 3 C C P x M 2 C C P x M 1 C C P x M 0 R = R e a d a b le b itW =W rita b le b itU = U n im p le m e n te d b it,

    re a d a s 0 - n =V a lu e a t P O R re s e t

    b it7 b it0

    b it 7 -6 : U n im p l e m e n te d : R e a d a s '0 '

    b it 5 -4 : C C P x X : C C P x Y : P W M L e a s t S ig n ic a n t b itsC a p tu re M od e : U n u s e dC om pa re M od e : U n u s e dP W M M ode : T h e s e b its a re th e tw o L S b s o f th e P W M du ty c y c le . T h e e ig h t M S b s a re fo u n d in C C P R x L .

    b it 3 -0 : C C P x M 3: C C P x M 0: C C P x M od e S e le c t b its0000 = C a p tu re /C om pa re /P W M o ff (re s e ts C C P x m odu le )0100 = C a p tu re m od e , e v e ry fa llin g e d g e0101 = C a p tu re m od e , e v e ry ris in g e d g e0110 = C a p tu re m od e , e v e ry 4 th ris in g e d g e0111 = C a p tu re m od e , e v e ry 16th ris in g e d g e1000 = C om pa re m od e , s e t o u tp u t o n m a tc h (C C P x IF b it is s e t)1001 = C om pa re m od e , c le a r o u tp u t o n m a tc h (C C P x IF b it is s e t)1010= C om pa re m od e , g e n e ra te s o ftw a re in te rru p t o n m a tc h (C C P x IF b it is s e t, C C P x p in is u n a ffe c te d )1011 = C om pa re m od e , trig g e r s p e c ia l e v e n t (C C P x IF b it is s e t; C C P 1 re s e ts T M R 1; C C P 2 re s e ts T M R 1a n d s ta r ts a n A /D c o n v e rs io n (if A /D m odu le is e n a b le d ))11xx = P W M m ode

  • Pgina 31 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    INTERFAZ UNIVERSAL DIRECCIONABLE SERIE SINCRONA / ASNCRONA - USART

    La interfaz serie asncrona o SCI con la que est equipado el PIC16F87X es comparable auna UART programable por software. Puede funcionar en modo asncrono full duplex paraconectar al PIC con cualquier equipo provisto con una conexin del mismo tipo (terminal,mdem, etc...), o bien en modo sncrono semiduplex maestro o esclavo, para aplicacionesalgo ms especiales.La velocidad de transmisin es por completo programable gracias a su registro interno, yes idntica en transmisin y en recepcin. La SCI no soporta directamente la paridad, enel sentido de que no la calcula ni la verifica. Por el contrario, ofrece la posibilidad detransmitir y recibir 9 bits de datos, lo cual permite generar esta paridad por software, yutilizar este noveno bit para transmitirla y recibirla.Excepto esta programacin con 8 o 9 bits, el formato de transmisin es fijo; es el clsicocon un bit de arranque, los bits de datos y un bit de parada.

    LA SCI EN MODO ASINCRNO FULL DUPLEX

    En este modo de funcionamiento, la parte de la transmisin de la SCI sigue el esquemade la siguiente figura. Este esquema es el tpico, ya que el corazn de este conjunto es elregistro TXREG, cuando el bit del registro de estado nos indica que dicho registro estvaco. Esta situacin se puede comprobar leyendo este registro por software, o generandouna interrupcin si la SCI la ha autorizado mediante el bit apropiado del registro PIEI (veral principio del captulo).Si la transmisin debe hacerse con 9 bits (utilizando la paridad, por ejemplo, con unatransmisin de datos con 8 bits), este noveno bit procede del registro TXSTA, queveremos a continuacin. Este bit debe tener el valor correcto antes de escribir el registroTXREG. En efecto, si TXREG est vaco, el hecho de escribir en el un byte validainmediatamente la transmisin, por lo que imperativamente el noveno bit se ha debidoactivar previamente.

    T X IFT X IE

    In te rru p t

    T X E N B a u d R a te C L K

    S P B R G

    B a u d R a te G e n e ra to r

    T X 9D

    M S b L S b

    D a ta B u s

    T X R E G re g is te r

    T S R re g is te r

    (8) 0

    T X 9

    T R M T S P E N

    R C 6/T X /C K p in

    P in B u ffe ra n d C o n tro l

    8

    ESQUEMA DE LA SCI EN MODO TRANSMISIN ASNCRONA.

  • Pgina 32 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    El principio de utilizacin de la SCI en transmisin es la siguiente:

    Escritura de la velocidad de transmisin deseada en el registro SPBRG (visto msarriba). Activacin del puerto SCI Activacin eventual de las interrupciones en transmisin mediante la activacin del bitTXIE del registroPIE1 (ver al principio del captulo). Comprobacin del bit TMRT del registro TXSTA (visto ms arriba), para ver si el registrode transmisin est vaco, excepto en el caso de funcionamiento bajo interrupciones,donde la activacin de la interrupcin correspondiente indica situacin. En caso de transmisin con 9 bits, escritura del noveno bit en el registro TXSTA Escritura del byte que hay que transmitir en el registro TXREG.

    El procedimiento se repite a continuacin a partir de la comprobacin del estado delregistro TXREG, con el fin de proceder a la transmisin de los siguientes datos.En recepcin, el principio de funcionamiento es tambin clsico. En este modo, laestructura de la SCI es la indicada en la siguiente figura.

    x 64 B a u d R a te C L K

    S P B R G

    B a u d R a te G e n e ra to r

    R C 7/R X /D T

    P in B u ffe ra n d C o n tro l

    S P E N

    D a taR e c ov e ry

    C R E NO E R R F E R R

    R S R re g is te rM S b L S b

    R X 9D R C R E G re g is te rF IF O

    In te rru p t R C IF

    R C IE

    D a ta B u s

    8

    64

    16o r

    S to p S ta r t(8) 7 1 0

    R X 9

    R X 9A D D E N

    R X 9A D D E N

    R S R

    E n a b leL o a d o f

    R e c e iv eB u ffe r

    8

    8

    ESQUEMA DE LA SCI EN MODO RECEPCION

    El registro de desplazamiento de recepcin no es accesible directamente y slo se puedeleer por medio de registro RCREG, que dispone de un doble buffer, por lo que es posiblerecibir un byte mientras que el anterior todava no se ha ledo.Evidentemente, un bit del registro de estado indica cuando est disponible un byte enRCREG, y puede incluso dar lugar a una interrupcin, siempre que est autorizada por laactivacin del bit adecuado del registro PIE1.En el registro de estado hay adems dos controles disponibles. Un bit de desbordamiento,que indica la sobrescritura de los datos contenidos en RCREG por los datos siguientes, si

  • Pgina 33 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    no se han ledo suficientemente rpido, y un bit de error de formato. No est previstoningn bit de error de paridad, ya que sta no es soportada directamente.Si se utiliza el noveno bit, ste no est disponible en el registro RCREG, que es unregistro de 8 bits, sino en el registro de estado de recepcin.

    El principio de utilizacin de la SCI en recepcin es el siguiente:

    Escritura de la velocidad de transmisin deseada en el registro SPBRG (visto msarriba), Habilitacin del puerto SCI Habilitacin eventual de las interrupciones en recepcin mediante la activacin del bitRCIE del registro PIE1 (ver al principio del captulo). Comprobacin del bit RCIF del registro PIR1 (visto al principio del captulo), para ver siel registro de recepcin est vaco, excepto en el caso de funcionamiento bajointerrupciones, donde la activacin de la interrupcin correspondiente indica situacin. En caso de recepcin con 9 bits, hay que leer el noveno bit en el registro RCSTA, yverificar la ausencia de error de recepcin. Lectura del byte recibido en el registro RCREG.

    El procedimiento se repite a continuacin a partir de la comprobacin del estado del bitRCIF, con el fin de recibir los datos siguientes.

    LA SCI EN MODO SNCRONO SEMIDUPLEX

    El funcionamiento en modo sncrono semiduplex descansa sobre los mismos principiosque los vistos anteriormente, con nicamente dos diferencias importantes.

    Al tratarse de un modo semiduplex, la transmisin y la recepcin simultnea no esposible. El hecho de utilizar una de estas funciones desactiva automticamente a la otra. El hecho de estar en modo sncrono significa que el reloj de transmisin se envaconjuntamente con los datos. Cuando la SCI est en modo maestro, es ella la quesuministra la seal de reloj en su pin CK, con una frecuencia fijada, como en el casoanterior, por el contenido del registro SPBRG. Cuando la SCI est en modo esclavo,recibe el reloj de transmisin en este mismo pin CK.

    La siguiente figura presenta el grfico de una transmisin en modo maestro, y la figura acontinuacin presenta el de recepcin en el mismo modo.Los principios de transmisin y recepcin vistos para el modo asncrono son vlidostambin en este caso. Para ello basta con activar correctamente los bits de seleccin deeste modo en los registros TXSTA y RCSTA.

  • Pgina 34 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    B it 0 B it 1 B it 7

    W O R D 1

    Q 1 Q 2 Q 3 Q 4 Q 1 Q 2 Q 3 Q 4 Q 1 Q 2 Q 3 Q 4 Q 1 Q 2 Q 3 Q 4 Q 1 Q 2 Q 3 Q 4 Q 3 Q 4 Q 1 Q 2 Q 3 Q 4 Q 1 Q 2 Q 3 Q 4 Q 1 Q 2 Q 3 Q 4 Q 1 Q 2 Q 3 Q 4 Q 1 Q 2 Q 3 Q 4 Q 1 Q 2 Q 3 Q 4

    B it 2 B it 0 B it 1 B it 7R C 7/R X /D T p in

    R C 6/T X /C K p in

    W rite toT X R E G re g

    T X IF b it(In te rru p t f la g )

    T R M T

    T X E N b it'1 ' '1 '

    N o te : S y n c m a s te r m od e ; S P B R G = '0 '. C o n tin u o u s tra n sm is s io n o f tw o 8-b it w o rd s .

    W O R D 2

    T R M T b it

    W rite w o rd 1 W rite w o rd 2

    R C 7/R X /D T p in

    R C 6/T X /C K p in

    W rite toT X R E G re g

    T X IF b it

    T R M T b it

    b it0 b it1 b it2 b it6 b it7

    T X E N b it

    TRANSMISIN SNCRONA

    TRANSMISIN SNCRONA A TRAVZ DE TXEN

    C R E N b it

    R C 7/R X /D T p in

    R C 6/T X /C K p in

    W rite tob it S R E N

    S R E N b it

    R C IF b it(in te rru p t)

    R e a dR X R E G

    N o te : T im in g d ia g ra m de m on s tra te s S Y N C m a s te r m od e w ith b it S R E N = '1 ' a n d b it B R G H = '0 '.

    Q 3 Q 4 Q 1 Q 2 Q 3 Q 4 Q 1 Q 2 Q 3 Q 4Q 2 Q 1 Q 2 Q 3 Q 4 Q 1 Q 2 Q 3 Q 4 Q 1 Q 2 Q 3 Q 4 Q 1 Q 2 Q 3 Q 4 Q 1 Q 2 Q 3 Q 4Q 1 Q 2 Q 3 Q 4 Q 1 Q 2 Q 3 Q 4

    '0 '

    b it0 b it1 b it2 b it3 b it4 b it5 b it6 b it7

    '0 '

    Q 1 Q 2 Q 3 Q 4

    RECEPCIN SNCRONA

  • Pgina 35 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    LOS REGISTROS DE CONTROL Y DE ESTADO DE LA SCI

    Ahora que conocemos los dos modos de funcionamiento de la interfaz serie asncrona oSCI, podemos examinar el papel de los diversos bits de estado y de control de susregistros internos. En primer lugar, vamos a ver el registro de estado TXSTA en el quecada bit tiene el significado particular que sigue.

    Registro TXSTA - Direccin 0x98

    R /W -0 R /W -0 R /W -0 R /W -0 U -0 R /W -0 R -1 R /W -0C S R C T X 9 T X E N S Y N C B R G H T R M T T X 9D R = R e a d a b le b it

    W =W rita b le b itU = U n im p le m e n te d b it,

    re a d a s 0 - n =V a lu e a t P O R re s e t

    b it7 b it0

    b it 7 : C S R C : C lo c k S o u rc e S e le c t b it

    A s y n c h ro n o u s m od eD on t c a re

    S y n c h ro n o u s m od e1 = M a s te r m od e (C lo c k g e n e ra te d in te rn a lly from B R G )0 = S la v e m od e (C lo c k from e x te rn a l s o u rc e )

    b it 6 : T X 9 : 9-b it Tra n sm it E n a b le b it1 = S e le c ts 9-b it tra n sm is s io n0 = S e le c ts 8-b it tra n sm is s io n

    b it 5 : T X E N : Tra n sm it E n a b le b it1 = Tra n sm it e n a b le d0 = Tra n sm it d is a b le dN o te : S R E N /C R E N ov e rrid e s T X E N in S Y N C m od e .

    b it 4 : S Y N C : U S A R T M od e S e le c t b it1 = S y n c h ro n o u s m od e0 = A s y n c h ro n o u s m od e

    b it 3 : U n im p l e m e n te d : R e a d a s '0 '

    b it 2 : B R G H : H ig h B a u d R a te S e le c t b it

    A s y n c h ro n o u s m od e1 = H ig h s p e e d0 = L ow s p e e d

    S y n c h ro n o u s m od eU n u s e d in th is m od e

    b it 1 : T R M T : Tra n sm it S h ift R e g is te r S ta tu s b it1 = T S R e m p ty0 = T S R fu ll

    b it 0 : T X 9D : 9 th b it o f tra n sm it d a ta . C a n b e p a rity b it.

  • Pgina 36 de 58La impresin est solo permitida para la CEE - UTN Facultad Regional Crdoba

    El segundo registro principal que controla la SCI es el registro RCSTA, en el que cada bittiene el siguiente significado.

    Registro RCSTA - Direccin 0x18

    R /W -0 R /W -0 R /W -0 R /W -0 R /W -0 R -0 R -0 R -xS P E N R X 9 S R E N C R E N A D D E N F E R R O E R R R X 9D R = R e a d a b le b it

    W =W rita b le b itU = U n im p le m e n te d b it,

    re a d a s 0 - n =V a lu e a t P O R re s e t

    b it7 b it0

    b it 7 : S P E N : S e ria l P o r t E n a b le b it1 = S e ria l p o r t e n a b le d (C o n g u re s R C 7/R X /D T a n d R C 6/T X /C K p in s a s s e ria l p o r t p in s )0 = S e ria l p o r t d is a b le d

    b it 6 : R X 9 : 9-b it R e c e iv e E n a b le b it1 = S e le c ts 9-b it re c e p tio n0 = S e le c ts 8-b it re c e p tio n

    b it 5 : S R E N : S in g le R e c e iv e E n a b le b it

    A s y n c h ro n o u s m od eD on t c a re

    S y n c h ro n o u s m od e - m a s te r1 = E n a b le s s in g le re c e iv e0 = D is a b le s s in g le re c e iv eT h is b it is c le a re d a fte r re c e p tio n is c om p le te .

    S y n c h ro n o u s m od e - s la v eU n u s e d in th is m od e

    b it 4 : C R E N : C o n tin u o u s R e c e iv e E n a b le b it

    A s y n c h ro n o u s m od e1 = E n a b le s c o n tin u o u s re c e iv e0 = D is a b le s c o n tin u o u s re c e iv e

    S y n c h ro n o u s m od e1 = E n a b le s c o n tin u o u s re c e iv e u n til e n a b le b it C R E N is c le a re d (C R E N ov e rrid e s S R E N )0 = D is a b le s c o n tin u o u s re c e iv e

    b it 3 : A D D E N : A d d re s s D e te c t E n a b le b itA s y n c h ro n o u s m od e 9-b it (R X 9 = 1)1 = E n a b le s a d d re s s d e te c tio n , e n a b le in te rru p t a n d lo a d o f th e re c e iv e bu rffe r w h e n R S R is s e t0 = D is a b le s a d d re s s d e te c tio n , a ll b y te s a re re c e iv e d , a n d n in th b it c a n b e u s e d a s p a rity b it

    b it 2 : F E R R : F ra m in g E rro r b it1 = F ra m in g e rro r (C a n b e u p d a te d by re a d in g R C R E G re g is te r a n d re c e iv e n e x t v a lid by te )0 = N o fra m in g e rro r

    b it 1 : O E R R : O v e rru n E rro r b it1 = O ve rru n e rro r (C a n b e c le a re d by c le a rin g b it C R E N )0 = N o ove rru n e rro r

    b it 0 : R X 9D : 9 th b it o f re c e iv e d d a ta (C a n b e p a rity b it)

    El ltimo registro de control de la SCI es el registro SPBRG, que permite definir lavelocidad de transmisin. El contenido de este registro permite, en realidad, calcular lavelocidad de transmisin que se utilizar segn las indicaciones de la siguiente tabla.

    S Y N C B R G H = 0 (L ow S p e e d ) B R G H = 1 (H i g h S p e e d )

    01

    (A s y n c h ro n o u s ) B a u d R a te = F O S C /(64(X +1))(S y n c h ro n o u s ) B a u d R a te = F O S C /(4(X +1))

    B a u d R a te = F O S C /(16(X +1))N A

    X = va lu e