Micrcontroladoradores PIC18F 1

83
 PIC18F4550

Transcript of Micrcontroladoradores PIC18F 1

Page 1: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 1/83

PIC18F4550

Page 2: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 2/83

1. INTRODUCCIÓN

2. ARQUITECTURA

3. ANSI C

3. Microchip C18

END

Page 3: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 3/83

Page 4: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 4/83

Page 5: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 5/83

Page 6: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 6/83

Page 7: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 7/83

Page 8: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 8/83

Page 9: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 9/83

Arquitectura VonNeuman Arquitectura Harvard

Page 10: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 10/83

En un sistema con arquitectura Von Neumann eltamaño de la unidad de datos instrucciones está

fijado por el ancho del bus que comunica lamemoria con la CPU. Así un microprocesador de 8bits con un bus de 8 bits, tendrá que manejar datose instrucciones de una o más unidades de 8 bits(bytes) de longitud. Si tiene que acceder a una

instrucción o dato de más de un byte de longitud,tendrá que realizar más de un acceso a la memoria.

Page 11: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 11/83

La arquitectura Harvard tiene memoria de programa y

memoria de datos separadas y se accede a ellas através de buses separados.

El tiempo de acceso se mejora respecto a laarquitectura von Neumann donde programa y datos

se traen a la CPU usando el mismo bus.

Page 12: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 12/83

Page 13: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 13/83

Page 14: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 14/83

Page 15: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 15/83

Page 16: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 16/83

AND ORNOT

XOR

Page 17: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 17/83

Page 18: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 18/83

Page 19: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 19/83

Page 20: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 20/83

Contador de Programa(PC) de 21 bits, capazde direccionar 2Mb dememoria.

El PIC18F4550 tiene32KB de memoriaFLASH de programa.

Hay dos vectores deinterrupción:El vector de RESET

(0000h).Dos vectores de

interrupción (0008h y0018h).

Page 21: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 21/83

Page 22: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 22/83

Page 23: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 23/83

Page 24: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 24/83

Solo los primeros 12 bits en el PIC18F4550están implementados.

Page 25: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 25/83

Page 26: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 26/83

Page 27: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 27/83

Bandera de acarreo o préstamo (C).

Bandera de acarreo BCD, de 3er al 4º bit (DC). Bandera de cero (Z). Bandera de sobre flujo (OV). Bandera de signo, complemento 2 (N).

Page 28: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 28/83

Fue inventado por Dennis Ritchie en losLaboratorios BELL, basándose en el lenguajeB, creado por Ken Thompson.

En 1983 el ISA estableció un estándar quedefiniera al lenguaje C, conocido como ANSIC.

Es un lenguaje estructurado.

Sus bibliotecas estándar lo convierten en unexcelente entorno de programación.

Page 29: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 29/83

Page 30: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 30/83

Palabras Reservadas.  Tipos de datos.  Separadores. 

Comentarios.  Identificadores.  Constantes.  Variables.  Operadores.  Macros del pre-procesador.  Sentencias o instrucciones. 

Page 31: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 31/83

char void default returnint if break auto

float else continue extern

double do goto register

long while struct const

short for union static

signed switch enum volatile

unsigned case typedef sizeof 

Page 32: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 32/83

En C es importante declarar todas las variables que se

vayan a utilizar

Page 33: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 33/83

Los separadores están constituidos por uno ovarios espacios en blanco, tabuladores, ycaracteres de avance de línea (enter).

Su papel es ayudar al compilador adescomponer el programa fuente en cadauno de sus tokens o componentes sintáticos.

Es conveniente introducir espacios en blancoincluso cuando no son estrictamentenecesarios, para mejorar la legibilidad delprograma.

Page 34: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 34/83

La misión de los comentarios es servir deexplicación o aclaración sobre como está hechoel programa (documentarlo), de forma quepueda ser entendido por un persona diferente.

Comentarios multi-línea◦

Comienzan con /* y terminan con */◦ No puede anidarse un comentario dentro de otro.

Comentarios de una sola línea ◦ Comienzan al principio de la línea con //

Todos los comentarios son ignorados por el

compilador. Ejemplo:

//Los comentarios actúan como separadores

/* Un fuente de error común entre programadores

es olvidarse de cerrar el comentario */

Page 35: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 35/83

Un identificador es un nombre con el que se hace

referencia a una función o al contenido de unazona de la memoria (variable). Reglas en ANSI C:

1. Un identificador se forma con una secuencia de letras(de la “a”  a la “z ”, “A” a la “Z ” o 0 al 9).

2. El guión bajo o underscore (_) se considera como unaletra más.

3. Un identificador no puede contener espacios en blanconi otros caracteres (*,;.:-+, etc.).

4. El primer carácter debe ser una letra o “_”, no puede

ser un dígito.5. ANSI C disitingue entre mayúsculas y minúsculas.6. El identificar puede ser de hasta 31 caracteres de

longitud. Ejemplos: tiempo, distancia1, caso_A, PI, a2.

Page 36: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 36/83

Una constante es un valor que siempre es el

mismo a lo largo de la ejecución de todo elprograma.

En C existen diferentes tipos de constantes:1. Constantes numéricas. Son valores numéricos, enteros

o de coma flotante.2. Constantes de carácter. Cualquier carácter individual

encerrado entre apóstrofos (tal como „a‟,  „Y‟, „0‟,‟+‟,etc.), incluidos los caracteres ASCII.

3. Cadenas de caracteres. Un conjunto de caracteres

alfanuméricos encerrados entre comillas (“UTVT”, “Esto es una cadena de caracteres”).

4. Constantes simbólicas. Las constantes simbólicastienen un nombre, pero su valor no puede cambiar.

Page 37: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 37/83

Constantes de carácter.Ej. „a‟, „0‟, „\0x5‟, „\0‟, „\n‟, „\t‟, „$‟, ‟\\‟, NULL 

Constantes enteras.Ej. 5, +5, -5, \05, \0x5, 5L, 5U, 5lu, etc.

Constantes reales.Ej. 0.5f, 0.5, 5e-01f, 5.0e-01, (float)5, etc.

Constantes de texto (Cadenas o “Strings”) “Esto es una cadena…” 

Page 38: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 38/83

Es un modificador de acceso que mepermite asignar a una variable un valorconstante, es decir que una vez asignado adicha variable su valor no podrá ser

modificado durante el programa.const <tipo dato> esp <identificador> = valor;

Ejemplo:

const int a=10;const char  pais[]=“MÉXICO”; const char *nombre=“VLADIMIR”; 

Page 39: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 39/83

Las variables pueden cambiar de valor a lolargo de la ejecución de un programa, o bienen ejecuciones distintas de un mismoprograma.

Una variable es una localidad de memoria cuyo valor puede ser cambiado durante laejecución del programa.

Todas las variables deben de ser declaradas para se utilizadas.

<tipo de dato> espacio(s) <identificador>; Ejemplo:

int a;

float area, radio, volumen; 

Page 40: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 40/83

Cuando una variable es declarada se lereserva memoria de acuerdo con el tipo dedato incluido en la declaración.

Es posible inicializar, dar un valor inicial, a

las variables en el momento de la declaración. Sintaxis:

<tipo> <identificador> [=<init>] [, …] ;

int y =4, x = 1;long double v;char c1=„a‟, c2;

Page 41: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 41/83

Los operadores son signos especiales, aveces conjunto de 2 caracteres, que indicandeterminadas operaciones a realizar con lasvariables y/o constantes sobre las que actúan

en el programa. Operadores Aritméticos Operadores Relacionales Operadores Lógicos Operadores de Asignación Operadores de Dirección Operadores de Bits

Page 42: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 42/83

Operador  Nombre  Descripción +  Suma  5+2 → 7 -  Resta  5-2 → 3 *  Multiplicación  5*2 → 10 /  División  5/2 → 2 %  Módulo  5%2 → 1 

(tipo de dato)  “Cast” forzado  (double)5 → 5.0 

Page 43: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 43/83

Operador  Nombre  Descripción ==  Igual a  if (a==„s‟) !=  Diferente de  if (a!=null) >  Mayor que  if (a>0.5) <  Menor que  if (a<2l) 

>=  Mayor o igualque  if (a>=2f) 

<=  Menor o igual

que  if (a<=3) 

Page 44: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 44/83

 Operador 

Nombre 

Descripción 

&&  Y (AND)  if ((a>3) && (a<9)) ||  O (OR)  if ((a==2) ||

(a==3)) !  NEGADO

(NOT)  if (!(a==3)) es iguala

if (a!=3)  Importante:

FALSO es igual a cero.VERDADERO es igual a uno.

Page 45: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 45/83

Operador  Abreviado  No Abreviado =  a=2;  a=2; 

++  n++;  n=n+1; --  n--;  n=n-1; +=  n+=2;  n=n+2; -=  n-=2;  n=n-2; *=  n*=2;  n=n*2; /=  n/=2;  n=n/2; %=  n%=2;  n=n%2; 

Page 46: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 46/83

Operador  Nombre  Descripción <<  Corrimiento a la

izquierda  b=a>>2; 

>>  Corrimiento a laderecha  b=a<<3; &  Y (AND) entre bits  c=a&128; | 

O (OR) entre bits 

c=a|0x0a; 

~  Complemento A1  c=~a; ^  O exclusivo (XOR)  c=^a; 

Page 47: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 47/83

Operador  Abreviado  No Abreviado <<=  n<<=2;  n=n<<2; >>=  n>>=2;  n=n>>2; &=  n&=0x0a;  n=n&0x0a; |=  n|=7;  n=n|7; ^=  n^=0x03;  n=^0x03; =

 n=0x7f;

 n=0x7f;

 Nota: 

0x7f, 0x0a, 0x03 son un números

hexadecimales.

Page 48: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 48/83

( ) [ ] -> Alta prioridad ! ~ + - ++ -- & * sizeof Unarios 

* / % + - Aritméticos << >>  Corrimiento de bits < <= > >= == !=  Relacionales & ^ | && || ?: Bits / Lógicos /

Condicional = *= /= %= += -= &=^= |= <<= >>=

Asignación ,  Evaluación 

Page 49: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 49/83

Te permite definir macros simples que son

evaluadas y expendidas antes de la compilacióndel programa. Comandos que empiezan con #. Lista abreviada:

◦ #define : define una macro.◦ #undef : remueve una definición de macros.◦

#include: inserta texto de otro archivo.

◦ #if : base condicional para evaluar una expresión.◦ #ifdef : base condicional donde una macro está

definida.◦ #ifndef : base condicional donde una macro no esta

deifinida.◦ #else : alternativa.◦ #elif : condicional alternativa.◦ defined() : función del preprocesador: “1” si el nombre

está definido, “0” en otro caso.#if defined(__NetBSD__)

Page 50: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 50/83

En lenguaje C, la directiva del preprocesador#define se utiliza para declarar una constantesimbólica:#define<nombre_de_la_constante><secuencia_de_caracte

res> Se utiliza para asignar un identificador a una

constante.#define PI 3.1416#define NCOLS 20

El pre-procesador de C, sustituye la ocurrenciade PI por el valor 3.1416 en todo el programaantes de efectuar la compilación, del mismomodo se sustituye NCOLS por 2.

Page 51: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 51/83

Una sentencia es una instrucción o expresión en Cque tiene una consecuencia. Pueden serasignaciones, operaciones, llamadas a funciones.

Todas las sentencias terminan con el signo depunto y coma ;

Pueden ser simples o compuestas. Las compuestasvan entre llaves:  { sentencia1; sentencia2;

: sentencian; } 

Page 52: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 52/83

Sentencias condicionales.◦ La sentencia if  ◦ La sentencia switch – case◦ El operador condicional ?:

Sentencias repetitivas/iterativas.◦

El lazo while◦ El lazo for◦ El lazo do – while

Sentencias de bifurcación.◦ Break◦ Continue.◦ Goto◦ Return

Page 53: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 53/83

La sentencia if permiteelegir si se ejecuta o no unbloque de instruccionesSintaxis

Page 54: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 54/83

Page 55: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 55/83

Page 56: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 56/83

(expresión)? sentencia1 : sentencia2;expresión? sentencia1 : sentencia2;

Se ejecuta:

sentencia1 si expresión = verdaderosentencia2 si expresión = falso. Es un operador ternario y puedeutilizarse para asignar variables:Var = (expresión)?sentencia1:sentencia2; 

Page 57: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 57/83

En el cuerpo del lazo debe existir algo que haga variarel valor asociado a la condición que gobierna laejecución del lazo.

Sintaxis

Page 58: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 58/83

Page 59: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 59/83

Sintaxis

1. La primera expresión, expr1,contiene la inicialización de

variables.2. La segunda expresión, expr2, es

la que contiene una expresiónbooleana (condición).

3. La tercera expresión, expr3,

contiene las instrucciones quese ejecutan al final de laiteración.

4. El bloque de instrucciones seejecuta una vez en cada

iteración.

• El Lazo FOR se utiliza en

Page 60: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 60/83

Suponiendo que N y ksean enteros positivos. Lazos (bucles) Infinitos

Lazos anidados

El Lazo FOR se utiliza ensustitución del whilecuando se conoce elnúmero de iteraciones.

Page 61: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 61/83

Page 62: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 62/83

Sintaxis

• El bloque de instrucciones se ejecuta al menos una vez.• Especialmente indicado para validar datos de entrada

Page 63: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 63/83

Page 64: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 64/83

La instrucción

de salto break se usa parainterrumpir laejecuciónnormal de un

lazo,finalizarlo ytransferir elcontrol delprograma a la

primerainstruccióndespués delbucle

La instrucción de salto

Page 65: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 65/83

continue siempre seusa para interrumpir  (romper) la ejecución

normal de un lazo. Sinembargo, el control delprograma no setransfiere a la primerainstrucción después del

bucle (como sí hace lainstrucción break), esdecir, el lazo nofinaliza, sino que,finaliza la iteración en

curso, transfiriéndoseel control del programaa la condición de salidadel bucle, para decidirsi se debe realizar unanueva iteración o no.

Page 66: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 66/83

La instrucción desalto goto se puedeusar en un programa,para transferirincondicionalmente elcontrol del mismo a laprimera instruccióndespués de unaetiqueta , o dicho de

otra forma, al ejecutaruna instrucción goto,el control delprograma se transfiere(salta) a la primerainstrucción después de

una etiqueta. Unaetiqueta se definemediante su nombre(identificador) seguidodel carácter dospuntos (:).

Page 67: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 67/83

Operador  Nombre  Descripción *  Operador

indirección  Da el valor que estáalmacenado en una

dirección dememoria.

También sirve paradeclarar una variable

apuntador. &  Operador

dirección  Da la dirección dememoria de una

variable. 

Page 68: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 68/83

Sirven para almacenar una dirección dememoria. Utilizan el operador & para obtener la

dirección.

Se deben inicializar con NULL (equivale a cero). Se declaran como:<tipo de dato><*> espacio(s) <identificador>;

Ejemplo:int *a=NULL;

int b=2,c=1;

a=& b; /*Guarda la direc. de b en a */

c=*a; /*c vale 2 */

Page 69: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 69/83

Page 70: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 70/83

Page 71: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 71/83

Page 72: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 72/83

Page 73: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 73/83

Una cadena o “String” se manipula enlenguaje C, mediante arreglos decaracteres. Los arreglos de caracteresterminan con el carácter nulo „\0‟ que en

realidad es el valor cero. La única diferencia con los arreglos

numéricos es que se requiere un carácteradicional para indicar cuando el final del

arreglo. Ejemplo:

char nombre[31]; /* Uso sólo 30 */

Page 74: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 74/83

Page 75: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 75/83

Page 76: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 76/83

Una función es una parte de códigoindependiente del programa principal y de otrasfunciones, que puede ser llamada enviándoleunos datos, para que realice una determinadatarea.

Una función consta de una cabecera oencabezamiento que comienza con el tipo devalor devuelto por la función, seguida de unnombre y argumento.

A continuación va el cuerpo de un función, quees un conjunto de sentencias cuya ejecución haráque se resuelva el problema para el que estádiseñada la función.

Page 77: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 77/83

El código ejecutable es el conjunto deinstrucciones que deben ejecutarse cada vez quela función es llamada.

La lista de argumentos con tipos, es una lista dedeclaraciones de variables, precedidas por el tipo correspondiente y separadas por comas (,).

Cuando una función es ejecutada puede devolveral programa que la ha llamado un valor,mediante return, que es un valor único.

Page 78: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 78/83

Variables Locales:◦ Se declaran dentro de la función y sólo

están disponibles durante su ejecución.◦ Se crean cuando se entra en ejecución una

función y se destruyen cuando se termina. Variables globales:

◦ Se declaran fuera de las funciones.

Pueden ser utilizadas por todas lasfunciones.◦ Existen durante toda la vida del programa.

Page 79: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 79/83

Son variables locales conocidas como parámetros formales   y se utilizan como un medio para entregarleinformación a la función.

Los parámetros formales reciben sus valores inicialesdesde los parámetros reales, es decir desde los valores

que se les pasan a traveś de la llamada. Ejemplo:

Page 80: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 80/83

#include <stdio.h> 

int cuadrado(int x){

int r;

r=x*x;

return r;

}

 main(){

int i,resultado;

for (i=0;i<10;i++){

resultado = cuadrado (i);

 printf("Cuadrado de %d: %d\n",i,resultado);}

return 0;

}

Page 81: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 81/83

#include <stdio.h> void intercambio(int *x, int *y){

int temp;

temp=*x;

*x=*y;

*y=temp;

 printf(“ x=%d y=%d temp=%d \n“,*x,*y,temp);}

 main(){

int a=1,b=2;

 printf("a=%d b=%d\n",a,b);

intercambio (&a,&b); printf("a=%d b=%d\n",a,b);

return 0;

}

Page 82: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 82/83

Page 83: Micrcontroladoradores PIC18F 1

5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com

http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 83/83

Ibrahim Dogan (2010). “SD card projects using the PIC microcontroller ”, Ed. ELSEIVER,USA, 571p.

Huang Han-Way (2005). “PIC Microcontroller: 

An Introduction to Software and Hardware Interfacing ”, Ed. THOMSON Delmar Learning,USA, 818p.

Microchip (2004). “PIC18F2455/2550/4455 

/4550 Data Sheet ”, Microchip TechnologyInc., USA, 426p.