User: alciro    User
 

Microcontroladores 8051

Share |

6.3. Estructuras de campos de bits

Se pueden definir los elementos de una estructura en campos de bits actuando como variables miembro de estructura, con un número determinado de bits entre 1 y 8, (el rango de las estructuras de bits depende de la arquitectura del microprocesador y del compilador que se esté utilizando, el rango puede ser de 1 a 8, 1 a 16, 1 a 32 o 1 a 64).

Declaración del tipo de dato estructura de bits

// Declaración de una estructura de bits
struct Puertos{
	unsigned Ch0: 1;	// Rango 0,1
	unsigned Ch1: 2;	// Rango 0 a 3
	unsigned Ch2: 3;	// Rango 0 a 7	
	unsigned Ch3: 1;	// Rango 0,1
};

Declaración de variables

void main(void){
	data struct Puertos PU_1;    // Declaración de una variable PU_1 del tipo Puertos
	
	PU_1.Ch0 = 0;    // Asignación de datos a los elementos
	PU_1.Ch1 = 3;
	PU_1.Ch2 = 5;
	PU_1.Ch3 = 1;
	...

Contenido de memoria

Contenido en memoria de la estructura de campos de bits

6.4. Uniones

Declaración de tipo de dato

union Datos{
	unsigned int i;		// Número entero
	unsigned char c[2];	// Array de dos caracteres
}

Declaración de variables

void main(void){
	data union Datos d_1;	// Declaración de una variable d_1 del tipo Datos
	d_1.i = 0x0405;		// Asignación de un número al tipo entero
	ch1 = d_1.c[0];		// Asignación a ch1 el contenido del 1 byte de la unión ( ch1=5 )
	ch2 = d_1.c[1];		// Asignación a ch1 el contenido del 1 byte de la unión ( ch2=4 )

Contenido en memoria

 

Contenido en memoria de la unión

6.5. Definición de símbolos

Definición de símbolos

#define principio 	{
#define fin		}
#define entero		int
#define numero		10
#define limite		numero*5
#define suma		x+y
#define mensaje		"Demasido grande \n"
main()
principio
	entero x,y,z;
	x = 5;
	y = limite;
	z = suma;
	if(z>y)
		printf(mensaje);
	...
fin

 

 

Loading

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