Microcontroladores 8051

2.3. Registros de funciones especiales (SFR) de los microcontroladores 8051

El área de registros o funciones especiales (SFR) está comprendida entre la dirección 80H y FFH de la memoria interna del microcontrolador.

Esta zona de memoria no se puede utilizar como memoria de datos, resulta evidente que si escribimos de forma descontrolada en la memoria asignada a un registro especial, se modifica el comportamiento del microcontrolador, obteniéndose resultados inesperados según el registro afectado. Aunque las posiciones de memoria que no están asignadas a un registro especial pueden ser utilizadas para contener datos, no es aconsejable su uso, se ha de tener en cuenta que estas pueden estar reservadas y asignadas a registros especiales en otros modelos de microcontroladores o de fabricantes y nuestro programa entrará en conflicto cuando cambiemos de modelo.

Los puertos de entradas y salidas también ocupan unas posiciones específicas o direcciones de memoria. Las posiciones de memoria del lateral izquierdo (80H, 88H, 90H..) están reservadas para el direccionamiento de bit por lo que los registros que las ocupan se podrán acceder mediante este sistema.

En la siguiente tabla se detalla la disposición de cada registro del microcontrolador 8051 y 8052.

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 IP *
            BFH
B0H P3 *
            B7H
A8H IE *
            AFH
A0H P2 *
            A7H
98H SCON *
SBUF           9FH
90H P1 *
            97H
88H TCON *
TMOD TL0 TL1 TH0 TH1   8FH
80H P0 *
SP DPL DPH     PCON 87H

La siguiente tabla muestra la descripción y los símbolos de cada bit o pin de los registros internos (SFR) de la familia de microcontroladores 8051/8052.

Registro Descripción Dirección Símbolo del bit o función alternativa del puerto        Valor del reset
      MSB             LSB  
ACC* Acumulador
(Accumulator)
E0H E7 E6 E5 E4 E3 E2 E1 E0 00H
B* Registro B
(register B)
F0H F7 F6 F5 F4 F3 F2 F1 F0 00H
DPTR: Apuntador a datos
(Data pointer) (2 bytes)
                   
DPH Byte alto del DPTR
(Data pointer high)
83H                 00H
DPL Byte bajo del DPTR
(Data pointer low)
82H                 00H
      AF AE AD AC AB AA A9 A8  
IE* Habilitación de interrupciones
(Interrupt enable)
A8H EA ET2 ES ET1 EX1 ET0 EX0 0x000000B
      BF BE BD BC BB BA B9 B8  
IP* Prioridad de las interrupciones
(Interrupt priority)
B8H PT2 PS PT1 PX1 PT0 PX0 0x000000B
      87 86 85 84 83 82 81 80  
P0* Puerto 0 (Port 0) 80H AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 FFH
      97 96 95 94 93 92 91 90  
P1* Puerto 1 (Port 1) 90H T2EX T2 FFH
      A7 A6 A5 A4 A3 A2 A1 A0  
P2* Puerto 2 (Port 2) A0H A15 A14 A13 A12 A11 A10 A9 A8 FFH
      B7 B6 B5 B4 B3 B2 B1 B0  
P3* Puerto 3 (Port 3) B0H RD WR T1 T0 INT1 INT0 TxD RxD FFH
PCON1 Control del consumo
(Power control)
87H SMOD GF1 GF0 PD IDL 0xxxxxxxB
      D7 D6 D5 D4 D3 D2 D1 D0  
PSW* Palabra de estado del programa
(Program status word)
D0H CY AC F0 RS1 RS0 OV P 00H
RCAP2H# Byte alto de captura
(Capture high)
CBH                 00H
RCAPL# Byte Bajo de captura
(Capture low)
CAH                 00H
SBUF Buffer de datos serie
(Serial data buffer)
99H                 xxxxxxxxB
      9F 9E 9D 9C 9B 9A 99 98  
SCON* Control puerto serie
(Serial controller)
98H SM0 SM1 SM2 REN TB8 RB8 TI RI 00H
SP Puntero del stack
(Stack pointer)
81H                 07H
      8F 8E 8D 8C 8B 8A 89 88  
TCON* Control de las temporizadores
(Timer control)
88H TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 00H
      CF CE CD CC CB CA C9 C8  
T2CON*# Control del timer 2
(Timer 2 control)
C8H TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RL2 00H
TH0 Temporizador 0 parte alta
(Timer high 0)
8CH                 00H
TH1 Temporizador 1 parte alta
(Timer high 1)
8DH                 00H
TH2# Temporizador 2 parte alta
(Timer high 2)
CDH                 00H
TL0 Temporizador 0 parte baja
(Timer low 0)
8AH                 00H
TL1 Temporizador 1 parte baja
(Timer low 1)
8BH                 00H
TL2# Temporizador 2 parte baja
(Timer low 2)
CCH                 00H
TMOD Modo de los temporizadores
(Timer mode)
89H GATE C/T M1 M0 GATE C/T M1 M0 00H

* Registro con direccionamiento a nivel de bit.
# Registros añadidos en la familia de microcontroladores 8052.

 
copyright © 2007-2010  alciro.org  All rights reserved.         
Share |