miércoles, 27 de noviembre de 2013

PRIMER PROGRAMA CON UN MICROCONTROLADOR PIC UTILIZANDO EL XC8 EN EL MPLABX

              En este caso la idea es conocer el IDE MPLABX y como utilizarlo para programar nuestros pic con el XC8, se desde como iniciar el programa, crear el archivo donde guardaremos nuestro programa, y luego hacemos un programa demostrativo muy sencillito que consiste en encender y apagar un par de leds.
              El vídeo lo puedes ver aquí:


El código del programa es el siguiente:

//Lo que va luego de los dos signos de división son comentarios, el programa los ignora

#pragma config FOSC = XT                  // Esta es la forma en que el xc8 prepara los bits de configuración
#pragma config WDTE = OFF              // el oscilador será un cristal, no se usará el WDTE.
#pragma config PWRTE = ON             // Power-up Timer está habilitado.
#pragma config CP = OFF                    //sin código de protección.

#include <xc.h>                                     //Esta línea lo crea el programa, es donde el programa encuentra
                                                             //lo referente al PIC que estemos usando, en este caso el                                                                               //PIC16F84A.
#define _XTAL_FREQ 4000000           //En esta línea le indicamos la velocidad de nuestro cristal.

void delay_ms(int);                                 //prototipo para crear una función para manejar los tiempos con
                                                              //una variable de tipo entero, en el vídeo se comenta el porque
                                                              //de esto.

void main(void) {                                   //Aquí se inicia la función principal
    int tiempo=500;                                 //se crea una variable llamada tiempo con un valor inicial de 500ms
    TRISBbits.TRISB3=0;                      //Así es como se configuran los pines individuales para que en
    TRISBbits.TRISB4=0;                      //este caso sean salidas, para entradas se iguala a 1.

    PORTBbits.RB3=0;                          //así es como se declara lo que en un inicio saldrá por el pin 
    PORTBbits.RB4=1;                         //0 para que salga un bajo, 1 para que salga un alto.

    delay_ms(tiempo);                             //función creada para poder utilizar la variable tiempo.

    while(1){                                           //Se inicia el ciclo repetitivo.
        PORTBbits.RB3=1;                      //Se invierten las salidas iniciales de los pines
        PORTBbits.RB4=0;                      //

        delay_ms(tiempo);                        //Se espera un tiempo.

        PORTBbits.RB3=0;                      //se vuelve a invertir la salida de los pines
        PORTBbits.RB4=1;

        delay_ms(tiempo);                        //se vuelve a esperar un tiempo, luego se repite lo que va dentro
                                                            //de while
    }
    return;                                              //se usa para indicarle al programa que ya se terminó el código
}

void delay_ms(int t){                            //Aquí se define la función que nos permitirá utilizar la variable
    for(int i=0;i<t;i++)                            //tiempo
        __delay_ms(1);                            //esta es función para tiempos que trae el xc8, la cual solo nos deja
}                                                          //ingresar números por eso se crea la función para poder utilizar
                                                            //variables.


Atte Benny.


No hay comentarios:

Publicar un comentario