ACCESO A LOS PERIFERICOS INTERNOS DEL 8051
En las aplicaciones de control típicas con mucha frecuencia se producen operaciones tales como: lectura y escritura de datos en un puerto, asignación de valor a los registros de un timer, lectura de valores de registros captura, etc. El compilador C51 dispone de tipos de datos especiales como sfr y sbit, para realizar estas operaciones sin necesidad de acudir al lenguaje ensamblador.
Algunas declaraciones típicas son:
sfr P0 = 0x80; sfr P1 = 0x90; sfr ADCON = 0xC5; sbit EA = 0xAF;
Muchas de estas declaraciones residen en ficheros cabecera tales como reg51.h en el caso del 8051, o en reg552.h para el 80C552. Son precisamente estas declaraciones las que adaptan el compilador a un derivado del 8051. Con ellas, el acceso a los sfr resulta muy sencillo:
{ ADCON = 0x08 ; /* Escritura de un dato en un registro */ P1 = 0xFF ; /* Escritura de un dato en un puerto */ io_estado = P0 ; /* Lectura del estado de un puerto */ EA = 1 ; /* Poner a 1 un bit (enable all interrupts) */ }
No todos los registros especiales de un microcontrolador son direccionables a nivel bit. La regla es que sólo los sfr cuya dirección es divisible por 8 son direccionables a nivel bit. Si ello no sucede, el acceso a un bit debe hacerse mediante instrucciones de byte y utilizando máscaras.
Consultar el manual de usuario del procesador para verificar si un sfr es direccionable a nivel de bit.