11
Creación de un proyecto utilizando MPLAB X y XC8 - Contador binario Ing Sebastián Gómez V. [email protected] INTRODUCCIÓN El presente documento tutorial pretende explicarle a los aprendices cómo crear un proyecto utilizando el entorno de programación MPLAB X y el compilador XC8 como herramienta de programación en lenguaje C para los microcontroladores PIC18F4550, utilizando el bootloader CDC, el cual se encuentra preinstalado en los microcontroladores. En la primera parte de este documento se describen los pasos para crear un proyecto, continua con la modificación del vector de programa para el bootloader, sigue con la explicación de la compilación y termina con el procedimiento para descargar el programa al microcontrolador. En este documento se presenta un ejemplo de un programa que es un contador binario ascendente y descendente utilizando el puerto D como salida y el RA0 como entrada. Creación de un proyecto en MPLAB X - XC8 Para iniciar, se debe ejecutar el programa MPLAB X, con el siguiente icono: Previamente se debe haber instalado el driver y el programa CCS en el computador para continuar con el proceso. Al iniciar se lanza el siguiente pantallazo Cuando el ambiente de programación se inicia se muestra la siguiente ventana:

Tutorial Creacion de proyecto MPLAB X-XC8.pdf

Embed Size (px)

Citation preview

Creación de un proyecto utilizando MPLAB X y XC8 - Contador binario Ing Sebastián Gómez V.

[email protected]

INTRODUCCIÓN

El presente documento tutorial pretende explicarle a los aprendices cómo crear un proyecto utilizando el entorno de programación MPLAB X y el compilador XC8 como herramienta de programación en lenguaje C para los microcontroladores PIC18F4550, utilizando el bootloader CDC, el cual se encuentra preinstalado en los microcontroladores.

En la primera parte de este documento se describen los pasos para crear un proyecto, continua con la modificación del vector de programa para el bootloader, sigue con la explicación de la compilación y termina con el procedimiento para descargar el programa al microcontrolador.

En este documento se presenta un ejemplo de un programa que es un contador binario ascendente y descendente utilizando el puerto D como salida y el RA0 como entrada.

Creación de un proyecto en MPLAB X - XC8

Para iniciar, se debe ejecutar el programa MPLAB X, con el siguiente icono:

Previamente se debe haber instalado el driver y el programa CCS en el computador para continuar con el proceso.

Al iniciar se lanza el siguiente pantallazo

Cuando el ambiente de programación se inicia se muestra la siguiente ventana:

Creación de un proyecto utilizando MPLAB X y XC8 - Contador binario Ing Sebastián Gómez V.

[email protected]

En este ambiente de programación se van a implementar las aplicaciones con el microcontrolador.

Ahora vamos a crear un proyecto, en la siguiente ruta: File / New Project...

En la siguiente ventana se van a escoger las opciones Microchip Embedded / Standalone Project, pulsando luego la tecla NEXT como se muestra a continuación:

Paso 1

Paso 2

Paso 3

Creación de un proyecto utilizando MPLAB X y XC8 - Contador binario Ing Sebastián Gómez V.

[email protected]

En el siguiente pantallazo se debe seleccionar el microcontrolador con el que se va a trabajar: PIC18F4550, como se muestra a continuación:

Seleccionamos en Hardware Tools: Simulator y se pulsa NEXT:

A continuación seleccionamos el compílador a utilizar, en este caso seleccionamos XC8 y se pulsa NEXT:

Paso 4

Paso 5

Paso 6

Paso 7

Paso 8

Paso 9

Creación de un proyecto utilizando MPLAB X y XC8 - Contador binario Ing Sebastián Gómez V.

[email protected]

En el siguiente pantallazo se muestra la información de la ubicación del proyecto a crear, y se le debe ingresar un nombre, luego se pulsa Finish:

En ese momento se crean las carpetas que se van a utilizar en el proyecto, en la parte izquierda se observa Projects, que es el árbol de carpetas del proyecto; hay que crear un archivo donde se va a guardar el programa que se va digitar, para hacerlo se debe dar clic derecho sobre la carpeta SOURCE FILES / NEW / C SOURCE FILE...

En la ventana que se abre a continuación se le da un nombre al archivo que va a contener el código del programa, como se muestra a continuación:

Paso 10

Paso 11

Paso 12

Paso 13

Paso 14

Creación de un proyecto utilizando MPLAB X y XC8 - Contador binario Ing Sebastián Gómez V.

[email protected]

Se abre una página en blanco. Para realizar un programa de prueba, se va a digitar el siguiente código:

//declaración de librerías #include <xc.h> //Bits de configuración de fusibles #pragma config PLLDIV = 5, CPUDIV = OSC1_PLL2, USBDIV = 2 #pragma config FOSC = HS, FCMEN = OFF, IESO = OFF #pragma config PWRT = OFF, BOR = OFF, VREGEN = OFF #pragma config WDT = OFF, WDTPS = 32768 #pragma config MCLRE = OFF, LPT1OSC = OFF, PBADEN = OFF #pragma config STVREN = ON, LVP = OFF, ICPRT = OFF, XINST = OFF #define _XTAL_FREQ 20000000 // Configuración del cristal: 20Mhz //Declaración de variables globales int contador; //declaración de funciones void retardo(int tiempo); //Programa void retardo (int tiempo) {//Función que realiza el retardo en milisegundos. Esta función para todo el programa //Declaración de variables locales: int i; //Ciclo de repetición for, donde se realiza retardos de 1 ms tantas veces como //la variable tiempo diga. for(i=1;i<=tiempo;i++) { __delay_ms(1); } } void main() { int j; //Función principal, siempre se ejecuta al iniciar el programa. //Configuración del microcontrolador. //Se utiliza 0 para configurar como salida y 1 como entrada. TRISA=0; ADCON1 =0X0F; TRISD=0X00; // Configura el puerto B como salida contador=0; //Se inicializa la variable contador en 0

Paso 15

Paso 16

Creación de un proyecto utilizando MPLAB X y XC8 - Contador binario Ing Sebastián Gómez V.

[email protected]

/* * El while es un ciclo de repetición que ejecuta las instrucciones que estan entre { } * mientras que la condición sea verdadera, que en este caso * En este caso, el while está como un bucle infinito, porque tiene una condición que siempre va a * ser verdadera */ while(1) { //Pregunta si la entrada está activa para incrementar la variable contador if(PORTAbits.RA0==1) { contador++; //incrementa en 1 la variable contador } //Pregunta si la entrada está inactiva para decrementar la variable contador if(PORTAbits.RA0==0) { contador--; //decrementa en 1 la variable contador } LATD=contador; //envía al puerto D el valor de la variable contador. retardo(200); //realiza retardo en milisegundos } } Para poder utilizar el Bootloader es necesario cambiar el vector de inicio del programa como se muestra a continuación:

Se abrirá una ventana en la que se puede configurar algunas características del proyecto, en este caso se debe ir a la opción XC8 linker / Additional Options /Codeoffset e ingresar el dato 0x1800.

Paso 17: Abrir propiedades del proyecto

Creación de un proyecto utilizando MPLAB X y XC8 - Contador binario Ing Sebastián Gómez V.

[email protected]

Compilación

La compilación consiste en la traducción del código digitado por el programador a código de máquina, similiar a este:

:04000000C9EF3FF015 :107F9200076A066A0001CEEF3FF0000E956E000EF2 :107FA200076E000E066E80A002D0064A072A80B035 :107FB20003D00606D8A0070606C08CFF000E026E8C :107FC200C80E016EE6EC3FF0EED7000E056E010E14 :107FD200046E0AD0070E036E7D0EE82EFED7032E26 :107FE200FCD700F0044A052A0250800A036E0450AE :0E7FF200015C0550800A0358D8A01200EBD79E :020000040020DA :08000000FFFFFFFFFFFFFFFF00 :020000040030CA :0E000000240C191EFF0181FF0FC00FE00F40FE :00000001FF

Para este curso, se utilizará el compilador XC8, el cual está disponible en la página oficial de microhip.

Para compilar un proyecto se debe pulsar el botón:

Al final en la ventana de OUTPUT deberá mostrar el mensaje:

Paso 18: Selecciona la opción XC8 linker

Paso 19: Opción Additional options

Paso 20: Se coloca el valor 0x1800

Paso 21

Creación de un proyecto utilizando MPLAB X y XC8 - Contador binario Ing Sebastián Gómez V.

[email protected]

Simulación de un programa:

Para la simulación y pruebas de un programa en MPLAB X se debe tener en cuenta que cuenta con unas herramientas que sirven para realizar diagnóstico, tales como monitoreo de variables.

Watches: Sirve para verificar el estado de variables en tiempo real. Para abrir esta ventana se puede acceder en el menú: Window / Debugging / Watches

Se abrirá una ventana en la parte inferior, en donde se podrán ingresar los nombres de las variables:

Creación de un proyecto utilizando MPLAB X y XC8 - Contador binario Ing Sebastián Gómez V.

[email protected]

En el campo <Enter new watch>, se da doble clic y en este caso se va a digitar "contador", como se muestra a continuación:

Si se desea agregar campos de visualización de datos, basta con dar clic derecho sobre la barra de categorías y seleccionar las opciones:

Después de dar en clic ACEPTAR en la ventana Watches quedará asi:

DESCARGA DE PROGRAMA EN EL MICROCONTROLADOR

El microcontrolador debe tener precargado el CDC bootloader, el cual se habilita cuando se presiona los botones en la siguiente secuencia:

1. Botón PROGRAM (negro) 2. Botón RESET(rojo) 3. Botón PROGRAM (negro)

En ese momento el micro queda listo para recibir el programa, entra en modo boorloader; se deberá abrir el programa para descargarlo ejecutando el comando con WIIN+R SIOW, abrirá la siguiente aplicación:

Creación de un proyecto utilizando MPLAB X y XC8 - Contador binario Ing Sebastián Gómez V.

[email protected]

Se debe seleccionar en opciones OTRO:

Luego se pulsa el botón Buscar y selecciona el puerto que ha detectado el microcontrolador:

El botón UPLOAD FIRMWARE pasa a ser color verde, ahí cargamos el archivo .hex compilado:

Una vez se ha pulsado la tecla abrir, el programa es inmediatamente descargado al microcontrolador.

ACTIVIDAD:

Podrá utilizar el simulador de circuitos electrónicos Proteus para probar los montajes.

Paso 1

Paso 2

Paso 3 Paso 4

Paso 5

Paso 7

Paso 7

Paso 6

Creación de un proyecto utilizando MPLAB X y XC8 - Contador binario Ing Sebastián Gómez V.

[email protected]

1. Debe realizar una secuencia de control para un motor paso a paso.

2. Debe realizar una secuencia en la que se active uno a uno los pines de un puerto en orden ascendente y luego descendente.