Vous êtes sur la page 1sur 9

Capacitacin Certificada, Componentes & Soluciones en Electrnica y

Programacin

Gua de programacin para


C para microntroladores

www.novellius.com
contacto@novellius.com

www.novellius.com

Estructura bsica de un programa


Archivo cabecera del PIC

Fusibles
Velocidad de procesamiento
Mtodo principal

Ciclo continuo

Cuerpo del programa

www.novellius.com

Sentencias
Sentencia if-else

Sintaxis

if(condicin){
expresin;
}
else{
expresin_2;
}

condicin. Esta expresin a evaluar debe retornar true o false.


expresin. La(s) lnea(s) de cdigo a ejecutar en caso de que condicin

Parmetros

retorne true.

expresin_2. La(s) lnea(s) de cdigo a ejecutar en caso de que condicin


retorne false.

if(input(PIN_A0) == 1){ // si el botn en RA0 fue presionado


output_B(0xFF); // enviar FF al puerto b
Ejemplo

}
else{ // si no fue presinado el botn en RA0
output_B(0x00); // enviar 00 al puerto b
}

Sentencia if-else anidada

Sintaxis

if(condicin){
expresin;
}
else if(condicin_2){
expresin_2;
}
else{
expresin_3;
}

www.novellius.com
condicin. Esta expresin a evaluar debe retornar true o false.
expresin. La(s) lnea(s) de cdigo a ejecutar en caso de que condicin
retorne true.

Parmetros

condicin_2. Esta segunda expresin a evaluar debe tambin retornar true o


false.
expresin 2. La(s) lnea(s) de cdigo a ejecutar en caso de que condicin_2
retorne false.
expresin_3. La(s) lnea(s) de cdigo a ejecutar en caso de que condicin_1
y condicin_2 retornen false.
int valor;
if(valor <= 50){ // si el valor es menor a 50
output_B(0x04); // enviar 0x04 al puerto b
}

Ejemplo

else if(valor > 50 && valor <= 100){ // si el valor se encuentra entre 50 y 100
output_B(0x0F); // enviar 0x0Fal puerto b
}
else{ // si el valor es mayor a 100
output_B(0x00);
}

Ciclo for
Sintaxis

for(valorInicial; valorFinal; incremento){


expresin;
}

www.novellius.com
valorInicial. Expresin desde la cual se comienza la iteracin.
valorFinal. Expresin hasta la cual se realiza el ciclo.
Parmetros
incremento. Incremento o decremento de la interacin.

expresin. Lnea(s) de cdigo a ejecutar tantas veces como ocurra el ciclo.


int i;

Ejemplo

for(i = 0; i <= 10; i++ ){ // iterar 11 veces


printf(mensaje: %d, i); // imprimir nmero de mensaje
}

Ciclo while
Sintaxis

while(condicin){
expresin;
}
condicin. Expresin la cual indica la finalizacin de la iteracin.

Parmetros

expresin. Fragmento de cdigo a ejecutar indefinidamente hasta que

condicin se cumpla.
char c;
Ejemplo

while(c != 0){ // iterar mientras caracter c sea diferente de 0


printf(c no es cero); // imprimir mensaje
}

www.novellius.com

Ciclo do-while
do{
Sintaxis

Parmetros

expresin;
}
while(condicin);

expresin. Lnea(s) de cdigo a ejecutar mientras la condicin no sea


cumplida.
condicin. Cuando devuelve false finaliza la ejecucin de expresin.
char c;
do{ // realizar el cdigo dentro hasta cumplir condicin

Ejemplo

printf(c no es cero); // imprimir mensaje


}
while(c != 0); // iterar mientras caracter c sea diferente de 0

Funciones Pre-definidas
printf
Descripcin

Imprime una cadena de caracteres con un formato establecido ya sea hacia el


buffer RS232 o a alguna funcin especificada.

Sintaxis

printf(string);
printf(string, valores);
printf(nombreFuncin, string, valores);

Parmetros

expresin. Lnea(s) de cdigo a ejecutar mientras la condicin no sea


cumplida.
condicin. Cuando devuelve false finaliza la ejecucin de expresin.

www.novellius.com
char c;
do{ // realizar el cdigo dentro hasta cumplir condicin
Ejemplo

printf(c no es cero); // imprimir mensaje


}
while(c != 0); // iterar mientras caracter c sea diferente de 0

www.novellius.com

Tipos de Datos
Tipo

Tamao (bits)

Rango

short
int1

0a1

int
int8

0 a 255

int16
long

16

0 a 65,535

int32

32

0 a 4,294,967,295

float

32

char

1.175!10!!" !!! 3.402!10!" !

void

signed int

-128 a 127

signed int16

16

-32,768 a 32,767

signed int32

32

2!" !!!!! 2!" 1 !

0 a 255

Constantes

Prefijo

Base

120

Decimal

0120

Octal

0x120

Hexadecimal

0b01111000

Binario

Caracter

\015

Caracter octal

\xBA

Caracter hexadecimal

www.novellius.com

Sufijos
Sufijo

Tipo

125U

int8

125UL

long

125L

signed int16

3.141562F

float

Vous aimerez peut-être aussi