66
FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84 El PIC 16C84 es un Microcontrolador de 8 bits de muy alto rendimiento y construido bajo tecnología CMOS. Los PIC 16/17 emplean una arquitectura avanzada RISC. Dicho dispositivo posee un núcleo ensamblado, 8 niveles de pila e interrupciones internas y externas. La separación del bus de datos y el bus de direcciones en la Arquitectura HARVARD permite una palabra de instrucción de 14 bits y un bus de datos de 8 bits. Las estaciones de instrucciones permiten ejecutar todas las instrucciones en un solo ciclo, excepto para los programas ramificados, que requieren 2 ciclos. Dispone de 35 instrucciones y un registro extenso para ejecutar programas de alto nivel. Típicamente el PIC 16C84 realiza un código de comprensión de 2 : 1 y se ejecuta a una velocidad 2 : 1 (10 Mhz)

FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

  • Upload
    others

  • View
    21

  • Download
    0

Embed Size (px)

Citation preview

Page 1: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

FUNDAMENTACIÓN TEÓRICA

MICROCONTROLADOR PIC 16C84

El PIC 16C84 es un Microcontrolador de 8 bits de muy alto

rendimiento y construido bajo tecnología CMOS. Los PIC 16/17

emplean una arquitectura avanzada RISC. Dicho dispositivo

posee un núcleo ensamblado, 8 niveles de pila e interrupciones

internas y externas. La separación del bus de datos y el bus de

direcciones en la Arquitectura HARVARD permite una palabra

de instrucción de 14 bits y un bus de datos de 8 bits. Las

estaciones de instrucciones permiten ejecutar todas las

instrucciones en un solo ciclo, excepto para los programas

ramificados, que requieren 2 ciclos. Dispone de 35 instrucciones

y un registro extenso para ejecutar programas de alto nivel.

Típicamente el PIC 16C84 realiza un código de

comprensión de 2 : 1 y se ejecuta a una velocidad 2 : 1 (10 Mhz)

Page 2: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

por encima de cualquier microcontrolador del mercado externo.

El PIC 16C84 posee 36 bytes de memoria RAM, 64 bytes de

memoria EEPROM y 36 pines de puertos I/O . Esta familia

posee características especiales para reducir componentes

externos, de ésta manera se reducen los costos, se aumenta la

compatibilidad y eficiencia del equipo, reduce el consumo de

potencia. Hay 4 opciones para el oscilador, el RC para un costo

bajo y funcionamiento sencillo, el LP para reducir el consumo de

potencia, el XT como oscilador de cristal estándar y el HS para

cristales de alta velocidad. El modo SLEEP ofrece ahorro de

energía el usuario puede despertar el microcontrolador

mediante interrupciones externas o internas. La memoria

EEPROM del PIC 16C84 permite su uso para prototipo de

prueba y está incluida en la misma pastilla. Por otro lado,

permite el uso de un código para reprogramar el dispositivo sin

necesidad de removerlo. El PIC 16C84 se ajusta perfectamente

para aplicaciones como el manejo de motores, controles

automáticos de alta velocidad, cerrojos electrónicos, tarjetas

Page 3: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

inteligentes, censado remoto y dispositivos de seguridad. La

tecnología EEPROM permite el trabajo rápido y conveniente. El

pequeño tamaño de este microcontrolador está diseñado para

aplicaciones donde se limita el espacio de trabajo. El bajo costo,

bajo consumo de potencia, alta eficiencia, fácil uso y flexibilidad

de los puestos hace al PIC 16C84 un dispositivo muy versátil en

áreas específicas. La programación serial de éste dispositivo lo

hace aun más versátil.

Este dispositivo posee una variedad de rangos de

frecuencia y empaques que están a la disponibilidad

dependiendo de la aplicación y los requerimientos de

producción. Existen dos tipos:

- PIC 16C84, el posee memoria EEPROM y opera en los

rangos normales de voltaje.

- PIC 16LC84, este posee memoria EEPROM y opera en

un rango extendido de voltaje. El dispositivo 16LC84 se

Page 4: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

ensambla en empaque de plástico de bajo costo, por otro

lado el dispositivo puede ser borrado eléctricamente y

reprogramado para aplicaciones de prueba o trabajos

pilotos.

En el caso del PIC16C84, utiliza para lograr alta eficiencia;

una Arquitectura Harvard, por lo cual se puede atribuir a un

número de características especiales, comúnmente encontrada en

los microprocesadores RISC. Esta arquitectura tiene por

separado el acceso al programa y a los datos en memoria, por lo

tanto, el dispositivo posee un bus de memoria de datos y un bus

de memoria de programas. Esta descripción sobre la vieja

arquitectura VON NEUMANN (donde el bus de datos y el de

programas están unidos en una sola memoria) trae mejoras en el

ancho de la palabra de operación. En el PIC 16C84 la palabra se

conoce como OPCODE y es de 14 bits. Esto permite el

procesamiento de 14 palabras de instrucción en un ciclo de

máquina. El PIC 16C84 direcciona 1K x 14 de memoria de

Page 5: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

programa interno. Este microcontrolador puede ser direccionado

directa o indirectamente hacia su registro o archivo. Todos los

registros de funciones especiales y el contador del programa

están mapeados en la memoria de aritméticas y booleanas entre

los datos de registro de trabajo en cualquier registro de archivo.

Esta unidad es capaz de sumar, restar y realizar operaciones

lógicas. Las operaciones aritméticas son realizadas mediante el

método de complemento A2. Las operaciones siempre se

realizan con el registro de trabajo, y las operaciones con 2

operandos se realizan entre el registro de trabajo y una contante

predefinida en un registro de archivo. El registro de trabajo W

no es un registro direccionable dependiendo de la instrucción

realizada por el ALU, se afectan los bits del registro STATUS.

Entre esas instrucciones se señalan:

-EL CICLO DE INSTRUCCIÓN :

Page 6: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

La entrada del reloj (OSC1) es internamente dividida entre

cuatro para generar cuatro relojes en cuadratura sin

solapamiento, esto ciclo son Q1, Q2, Q3, Q4. Internamente el

contador del programa (PC) es incrementado cada Q1 , la

instrucción es tomada de la memoria del programa y colocada

dentro del registro de instrucciones Q4. La instrucción es

decodificada y ejecutada durante el siguiente Q1 hasta Q4.

-LA INSTRUCCIÓN FLOW/ PIPELINING:

Un ciclo de instrucción se divide en cuatro Q. La

instrucción tomada y ejecutada y conducido tan pronto como se

toman otra instrucción y se genera un nuevo ciclo de instrucción.

Se observa que éste proceso se ejecuta en un solo ciclo de

instrucción. Si una instrucción cambia al PC luego se ocurre una

petición de dos ciclos de máquina para dicha instrucción. El ciclo

de toma de la instrucción comienza con el PC incrementando Q1

en la ejecución del ciclo, la instrucción tomada es colocada en el

registro de instrucción en el ciclo Q1. Esta instrucción es

Page 7: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

decodificada y ejecutada durante los ciclos Q2, Q3 y Q4. La

memoria de datos es leída en el ciclo de Q2 y escrita en Q4.

El PIC 16C84, organiza su memoria, en dos bloques, estos

son la memoria del programa y la memoria de datos. Cada

bloque tiene su propio bus, lo que el acceso para cada bloque

puede ocurrir durante el mismo ciclo del oscilador. La memoria

de datos (RAM) se divide en registro de propósito general y

registro de funciones especiales (SFR). Los SFR tienen como

operación principal controlar el núcleo del microcontrolador y

módulos periféricos. Por otro lado la memoria del programa

contiene la memoria de datos EEPROM. Esta memoria no está

mapeada directamente sobre la memoria de datos, pero puede

ser mapeada indirectamente. Esto es un direccionamiento

indirecto que especificará la dirección de la memoria EEPROM

para escribirla y leerla. Los 64 bytes de la memoria EEPROM

tienen rango de direccionamiento de 0h a 3Fh.

Page 8: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

-EN CUANTO A LA ORGANIZACIÓN DE LA

MEMORIA DEL PROGRAMA, el PIC 16C84 posee un contador

de programa de 16 bits capaz de direccionar un espacio de

memoria de programas de 1kx14 (0000h-03ffh). El acceso a una

locación de memoria sobre una dirección implementada

físicamente causará solapamientos, por ejemplo, locaciones 20h,

420h, 820h, C20h, 1020h, 1420h y 1C20h serán la misma

instrucción.

El vector de puesta a cero o reset está ubicado en la

dirección 0000h y el vector de interrupción esta en la dirección

0004h.

- CON RESPECTO ORGANIZACIÓN DE LA

MEMORIA DE DATOS, está particionada en dos áreas. La

primera, el área de los Registros de Funciones Especiales (SFR),

mientras la segunda área corresponde a los Registros de

Propósitos Generales (GPR). Los SFR controlan la operación del

dispositivo.

Page 9: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

Porciones de la memoria de datos están banqueadas. Esto

es para ambas áreas (SFR, GPR). El área de los GPR está

banqueada para permitir valores superiores a los 116 bytes de

RAM propósito general. Las áreas banqueadas de los SFR son

para los registros que controlan las funciones periféricas. El

banqueo requiere del uso de bits de control para su selección.

Estos bits de control están ubicado en el registro STATUS.

Toda la memoria de datos puede ser accesada

directamente con el uso de la dirección absoluta de registro de

archivo o indirectamente a través de la selección de registro de

archivo correspondiente instrucción en Q4. El direccionamiento

indirecto utiliza el valor actual de los bits RP1 :RP2 dentro del

registro STATUS.

Los GPR están ubicados en el banco 0 y los SFR están en el

banco 1. El banco 0 es seleccionado mediante la puesta a cero del

bit RP0 (STATUS<5>), por el contrario, la puesta a uno del bit

Page 10: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

RP0 selecciona al banco 1. Cada banco se extiende hasta los 128

bytes. Las primeras 12 locaciones de memoria de cada banco

están reservadas para los SFR, en las locaciones restantes son

GPR implementados en una RAM estática (SRAM).

-EN RELACION AL REGISTRO DE PROPÓSITO

GENERAL (GPR); se destaca que, todos los dispositivos poseen

cierta cantidad de áreas para los registros de propósito general

(GPR). Cada GPR es de 8 bits y pueden ser accesados directa e

indirectamente mediante los registros de funciones especiales

(SFR). Los GPR direccionados en el banco 1 son mapeados a las

direcciones del banco 0. Como ejemplo, direccionar la locación

0Ch u 8Ch accesarán al mismo GPR.

-LOS REGISTROS DE FUNCIONES ESPECIALES

(SFR), son utilizados por el CPU y las funciones periféricas para

controlar la operación del dispositivo. Estos registros son SRAM.

Page 11: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

Los SFR pueden ser clasificados en dos grupos, núcleos o

periféricos. A continuación se detallan.

El Registro STATUS contiene el estado aritmético de la

ALU, es estado de RESET y el bit de selección de banco para la

memoria de datos.

Como cualquier registro, el Registro STATUS puede ser el

destino para cualquier instrucción. El Registro Status es el

destino para una instrucción que afecta los bits Z, D, o DC, la

escritura a éstos registros es automáticamente desactivada. Estos

bits son puestos a cero o uno según la lógica del dispositivo. No

obstante, los bits TO y PD no se pueden escribir. Por otro lado, el

resultado de una instrucción con destino al Registro Status,

podría ser diferente a los pensado.

Por ejemplo, la instrucción CLRF STATUS limpiará los tres

bits más significativos y pondrá a uno el bits Z, esto coloca al

Registro Status como 0001 uu (donde u es invariable).

Page 12: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

Unicamente las instrucciones VCF, VSF y MOVWF deben ser

utilizadas para alterar el Registro Status, porque ninguna de

éstas funciones modifican los bits internos de dicho registro.

Los bits IRP y IRP1 (Status<7 : 6>) no son utilizados por el

PIC 16C84 y deben ser programados como sea. El uso de estos

bits como bits de propósito general R/W no es recomendable,

ya que podría afectar a la comunicación entre otros dispositivos.

Para la resta, los bits C y DC (Status <1 : 0>), operan como

BORROW y DIGIT BORROW respectivamente.

El Registro OPTION es un registro que puede ser leído y

escrito, contiene varios bits de control para configurar el pre-

escalador TMR0/WDT, la interrupción externa el INT, TMR0 y

el Weak Pull-Ups en el puerto B (PORTB).

Cuando el pre-escalador es asignado al WDT (PSA = 1), la

asignación al TMR0 es de 1 : 1.

Page 13: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

El Registro INTCON es un registro que puede ser leído y

escrito que contiene diversos bits de habilitación para todas las

fuentes de interrupción.

El contador del programa (PC) tiene un ancho de 13 bits. El

byte bajo del PC son el registro PCL el cual puede ser escrito o

leído. El byte alto del PC (PC<12 : 8>) es el registro PCLATH, el

cual no puede ser escrito o leído de forma directa. El PCLATH

es un registro sostenedor para el PC. El contenido del PCLATH

es transferido el byte superior del PC cuando éste es cargado con

un nuevo valor, esto ocurre al implementar un CALL, GOTO o

una escritura al PCL .

Un GOTO Computado se complementa con la suma de un

offset al PC (ADDWF PCL). Cuando se realiza la lectura de una

tabla mediante el uso del método GOTO computado se debe

Page 14: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

tener práctica para evitar que la tabla de locaciones no cruce la

página del PCL (Cada cuadro de 256 palabras).

En relación a la PAGINACIÓN DE LA MEMORIA DEL

PROGRAMA; El PIC 16C84 posee una memoria de programa

de 1K. Las instrucciones GOTO y CALL poseen un rango de 11

bits de dirección. Estos 11 bits de dirección permiten una

ramificación de 2K de paginación. Para una futura expansión de

la memoria del programa deben existir dos nuevos bits para

especificar su paginación. Estos bits provienen del registro

PCLATH (PCLATH <4 : 3> ). Cuando se realiza un GOTO o

CALL, el usuario debe asegurar de que éstos bits están

programados para la correcta paginación de la memoria.

El PIC 16C84 ignora el uso de los bits de paginación dentro

del registro PCLATH, ya que el uso de estos podría traer

problemas de comunicación con futuros dispositivos periféricos.

El PIC 16C84 posee una PILA STACK de 13 bits de ancho

x 8 niveles de profundidad. Es espacio del Stack no es parte del

Page 15: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

espacio de memoria del programa y el apuntador del Stack no se

puede leer o escribir.

Los 13 bits del PC son ¨pushed¨ dentro del Stac cuando una

instrucción es ejecutada o alguna interrupción es reconocida. El

Stack es ¨popped¨ , cuando se ejecutan las instrucciones

RETURN, RETLW o RETFIE. Es importante mencionar que el

registro de PCLATH no es afectado por las operaciones ¨push¨ y

¨pop¨ .

El Stack opera en forma de buffer circular, es decir,

después de que el Stack es ¨pushed¨ 8 veces, el noveno ¨push¨

sobre escribe el valor guardado en el primer ¨push¨ ; el décimo

¨push¨ sobre escribe el valor guardado en el segundo ¨push¨ , y

así sucesivamente.

Si el Stack es ¨popped¨ 9 veces de manera efectiva, el valor

del PC es el mismo del primer ¨pop¨ .

Page 16: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

Destacan en la organización de la memoria del PIC 16C84,

el DIRECCIONAMIENTO INDIRECTO y sus elementos:

- REGISTRO INDF Y FSR

El registro INDF no es un registro físico. Al direccionar el

registro INDF éste direcciona el registro que posee la dirección

contenida en el registro FSR (FSR es un apuntador) esto es

direccionamiento indirecto.

Ejemplo de Direccionamiento Indirecto :

• El registro de archivo 05 contiene el valor 10h.

• El registro de archivo 06 contiene el valor 0Ah.

• Carga el valor de 05 en el registro FSR.

• La lectura del registro INDF retornará el valor de 10h.

• Incrementa el valor del registro FSR en 1 (FSR= 06).

• La lectura del registro INDF retornará ahora el valor de

0Ah.

Page 17: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

Al leerse el registro INDF por si mismo indirectamente

(FSR=0) se producirá 00h. al escribirse indirectamente el

resultado es un “No operation” (los bits del registro Status

podrían ser afectados).

A continuación se muestra un programa simple para

limpiar las locaciones de 20h a 2Fh de la RAM utilizando el

direccionamiento indirecto :

MOVLW 0x20 ;Iniciar el apuntador

MOVWF FSR ;a la RAM

NEXT CLRF INDF ;Limpia el registro INDF

INCF FSR ;Incrementa el apuntador

BTFSSFSR,4 ;verifica si todo se realizó

GOTO NEXT ;NO, limpiar el siguiente CONT ;SI

continuar

Page 18: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

El PIC16C84 posee dos puertos, PORTA Y PORTB. Algunos

de los pines de los puertos están multiplexados con una función

alterna del desarrollo del dispositivo.

El registro PORTA es un “lacth” de 5 bits. RA4 es una

entrada tipo disparo Schmitt y salida de drenador abierto. Los

demás RA pines del puerto poseen niveles de entrada TTL y

manejadores de salida CMOS. Todos los pines tienen bits de

dirección de datos (registros TRIS), los cuales pueden configurar

los pines como entrada o salidas de forma independiente.

Poniendo a uno (1) algún bit del registro TRISA, colocará

el pin correspondiente al bit seleccionado como una entrada, de

algún bit es puesto a cero, luego el pin correspondiente es

colocado como una salida.

Cuando se lee el registro PORTA, éste lee el estado de los

pines, mientras que él escribe, éste escribirá información de los

“latch” del puerto. Todas las operaciones de escritura son

Page 19: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

operaciones de Lectura - Modificación - Escritura, por lo tanto, el

escribir en un puerto implica que los pines del puerto son leídos

primero, luego éstos valores son modificados y escritos en el

“latch” del puerto de datos. El pin RA4 está multiplexado con la

entrada TMR0.

El Registro PORTB es un puerto bidireccional de 8 bits. El

registro TRISB, corresponde a los datos de dicho puerto. Un “1”

en cualquier bit del registro TRISB coloca el correspondiente

manejador de salida en un modo de alta impedancia. Un “0” en

cualquier bit del registro TRISB coloca el contenido de “latch” de

salida en el pin seleccionado.

Cada pin del PORTB posee un “Weak Pull-Up” interno.

Un solo bit de control puede activar todos los “Weak Pull-Ups”.

Esto es realizado poniendo en cero el bit 7 del registro OPTION

(OPTION <7>). Los “Weak Pull-Ups” son automáticamente

apagados cuando los pines del puerto se configuran como salida.

Page 20: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

Por otro lado los “Weak Pull-Ups” son desactivados cuando

ocurre un “Power-On Reset”.

Los cuatro pines del PORTB, RB7 a RB4, están

multiplexados con funciones especiales de interrupción.

Unicamente los pines que se configuren como entrada, serán

capaces de ejecutar dichas interrupciones (cualquier pin de RB7 a

RB4 que esté configurado como salida, es excluido de la

ejecución de una interrupción). El valor de los pines en el modo

de entrada son comparados con el antiguo valor transferido en

la última lectura del PORTB. Las salidas desiguales de los pines

del PORTB son sumas lógicas (OR) y conjuntamente para

generar el cambio del PORTB como una interrupción.

Estas interrupciones pueden despertar el dispositivo del

modo SLEEP, el usuario, en la rutina de servicio de interrupción,

puede borrar la interrupción de la siguiente manera :

- Leer o escribir PORTB. Esto culminará la condición de

desigualdad.

Page 21: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

- Limpiar el registro de bandera RBIF. Una condición de

desigualdad continuará para poner en “ 1” el bit RBIF. Al leer el

PORTB se culminará la condición de desigualdad, y permitirá

que sea puesto a “0” el bit RBIF.

La característica de condición de desigualdad en las

interrupciones, junto con la programación configurable para el

“Pull-Ups” de éstos cuatros pines permite realizar una sencilla

comunicación con el teclado.

Un cambio podría ocurrir en el I/O cuando el PORTB es

leído, y el bit RBIF no debe ser puesto a “1”.

No se recomienda hacer una verificación del PORTB

cuando éste se está utilizando como sistema de interrupciones.

Los pines restantes, de RB3 a RB0 son líneas de I/O de

características comunes.

Page 22: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

Con respecto a los PUERTOS I/O BIDIRECCIONALES,

Cualquier instrucción escrita, opera internamente como una

operación de lectura seguida por una operación de escritura. Por

ejemplo, las instrucciones BSF y BCF, leen el registro interno en

el CPU, ejecutan la operación de bit y escriben el resultado en el

mismo registro. Una precaución debe ser utilizada cuando estas

instrucciones son aplicadas a una puerto con entradas y salidas

definidas. Por ejemplo, una operación BSF en el bit 5 del PORTB

(PORTB <5>) causará que los 8 bits del PORTB sean leídos dentro

del CPU. Luego la operación BSF toma lugar en el bit 5 y el

PORTB es escrito a la salida de los “latches” . Si otro bit del

PORTB es utilizado como un pin bidireccional de entradas y

salidas y éste es definido como una entrada en ése momento, la

señal de entrada presente en el pin será automáticamente leída

en introducida en el CPU y reescrita al “latch” de datos de éste

pin en particular, luego se sobreescribe el contenido previo.

Mientras el pin permanezca en el modo de entrada no ocurrirá

ningún problema.

Page 23: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

De cualquier forma, si el bit cero es accionado más tarde

internamente en el modo de salida el contenido del “latch” de

datos es desconocido. Al leer el registro del puerto, se leen los

valores de los pines del puerto. Al escribir el registro del puerto,

se escriben los valores al “latch” del puerto. Cuando se utilizan

las instrucciones de leer - modificar - escribir en el puerto, el

valor de los pines del puerto es leído, la operación deseada es

realizada a éstos valores y éste valor es escrito luego al “latch”

del puerto.

Un pin activado con salidas altas o bajas, no será manejado

por dispositivos externos al mismo tiempo y en orden para

cambiar el nivel lógicos en estos pines (“wired-or”, “wired-

and”). La salida alta resultante podría causar daños al chip.

Las OPERACIONES SUCESIVAS EN LOS PUERTOS

I/O ocurren cuando la actual escritura en un puerto I/O ocurre al

Page 24: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

final de un ciclo de instrucción, al igual que para la lectura, los

datos deben ser validados al comienzo del ciclo de instrucción.

Por otro lado, se deben tomar precaución si una operación de

escritura es seguida por una de lectura, ya que existe “carry-out”

en el mismo puerto I/O. La secuencia de instrucciones debe ser

tal que el voltaje del pin se estabilice (dependiendo de la carga)

antes de la siguiente instrucción, la cual causa la lectura de dicho

archivo en el CPU para luego ser ejecutado.

De otro modo, el estado previo de ese pin puede ser

preferidamente leído dentro del CPU que el nuevo estado de

dicho pin. Cuando hay dudas, es mejor separar estas

instrucciones con un NOP u otra instrucción que no accese a los

puertos I/O.

El módulo “TIMER0”, es un contador/temporizador y

posee las siguientes características.

• Contador/temporizador de 8 bits.

• Puede ser leído y escrito.

Page 25: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

• Pre-escalador programable de 8 bits.

• Selector de reloj interno y externo.

• Interrupción de rebosamiento desde FFh hasta 00h.

• Selector de Flancos para reloj externo.

El modo temporizador es seleccionado poniendo a “0” el

bit TOCS (IOPTION<5>) . En el modo temporizador, el módulo

TIMER0 se incrementará cada ciclo de instrucción (sin pre-

escalador). Si el registro TMR0 es escrito, el incremento es

inhibido por los dos siguientes ciclos de instrucción. El usuario

puede trabajar alrededor de éste, escribiendo un valor ajustado

para el registro TMR0.

El modo contador es seleccionado poniendo a “1” el bit

TOCS (OPTION <5>). En este modo el TMR0 se incrementará en

cada flanco de subida o en cada flanco de bajada del pin

RA4/TOCKI. El incremento de los flancos es determinado por el

bit de selección fuente de los flancos TOSE (OPTION <4>). Al

limpiar este bit se seleccionan los flancos de subidas. El Pre-

Page 26: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

escalador está compartido por el módulo TIMERO y el

“WATCHDOG TIMER”. La asignación del Pre-escalador está

controlada (en el software) por el bit de control PSA

(OPTION<3>). Al limpiar el bit PSA se asigna el Watchdog

Timer al módulo Timer 0. El Pre-escalador no puede ser leído ni

escrito. Cuando el Pre-escalador es asignado el módulo Timer 0,

tiene el valor del Pre-escalador (1 : 2, 1 : 4, ..., 1 : 256) es

seleccionable por el software.

La interrupción TMR0 es generada cuando el registro

TMR0 se rebosa desde FFh hasta 00h. este rebosamiento pone

en “1” el bit TOIF (INTCON<2>). La interrupción puede ser

enmascarada mediante la puesta a “0” del bit TOIE

(INTCON<5>). El bit TOIF debe ser limpiado por software por el

módulo TIMER0 en una rutina de servicio de interrupción antes

de que esta interrupción sea reactivada. La interrupción TMR0

no puede despertar al dispositivo del modo de SLEEP, ya que el

temporizador es apagado durante dicho modo.

Page 27: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

El USO DEL TMR0 CON RELOJ EXTERNO, se explica

cuando una entrada externa de reloj es utilizada para el TMR0,

esta debe permitir ciertos requerimientos. El requerimiento del

reloj externo se refiere a que dicha señal debe estar en

sincronización con la fase del reloj interna (Tosc). Además, existe

un retarde en el incremento del registro TMR0 después de la

sincronización.

Por ello la SINCRONIZACIÓN DEL RELOJ EXTERNO,

ocurre cuando el Pre-escalador no es utilizado; entonces, la

entrada del reloj externo es la misma señal de salida del Pre-

escalador. La sincronización del pin RA4/TOCKI con la fase de

reloj interna es complementa con un sampleo de la señal de

salida del Pre-escalador en los ciclos Q2 y Q4 del reloj interno.

Sin embargo, es necesario para el TOCKI estar en un nivel lógico

alto por lo menos 2Tosc (mas un pequeño retardo RC) y en un

nivel lógico bajo unos 2Tosc mas un pequeño retardo RC.

Page 28: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

Cuando se implementan el Pre-escalador la señal de

entrada del reloj externo se divide por un contador de rizo

asincrono para realizar la simetría con la señal del Pre-

escalador. Para el reloj externo admite el requerimiento de

sampleo, el contador de rizo debe ser tomado dentro del conteo.

Sin embargo, es necesario para el TOCKI tener un periodo de

por lo menos 4Tosc (mas un pequeño retardo RC) dividido por el

valor del Pre-escalador, el único requerimiento en el tiempo de

niveles lógicos alto y bajo para el TOCKI es que no se viole el

requerimiento mínimo ancho de pulso de 10ns.

El INCREMENTO DEL RETARDO EN EL TMRO se

produce mientras la salida del Pre-escalador es sincronizada con

el reloj interno, ocurre un pequeño retardo desde el tiempo de

flanqueo de reloj externo hasta el tiempo de incremento del

módulo TIMER0.

Page 29: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

Un contador de 8 bits está disponible como un pre–

escalador para el módulo TIMER0, o como un post–escalador

para Watchdog Timer (WDT). Nótese que hay un solo pre-

escalador disponible, el cual está disponible de forma mutua y

exclusiva para el TIMER0 y para el WDT. De éste modo la

asignación del pre-escalador para el módulo TIMER0 significa

que no existe el pre-escalador para el WDT y viceversa.

Los bits PSA y PS2: PS0 (OPTION <3:0>) determinan la

asignación del pre-escalador y el radio de pre-escalación.

Cuando el pre-escalador es asignado al módulo TIMER0,

todas las instrucciones escritas en dicho módulo (CLRF 1,

MOVWF 1, BSF 1, etc.) limpiarán el pre-escalador. Cuando es

asignado al WDT, la instrucción CLRWDT limpiará el pre-

escalador. El pre-escalador no puede ser leído ni escrito.

Page 30: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

El ACCIONAMIENTO DE LA ASIGNACIÓN DEL PRE-

ESCALADOR está totalmente controlada por software. Esta

puede ser cambiada durante la ejecución del programa.

Para evitar un RESET del dispositivo, la siguiente

secuencia de instrucciones (EJEMPLO 1) debe ser ejecutado

cuando se cambie la asignación del pre-escalador desde el

TIMER0 al WDT (esta secuencia debe ser tomada siempre y

cuando el pre-escalador esté desactivado). Para cambiar el pre-

escalador desde el WDT al TIMER0 utilice la secuencia del

ejemplo 2.

EJEMPLO 1: Cambio de TIMER0 →→ WDT:

BCF STATUS, RPO; banco 0

CLR TMR0 ;limpia el TMR0

CLRF STATUS RPO; banco1

CLRWDT STATUS ;limpia el WDT

MOVLW b´xxx1xxx ;selecciona uno nuevo

Page 31: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

MOVWF OPTION ;valor del pre escalador

BCF STATUS RPO; banco 0

EJEMPLO 2: Cambio de WDT →→ TIME:

CLRWDT ;limpia el WDT

BSF STATUS RPO; banco 1

MOVLW b´xxx0xxx ;selecciona el TMR0

MOVWF OPTION

BCF STATUS RPO; banco 0

La Memoria De Datos EEPROM puede ser leída y escrita

durante la operación normal (rango completo de VDD). Esta

memoria no esta mapeada al espacio de los registros de archivo.

Sin embargo, ésta es direccionada directamente a través de los

registros de funciones especiales (SFR). Existen cuatro (4) SFR

utilizados para escritura y lectura de esta memoria. Estos

registros son:

Page 32: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

- EECON1

- EECON2

- EEDATA

- EEADR

El Registro EEDATA mantiene los 8 bits de datos para

leer y escribir, y El Registro EEADR mantiene el

direccionamiento de la locación EEPROM que va a ser accesada.

El PIC 16C84 posee 64 bytes de memoria de datos EEPROM con

un rango de direccionamiento desde 0h hasta 3Fh.

La memoria de datos EEPROM permite bytes de lectura y

escritura. Un byte de escritura borra automáticamente la

locación y escribe el nuevo dato (borra antes de escribir). Esta

memoria está estimada para altos ciclos de lectura/escritura. El

tiempo de escritura es controlado por un temporizador “On-

Chips”. El tiempo variará con el voltaje y temperatura como la

trasferencia de datos de Chips a Chips.

Page 33: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

Cuando el dispositivo posee el código de protección, el

CPU debe seguir leyendo y escribiendo la memoria de datos

EEPROM.

El Registro EEADR puede direccionar un máximo de 256

bytes de datos EEPROM. Son los primeros 64 bytes de los datos

EEPROM son implementados.

Los dos bits más altos son direccionados mediante una

decodificación. Ello significa que estos dos bits deben estar

siempre en “0” para asegurar el espacio de memoria en la

dirección del byte 64.

El Registro EECON1 es un registro de control con 5 bits de

bajo orden implementado físicamente. Los tres bits superiores no

están implementados y son leídos como “0”. Los bits de control

RD y WR inician la lectura y escritura respectivamente. Estos

Page 34: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

bits no pueden ser borrados, solamente puestos a “1” mediante

el software. Ellos están borrados por el hardware como

complemento para la operaciones de lectura o escritura. La

incompetencia de borrar el bit WR en el software previene la

terminación accidental o prematura de una operación de

escritura.

Cuando el bit WREN es puesto a “1”, se permitirá la

operación de escritura al momento del encendido del

dispositivo, éste bit es puesto a “0”. El bit WRERR e puesto a “1”

cuando una operación de escritura es interrumpida por el RESET

del MCLR o el RESET de WDT durante la operación normal. En

éstas situaciones, el siguiente RESET permitirá al usuario

chequear el bit WRERRE y reescribir la locación. Los datos de

direcciones serán intercambiados por los registros EEDATA y

EEADR.

Page 35: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

El bit bandera de interrupción EEIF es puesta a “1” cuando

la escritura es finalizada este debe ser puesto a “0” mediante

software.

El Registro EECON2 no es un registro físico. Al leer el

registro EECON2, se leerá únicamente “0”. El registro EECON2

es utilizado exclusivamente en la secuencia de escritura de la

memoria de datos EEPROM.

PARA LA LECTURA DE LA LOCACIÓN DE LA

MEMORIA DE DATOS EEPROM, el usuario deberá escribir la

dirección al registro EEADR y luego poner a “1” el bit de control

RD (EECON1 <0> ). Los datos son accesibles en cada ciclo de

máquina en el registro EEDATA; sin embargo, estos pueden ser

leídos en la siguiente instrucción. El registro EEDATA

mantendrá estos valores hasta cuando ocurra otra lectura o hasta

que sean escritos por el usuario (durante la operación de

escritura).

Page 36: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

Para la ESCRITURA DE LA MEMORIA DE DATOS

EEPROM, el usuario debe escribir primero la dirección al

registro EEADR y los datos al registro EEDATA. Luego se debe

seguir una secuencia específica para iniciar la escritura para

cada byte, la secuencia se muestra a continuación:

BSF STATUS, RPO ;banco 1

BSF INTCOM, GIE; interrupción inactiva

BSF EECON1, WREN ;activa escritura

MOVLW 55h

MOVWF EECON2 ;escribe 55h

MOVLW AAh

MOVWF EECON2 ;escribe Aah

BSF EECON1, WR ;bit WR=1

BSF INTCON, GIE ; interrupción activa.

Page 37: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

Nota: Se recomienda altamente que las interrupciones sean

desactivadas durante la codificación de éste segmento.

Adicionalmente, el bit WREN en el registro EECON1

deben ser puestos a “1” para habilitar la escritura. Este

mecanismo previene la escritura accidental de códigos de

ejecución errónea. El usuario debe mantener en “0” el bit WREN

(no es realizado por el hardware) todo el tiempo, excepto

cuando se utilice la EEPROM.

Después de la secuencia de escritura es iniciada, la puesta

a “0” del bit WREN no afectará al ciclo de estructura. Cuando el

ciclo es completado el bit WREN es puesto a “0” por el

hardware y el bit bandera de interrupción para la escritura

completa (EEIF) es puesto a “1” (este bit debe ser puesto a “0”

por software).

Page 38: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

La VERIFICACIÓN DE ESCRITURA, se produce

dependiendo de la aplicación. La buena práctica de

programación indicará que los valores escritos a la EEPROM

deben ser verificada para asegurar que los valores deseados

están correctos. Esto se debe utilizar en aplicaciones donde un

bit de la EEPROM será cargado cerca de los límites específicos.

Generalmente las fallas de escritura a la EEPROM serán de

un bit escrito como “1” pero leído de vuelta como “0”.

Para la PROTECCIÓN CONTRA ESCRITURAS NO

DESEADAS, existen condiciones donde el dispositivo no quiere

escribir en la memoria de datos EEPROM para la protección de

dicha memoria varios mecanismos han sido incluidos

internamente. Entre estos se encuentran: que en el encendido del

dispositivo el bit WREN es puesto a “0”, al encenderse el

temporizador ( durante 72ms) se previene la escritura a la

EEPROM.

Page 39: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

La secuencia de escritura y el bit WREN previenen la

escritura accidental durante las caídas de voltaje y el mal

funcionamiento del software.

-LA OPERACIÓN DURANTE EL CÓDIGO DE

PROTECCIÓN ocurre cuando el dispositivo está protegido

por código; entonces, el CPU es capaz de leer y escribir los datos

no enmascarables de la EEPROM.

Es conveniente destacar que, para el dispositivo ROM,

existen dos códigos de protección. Uno para la memoria de

programa ROM y otro para la memoria de datos EEPROM.

-Entre las CONSIDERACIONES SOBRE EL CONSUMO

DE POTENCIA; Es recomendable que los bits del (EEADR<7:6>)

sean puestos a “0”, ya que cuando estos bits están en “1” la

máxima IDD del dispositivo está en acción. Cuando los bits son

Page 40: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

“0” la corriente es de unos 150µA, y cuando éstos están en “1” la

corriente es máxima, es decir, unos 400µA .

- Entre las CARACTERÍSTICAS ESPECIALES DEL CPU

están, Los que aparta a los microcontroladores de otros

procesadores son los circuitos especiales que ejecutan las

necesidades de las aplicaciones de tiempo real. En este sentido el

PIC 16C84 posee características especiales como la de maximizar

la confiabilidad del sistema, minimizar los costos en

dispositivos externos, disminuir el consumo de potencia,

diferentes modos de operación y un código de protección.

-LA CONFIGURACIÓN DE BIT puede ser programada

(leídos como “0”) o no programadas (leídos como ”1”) con el fin

de seleccionar la configuración del dispositivo. Estos bits están

mapeados en la locación 2007h en la memoria del programa.

Page 41: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

La dirección 2007h está lejos del espacio de memoria del

programa para el usuario y ésta pertenece al espacio de

memoria especial de prueba y configuración (2000h – 3FFFh);

este espacio puede ser accesible solo durante la programación.

La configuración del Oscilador, depende de los tipos de

Oscilador. Para ello el PIC16C84 puede ser operado en cuatro

modos diferentes de oscilación. El usuario puede programar 2

bits de configuración (FOSC1 y FOSC0) para seleccionar uno de

los siguientes modos:

- LP → Cristal bajo poder

- XT → Cristal / Resonador

- HS → Cristal de alta velocidad / Resonador

- RC → Resistor / Capacitor

-EL OSCILADOR DE CRISTAL / RESONADOR

CERÁMICO; en los modos XT, LP o HS se conecta el cristal a un

Page 42: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

resonador en los pines OSC1 / CLKIN y OSC2 / CLKOUT con el

fin de establecer la oscilación. El diseño interno del PIC16C84

requiere de la implementación de un cristal paralelo, ya que el

uso de un cristal en serie puede causar la falta de precisión en la

generación de la señal. Por otro lado, en éstos modos, también se

puede utilizar un circuito oscilador externo.

En cuanto al CIRCUITO OSCILADOR EXTERNO DEL

CRI, se pueden utilizar osciladores preempacados u osciladores

construidos con compuertas TTL. Los osciladores

preempaacados proveen un mayor rango de operación y

estabilidad. Están disponibles para el PIC16C84 dos tipos de

osciladores externos, el primero con resonancia en serie y el

segundo con resonancia en paralelo.

El circuito con resonancia en serie está diseñado para la

frecuencia fundamental del cristal; los inversores proporcionan

un desfasamiento de 180°, mientras que el resistor de 330 kΩ

Page 43: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

brinda una realimentación negativa para mantener el

funcionamiento de los inversores en su región lineal.

El circuito resonante paralelo también está diseñado para

trabajar a la frecuencia fundamental del cristal, los inversores

74AS04 proveen el desfase de 180° necesarios para su buen

funcionamiento. El resistor de 4.7 KΩ provee la realimentación

negativa necesaria para mantener la estabilidad, mientras el

potenciómetro de 10 KΩ mantiene el funcionamiento de los

inversores en la región lineal de operaciones.

El OSCILADOR RC, Utiliza para aplicaciones sencillas, el

uso de un arreglo RC ayuda a reducir los costos de producción,

la frecuencia del oscilador RC está en función de la fuente de

poder (VDD), el resistor Rext, el capacitor Cext y la temperatura.

La frecuencia viene expresada por:

ƒ=1/Rext. Cext

Page 44: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

-El RESET PIC16C84 se diferencia entre varios tipos de

RESET:

- Power – On RESET (POR)

- RESET MCLR durante la operación normal

- RESET MCLR durante la operación SLEEP

- RESET del WDT durante la operación normal

- RESET del WDT durante la operación SLEEP

Algunos registros no son afectados bajo ninguna condición

de RESET, es decir, su estado es desconocido por un POR y sin

cambio en cualquier otra condición de RESET. Por otro lado,

otros registros son afectados de diversas maneras por el POR,

MCLR o WDT, ya sea durante la operación normal o el SLEEP

En cuanto al Power-On Reset POR, se tiene que, dentro

del "Chip" se genera un pulso de POR cuando se detecta una

caída de tensión en VDD (dentro del rango de 1.2V - 1.7V). Para

tener ventaja del POR, conecte el pin MCLR directamente a VDD

Page 45: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

a través de un resistor, esto eliminará las componentes RC

externas que usualmente activan el POR. Los circuitos de

protección del POR no producen una condición de Reset interna

cuando el valor de VDD disminuye.

El Power-Up Timer (PWRT) provee 72ms arreglados

nominales de Time-Out para el POR. El PWRT opera en un

oscilador RC interno. El dispositivo se mantiene en Reset el

tiempo que dura la operación del PWRT. Por otro lado, el

PWRT ocasiona un tiempo de retardo, el cual, permite que el

nivel de VDD disminuya hasta un nivel aceptable de operación.

El Start-Up Oscilador/Temporizador (OST) provee 1024

ciclos de retardo provenientes del oscilador (OSC 1/CLKIN)

después de que 1 tiempo de retardo del PWRT culmine ; esto

asegura al oscilador de cristal o resonador que comience y

estabilice.

Page 46: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

El Time-Out del OST (Tost) es invocado solo para los

módulos XT, LP y HS y únicamente en un POR o en un despertar

del SLEEP.

Cuando el nivel de VDD disminuye muy lentamente, es

posible que el TimeOut del PWRT (Tpwrt) y el Tost expiren ante

de que el VDD haya alcanzado su valor final, en este caso es

recomendable un circuito externo para el MCLR.

El Bits de Estado : Secuencia Time-Out / Power Down

define que: Primero el time-out del PWRT es invocado después

que el POR haya expirado. Luego el OST es activado. El time-

out final variará basado en la configuración del oscilador y el bit

de configuración de estado PWRTE.

Desde que el time-out proveniente del pulso de reset del

POR ocurre y si el tiempo de permanencia del MCLR en estado

bajo y muy prolongado, entonces, el time-out expirara, y si el

MCLR se mantiene en estado alto la ejecución del time-out será

inmediata.

Page 47: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

Esto es muy útil para realizar pruebas en la sincronización

de dos o mas PIC l6Cxx cuando operen en paralelo.

El Brow-Out es una condición donde la fuente de poder del

dispositivo (VDD) cae por debajo de su valor mínimo, pero no

cero, y luego se recobra a su estado original. Es recomendable

realizar una condición de reset cuando se presente el fenómeno

Brown-Out.

La condición de reset para el PICl6C84 cuando el Brown-

Out ocurre, es recomendable la implementación de un circuito

externo que proteja al dispositivo de esta condición.

- Las INTERRUPCIONES del PIC 16C84 son cuatro (4):

• Interrupción externa por el pin RBO/INT.

• Interrupción por rebasamiento del TMR0.

• Interrupciones de cambio en PORTB.

Page 48: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

• Interrupción de escritura completa de la EEPROM.

El registro de control de las interrupciones (INTCON)

almacena los requerimientos de interrupciones individuales en

los bits de bandera. También posee los bits para la habilitación

de las interrupciones globales o individuales.

El bit de habilitación de las interrupciones globales, GIE

(INTCON <7>), habilita (si esta en " 1 ") todas las interrupciones

no mascarables, y deshabilita (si esta en "0") todas las

interrupciones.

Por otro lado las interrupciones individuales pueden ser

habilitadas o deshabilitadas por los mismos bits. Es importante

mencionar que el bit GEI es puesto a cero cuando ocurre una

condición de Reset.

Page 49: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

La instrucción para retomar de una interrupción (RETFIE)

realiza la operación de poner a "1" el bit GIE, para así rehabilitar

todas las interrupciones.

Los bits banderas de interrupción del pin RB0/INT, el

cambio RB del PORTB y el rebosamiento del TMRO, están

incluidos en el registro INTCON.

Cuando una interrupción es respondida, el bit GEI es

puesto a cero con el fin de desactivar alguna futura interrupción,

y el retorno a la dirección especificada es ubicada dentro del

STACK, para luego cargar al PC con 0004h. Para los eventos

externos de interrupción, el retardo de la interrupción será de

tres a cuatro ciclos de maquina.

Es importante recordar que los bits banderas de

interrupción deber ser puestos a cero mediante el software

Page 50: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

implementado antes de restablecer la interrupción, con el fin de

evitar el requerimiento infinito de interrupciones.

La Interrupción INT dice que la interrupción externa que

ocurre en el pin RB0/INT es disparada por flanco: si el bit

INTEDG (OPTION<6>) es puesto a "1", entonces, el flanco es de

subida; y si es puesto a "0", luego el flanco es de bajada. Cuando

un flanco válido aparece en el pin RBO/INT, el bit INTF

(INTCON<1>) es puesto a "1". Esta interrupción puede ser

deshabilitada poniendo a "0" el bit de control IMTE

(INTCON<4>). El bit bandera INTF debe ser puesto a cero por

el software dentro de la sub-rutina designada para las

interrupciones.

La interrupción INT puede despertar al dispositivo de su

modo SLEEP.

La Interrupción TMR0 estipula un rebasamiento (FFh

à00h) en el TMRO, pondrá un "1" en bit bandera T0IF

Page 51: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

(INTCON<2>). Esta interrupción puede ser activada o

desactivada poniendo a “1” ó “0” el bit T0IE (INTCON<5>).

La Interrupción PORT RB define un cambio de entrada en

PORTB<7:4> colocan en “1” el bit bandera RBIF (INTCON<0>).

Esta interrupción puede ser activada o desactivada poniendo a

“1” o "0" el bit RBIE (INTCON<3>).

El ALMACENAMIENTO DEL CONTEXTO DURANTE

LAS INTERRUPCIONES afirma que, solamente el retorno del

valor del PC es guardado en el STACK. Típicamente, lo

usuarios desean guardar los valores de los registros durante una

interrupción, esto ahora es posible implementarlo por software

para el PICl6C84.

Un claro ejemplo de esta operación se puede observar en

unos pasos que pueden ser transcritos a un programa, esto es:

a. Guardar el registro W(acumulador).

Page 52: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

b. Guardar el registro STATUS en STATUS_TEMP

c. Ejecutar la interrupción.

EL WATCHDOG TIMER (WDT) es oscilador libre que se

ejecuta internamente, el cual no requiere ningún componente

externo. Este oscilador RC esta separado del oscilador RC del

pin OSCI/CLKIN, esto significa que el WDT no comenzara hasta

que el oscilador RC de los pines OSCI/CLKIN y

OSC2/CLKOUT se haya detenido por completo.

Durante la operación normal, el WDT genera un Time-out

que genera una condición de Reset para el dispositivo. Si el

dispositivo está en modalidad SLEEP, un WDT wake-up

causará el despertar y así continuar con la operación normal.

El WDT puede ser desactivado permanentemente

mediante la programación del bit de configuración WDTE=O.

Page 53: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

El PERIODO DEL WDT, en la salida es nominal de l8ms

(sin pre-escalador). Este periodo varia con la temperatura, el

VDD y las características CD del dispositivo.

Si se desea un periodo mas amplio, se debe asignar al

WDT un rango de pre-escalación mayor a 1:128, esto se debe

realizar mediante una asignación del software implementado.

Las instrucciones CLRWDT y SLEEP ponen a "0" al WDT y el

pre-escalador, por otro lado, previenen al dispositivo de una

condición de Reset no deseada.

Las CONSIDERACIONES DE PROGRAMACION DEL

WDT dicen que si se ha tomado en cuenta la operación del

dispositivo en el peor de los casos (temperatura máxima, VDD

mínimo, etc.) dentro del programa, la operación tomará unos

segundos antes de que el time-out del WDT ocurra.

Page 54: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

El MODO SLEEP, El PICl6C84 puede ser apagado

momentáneamente, es decir, puesto a dormir (SLEEP), y luego;

levantarlo (Wake-Up).

El modo SLEEP se activa mediante la utilización de la

instrucción SLEEP. Si está habilitada, el WDT es puesto a cero

(pero sigue trabajando), el bit TO (STATUS<4>) es puesto a "1",

y el manejador del oscilador es apagado. Los puertos I/O

mantienen el mismo estado que tenían antes de que se ejecutara

el modo SLEEP.

Para el menor consumo de corriente en el modo SLEEP, se

deben colocar todos los pines de I/O a VDD o Vss sin circuitería

externa. Si los puertos están manejados por altas-impedancias,

entonces se debe manejar en estado bajo o alto para evitar

fluctuaciones de corriente causadas por las entradas flotantes.

Page 55: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

El pin TOCKI también debe ir a VDD o Vss. El pin MCLR

debe conectarse directamente a VDD.

Para DESPERTAR DEL SLEEP deben ocurrir los

siguientes eventos:

- Reset externo por el pin MCLR.

- Despertar del WDT.

- Interrupción causada por el pin RB0/INT.

Cualquier dispositivo periférico no puede despertar al

microcontrolador del SLEEP.

El primer evento causara un Reset general al dispositivo y

los otros dos eventos son considerados como continuación del

programa en ejecución.

En caso de que no se desee la ejecución de la instrucción

inmediata al SLEEP, el usuario debe colocar un NOP antes de la

instrucción SLEEP.

Page 56: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

Las INTERRUPCIONES globales están desactivadas y

cualquier fuente de interrupción no está presente, una de las

siguiente situaciones ocurrirá :

- Si la interrupción ocurre antes la ejecución de la

instrucción SLEEP, dicha instrucción será completada con un

NOP. Por otro lado, el WDT y el pre-escalador no serán puesto a

cero, el bit TO no será puesto a "1" y el bit PD no será puesto a

"0" tampoco.

- Si la interrupción ocurre durante o después de la

ejecución de la instrucción SLEEP, el dispositivo se despertara

del SLEEP irunediatamente. La instrucción SLEEP se terminará

completamente después del despertar. Por otro lado, el WDT y

el pre-escalador serán puesto a cero, el bit T0 será puesto a "1" y

el bit PD será puesto a "0" también. Para asegurar que el WDT

sea puesto a cero, es recomendable implementar la instrucción

CLRWDT antes de ejecutar un SLEEP.

Page 57: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

La VERIFICACIÓN DEL PROGRAMA Y CÓDIGO DE

PROTECCIÓN se realiza Si los bits del código de protección no

han sido programados, entonces, la memoria del programa del

"Chip" puede ser extraída para su lectura y modificación de la

misma.

No es recomendable activar los bits para el código de

protección en los dispositivos con ventanas.

Las LOCALIZACIONES ID son cuatro locaciones de

memoria designadas para la verificación de configuración del

dispositivo y sus números de identificación (ID), éstas están

desde 2000h hasta 2003h. Estas locaciones no son accesibles

durante la ejecución normal, pero pueden ser leídas, modificadas

y escritas durante la programación y verificación del

microcontrolador.

Page 58: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

La PROGRAMACION SERIAL se realiza mediante un

sencillo circuito externo, que está compuesto por cinco líneas:

Línea 1, el reloj Línea 2, los datos ; Línea 3, Vss ; Linea 4, VDD y

Línea 5 Vpp.

El dispositivo se ubica en un modo de

programación/verificación cuando se mantiene un nivel bajo en

los pines RB6 y RB7. Cuando el nivel de Vpp varia desde VIL

hasta VIHH a través del pin MCLR, RB6 hace la función de línea

del reloj, y RB7 es el canal de datos.

La MODULACIÓN DE FRECUENCIA permite que la

señal sea ininteligible, esto es debido a que la señal se modula

en su frecuencia manteniendo la amplitud constante; es decir, la

onda portadora con variaciones de frecuencia cuando la señal

moduladora varia durante su cielo, cuando alcanza su máximo

valor (amplitud positiva) la frecuencia de la portadora aumenta,

luego cuando pasa a través de cero la portadora toma su

Page 59: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

frecuencia original, y cuando la onda moduladora alcanza su

mínimo valor ( amplitud negativa ) la onda moduladora

disminuye su frecuencia. La máxima excursión de la señal con

respecto a su frecuencia se conoce como desviación de frecuencia

bien sea cuando alcanza su valor máximo o mínimo .

A nivel internacional la desviación máxima permisible

para las FM de carácter comercial es de mas o menos 75Khz el

cual contempla el 100% de la desviación.

Al considerar este tipo de modulación se obtienen

resultados satisfactorios, ya que prácticamente la información

se transmite con la mayor fidelidad posible porque el ruido

originado en el espacio interfiere poco en la señal. Es decir,

este no varia con la portadora en frecuencia sino en amplitud y

por ende los circuitos limitadores que se encuentran en el

receptor mantendrán la amplitud fija de la portadora y los

circuitos electrónicos sensibles responderán a los cambios de

frecuencias, produciéndose así la información.

Page 60: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

Las frecuencias, son teóricamente infinita en la relación por

cada moduladora que actúa, a diferencia que en la AM un par

por cada señal envolvente.

En frecuencias que constituyen las bandas laterales

determinan el ancho de banda de la M como son infinitas se

consideran una frecuencia de lateral superior y otra inferior, de

tal manera que se pueda asegurar la información. La condición

para considerar estas bandas laterales es que cuya amplitud

sean mayor en l% o mas que en la amplitud de la portadora.

Como las frecuencias extremas de bandas laterales son

múltiples de las frecuencias moduladoras en el ancho de banda

de una FM puede ser en muchas veces mayor que las de AM.

Page 61: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

Dentro de las transmisiones en frecuencia moduladora

existen dos maneras de realizar la modulación bien sea a

través de la FM directa o de FM indirecta.

La primera se caracteriza por poseer un equipo básico el

cual comprende un oscilador, un modulador, un amplificador

separador y un amplificador de potencia.

El oscilador genera la onda portadora, el modulador trata

la señal de audio y hace variar la frecuencia portadora, esta a su

vez es amplificada y separada por el bloque amplificador-

separador y éste al mismo tiempo la transfiere al bloque de

potencia para conducirla a la potencia con el nivel requerido.

La desventaja de este modo de transmisión es que los

osciladores que deben producir una señal que varíe en

frecuencia de acuerdo con la señal moduladora, son poco

estables y diversos factores tales como la temperaturas

Page 62: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

circundantes, pueden afectar sus frecuencias. Sin embargo se,

incluye un control automático de frecuencias para compensar

cualquier desviación.

En cambio en el modo de transmisión indirecta de FM este

inconveniente se soluciona, debido a que los osciladores

llamados osciladores de cristal son excepcionalmente estables,

pero presenta la desventaja de la modulación de frecuencia por

medio de reactancia no resulta tan eficaz. Pero; sin embargo, la

estabilidad de frecuencia que tienen los osciladores de cristal es

una característica tan conveniente que son muy empleados en los

transmisores de FM, en vez de ser modulada por frecuencia, la

salida de un oscilador de cristal está modulada por fase, por

medio de la señal moduladora.

Los SENSORES son dispositivos que pueden captar o

detectar fenómenos o alteraciones que se producen en un entorno

inclusive a cierta distancia, el fenómeno que detecte puede ser

Page 63: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

fotosensible ( luz, sonido, movimiento ) y variaciones que

ocurran en el ambiente.

Actualmente, existe en el mercado una extensa variedad de

Sensores que van entornos a las exigencias de cada persona,

entre ellos se encuentran: Sensores de vibración, Sensores de

ultrasonido, Sensores de movimiento, entre otros.

Los SISTEMAS DE ALARMAS son equipos de gran

utilidad, como de dispositivo de aviso de un buen número de

situaciones que se dan en la practica, como en el nivel

industrial, doméstico y bienes materiales que requeriría de

alguna persona estuviera vigilando constantemente.

Se podría considerar como los más convencionales de estos

equipos, aquellos fundamentalmente dirigidos a la detección

de intrusos. También, existen otros casos en que un sistema de

aviso cuenta con un especial interés, tal es el caso de los

Page 64: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

sistemas de alarmas que poseen la mayoría de los bancos, éste

sistema consiste en que cuando es activada la alarma ésta a su

vez genera un dial telefónico a la casa del Gerente, Sub-Gerente

o Contador del Banco para dar aviso de que la alarma esta

activada.

Se puede agregar que, existen varios tipos de sistemas de

seguridad, entre las cuales se destacan los sistemas de seguridad

controlados a través de un sistema o control electrónico, como es

el caso del Sistema de seguridad de los vehículos, el cual consta

de una gran variedad de componentes electrónicos distribuidos

por varios puntos clave del automóvil.

Page 65: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

SISTEMAS DE VARIABLES.

Las dos variables usadas en la investigación se exponen a

continuación para su correspondiente descripción y definición

conceptual y operacional:

- Los sistemas de alarmas.

- Microcontrolador de la serie PIC16C84.

SISTEMA DE ALARMAS:

Conceptualmente es “Un conjunto de elementos

interrelacionados entre si cuya función es prevenir un robo,

Page 66: FUNDAMENTACIÓN TEÓRICA MICROCONTROLADOR PIC 16C84

mediante la generación de una señal”. (Enciclopedia Santillana,

1995 CD. ROM)

Operacionalmente es un sistema de control a lazo cerrado, el

cual consta de unos dispositivos que se encargan de proteger al

objeto seleccionado, interrelacionados entre si.

MICROCONTROLADOR DE LA SERIE LA SERIE PIC16C-84

Conceptualmente, “es un dispositivo de 8 bits de alto

rendimiento bajo tecnología CMOS”.(Manual

PICSTART.1996.p.5)

Operacionalmente es, el dispositivo que se encargara de

controlar el sistema debido a las características especiales que el

posee fácil manejo, confiabilidad y satisfacción a la hora de

obtener los resultados.