clase 1 compilador ccs c

31
Compilador CCS C

Upload: mishell-sanchez-guevara

Post on 29-Oct-2015

110 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Clase 1 Compilador CCS C

7/15/2019 Clase 1 Compilador CCS C

http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 1/31

Compilador

CCS C

Page 2: Clase 1 Compilador CCS C

7/15/2019 Clase 1 Compilador CCS C

http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 2/31

¿Qué es un compilador?Un compilador convierte el lenguaje de altonivel a instrucciones en código maquina; uncross-compiler es un compilador que funcionaen un procesador(normalmente una PC)

diferente al procesador objeto. El compiladorCCS C es un cross-compiler.

Page 3: Clase 1 Compilador CCS C

7/15/2019 Clase 1 Compilador CCS C

http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 3/31

Estructura de un programa

Para escribir un programa en C con CCS C se debe tener encuenta una serie de elementos básicos de su estructura

• DIRECTIVAS DE PREPROCESADO: Controlan la conversióndel programa a código maquina por parte del compilador.

• PROGRAMAS o FUNCIONES: Conjunto de instrucciones.Pueden haber uno o varios, el cualquier caso siempre debehaber uno definido como principal mediante la inclusiónllamada main().

INSTRUCCIONES: Indican como debe comportarse el PIC entodo momento.

• COMENTARIOS: Permiten describir lo que significa cadalínea del programa.

Page 4: Clase 1 Compilador CCS C

7/15/2019 Clase 1 Compilador CCS C

http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 4/31

Directivas

Función

Función Principal

Comentarios

Instrucciones

Page 5: Clase 1 Compilador CCS C

7/15/2019 Clase 1 Compilador CCS C

http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 5/31

Tipos de DatosTipo Tamaño Rango Descripción

Int1

Short

1 bit 0 a 1 Entero de 1 bit

Int

Int8

8 bits 0 a 255 Entero

Int16

Long

16 bits 0 a 65 535 Entero de 16 bits

Int32 32 bit 0 a 4 294 967 295 Entero de 32 bits

Float 32 bit ±1 175x10^(-38 ) a

±3 402x10^(+38)

Coma flotante

Char 8 bit 0 a 255 CarácterVoid -- -- Sin valor

Signed Int8 8 bit -128 a +127 Entero con signo

Signed Int16 16 bit -32768 a +32767 Entero largo con signo

Signed Int32 32 bit -2^31 a +(2^31 – 1 ) Entero 32 bit con signo

Page 6: Clase 1 Compilador CCS C

7/15/2019 Clase 1 Compilador CCS C

http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 6/31

Las Constantes

123 Decimal

0123 Octal (0)

0x123 Hexadecimal (0x)

0b010010 Binario (0b)

‘x’  Carácter

‘\010’  Carácter octal

‘\xA5’  Carácter hexadecimal

Int8 127U

Long 80UL

Signed INT16 80L

Float 3.14F

Char Con comillas simples ‘C’ 

Definición de constantes con un sufijo

\n Cambio de línea

\r Retorno de carro

\t Tabulación

\b Backspace

Definición de caracteres especiales

Page 7: Clase 1 Compilador CCS C

7/15/2019 Clase 1 Compilador CCS C

http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 7/31

Las Variables

Se utilizan para nombrar posiciones de memoriaRAM; se deben declarar obligatoriamente antesde utilizarlas, para ello se debe indicar el nombrey el tipo de dato que se manejara.

TIPO NOMBRE_VARIABLE [=VALOR INICIAL]

 float temp_limit = 500.0 ;int valor1 = 100 ;

char  Espacio= ‘ \ x20’ ; 

Page 8: Clase 1 Compilador CCS C

7/15/2019 Clase 1 Compilador CCS C

http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 8/31

  Las variables definidas en un programa pueden ser de tipo LOCALo GLOBAL. Las variables locales solo se utilizan en la funcióndonde se encuentran declaradas. Las variables globales se puedenutilizar en todas las funciones del programa.

#include <16f877a.h>#use DELAY (clock=20000000)

int16 counter; // Variable global 

Void FUNCION(void){ 

char K, kant =‘0’ ; // Variable local  }

void main( ){ 

int8 temp ; // Variable local 

 }

Las Variables

Page 9: Clase 1 Compilador CCS C

7/15/2019 Clase 1 Compilador CCS C

http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 9/31

Las variables pueden ser definidas con:

• AUTO: (Usada por defecto, no hace falta indicar) dondela variable existe mientras la función esta activa. Estasvariables no se inicializan a cero. Su valor se pierde

cuando se sale de la función.

• STATIC: Una variable local se activa como global, seinicializa en cero y mantiene su valor al entrar y salir de

la función.

• EXTERN: Permite el uso de variables en compilacionesmúltiples.

Las Variables

Page 10: Clase 1 Compilador CCS C

7/15/2019 Clase 1 Compilador CCS C

http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 10/31

Los Operadores

+= Asignación de suma (x+=y es lo mismo que x=x+y)

-= Asignación de resta (x-=y es lo mismo que x=x-y)

*= Asignación de multiplicación (x*=y es lo mismo que x=x*y)

/= Asignación de división (x/=y es lo mismo que x=x/y)

%= Asignación de resto de división (x%=y es lo mismo que x=x%y)

<<= Asignación de desplazamiento a la izquierda (x<<=y es lo mismo que x=x<<y)

>>= Asignación de desplazamiento a la derecha (x>>=y es lo mismo que x=x>>y)

&= Asignación AND de bits (x&=y es lo mismo que x=x&)

|= Asignación OR de bits (x|=y es lo mismo que x=x|y)

^= Asignación OR EXCLUSIVA de bits (x^=y es lo mismo que x=x^y)

Page 11: Clase 1 Compilador CCS C

7/15/2019 Clase 1 Compilador CCS C

http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 11/31

Los Operadores

+ Suma- Resta

* Multiplicación

/ División

% Módulo, resto de una división entera

-- Decremento

++ Incremento

sizeof  Determina el tamaño en bytes de un operando

En las operaciones de decremento e incremento, en función de la posición del

operador, se consigue un pre-incremento (++A) o un post-incremento (A++)

a=3;

b=4*a++; // b=12 y a=4

a=3;

b=4*++a; // b=16 y a=4

Page 12: Clase 1 Compilador CCS C

7/15/2019 Clase 1 Compilador CCS C

http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 12/31

Los Operadores

< Menor que

> Mayor que

>= Mayor o igual que

<= Menor o igual que

== Igual

!= Distinto

?: Expresión Condicional

! NOT

&& AND

|| OR

~ Complemento a 1

& AND

^ OR EXCLUSIVA

| OR

>> Desplazamiento a derechas

<< Desplazamiento a izquierdas

& Dirección

* Indirección

-> Puntero a estructura

Relacionales

De bits

Lógicos

Punteros

Page 13: Clase 1 Compilador CCS C

7/15/2019 Clase 1 Compilador CCS C

http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 13/31

FuncionesSon bloques de sentencias; al igual que las variables, las funcionesdeben definirse antes de utilizarse.

Tipo_Dato Nombre_Funcion (tipo param1, param2, …) 

(Sentencias);

 }

int suma (int a, int b)

int c;

c = a + b;

return c;

 }

void main ( )

temporal_0 = suma(3,4);

temporal_1 = suma(100,150);

 }

Page 14: Clase 1 Compilador CCS C

7/15/2019 Clase 1 Compilador CCS C

http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 14/31

Declaraciones de Control

El compilador CCS C admite las siguientes:

If-Else.

While.

Do-While.

For.

Switch-Case.

Return.

Break, Continue y Goto.

Page 15: Clase 1 Compilador CCS C

7/15/2019 Clase 1 Compilador CCS C

http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 15/31

  IF-ELSE

if (expresión)

sentencia_1;

[else

sentencia_2;]

Declaraciones de Control

if (expresión_1)

sentencia_1;[else if (expresión_2)

sentencia_2;]

[else

sentencia_3;]

if (expresión_1)

{

sentencia_1;

sentencia_2;}

[else

{

sentencia_1;sentencia_2;

sentencia_3;

}]

Page 16: Clase 1 Compilador CCS C

7/15/2019 Clase 1 Compilador CCS C

http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 16/31

IF (RB0==0) B=10; <>

ELSE C=5;

IF (RB0!=1) B=10;

ELSE C=5

Declaraciones de Control

¿RB0=0?B=10 C=5

Page 17: Clase 1 Compilador CCS C

7/15/2019 Clase 1 Compilador CCS C

http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 17/31

SWITCH-CASEswitch (expresión)

{

case constante 1:

sentencias;break;

case constante 2:

sentencias;

break;

… [default:

sentencias;]

}

Evalúa la expresión y enorden a la CONSTANTEadecuada realiza lassentencias asociadas. Sininguno de los CASE

corresponde a laCONSTANTE se ejecutaDEFAULT (este comandoes opcional)

El comando BREAKprovoca la salida delSWITCH, de lo contariose ejecuta el siguienteCASE.

Declaraciones de Control

Page 18: Clase 1 Compilador CCS C

7/15/2019 Clase 1 Compilador CCS C

http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 18/31

  Switch (A) {

case 0:

B=1;

break;

case 2:B=2;

break;

case 3:

B=3;break;

default: break;

}

Declaraciones de Control

¿A=0? B=1

¿A=2? B=2

¿A=3? B=3

NO

SI

NO

SI

SI

NO

Page 19: Clase 1 Compilador CCS C

7/15/2019 Clase 1 Compilador CCS C

http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 19/31

FOR for (inicialización ; condición de finalización ; incremento)

{

sentencias;

}

Declaraciones de Control

N=1

N<=10

Imprimir N

N=N+1

SI NO

 for (N=1; N<=10; N++)

Printf (“%u”,N  );

 }

Page 20: Clase 1 Compilador CCS C

7/15/2019 Clase 1 Compilador CCS C

http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 20/31

WHILEwhile (expresión)

{

sentencias

}

DO-WHILE Do

{

sentencias;

}while (expresión);

Declaraciones de Control

DO-WHILE se diferencia del WHILE y del FOR en lacondición de finalización la cual se evalúa al final debucle, por lo que las sentencias se ejecutan al menosuna vez.

Page 21: Clase 1 Compilador CCS C

7/15/2019 Clase 1 Compilador CCS C

http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 21/31

Declaraciones de Control

N=5

Y

M<10

A=1B=2

N=5

Y

M<10

A=1

B=2

While (N>5 && M<10)

 A=1;

B=2;

 }

Do

{  A=1;

B=2;

 }

While (N>5 && M<10);

Page 22: Clase 1 Compilador CCS C

7/15/2019 Clase 1 Compilador CCS C

http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 22/31

Otros:

• Return: Se emplea para devolver datos en

funciones

• Break: Permite salir de un bucle, se utiliza

para While, For, Do y Switch.

• Goto: Provoca un salto incondicional

Declaraciones de Control

Page 23: Clase 1 Compilador CCS C

7/15/2019 Clase 1 Compilador CCS C

http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 23/31

Comentarios

// Comentario que terminara al final de esta línea

/* Este comentario no finaliza al final de la línea,

sino finaliza cuando se cierre el comentario */

Page 24: Clase 1 Compilador CCS C

7/15/2019 Clase 1 Compilador CCS C

http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 24/31

Directivas

Page 25: Clase 1 Compilador CCS C

7/15/2019 Clase 1 Compilador CCS C

http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 25/31

Funciones

Page 26: Clase 1 Compilador CCS C

7/15/2019 Clase 1 Compilador CCS C

http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 26/31

Funciones

Page 27: Clase 1 Compilador CCS C

7/15/2019 Clase 1 Compilador CCS C

http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 27/31

Funciones

Page 28: Clase 1 Compilador CCS C

7/15/2019 Clase 1 Compilador CCS C

http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 28/31

Funciones

Page 29: Clase 1 Compilador CCS C

7/15/2019 Clase 1 Compilador CCS C

http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 29/31

Funciones

Page 30: Clase 1 Compilador CCS C

7/15/2019 Clase 1 Compilador CCS C

http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 30/31

Funciones

Page 31: Clase 1 Compilador CCS C

7/15/2019 Clase 1 Compilador CCS C

http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 31/31

Por: Mishell Sanchez Guevara

[email protected] 

[email protected]