Contenido>Indice>Intro CursoC51

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.

 


   Contenido>Indice>Intro CursoC51