Contenido>Indice>Intro CursoC51

CONSTANTES


Un requisito básico para la escritura de cualquier programa, es conocer la ubicación de los datos del mismo. Las constantes son las más sencillas de ubicar, deben residir en el área de código (EPROM), o como constantes en RAM, inicializadas en tiempo de ejecución, cuyo valor lógicamente no debe cambiar mientras dure el programa.

El último caso es la situación habitual con los programas para PC generados con Microsoft C o Borland C, sin embargo en las aplicaciones con el 8051, lo más adecuado es colocar las constantes en ROM, con lo cual se ahorra espacio en RAM. Ejemplos de constantes en EPROM son:

   unsigned char code temperat = 0x02 ;
   unsigned char code tabla[5] = {'1','2','3','4''} ;
   unsigned int code  presión  = 4 ;

Notar que const no significa code. Los objectos declarados const residirán en el área de memoria de datos correspondiente al modelo de memoria utilizado.

Para colocar una tabla grande en el área CODE, la declaración debe ser:

     unsigned char code TABLA_2[] = { 
                0x00,0x00,0x00,0x09,0x41,0x80,0xC0,0xFF,
                0x00,0x00,0x13,0x1A,0x26,0x33,0x80,0xFF,
                0x00,0x00,0x00,0x09,0x41,0x80,0x66,0x66,
                0x00,0x00,0x00,0x09,0x41,0x80,0x66,0x66,
                0x00,0x00,0x00,0x00,0x4D,0x63,0x66,0x66,
                0x00,0x00,0x00,0x02,0x4D,0x63,0x66,0x66,
                0x00,0x00,0x00,0x05,0x4A,0x46,0x40,0x40,
                0x00,0x00,0x00,0x08,0x43,0x43,0x3D,0x3A,
                0x00,0x00,0x00,0x00,0x2D,0x4D,0x56,0x4D,
                0x00,0x00,0x00,0x00,0x21,0x56,0x6C,0x6F
            } ;

Con objetos grandes como el de arriba es preciso controlar el espacio de memoria. En particular cuando se trabaja con el modelo SMALL es muy fácil llenar toda la RAM interna con una sola tabla.

La definición de constantes en RAM puede realizarse así:

    unsigned char factor_de_escala = 128    ;
    unsigned int constante_de_fuel = 0xFD34 ;

En este caso es mejor hablar de variables inicializadas - véase el capítulo 3 "Inicialización de variables" en lugar de constantes, ya que su valor puede modificarse a lo largo del programa

 


   Contenido>Indice>Intro CursoC51