jueves, 4 de abril de 2013

Registros



-         REGISTROS (Memoria Ram)
Dirección
BANCO 0
BANCO 1
Dirección
00
INDF
INDF
80
01
TMR0
OPTION
81
02
PCL
PCL
82
03
STATUS
STATUS
83
04
FSR
FSR
84
05
PORT A
TRIS A
85
06
PORT B
TRIS B
86
07


87
08


88
09


89
0A
PCLATH
PCLATH
8A
0B
INTCON
INTCON
8B
0C
PIR1
PIE1
8C
0D


8D
0E

PCON
8E
0F


8F
10


90
11


91
12


92
13


93
14


94
15


95
16


96
17


97
18


98
19


99
Dirección
BANCO 0
BANCO 1
Dirección
1 A


9 A
1B


9B
1C


9C
1D


9D
1E


9E
1F
CMCON
VRCON
9F
.
.
.
Registros de
Propósito General
Registros de Propósito General
.
.
.
7F


FF
El PIC 16F84 direcciona 128 posiciones de memoria RAM, pero  tiene implementado físicamente los primeros 80 (0 a 4Fh). De estos los primeros 12 son registros que cumplen un propósito especial en el control del PIC y los 68 siguientes son registros de uso general que se pueden usar para guardar los datos temporales de la tarea que se ejecuta. Los registros están organizados como dos bancos (paginas) de 128 posiciones de 8 bits cada una (128 x 8); todas las posiciones se pueden accesar directa o indirectamente (estas ultimas a través del registro FSR). Para seleccionar que pagina de registro se trabaja en un momento determinado se utiliza el bit RP0 del registro STATUS.
00h o INDO: Registro para el direccionamiento indirecto de datos. Este no es un registro disponible físicamente; utiliza el contenido del FSR y el bit RP0 del registro STATUS para seleccionar indirectamente la memoria de datos o RAM del usuario; la instrucción determinara que se debe señalar con el registro señalado.
01h o TMR0: Temporizador/contador de 8 bits. Este se puede incrementar con una señal externa aplicada al pin RA4/TOCKI o de a cuerdo a una señal interna proveniente del reloj de instrucciones del microcontrolador. La rata o tasa de incremento del registro se puede determinar por medio de un preescalador, localizado en el registro OPTION. Los anteriores microcontroladores no contaban con la generación de una interrupción cuando se rebasaba la cuenta (el paso de 0FFh a 00h).
02h o PCL: CONTADOR DE PROGRAMA. Se utiliza para direccionar las palabras de 14 bits del programa del usuario que se encuentra almacenado en la memoria ROM; este contador tiene un tamaño de 13 bits. Sobre el byte bajo, se puede escribir o leer a voluntad directamente, mientras que en el byte alto, no. El byte alto se maneja mediante el registro PCLATH (0Ah). A diferencia de los PIC de primera generación el 16F84 ante una condición de reset inicia el contador de programa con todos sus bits en "cero". Durante la ejecución normal del programa, y dado que todas las instrucciones ocupan solo una posición de memoria, el contador se incrementa con cada instrucción, a menos que se trate de alguna instrucción de salto.



04h o FSR: REGISTRO SELECTOR DE REGISTROS. En asocio con el registro IND0, se utiliza para seleccionar indirectamente los otros registros disponibles. Mientras que los antecesores del PIC 16F84 solo poseían 5 bits activos, en este microcontrolador se poseen solo 8 bits. Si en el programa no se utilizan llamadas indirectas, este registro se puede utilizar como un registro de propósito general.
03h o STATUS: REGISTRO DE ESTADO. Contiene el estado Aritmético de la ALU, la causa de reset y los bits de preselección de pagina para la memoria de datos. En la figura se muestran los bits correspondientes a este registro. Los bits 5 y 6 (RP0 y RP1) son los bits de selección de pagina (Bank 0 y Bank 1), para el direccionamiento directo de la memoria de datos; solamente RP0 se usa en los PIC 16F84. RP1 se puede utilizar como un bit de propósito general de lectura/escritura. Los bits TO y PD no se pueden modificar por un proceso de escritura; ellos muestran la condición por la cual se ocasiono el ultimo reset.

IRP bit 7
RP1 bit 6
RP0 bit 5
T0 bit 4
PD bit 3
Z bit 2
DC bit 1
C bit 0
IRP
Selector de página para direccionamiento indirecto. Este bit no se utiliza efectivamente en el PIC 16F84, por lo que se puede utilizar como un bit de propósito general.
RP1,0
Selectores de página para un seleccionamiento directo. Solamente RP0 se utiliza en el PIC 16F84. RP1 se puede utilizar como un bit de propósito general.
T0
Time Out o bit de finalización del temporizador. Se coloca en 0 cuando el circuito de vigilancia Watchdog finaliza la temporización
PD
Power Down o bit de bajo consumo. Se coloca en 0 por la instrucción sleep.
Z
Zero o bit de cero. Se coloca en 1 cuando el resultado de una operación aritmética o lógica es cero.
DC
Digit Carry o bit de acarreo de dígito. En operaciones aritméticas se activa cuando hay un acarreo entre el bit 3 y 4, es decir cuando hay acarreo entre el nible de menor y de mayor peso.
C
Carry o bit de acarreo. En instrucciones aritméticas se activa cuando se  acarrea desde el bit más significativo del resultado.

05h o PORTA: PUERTO DE ENTRADA/SALIDA DE 5 BITS (RA0~ RA4). Este puerto al igual que todos sus similares en los PIC, puede leerse o escribirse como si se tratara de un registro cualquiera. El registro que controla el sentido (entrada o salida) de los pines de este puerto esta localizado en la pagina 1 (Banco 1), en la posición 85h y se llama TRISA.
06h o PORTB: PUERTO DE ENTRADA/SALIDA DE 8 BITS (RB0~RB7). Al igual que en todos los PIC, este puede leerse o escribirse como si se tratara de un registro cualquiera; algunos de sus pines tienen funciones alternas en la generación de interrupciones. El registro de control para la configuración de la función de sus pines se localiza en la pagina 1 (Banco 1), en la dirección 86h y se llama TRISB.
08h o EEDATA: REGISTRO DE DATOS DE LA EEPROM. Este registro contiene el dato que se va a escribir en la memoria EEPROM de datos o el que se leyó de ésta.
09h o EEADR: REGISTRO DE DIRECCION DE LA EEPROM. Aquí se mantiene la dirección de la EEPROM de datos que se van a trabajar, bien sea para una operación de lectura o para una de escritura
0Ah o PCLATH: REGISTRO PARA LA PARTE ALTA DE LA DIRECCION. Este registro contiene la parte alta del contador de programa y no se puede acceder directamente.
0Bh o INTCON: REGISTRO PARA EL CONTROL DE INTERRUPCIONES. Es el encargado del manejo de las interrupciones y contiene los bits que se muestran en la figura.
 GIE Bit 7
EEIE bit 6
TOIE bit 5
INTE bit 4
RBIE bit 3
TOIF bit 2
INTF bit 1
RBIF bit 0
GIE
Global Interrup Enable o Habilitador general de interrupciones.
0: Deshabilita todas las interrupciones  1: Habilita las interrupciones
EEIE
EEPROM Write Interrup Enable o Habilitación de interrupción por escritura de la EEPROM.
0: La deshabilita     1: La habilita
T0IE
TMR0 Interrup Enable o Habilitación de interrupción del temporizador TMR0.
0: La deshabilita     1: La habilita
INTE
INT Interrup Enable o Habilitación de la interrupción INT.
0: La deshabilita    1: La habilita
RBIE
RBIF Interrup Enable o Habilitación de la interrupción RBIF.
0: La deshabilita    1: La habilita
TOIF
TMR0 Overflow Interrup Flag o Bandera de la interrupción por desbordamiento del TMR0.
Se coloca en 1 cuando el TMR0 pasa de 0FFh a 00h; ésta debe ser puesta a 0 por programa.
INTF
INT Interrup Flag o Bandera de interrupción INT.
Se coloca en 1 cuando la interrupción INT ocurre; ésta debe ser puesta cero por programa.
RBIF
RB Port Change Interrup Flag o Bandera de interrupción por cambio en el puerto B. Se coloca en 1 cuando una de las entradas (RB4 a RB7) cambia; ésta debe ser puesta a 0 por programa
81h u OPTION: REGISTRO DE CONFIGURACION MULTIPLE. Posee varios bits para configurar el preescalador, la interrupción externa, el timer y las características del Puerto B. Los bits que contiene y las funciones que realiza este registro se muestran en la figura. El preescalador es compartido entre el TMR0 y el WDT; su asignación es mutuamente excluyente ya que solamente puede uno de ellos ser preescalado a la vez.
RBPU
bit 7
INTEDG
bit 6
GRTS
bit 5
RTE
bit 4
PSA
bit 3
PS2
bit 2
PS1
bit 1
PS0
bit 0
RBPU
Portb Pull-up Enable o Habilitación de pull-up del puerto B.
0: Habilita las pull-ups internas  1: Las deshabilita
INTEDG
INT Interrup Edge Select o Selector de flanco de la interrupción INT.
0: Flanco de bajada     1: Flanco de subida
RTS
TMR0 Signal Source o Fuente de señal del TMR0.
0: Ciclo de instrucciones interno (Temporizador)
1: Transición en el pin RA4/TOCKI (Contador)
RTE
TMR0 Signal Edge o Flanco de la señal del TMR0
0: Incremento de transición de bajo a alto     1: Incremento en transición
PSA
Preescaler Assignment o Asignación del preescalador
0: TMR0 (Contador / Temporizador)    1: WDT (Circuito de vigilancia)
PS2, 1, 0
Preescaler Value o Valores del preescalador.
Valor
TMR0
WDT
000
001
010
011
100
101
110
111
1:2
1:4
1:8
1:16
1:32
1:64
1:128
1:256
1:1
1:2
1:4
1:8
1:16
1:32
1:64
1:128










85h o TRISA: REGISTRO DE CONFIGURACION DEL PUERTO A. Es el registro de control para el puerto A. Un "cero" en el bit correspondiente al pin lo configura como salida, mientras que un "uno" lo hace como entrada.
86h o TRISB: REGISTRO DE CONFIGURACION DEL PUERTO B. Es el registro de control para el puerto B. Un "cero" en el bit correspondiente al pin lo configura como salida, mientras que un "uno" lo hace como entrada.
88h o EECON1: REGISTRO DE PARA EL CONTROL DE LA MEMORIA EEPROM DE DATOS. Este es el registro de control para la memoria de datos y solo destina cinco bits para ello, los más bajos; los tres bits superiores permanecen sin implementar. En la figura se muestran las funciones de estos bits.
 

U bit 7
U bit 6
U bit 5
EEIF bit 4
WRERR bit 3
WREN bit 2
WR bit 1
RD bit 0
U
Unimplemented. No implementados.
EEIF
EEPROM Write Completion Interrup Flag o Bandera de finalización de la escritura. Se coloca en "1" cuando finaliza con éxito la escritura de la EEPROM de datos; se debe colocar en "0" por programa. El bit de habilitación correspondiente es el EEIE, localizado en el registro INTCON.
WRERR
Write Error Flag o Bandera de error de escritura. Si se coloca en "1" cuando la operación de escritura termina prematuramente, debido a cualquier condición de reset.
WREN
Write Enable o habilitación de escritura. Si se coloca en "0" no permite las operaciones de escritura; en "1" las habilita.
WR
Write Control o Control de escritura. Al colocarse en "1" inicia un ciclo de escritura. Este bit sólo es puesto a "0" por hardware, una vez la escritura termina.
RD
Read Control o Control de lectura. Al colocarse en "1" se inicia una lectura de la EEPROM de datos, la cual toma un ciclo de reloj de instrucciones. Este bit sólo se limpia (colocar en "0") por hardware, al finalizar la lectura de la posición de la EEPROM.

89h o EECON2: REGISTRO AUXILIAR PARA EL CONTROL DE LA MEMORIA EEPROM DE DATOS. Este registro no es implementado físicamente por el microcontrolador, pero que es necesario en las operaciones de escritura en la EEPROM de datos; ante cualquier intento de lectura se tendrán "ceros".
0Ch a 4Fh: REGISTRO DE PROPOSITO GENERAL. Estas 68 posiciones están implementadas en la memoria RAM estática, la cual conforma el área de trabajo del usuario; a ellas también se accede cuando en la pagina 1 (Banco 1) se direccionan las posiciones 8Ch a CFh. Esto se ha diseñado así para evitar un excesivo cambio de paginas en el manejo de la RAM del usuario, agilizando los procesos que se estén llevando a cabo y descomplicando la labor del programador.
REGISTRO DE TRABAJO W. Este es el registro de trabajo principal, se comporta de manera similar al acumulador en los microprocesadores. Este registro participa en casi todo el programa y por consiguiente en la mayoría de las instrucciones.

No hay comentarios:

Publicar un comentario