micrcontroladoradores pic18f 1
Post on 17-Jul-2015
240 Views
Preview:
TRANSCRIPT
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 1/83
PIC18F4550
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
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 3/83
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 4/83
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 5/83
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 6/83
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 7/83
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 8/83
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 9/83
Arquitectura VonNeuman Arquitectura Harvard
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.
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.
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 12/83
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 13/83
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 14/83
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 15/83
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 16/83
AND ORNOT
XOR
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 17/83
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 18/83
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 19/83
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).
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 21/83
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 22/83
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 23/83
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.
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 25/83
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 26/83
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).
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.
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 29/83
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.
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
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
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.
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 */
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.
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.
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…”
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”;
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;
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;
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
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
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)
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.
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;
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;
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.
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
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__)
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.
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; }
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
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
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 54/83
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 55/83
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;
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
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 58/83
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
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.
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 61/83
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
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 63/83
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
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.
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 (:).
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.
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 */
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 69/83
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 70/83
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 71/83
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 72/83
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 */
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 74/83
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 75/83
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.
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.
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.
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:
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;
}
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;
}
5/14/2018 Micrcontroladoradores PIC18F 1 - slidepdf.com
http://slidepdf.com/reader/full/micrcontroladoradores-pic18f-1 82/83
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.
top related