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 |
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.
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 programaSólo en los PIC16C56/57 IRP: Selección de bancos para el direccionamiento indirectoNo es útil para el PIC16C84 |
||||||||||||||||
El OPTION. Registro de opciones
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.
|