Académique Documents
Professionnel Documents
Culture Documents
Saludos: Sele
Este tutorial está pensado para los que ya saben qué es un microcontrolador, y han trabajado antes en
ensamblador para PIC, por lo que algunos criterios básicos se obviarán.
Pero primero:
1) El Mplab IDE antiguo, en el cual muchos de nosotros aprendimos a programar en la universidad, fue
ENTRADAS POPULARES actualizado, así que solo se consigue en la página de descargas en el archivo de microchip, por lo que tenemos
Tutorial MPLABX XC8 parte que actualizarnos nosotros también. Esto en verdad es una pena, pues he encontrado muy difícil
3: Crear librerías–librería acostumbrarme al nuevo entorno de desarrollo MplabX, aún encuentro confuso la configuración requerida
UART para PIC16F628A para programar en ensamblador y cuestiones similares, pero, para esto es la guía, para en el transcurso de la
Hola amigos, en este tutorial misma familiarizarnos con esta nueva herramienta.
veremos cómo crear librerías
para el manejo de módulos 2) Siempre es recomendable programar en los entornos de desarrollo de los fabricantes. Esto pues aunque
externos, específicamente existan plataformas como Pinguino, Chipkit o Arduino, si tu objetivo es aprender a programar un
para la comunicación microcontrolador, es mejor hacerlo en el lenguaje y/o la plataforma que el fabricante nos recomienda.
serial...
DATOS PERSONALES
Miguel Davila Primer paso: descargar e instalar MPLabX y XC8
Ver todo mi perfil
Para programar un microcontrolador de Microchip debemos descargar el entorno de desarrollo MPLabX,
pero el mismo no nos permite realizar la programación en C de manera inmediata, para esto tenemos que
descargar el compilador XC8.
Primero instalamos MPLabX, y luego el compilador XC8. Una vez hecho iniciamos el programa y veremos la
siguiente pantalla:
En la siguiente pantalla seleccionamos el microcontrolador que queremos utilizar, en nuestro caso será el
PIC16F628A
A continuación nos pedirá el tipo de conexión para el debugger, para el cual seleccionamos "None" y damos
click en siguiente. Después no pedirá la herramienta de depuración a utilizar, para la cual seleccionamos
"Simulador" (esto puede ser diferente si tienes un programador que pueda realizar depuración).
ipsotron.blogspot.com/2014/07/tutorial-mplabx-xc8-parte-1-crear-un.html 2/9
2/4/2020 Ipsotron: Tutorial MPLABX XC8 parte 1: Crear un proyecto y "hola mundo"
Hacemos click en Finalizar, y se creará el directorio base para nuestro proyecto, el cual se muestra en la
figura.
Como podemos observar se crean subcarpetas en el proyecto destinadas a contener los archivos de cabecera
(headers .h), los archivos de fuente (source .c), librerías y demás. Esta es una de las características de
MPLABX que en realidad me gusta, pues nos permite ordenar nuestro proyecto de una manera bastante
sencilla.
Para todos los que nos gusta la electrónica, sabemos que el equivalente al "hola mundo" en programación, es
encender un LED, específicamente hacerlo encender y apagar en un periodo de tiempo. Para esto debemos
seguir los siguientes pasos:
ipsotron.blogspot.com/2014/07/tutorial-mplabx-xc8-parte-1-crear-un.html 3/9
2/4/2020 Ipsotron: Tutorial MPLABX XC8 parte 1: Crear un proyecto y "hola mundo"
Borramos el contenido por defecto que crea MPLABX en el archivo de encabezado para cargar nuestro propio
código. En este archivo ingresaremos los bits de configuración del microcontrolador, es decir, las directivas
para programación en alto o bajo voltaje, la configuración del oscilador, etc. Para esto existe una herramienta
que nos permite generar el código requerido, la cual se encuentra en Window>PIC Memory
Views>Configuration Bits
ipsotron.blogspot.com/2014/07/tutorial-mplabx-xc8-parte-1-crear-un.html 4/9
2/4/2020 Ipsotron: Tutorial MPLABX XC8 parte 1: Crear un proyecto y "hola mundo"
Hacemos click en "Generate Source Code to Output", copiamos y pegamos el código generado en al archivo
hmheader.h:
Una vez creado el encabezado, podemos crear el código fuente de la aplicación, para lo cual hacemos click
derecho en Source Files>New>C Main File
Le damos un nombre al archivo e ingresamos el código fuente del mismo. Dicho código es el siguiente:
1 /*
2 * File: hmheader.h
3 * Author: MIGUEL
4 *
5 * Created on 9 de julio de 2014, 10:07 p.m.
6 */
7
8
9 // PIC16F628A Configuration Bit Settings
10
11 // 'C' source line config statements
12
13 #include <xc.h>
14
15 // #pragma config statements should precede project file includes.
16 // Use project enums instead of #define for ON and OFF.
17
18 // CONFIG
19 #pragma config FOSC = INTOSCIO // Oscillator Selection bits (INTOSC oscillator: I/O function on RA6/OSC2/CLKO
20 #pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
21 #pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
22 #pragma config MCLRE = OFF // RA5/MCLR/VPP Pin Function Select bit (RA5/MCLR/VPP pin function is digital
23 #pragma config BOREN = ON // Brown-out Detect Enable bit (BOD enabled)
24 #pragma config LVP = OFF // Low-Voltage Programming Enable bit (RB4/PGM pin has digital I/O function, H
25 #pragma config CPD = OFF // Data EE Memory Code Protection bit (Data memory code protection off)
26 #pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off)
27
28
ipsotron.blogspot.com/2014/07/tutorial-mplabx-xc8-parte-1-crear-un.html 5/9
2/4/2020 Ipsotron: Tutorial MPLABX XC8 parte 1: Crear un proyecto y "hola mundo"
1 /*
2 * File: hmmain.c
3 * Author: MIGUEL
4 *
5 * Created on 9 de julio de 2014, 10:28 p.m.
6 */
7
8 #include <stdio.h>
9 #include <stdlib.h>
10 #include "hmheader.h"
11
12 #define _XTAL_FREQ 4000000 // se define la frecuencia del cristal para los retardos
13
14 /*==============================================================================
15 Inicializar puertos, esta función es llamada luego en el main().
16 ==============================================================================*/
17
18 void initPorts(void)
19 {
20 TRISB = 0b00000000; // Todo el puerto B es salida
21 PORTB = 0; // Se apaga todo el puerto B
22 }
23
24 /*==============================================================================
25 Bucle principal
26 ==============================================================================*/
27
28 int main(void)
29 {
30 // Inicializar puertos y periféricos
31 initPorts();
32
33 // Repetir indefinidamente
34 while(1)
35 {
36 // prender puerto B
37 PORTB = 0b11111111;
38 _delay(1000000); //retardo de 1 millón de pulsos de reloj
39
40 // apagar puerto b
41 PORTB = 0b00000000;
42 _delay(1000000);
43 }
44 }
45
ipsotron.blogspot.com/2014/07/tutorial-mplabx-xc8-parte-1-crear-un.html 6/9
2/4/2020 Ipsotron: Tutorial MPLABX XC8 parte 1: Crear un proyecto y "hola mundo"
Tiempo de retardo=[1/(4M/4)] x 1M=1 segundo
Para entender el por qué de mi afirmación que la programación en C es para proyectos simples que no
demandan una exactitud elevada en retardos, se realizará la simulación del programa y se observará la
diferencia de tiempos. Para esto compilamos el proyecto, y si no hay errores, hacemos click en la opción de
depuración.
Creamos 2 Breakpoints para detener la simulación. Si no hacemos esto, la simulación se realizará muy
rápidamente y no podremos ver los cambios de registros, variables o contar el tiempo entre instrucciones.
Iniciamos la simulación, con lo que la misma se detendrá en el primer Breakpoint. Hacemos click en
"StopWatch" en la parte inferior de la pantalla, y reiniciamos el cronómetro.
Volvemos a iniciar la simulación, y veremos que el lo que debía haber durado 2 segundos, en realidad duró
2.000033 segundos.
Pues bien, este resultado no es una sorpresa para los que ya han programado en ensamblador, pues los
retardos se calculan en función del número de ciclos que toma cada directiva del código, y el tiempo de ciclo
del reloj, pero es algo que quería recalcar pues muchos estudiantes o aficionados inician su aprendizaje en
MPLABX y desconocen que si en el código le digo al micro que se demore 1 segundo en una actividad, esto
puede no ser siempre cierto, por lo tanto, si queremos tiempos exactos debemos utilizar ensamblador y no C.
Aunque Proteus no es software libre, no he encontrado otra opción similar de código abierto, por lo que las
ipsotron.blogspot.com/2014/07/tutorial-mplabx-xc8-parte-1-crear-un.html 7/9
2/4/2020 Ipsotron: Tutorial MPLABX XC8 parte 1: Crear un proyecto y "hola mundo"
simulaciones las haré en este software. Proteus es un software de pago, por lo que conseguirlo corre por tu
cuenta.
Por último, haciendo doble click sobre el micro, cambiamos la velocidad del oscilador, y cargamos el archivo
.hex de la carpeta "dist>default>production" del proyecto.
Con esto podremos simular adecuadamente el programa, y cargarlo al microcontrolador con cualquier
programador.
Es todo por hoy, cualquier pregunta al respecto estaré gustoso de ayudarles. Hasta una próxima entrega,
adiós.
ipsotron.blogspot.com/2014/07/tutorial-mplabx-xc8-parte-1-crear-un.html 8/9
2/4/2020 Ipsotron: Tutorial MPLABX XC8 parte 1: Crear un proyecto y "hola mundo"
No hay comentarios:
Publicar un comentario
Introduce tu comentario...
Miguel Dávila S. Algunos derechos reservados. Tema Picture Window. Con la tecnología de Blogger.
ipsotron.blogspot.com/2014/07/tutorial-mplabx-xc8-parte-1-crear-un.html 9/9