Descargar

Programación de microcontroladores PIC en C

Enviado por Pablo Turmero


    edu.red 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

    edu.red 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

    edu.red 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

    edu.red 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

    edu.red PIC WIZARD

    edu.red PIC WIZARD GENERAL: Define el PIC Oscilador a utilizar Fusibles

    edu.red 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)

    edu.red 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

    edu.red PIC WIZARD Timers: Permiten temporizar y realizar conteo de eventos externos.

    edu.red 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

    edu.red 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

    edu.red 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.

    edu.red PIC WIZARD DRIVERS: Rutinas pre-programadas de dispositivos periféricos externos. Incluye ADC, Pantalla LCD, Teclado Matricial, Memoria EEPROM, Memoria RAM, entre otros.

    edu.red 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

    edu.red 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.

    edu.red PIC WIZARD OSCILADOR INTERNO – Permite configurar la frecuencia del cristal. – Solo disponible en PIC’s con oscilador interno

    edu.red 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

    edu.red 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).

    edu.red PIC WIZARD LCD: – Configuración de los pines a utilizar para la LCD

    edu.red PIC WIZARD MODBUS: – Permite el control de una red de dispositivos, por ejemplo un sistema de medida de temperatura y humedad.  

    edu.red 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

    edu.red ESTRUCTURA DE UN PROGRAMA

    edu.red TIPOS DE DATOS

    edu.red 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 ;

    edu.red 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

    edu.red 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.

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

    edu.red 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?

    edu.red 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?

    edu.red 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 }

    edu.red 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.