Está en la página 1de 31

Programacin de microcontroladores PIC en C

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 cdigo C del archivo fuente (.C) a
lenguaje mquina para los microcontroladores PIC, generando as un archivo en formato
hexadecimal (.HEX). Adems de ste, tambin genera otros seis ficheros PROGRAMACION
DE MICROCONTROLADORES PIC EN C
Diseado especficamente para microcontroladores PIC Amplia librera 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 creacin de proyectos. Permite al usuario especificar los
parmetros del proyecto. Genera los archivos .c, .h y ,pjt
PIC WIZARD
PIC WIZARD GENERAL: Define el PIC Oscilador a utilizar Fusibles
PIC WIZARD RS232 Comunicacin entre PICs Comunicacin con PC Puede
implementarse en PICs sin USART Sncrono asncrono I2C Comunicacin con perifricos
(EEPROM, Sensores, LCD, etc)
PIC WIZARD SPI: Interface Serie de Perifricos Diseado por Motorola para comunicacin
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 seales anlogas
Voltajes de referencia opcionales Solo para microcontroladores con ADC Mltiples 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 accin en el PIC PWM: Genera una seal PWM (Modulacin 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, finalizacin de una conversin anlogo 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 perifricos 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 anlogos
(dependiendo del PIC). Se pueden habilitar las resistencias de pullup
PIC WIZARD DETECCION DE ALTO Y BAJO VOLTAJE - Permite establecer un punto
umbral de tensin y la direccin de cambio. Si el dispositivo experimenta un cambio en la
tensin y en la direccin indicada sobre el punto umbral se produce una interrupcin.
PIC WIZARD OSCILADOR INTERNO - Permite configurar la frecuencia del cristal. - Solo
disponible en PICs con oscilador interno
PIC WIZARD FICHEROS DE INCLUSION Librerias con funciones especiales Ejemplo:
Ctype.h: Operaciones con caracteres Errno.h: Cdigos de error Float.h: Operaciones con
punto flotante Limits.h: Clculo de mximos y mnimos Math.h: Funciones matemticas
PIC WIZARD Controller Area Network: Protocolo de comunicaciones desarrollado por la
firma alemana Robert Bosch GmbH, basado en una topologa bus para la transmisin de
mensajes en ambientes distribuidos, adems ofrece una solucin a la gestin de la
comunicacin entre mltiples CPUs (unidades centrales de proceso).
PIC WIZARD LCD: - Configuracin 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 conversin del programa a cdigo de mquina 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 lnea separndolas con el signo ,
float a=1.1,b; No debemos olvidar terminar la lnea con el signo ;
VARIABLES Para almacenar un dato en una variable una vez definida, usamos el signo =
Ejemplo: float temperatura; //definicin de la variable char letra; //definicin de la
variable temperatura=35.3; //asignacin de valor letra=d; //asignacin 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 Asignacin de Suma: x+=y ; // Es lo mismo que x=x+y; Ejercicio: int
x=4,y=5; x+=y; // Cuanto vale x? Asignacin de Resta: x-=y ; // Es lo mismo que x=x-y;
Ejercicio: int y=4,x=5; x-=y; // Cuanto vale x?
OPERADORES Asignacin de Multiplicacin: x*=y ; // Es lo mismo que x=x*y; Ejercicio:
int x=4,y=5; x*=y; // Cuanto vale x? Asignacin de Divisin: x/=y ; // Es lo mismo que
x=x/y; Ejercicio: int y=4,x=20; x/=y; // Cuanto vale x?
FUNCIONES Tipodato Nombrefuncin(tipo param1, tipo param2,) { Sentencias;
return(dato); } Ejemplo: int suma(int a,int b) //Definicin de la funcin { int c; c=a+b;
return(c); } Void main() { int dato; dato=suma(a,b); //Llamado de la funcin }
VARIABLES VARIABLES GLOBALES: Su valor puede ser escrito y ledo desde cualquier
funcin. VARIABLES LOCALES: Su valor se pierde al salir de una funcin.