Professional Documents
Culture Documents
SFR cuenta con 128 bytes de direcciones desde 80H ~ FFH. Se pueden ver sus
nombres y la disposición de las direcciones en la tabla 1 - 2, y el
direccionamiento por bits y el nombre de los bits en la tabla 1 - 3. Es
importante anotar que estas direcciones desocupadas ( como 84H ~ 86H ) en
dicha tabla no se pueden utilizar como memoria de datos.
F8H FFH
F0H B F7H
E8H EFH
E0H ACC E7H
D8H DFH
D0H PSW D7H
C8H T2CON RCAP2L* RCAP2H* TL2 TH2 CFH
C0H C7H
B8H 1P BFH
B0H P3 B7H
A8H 1E AFH
A0H P2 A7H
98H SCON 9FH
90H P1 97H
88H TCON TMOD TL0 TL1 TH0 TH1 8FH
80H P0 SP DPL DPH PCON 87H
NOTA: los que contienen el signo * sólo existen en la familia MCS - 52.
Tabla 1 - 2. Diagrama de los nombres del SFR y su disposición de las direcciones.
FF F0H F7 F6 F5 F4 F3 F2 F1 F0 B
E0 E7 E6 E5 E4 E3 E2 E1 E0 AC
D0 D7 D6 D5 D4 D3 D2 D1 D0 PS
B8 BF BE BD BC BB BA B9 B8 1P
B0 B7 B6 B5 B4 B3 B2 B1 B0 P3
A8 AF - - AC AB AA A9 A8 1E
A0 A7 A6 A5 A4 A3 A2 A1 A0 P2
99H SB
SFR 98H 9F 9E 9D 9C 99 9A 99 98 SC
90H 97 96 95 94 93 92 91 90 P1
8D TH
8C TH
8B TL1
Espacio de direccionamiento directo
8A TL0
89H TM
88H 8F 8E 8D 8C 8B 8A 89 88 TC
87H PC
83H DP
82H DP
81H SP
80H 80H B7 P0 B5 B4 B3 B2 B1 B0 P0
7FH 7FH
Memoria Registro
de datos PSW
30H 30H
2FH Direcciona 2FH 7F 7E 7D 7C 7B 7A 79 78
Espacio de direccionamiento indirecto
18H 18H R0
17H 17H R7
Banco 2 1 0
10H 10H R0
0FH 0FH R7
Banco 1 0 1
08H 08H R0
07H 07H R7
06H R6
05H R5
Banco 0 04H R4 0 0
03H R3
02H R2
01H R1
00H 00H R0
Dirección de los bytes Dirección de
los bits Registro
CY AC F0 RS1 RS0 OV - P
7 6 5 4 3 2 1 0
Registro PSW
Fig. 1 - 5. Diagrama de la estructura de memoria de datos internos RAM de microcontrolador MCS - 51.
A continuación se describirán brevemente las funciones de SFR y sus usos:
Registro B - ( F0H ):
Durante la ejucución de las instrucciones de operación de multiplicación y
de división, es indispensable utilizar este registro. Este registro es
direccionable bit a bit con sus datos de 8 bits de ancho.
X = no definido
* = direccionable bit a bit
+ = sólo en MCS - 52
IP ( Interrupt Priority ) Registro de prioridad de interrupción -
( B8H ):
El registro de prioridad de interrupción aprovecha los bits para controlar
los niveles de prioridad en las interrupciones. Un bit representa una
fuente de interrupción; si el bit está puesto en “ 1 ”, su interrupción
correspondiente posee la mayor prioridad, por lo contrario, si el bit está
puesto en “ 0 ”, su interrupción correspondiente posee la menor prioridad.
Este registro es direccionable bit a bit. En la tala 1 - 6 se puede ver el
formato de los bits del registro de prioridad de interrupción y sus
funciones; en el artículo 4 - 4 se pueden referir una descripción más
detallada y las formas del uso.
Registros P0, P1, P2, P3 - ( 80H, 90H, A0H, B0H ):
Los registros P0, P1, P2, P3 son los latches de los 4 puertos de entrada /
salida del microcontrolador de la familia MCS 51 / 52 para guardar los
datos del estado de entrada / salida. Los 4 registros de puerto son
direccionables bit a bit. En el artículo 4 - 1 ( entrada / salida de la familia
MCS 51 / 52 ) se pueden referir una descripción más detallada y las
formas del uso.
[ Tabla 1 ‒ 7 ] Tabla del funcionamiento de los bits del registro de control de potencia
PCON : Registro de control de potencia ( Power Control Register )
Este registro no es direccionable bit a bit y está situado en la posición 87H.
B7 ( MSB ) B6 B5 B4 B3 B2 B1 B0 ( LSB )
SMOD ― ― ― GF1 GF0 PD IDL
SMOD : Dobla el Baud Rate cuando se utiliza el Timer 1 ( en los modos 1, 2, 3 )
para generarlo y SMOD = 1.
― : Está reservado para el próximo uso.
GF1 : Para propósitos generales.
GF0 : Para propósitos generales.
PD : Bit de bajo consumo de energía ( sólo para el 80C51BH CHMOS )
PD = 1 entra en el modo de bajo consumo de energía.
IDL : Bit de estado inactivo ( sólo para el 80C51BH CHMOS )
IDL = 1 entra en el modo de estado inactivo.
( Nota: si PD y IDL son puestos en “ 1 ” al mismo tiempo, PD tiene la prioridad. )
[ Tabla 1 ‒ 8 ]
Tabla del funcionamiento de los bits del registro de palabras de estado de programa
PSW : Registro de palabras de estado de programa ( Program Status Word )
Este registro es direccionable bit a bit y está situado en la posición D0H.
B7 ( MSB ) B6 B5 B4 B3 B2 B1 B0 ( LSB )
CY AC F0 RS1 RS0 OV ― P
CY : Bandera Carry
AC : Bandera Carry auxiliar
F0 : Para propósitos generales.
RS1 : Bit 1 selector del banco de registros.
RS0 : Bit 0 selector del banco de registros.
RS1 RS0 Banco de registros Dirección de R0 ~ R7
0 0 0 00H ~ 07H
0 1 1 08H ~ 0FH
1 0 2 10H ~ 17H
1 1 3 18H ~ 1FH
OV : Bandera Overflow
― : Está reservado para el próximo uso.
P : Bandera de paridad del acumulador, la cual es puesta por el hardware en
cada cíclo de instrucción para señalar cuántos “ 1 ” existen en el
contenido de acumulador ( ACC ), sea inpar ( P = 1 ) o par ( P = 0 ).
[ Tabla 1 ‒ 9 ]
Tabla del funcionamiento de los bits del registro de control del puerto serie
SCON : Registro de control del puerto serie ( Serial Port Control Register )
Este registro es direccionable bit a bit y está situado en la posición 98H.
B7 ( MSB ) B6 B5 B4 B3 B2 B1 B0 ( LSB )
SM0 SM1 SM2 REN TB8 RB8 TI RI
SM0 / : Bit selector para especificar modo de control del puerto serie.
SM1
SM0 SM1 Modo Especificación Baud Rate
0 0 0 Registro de corrimiento Frecuencia de Osc. / 12
0 1 1 UART 8 - bits Variable
1 0 2 UART 9 - bits F. Osc. / 64 ó / 32
1 1 3 UART 9 - bits Variable
SM2 : Bit para habilitar la comunicación del tipo “ multiprocesador ” en los
modos 2 y 3.
Modo 0 : SM2 debe ser puesto en “ 0 ”.
Modo 1 : Si SM2 = 1, antes de recibir el bit de desactivación efectivo,
RI no se activa ( RI ≠ 1 ).
Modo 2, 3 : Si SM2 = 0, no es afectado por el valor de RB8, RI = 1.
Si SM2 = 1, limita a que RI = 1 cuando RB8 = 1.
RB8 es el 9º bit que fue recibido en estos modos.
RI = 0, no ejecuta la recepción.
RI = 1, recepta los datos.
REN : El bit que establece la recepción serie, el cual es puesto / borrado por el
hardware.
REN = 0 desactiva la recepción serie.
REN = 1 activa la recepción serie.
TB8 : Almacena el 9º bit que será transmitido en los modos 2, 3, el cual es
puesto / borrado por el hardware.
RB8 : Es el 9º bit que fue recibido en los modos 2, 3.
En el modo 1, si SM2 = 0, RB8 es el bit “ STOP ”.
En el modo 0, RB8 no se utiliza.
TI : Bandera de interrupción de la transmisión. TI debe ser limpiado por el
software.
En el modo 0, TI será puesto en “ 1 ” al terminar de transmitir el 8º bit.
En los modos 1, 2, 3, TI será puesto en “ 1 ” durante la transmisión del bit
“ STOP ”.
RI : Bandera de interrupción de la recepción. RI debe ser limpiado por el
software.
En el modo 0, RI será puesto en “ 1 ” al terminar de receptar el 8º bit.
En los modos 1, 2, 3, RI será puesto en “ 1 ” durante la recepción del bit “
STOP ”.
[ Tabla 1 ‒ 10 ]
Tabla del funcionamiento de los bits del registro de control del temporizador / contador
TCON : Registro de control del temporizador / contador ( Timer / Counter Control
Register )
Este registro es direccionable bit a bit y está situado en la posición 88H.
B7 ( MSB ) B6 B5 B4 B3 B2 B1 B0 ( LSB )
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
TF1 : Bandera de sobreflujo del registro del Timer 1. Cuando se produce un
sobreflujo en el Timer 1, este bit será puesto en “ 1 ” por el hardware.
Cuando se ejecuta la interrupción, este bit se limpia automáticamente
por el hardware, si no, será necesario limparse por el software.
TR1 : Bit de control del arranque del Timer 1, el cual es puesto / limpiado por
el software para arrancar / parar el conteo.
TF0 : Bandera de sobreflujo del registro del Timer 0. Cuando se produce un
sobreflujo en el Timer 0, este bit será puesto en “ 1 ” por el hardware.
Cuando se ejecuta la interrupción, este bit se limpia automáticamente
por el hardware, si no, será necesario limpiarse por el software.
TR0 : Bit de control del arranque del Timer 0, el cual es puesto / limpiado por
el software para arrancar / parar el conteo de tiempo / unidad.
IE1 : Bandera de transición de la interrupción externa 1. Cuando la
interrupción externa está detectada, este bit será puesto en “ 1 ” por el
hardware; cuando se ejecuta la interrupción, este bit será limpiado
automáticamente por el hardware.
IT1 : Bit de control del activador de interrupción externa 1 ( por nivel bajo “ 0
” o por flanco “ 1 ” ).
IE0 : Bandera de transición de la interrupción externa 0. Cuando la
interrupción externa está detectada, este bit será puesto en “ 1 ” por el
hardware; cuando se ejecuta la interrupción, este bit será limpiado por el
hardware.
IT0 : Bit de control del activador de interrupción externa 0 ( por nivel bajo “ 0
” o por flanco “ 1 ” ).
[ Tabla 1 ‒ 11 ] Tabla del funcionamiento de los bits del registro de control del Timer 2
T2CON : Registro de control del Timer 2 ( Timer 2 Control Register )
Este registro es direccionable bit a bit y está situado en la posición C8H.
B7 ( MSB ) B6 B5 B4 B3 B2 B1 B0 ( LSB )
TF2 EXF2 RCLK TCLK EXEN2 TR2 C / T2 CP / RL2
TF2 : Bandera de sobreflujo del registro del Timer 2.
Cuando se produce un sobreflujo en el Timer 2, este bit será puesto en
“ 1 ” de forma automática por el hardware; la puesta en “ 1 ” se debe
limpiar por el software. Cuando RCLK = 1 o TCLK = 1, TF2 no
tendrá validez.
EXF2 : Bandera por flanco del Timer 2.
Cuando EXF2 = 1 y T2EX ( P1.1 ) tiene entrada de señal por flanco,
hace EXF2 = 1; la puesta en “ 1 ” de EXF2 se debe limpiar por el
software.
RCLK : Bit selector de reloj receptor del puerto serie.
RCLK = 1, el reloj de recepción será ajustado por el Timer 2 en los
modos 1, 3 del puerto serie.
RCLK = 0, el reloj de recepción será ajustado por el Timer 1 en los
modos 1, 3 del puerto serie.
TCLK : Bit selector de reloj transmisor del puerto serie.
TCLK = 1, el reloj de transmisión será ajustado por el Timer 2 en los
modos 1, 3 del puerto serie.
TCLK = 0, el reloj de transmisión será ajustado por el Timer 1 en los
modos 1, 3 del puerto serie.
EXEN2 : Bit para habilitar la señal externa del Timer 2.
EXEN2 = 1, activa la entrada de señal externa ( P 1.1 ).
EXEN2 = 0, desactiva la entrada de señal externa ( P 1.1 ).
TR2 : Bit de arranque y parada del Timer 2.
TR2 = 1, activa el Timer 2.
TR2 = 0, desactiva el Timer 2.
C / T2 : Bit selector del modo de funcionamiento.
C / T2 = 1, modo de contador.
C / T2 = 0, modo de timer.
CP/RL2 : Bandera de captura / recarga automática.
RCLK TCLK EXEN2 T2EX CP / RL2 Función
1 × × × × Recarga automática
× × × × × Recarga automática
0 0 0 × × Recarga automática
Recarga automática
0 0 1 0
Captura
0 0 1 1
[ Tabla 1 - 12 ]
Tabla del funcionamiento de los bits del registro de control del modo de temporizador /
contador
TMOD : Registro de control del modo de temporizador / contador ( Timer /
Counter Mode Control Register )
Este registro no es direccionable bit a bit y está situado en la posición 89H.
B7 ( MSB ) B6 B5 B4 B3 B2 B1 B0 ( LSB )
GATE C/T M1 M0 GATE C/T M1 M0
GATE : Bit selector de la forma de arranque del temporizador / contador.
GATE = 0, el temporizador / contador será arrancado por el bit TRX
del registro TCON.
GATE = 1, el temporizador / contador será arrancado por el bit TRX
del registro TCON si el pin INTX = alto.
C/T : Bit selector de timer o contador.
C / T = 0, se ejecuta la función del timer.
C / T = 1, se ejecuta la función del contador.
M1 : Bit seleccionador del modo de operación.
M0 : Bit seleccionador del modo de operación.
M1 M0 Modo Función
0 0 0 Temporizador / contador de 13 bits.
0 1 1 Temporizador / contador de 16 bits.
1 0 2 Temporizador / contador de recarga automática de 8
bits.
1 1 3 (1) Temporizador / contador 0 está dividido en TL0 y TH0,
los cuales tienen 8 bits individuales cada uno. El arranque y
la parada de TL0 están controladas por el bit TR0; el
arranque y la parada de TH0 están controladas por el bit
TR1. TH0 limita a la ejecución del timer.
(2) Temporizador / contador 1 paran el conteo al momento de
entrar al modo 3.