Mplab X y c18 - Led Intermitente
Mplab X y c18 - Led Intermitente
Mplab X y c18 - Led Intermitente
Una vez explicado ciertos temas antes de comenzar con los ejemplos es momento de realizar una primera prueba o mejor dicho nuestro primer cdigo en C18. Para esto se utilizar un PIC18F4620 con un LED y su debida resistencia conectada al pin RE0 adems de un botn de Reset conectado en el Master Clear del PIC. Para este y otros ejemplos trabajaremos con el oscilador interno des microcontrolador. Recordar que el circuito se alimenta a 5 volts. El circuito es el siguiente:
Recordar que se tiene el archivo Config_FusesPIc.h en donde est la configuracin de los fusibles del PIC y es necesario agregarlo a nuestro proyecto, algo importante de esto es que se debe de configurar el uso del oscilador interno para ello se tiene lo siguiente #pragma config OSC = INTIO67 y tambin el uso del Master Clear con #pragma config MCLRE = ON.
1 Pedro Snchez
mrchunckuee.psr@gmail.com
http://electronicayrobotica.wordpress.com/
Bueno tambin utilizaremos la librera delays.h as que tambin se debe de incluir en el proyecto. Lo primero que haremos es colocar una etiqueta al pin donde colocaremos el LED esto har ms fcil el acceso a l, nosotros lo llamaremos LED_STATUS. Despus configuramos el
2 Pedro Snchez
mrchunckuee.psr@gmail.com
http://electronicayrobotica.wordpress.com/
oscilador interno a 4MHz e inicializamos los puertos en cero, se declaran que las entradas y salidas sern digitales, despus colocamos el puerto E como salida. El cdigo es el siguiente: main.c
#include <p18f4620.h> #include <stdio.h> #include <stdlib.h> #include <delays.h> #include "Config_FusesPIC.h"//Configuracin de FUSES #define LED_STATUS PORTEbits.RE0// void main(void){ //Configura oscilador interno a 4MHz OSCCONbits.IRCF2=1; OSCCONbits.IRCF1=1; OSCCONbits.IRCF0=0; //Se inicializn los puertos en cero LATA=0; LATB=0; LATC=0; LATD=0; LATE=0; //Entradas y salidas digitales ADCON1=0xFF; //Configuracin de Entradas/Salida TRISE=0x00; while (1){ LED_STATUS=1; Delay10KTCYx(100);//Retardo de 1 segundo LED_STATUS=0; Delay10KTCYx(100);//Retardo de 1 segundo } }
3 Pedro Snchez
mrchunckuee.psr@gmail.com
http://electronicayrobotica.wordpress.com/
Despus de configurar e inicializar el PIC tenemos un bucle while y lo que este dentro se ejecutara de manera indefinida. Dentro del bucle lo que hacemos es poner a uno el pin RE0 una demora de un segundo y despus ponerlo a cero vuelve a esperar un segundo y se repite esto hasta que el PIC entre a un Reset o se le quite el voltaje de alimentacin. Recordar que el archivo hexadecimal para gravar al PIC se encuentra en la carpeta del proyecto > dist >default >production.
4 Pedro Snchez
mrchunckuee.psr@gmail.com
http://electronicayrobotica.wordpress.com/