LOS REGISTROS DE LA GAMA MEDIA

 

2.1 Organización de la memoria de datos 

La ampliación de recursos en los PIC forzó en los catalogados como de gama media una nueva estructura y la modificación de algunas instrucciones (partiendo, claro está, de la gama baja). Una de las diferencias fundamentales es, precisamente, la ampliación de memoria de registros, a los que se unieron algunos nuevos de sistema, y la accesibilidad a parte de los mismos que antes quedaban ocultos, como OPTION o TRIS, de los que hablaremos a continuación. 

De este modo se optó por dos bancos de registros de 128 posiciones cada uno, la mayoría de los cuales son de propósito general. En el siguiente esquema, que muestra esta organización, las direcciones con casillas blancas muestran posiciones de registros específicos, y las grises generales. 

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

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

 

2.2 Registros específicos 

El PC. Direccionamiento del programa: El PC consta de 13 bits, con lo que es posible direccionar hasta 8K palabras, separadas en bancos de 2K. El byte de menos peso de la dirección se guarda en el registro PCL, sito en la posición 0x02 del banco 0, mientras los 5 bits de más peso se guardan en los 5 bits de menos peso del registro PCLATH (dirección 0x08). Puesto que las instrucciones CALL y GOTO sólo cuentan con 11 bits, sus saltos serán relativos a la página en la que estemos. El cambio real de página se hará cambiando los bits PCLATH.4 y PCLATH.3. 

El STATUS. Registro de estado.

 

R/W

R/W

R/W

R

R

R/W

R/W

R/W

IRP

RP1

RP0

/TO

/PD

Z

DC

C

 C: Acarreo en el 8º bit.

                1 = acarreo en la suma y no en la resta. 0 = acarreo en la resta y no en la suma

DC: Acarreo en el 4º bit de menor peso.

                Igual que C.

Z: Zero.

                1 = El resultado de alguna operación es 0. 0 = El resultado es distinto de 0

/PD: Power Down.

                1 = Recién encendido o tras CLRWDT. 0 = Tras ejecutar una instrucción SLEEP

/TO: Timer Out.

                1 = Recién encendido, tras CLRWDT, o SLEEP. 0 = Saltó el  WDT

RP1:RP0: Página de memoria de programa

                Sólo en los PIC16C56/57

IRP: Selección de bancos para el direccionamiento indirecto

                No es útil para el PIC16C84

 

 

El OPTION. Registro de opciones

R/W

R/W

R/W

R

R

R/W

R/W

R/W

RBU

INTDEG

T0CS

T0SE

PSA

PS2

PS1

PS0

 RBPU: Conexión de cargas Pull-Up para la puerta B.

1 = Cargas Pull-Up desconectadas

INTDEG: Tipo de flanco para la interrupción.

                1 = RB0/INT sensible a flanco ascendente. 0 = RB0/INT sensible a flanco descendente.

T0CS: Fuente de reloj para el contador (registro TMR0).

                1 = Pulsos por pata T0CLK (contador). 0 = Pulsos igual a reloj interno / 4 (temporizador).

T0SE: Tipo de flanco activo del T0CLK.

                1 = Incremento TMR0 en flanco descendente.  0 = Incremento en flanco ascendente

PSA:  Asignación del divisor de frecuencia.

                1 = Divisor asignado al WDT. 0 = Divisor asignado al TMR0.

PSA2:PSA0: Valor del divisor de frecuencia.

               

PS2   PS1   PS0

División del TMR0

 

PS2   PS1   PS0

División del WDT

0        0        0

1 / 2

 

0        0        0

1 / 1

0        0        1

1 / 4

 

0        0        1

1 / 2

0        1        0

1 / 8

 

0        1        0

1 / 4

0        1        1

1/ 16

 

0        1        1

1 / 8

1        0        0

1 / 32

 

1        0        0

1 / 16