Вы находитесь на странице: 1из 34

Centro Industrial del Mantenimiento y Manufactura

PROGRAMACION DE MICROCONTROLADORES PIC EN C


Ing. Daniel Espitia danielespitia@misena.edu.co

COMPILADOR C DE CCS

- 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

COMPILADOR

CROSS-COMPILER:

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.

ESTRUCTURA DE UN PROGRAMA

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

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

SIMBOLO + -

OPERADOR SUMA RESTA

Ejemplo: int a=2,b=5,c; a++; //a=3; b=b*a+1; //b=16; c=a+b+b%a; //c=20;

* /
% ++ --

MULTIPLICACION DIVISION
MODULO INCREMENTO DECREMENTO

Ejercicio: - Realizar un programa que calcule el voltaje en una resistencia de 1000 ohms por la que pasa una corriente de 2 Amperios.

OPERADORES

Asignacin de Suma: x+=y ; // Es lo mismo que x=x+y;

Ejercicio: int x=4,y=5; x+=y; // Cuanto vale x, y? Asignacin de Resta: x-=y ; // Es lo mismo que x=x-y;
Ejercicio: int y=4,x=5; x-=y; // Cuanto vale x, y?

OPERADORES

Asignacin de Multiplicacin: x*=y ; // Es lo mismo que x=x*y;

Ejercicio: int x=4,y=5; x*=y; // Cuanto vale x, y? Asignacin de Divisin: x/=y ; // Es lo mismo que x=x/y;
Ejercicio: int y=4,x=20; x/=y; // Cuanto vale x, y?

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.

EJERCICIOS: 1. Crear una funcin que calcule el permetro de un crculo dado su radio 2. Crear una funcin que calcule al rea de un trapecio dadas sus bases a y c y su altura h

Prxima sesin Agosto11

GRACIAS

Вам также может понравиться