Clase 1 Compilador CCS C
-
Upload
mishell-sanchez-guevara -
Category
Documents
-
view
131 -
download
7
Transcript of Clase 1 Compilador CCS C
![Page 1: Clase 1 Compilador CCS C](https://reader031.fdocuments.net/reader031/viewer/2022020711/55cf9d2f550346d033ac93e6/html5/thumbnails/1.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020711/55cf9d2f550346d033ac93e6/html5/thumbnails/2.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020711/55cf9d2f550346d033ac93e6/html5/thumbnails/3.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020711/55cf9d2f550346d033ac93e6/html5/thumbnails/4.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020711/55cf9d2f550346d033ac93e6/html5/thumbnails/5.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020711/55cf9d2f550346d033ac93e6/html5/thumbnails/6.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020711/55cf9d2f550346d033ac93e6/html5/thumbnails/7.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020711/55cf9d2f550346d033ac93e6/html5/thumbnails/8.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020711/55cf9d2f550346d033ac93e6/html5/thumbnails/9.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020711/55cf9d2f550346d033ac93e6/html5/thumbnails/10.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020711/55cf9d2f550346d033ac93e6/html5/thumbnails/11.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020711/55cf9d2f550346d033ac93e6/html5/thumbnails/12.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020711/55cf9d2f550346d033ac93e6/html5/thumbnails/13.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020711/55cf9d2f550346d033ac93e6/html5/thumbnails/14.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020711/55cf9d2f550346d033ac93e6/html5/thumbnails/15.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020711/55cf9d2f550346d033ac93e6/html5/thumbnails/16.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020711/55cf9d2f550346d033ac93e6/html5/thumbnails/17.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020711/55cf9d2f550346d033ac93e6/html5/thumbnails/18.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020711/55cf9d2f550346d033ac93e6/html5/thumbnails/19.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020711/55cf9d2f550346d033ac93e6/html5/thumbnails/20.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020711/55cf9d2f550346d033ac93e6/html5/thumbnails/21.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020711/55cf9d2f550346d033ac93e6/html5/thumbnails/22.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020711/55cf9d2f550346d033ac93e6/html5/thumbnails/23.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020711/55cf9d2f550346d033ac93e6/html5/thumbnails/24.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020711/55cf9d2f550346d033ac93e6/html5/thumbnails/25.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020711/55cf9d2f550346d033ac93e6/html5/thumbnails/26.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020711/55cf9d2f550346d033ac93e6/html5/thumbnails/27.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020711/55cf9d2f550346d033ac93e6/html5/thumbnails/28.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020711/55cf9d2f550346d033ac93e6/html5/thumbnails/29.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020711/55cf9d2f550346d033ac93e6/html5/thumbnails/30.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020711/55cf9d2f550346d033ac93e6/html5/thumbnails/31.jpg)
7/15/2019 Clase 1 Compilador CCS C
http://slidepdf.com/reader/full/clase-1-compilador-ccs-c 31/31
Por: Mishell Sanchez Guevara