PROGRAMACION DE MICROCONTROLADORES (PIC C …

Post on 29-Nov-2021

33 views 8 download

Transcript of PROGRAMACION DE MICROCONTROLADORES (PIC C …

PROGRAMACION DE

MICROCONTROLADORES

(PIC C COMPILER)

ING. RAÚL ROJAS REÁTEGUI

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.

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.

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.

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.

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.

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

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

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.

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.

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

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

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”

# 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)

# 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)

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

}

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)

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.

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)

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.

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

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.