Upload
others
View
27
Download
0
Embed Size (px)
Citation preview
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)
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
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
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
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 :
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
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.
-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.
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
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.
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).
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.
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
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
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¨ .
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.
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
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
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.
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.
- 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.
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.
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
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.
• 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-
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.
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.
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.
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.
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
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:
- 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.
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
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.
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).
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.
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).
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.
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
“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.
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
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Ω
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
-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
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.
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.
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.
• 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.
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
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
(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).
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.
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.
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.
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.
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.
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.
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
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.
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.
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
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
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
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.
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,
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.