Dicho compilador nos genera ficheros en formato
Intel-hexadedimal, que es el necesario para programar (utilizando
un programador de PIC) un microcontrolador de 6, 8, 18 ó
40 patillas. El compilador de C que vamos a utilizar es el PCW de
la casa CCS Inc. A su vez, el compilador lo integraremos en un
entorno de desarrollo integrado (IDE) PROGRAMACION DE
MICROCONTROLADORES PIC EN C
Al igual que el compilador de Turbo C, éste "traduce" el
código C del archivo fuente (.C) a lenguaje máquina
para los microcontroladores PIC, generando así un archivo
en formato hexadecimal (.HEX). Además de éste,
también genera otros seis ficheros PROGRAMACION DE
MICROCONTROLADORES PIC EN C
Diseñado específicamente para microcontroladores
PIC Amplia librería de funciones predefinidas, comandos de
preprocesado y ejemplos Controladores para diversos dispositivos
(LCD, ADC, EEPROM, etc) COMPILADOR C DE CCS
PIC WIZARD Asistente para la creación de proyectos.
Permite al usuario especificar los parámetros del
proyecto. Genera los archivos .c, .h y ,pjt
PIC WIZARD
PIC WIZARD GENERAL: Define el PIC Oscilador a utilizar
Fusibles
PIC WIZARD RS232 Comunicación entre PIC’s
Comunicación con PC Puede implementarse en PIC’s sin
USART Síncrono ó asíncrono I2C
Comunicación con periféricos (EEPROM, Sensores,
LCD, etc)
PIC WIZARD SPI: Interface Serie de Periféricos
Diseñado por Motorola para comunicación entre
microcontroladores Full Duplex HARDWARE LCD Para
microcontroladores con controlador de LCD integrado.
PIC16F913/914/916/917/946 PIC18F6393/6493/8393/8493
PIC WIZARD Timers: Permiten temporizar y realizar conteo de
eventos externos.
PIC WIZARD CONVERSOR ANALOGO DIGITAL Permite ingresar
señales análogas Voltajes de referencia opcionales
Solo para microcontroladores con ADC Múltiples canales de
entrada
PIC WIZARD CAPTURA: Obtiene el valor del temporizador cuando se
produce un evento en un pin del PIC. COMPARACION: Compara el
valor del temporizador con el valor de un registro y provoca una
acción en el PIC PWM: Genera una señal PWM
(Modulación de ancho de pulso). Aplicaciones: Control de
velocidad de motores DC Control de servomotores
PIC WIZARD INTERRUPCIONES: Cuando se produce un determinado
evento (por ejemplo Escritura en EEPROM, finalización de
una conversión análogo digital, cambio de estado de
un pin, etc), el PIC interrumpe el programa principal y ejecuta
una rutina previamente programada.
PIC WIZARD DRIVERS: Rutinas pre-programadas de dispositivos
periféricos externos. Incluye ADC, Pantalla LCD, Teclado
Matricial, Memoria EEPROM, Memoria RAM, entre otros.
PIC WIZARD PINES DE ENTRADA Y SALIDA Los pines del PIC pueden ser
configurados como entrada o salida. Algunos pines pueden ser
configurados como análogos (dependiendo del PIC). Se
pueden habilitar las resistencias de pullup
PIC WIZARD DETECCION DE ALTO Y BAJO VOLTAJE – Permite establecer
un punto umbral de tensión y la dirección de
cambio. Si el dispositivo experimenta un cambio en la
tensión y en la dirección indicada sobre el punto
umbral se produce una interrupción.
PIC WIZARD OSCILADOR INTERNO – Permite configurar la frecuencia
del cristal. – Solo disponible en PIC’s con oscilador
interno
PIC WIZARD FICHEROS DE INCLUSION Librerias con funciones
especiales Ejemplo: Ctype.h: Operaciones con caracteres Errno.h:
Códigos de error Float.h: Operaciones con punto flotante
Limits.h: Cálculo de máximos y mínimos
Math.h: Funciones matemáticas
PIC WIZARD Controller Area Network: Protocolo de comunicaciones
desarrollado por la firma alemana Robert Bosch GmbH, basado en
una topología bus para la transmisión de mensajes
en ambientes distribuidos, además ofrece una
solución a la gestión de la comunicación
entre múltiples CPUs (unidades centrales de
proceso).
PIC WIZARD LCD: – Configuración de los pines a utilizar
para la LCD
PIC WIZARD MODBUS: – Permite el control de una red de
dispositivos, por ejemplo un sistema de medida de temperatura y
humedad.
DIRECTIVAS: Controlan la conversión del programa a
código de máquina por parte del compilador.
FUNCIONES: Conjunto de instrucciones. Puede haber uno o varios;
Debe haber uno definido como principal: main() ESTRUCTURA DE UN
PROGRAMA
ESTRUCTURA DE UN PROGRAMA
TIPOS DE DATOS
VARIABLES Las variables se utilizan para nombrar posiciones de
memoria RAM Se deben declarar antes de utilizarlas indicando :
tipo_de_datos nombre; Ejemplo: int a; – El valor inicial es
opcional y podemos definir varias variables por línea
separándolas con el signo , float a=1.1,b; No debemos
olvidar terminar la línea con el signo ;
VARIABLES Para almacenar un dato en una variable una vez
definida, usamos el signo = Ejemplo: float temperatura;
//definición de la variable char letra;
//definición de la variable temperatura=35.3;
//asignación de valor letra=‘d’;
//asignación de valor
Ejercicios: 1. Definir una variable y almacenar el dato -129 2.
Definir una variable y almacenar el dato 11.25 3. Intercambiar
los datos de 2 variables enteras a y b, usando una variable
auxiliar c.
OPERADORES Ejemplo: int a=2,b=5,c; a++; //a=3; b=b*a+1; //b=16;
c=a+b+b%a; //c=20;
OPERADORES Asignación de Suma: x+=y ; // Es lo mismo que
x=x+y; Ejercicio: int x=4,y=5; x+=y; // Cuanto vale x?
Asignación de Resta: x-=y ; // Es lo mismo que x=x-y;
Ejercicio: int y=4,x=5; x-=y; // Cuanto vale x?
OPERADORES Asignación de Multiplicación: x*=y ; //
Es lo mismo que x=x*y; Ejercicio: int x=4,y=5; x*=y; // Cuanto
vale x? Asignación de División: x/=y ; // Es lo
mismo que x=x/y; Ejercicio: int y=4,x=20; x/=y; // Cuanto vale
x?
FUNCIONES Tipodato Nombrefunción(tipo param1, tipo
param2,…) { Sentencias; return(dato); } Ejemplo: int
suma(int a,int b) //Definición de la función { int
c; c=a+b; return(c); } Void main() { int dato; dato=suma(a,b);
//Llamado de la función }
VARIABLES VARIABLES GLOBALES: Su valor puede ser escrito y
leído desde cualquier función. VARIABLES LOCALES:
Su valor se pierde al salir de una función.