PROGRAMACION DE MICROCONTROLADORES (PIC C …

24
PROGRAMACION DE MICROCONTROLADORES (PIC C COMPILER) ING. RAÚL ROJAS REÁTEGUI

Transcript of PROGRAMACION DE MICROCONTROLADORES (PIC C …

Page 1: PROGRAMACION DE MICROCONTROLADORES (PIC C …

PROGRAMACION DE

MICROCONTROLADORES

(PIC C COMPILER)

ING. RAÚL ROJAS REÁTEGUI

Page 2: PROGRAMACION DE MICROCONTROLADORES (PIC C …

Lenguajes de Programación

El PIC ejecuta el programa cargado en la memoria Flash. El

código de programación debe ser convertido en un código

ejecutable (secuencia de ceros y unos).

Para que un código de programación en lenguaje cualquiera se

convierta en un código ejecutable binario de extensión HEX, debe

pasar por un proceso de ensamblado o compilado.

Page 3: PROGRAMACION DE MICROCONTROLADORES (PIC C …

Lenguaje Assembler

El código natural de los PIC es el código ejecutable, su

programación requería de muchas líneas.

El primer lenguaje de programación se denomina ensamblador

(ASM).

Siguiendo la sintaxis básica del ensamblador, era más fácil

escribir y comprender.

Las instrucciones en ensamblador son abreviaturas con

significado y a cada instrucción.

Page 4: PROGRAMACION DE MICROCONTROLADORES (PIC C …
Page 5: PROGRAMACION DE MICROCONTROLADORES (PIC C …

Lenguaje C

El lenguaje C es un lenguaje de programación de alto nivel.

El lenguaje C está estandarizado por ANSI.

El código de programación en Lenguaje C se traducen a

lenguaje máquina por el compilador y luego a un código

ejecutable que puede ser utilizado por el PIC.

Page 6: PROGRAMACION DE MICROCONTROLADORES (PIC C …
Page 7: PROGRAMACION DE MICROCONTROLADORES (PIC C …

VARIBLES Y CONSTANTES EN C

Constante es aquella que su valor asignado no puede ser

cambiado durante la ejecución de programa.

Las constantes se almacenan en la memoria Flash del

microcontrolador.

Page 8: PROGRAMACION DE MICROCONTROLADORES (PIC C …

Variable es un objeto nombrado capaz de contener un dato que

puede ser modificado durante la ejecución de programa.

Pueden ser de distintos tipos, por ello es necesario especificar el

tipo de dato que se le asigna a una variable

Las constantes se almacenan en la memoria RAM del

microcontrolador.

Page 9: PROGRAMACION DE MICROCONTROLADORES (PIC C …

En CCS C las variables deben ser declaradas antes de ser

utilizadas.

Pueden definirse dentro de una función (local) o fuera de todas

las funciones (global).

Pueden ser:

Tipo especificas

Tipo tabla

Page 10: PROGRAMACION DE MICROCONTROLADORES (PIC C …

Variables de tipo especifico: Generalmente para definir

constantes

Int8 o int Define un numero de 8 bits

int16 Define un numero de 16 bits

int32 Define un numero de 32 bits

char Define un carácter de 8 bits

float Define un número de punto flotante de 32 bits

short Define un numero de 1 bits

long Define un numero de 16 bits

void Indica que hay tipo especificado

Page 11: PROGRAMACION DE MICROCONTROLADORES (PIC C …

Variables tipo tabla

static Esta variable inicia en 0 y solo se puede acceder desde

una unidad de compilación.

auto La variable existirá solo si el procedimiento esta en uso

double Define número enteros + y -.

extern Usada con variable externa se utiliza con múltiples

unidades de compilación.

void No esta especificado el tipo.

Page 12: PROGRAMACION DE MICROCONTROLADORES (PIC C …

OPERADORES EN C

Conjunto de caracteres especiales que nos permiten

operaciones aritmética (suma, resta, multiplicación y división) y

lógicas (and, or, xor, not) entre las variables.

Page 13: PROGRAMACION DE MICROCONTROLADORES (PIC C …

Operadores aritméticos

+ Realiza una suma.

=+ Suma dos variable y la almacena en una de ellas. Ejemplo: x+=y;

Los valores de x e y se suman si se guardan en x (x=x+y)

++ Incremento

- Sustracción

=- Diferencia dos variable y la almacena en una de ellas. Ejemplo:

x-=y; Los valores de x e y se restan si se guardan en x (x=x-y)

-- decremento

* Producto.

/ División

== Igual

Page 14: PROGRAMACION DE MICROCONTROLADORES (PIC C …

Operadores lógicos

> Mayor que

>= Mayor o igual que

< Menor que

<= Menor o igual que

&& Operación AND lógica

! Negación lógica

ll Operación OR lógica

>> Desplazamiento a la derecha

<< Desplazamiento a la izquierda

Page 15: PROGRAMACION DE MICROCONTROLADORES (PIC C …

LIBRERÍAS BÁSICAS EN CCS

# include

Nos permite acceder a librerías incluidas en el programa, para

facilitar la programación.

Sintaxis

#include <nombre y extensión de librería>

#include “nombre y extensión de librería”

Page 16: PROGRAMACION DE MICROCONTROLADORES (PIC C …

# fuses

Nos permite acceder a los fusibles del PIC: reloj (LP, XT, HS, RC),

perro guardián (WDT, NOWDT), protector de la flash (PROTECT,

NOPROTECT), etc.

Sintaxis

#fuses opción(es)

Page 17: PROGRAMACION DE MICROCONTROLADORES (PIC C …

# use delay

Nos permite configurar la frecuencia (1Hz a 100MHz) de la señal de

reloj del PIC. Podemos escribir la frecuencia con las

denominaciones: M, MHZ, K, KHZ

Sintaxis

#use delay (clock= frecuencia)

Page 18: PROGRAMACION DE MICROCONTROLADORES (PIC C …

COMANDOS BÁSICOS EN CCS

While

Utiliza como una declaración de bucle, comprueba una condición

en la entrada. Es decir se ejecutara el código de programación

contenida en ella hasta que se convierta en falsa.

Sintaxis

while(true)

{

Código deseado

}

Page 19: PROGRAMACION DE MICROCONTROLADORES (PIC C …

Do-While

Declaración de bucle, que comprueba una condición en la

salida. Es decir se ejecutara el por lo que el código de

programación siempre se ejecuta al menos una vez.

Sintaxis

do

{

Código deseado

}while (true)

Page 20: PROGRAMACION DE MICROCONTROLADORES (PIC C …

OUTPUT_LOW( PIN)

Nos permite cargar el 0 lógico en un PIN de salida de un puerto.

Sintaxis

output_low (pin_a0);

Carga en el pin A0 del puerto A 0 lógico.

Page 21: PROGRAMACION DE MICROCONTROLADORES (PIC C …

SET_TRIS_NOMBRE-PUERTO (código binario o hexadecimal)

Nos permite definir si un puerto PIC, será un puerto de entrada y de

salida. Si se carga 0 lógico será salida, si se carga 1 lógico será

entrada

Sintaxis

set_tris_a (0x0F);

Los bits A0, A1, A2 y A3 serán puertos de entrada (0H=0000b),

mientras que bits A7,A6,A5 y A4 serán salidas (FH=1111b)

Page 22: PROGRAMACION DE MICROCONTROLADORES (PIC C …

OUTPUT_HIGH( PIN)

Nos permite cargar el 1 lógico en un PIN de salida de un puerto.

Sintaxis

output_low (pin_a0);

Carga en el pin A0 del puerto A 1 lógico.

Page 23: PROGRAMACION DE MICROCONTROLADORES (PIC C …

input (pin)=valor

Nos devuelve 0 (FALSO) y 1 (TRUE) si el pin 1. Generalmente

va acompañada de un comando condicional.

Sintaxis

input (pin_a1)==0;

El valor será 0 si en valor del pin A1 es 1 y 1 si el valor del pin

A1 es 0

Page 24: PROGRAMACION DE MICROCONTROLADORES (PIC C …

delay_unidad (VALOR)

Nos permite hacer un retardo, el cual se puede expresar en

milisegundos (ms) o microsegundos (us).

Sintaxis

delay_ms (500);

Generar un retardo de 500ms.