PROGRAMACION DE MICROCONTROLADORES (PIC C …
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.