MPLAB X & C18: LED Intermitente con el PIC18F4620

Una vez explicado ciertos temas antes de comenzar con los ejemplos es momento de realizar una primera prueba o mejor dicho nuestro primer código en C18. Para esto se utilizar un PIC18F4620 con un LED y su debida resistencia conectada al pin RE0 además de un botón 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 configuración 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 también el uso del Master Clear con #pragma config MCLRE = ON. 

La configuración de los FUSES es la siguiente:
/*
* File: Config_FusesPIC.h
* Author: MrChunckuee
* Configuración de FUSES del PIC18F4620
* Created on 1 de marzo de 2013, 12:57 AM
*/
#ifndef CONFIG_FUSESPIC_H
#define CONFIG_FUSESPIC_H
#pragma config OSC = INTIO67 //Uso del oscilador interno
#pragma config FCMEN = ON
#pragma config IESO = OFF
#pragma config PWRT = ON
#pragma config BOREN = OFF
#pragma config WDT = OFF
#pragma config MCLRE = ON //Activamos MCLRE
#pragma config LVP = OFF
#pragma config XINST = OFF
#pragma config DEBUG = OFF
#pragma config CP0 = OFF
#pragma config CP1 = OFF
#pragma config CP2 = OFF
#pragma config CP3 = OFF
#pragma config CPB = OFF
#pragma config CPD = OFF
#pragma config WRT0 = OFF
#pragma config WRT1 = OFF
#pragma config WRT3 = OFF
#pragma config WRTC = OFF
#pragma config WRTB = OFF
#pragma config WRTD = OFF
#pragma config EBTR0 = OFF
#pragma config EBTR1 = OFF
#pragma config EBTR2 = OFF
#pragma config EBTR3 = OFF
#pragma config EBTRB = OFF
#endif /* CONFIG_FUSESPIC_H */
Bueno también utilizaremos la librería “delays.h” así que también se debe de incluir en el proyecto.
Lo primero que haremos es colocar una etiqueta al pin donde colocaremos el LED esto hará más fácil el acceso a él, nosotros lo llamaremos LED_STATUS. Después configuramos el oscilador interno a 4MHz e inicializamos los puertos en cero, se declaran que las entradas y salidas serán digitales, después colocamos el puerto E como salida.

El código es el siguiente:
/*******************************************************************************
*
* LED INTERMITENTE
*
*******************************************************************************
* FileName: main.c
* Processor: PIC18F4620
* Complier: C18 v3.47
* Author: Pedro Sánchez (MrChunckuee)
* Blog: http://mrchunckuee.blogspot.com/
* Email: mrchunckuee.psr@gmail.com
* Description: Blinking a LED in RE0, MCLR on, INT OSC = 4MHz
*******************************************************************************
* Rev. Date Comment
* v1.00 25/FEB/2013 Creación del firmware
******************************************************************************/
#include <p18f4620.h>
#include <stdio.h>
#include <stdlib.h>
#include <delays.h>
#include "Config_FusesPIC.h"//Configuración de FUSES
#define LED_STATUS PORTEbits.RE0
void main(void){
OSCCONbits.IRCF = 0b110; //Configura oscilador interno a 4MHz
ADCON1=0xFF; //Entradas y salidas digitales
TRISE=0x00; //Puerto E como salida
LATE=0; //Limpiamos el puerto E
while (1){
LED_STATUS=1;//Encendemos el LED
Delay10KTCYx(100);//Retardo de 1 segundo
LED_STATUS=0;//Apagamos el LED
Delay10KTCYx(100);//Retardo de 1 segundo
}
}
view raw C18_006: main.c hosted with ❤ by GitHub
Después 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 después 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 alimentación. Recordar que el archivo hexadecimal para gravar al PIC se encuentra en la carpeta del proyecto > dist >default >production.

Aquí un vídeo del circuito en acción:


Descargas:
Aquí el enlace directo para DESCARGAR los archivos disponibles, también puedes revisar o descargar la información desde mi repositorio en GitHub, si no sabes como descargarlo puedes checar aquí, bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare de responder lo mas pronto posible.


Donaciones:
Si te gusta el contenido o si los recursos te son de utilidad, comparte el enlace en tus redes sociales o sitios donde creas que puede ser de interés y la otra puedes ayudarme con una donación para seguir realizando publicaciones y mejorar el contenido del sitio. También puedes hacer donaciones en especie, ya sea con componentes, tarjetas de desarrollo o herramientas. Ponte en contacto para platicar, o puedes volverte uno de nuestros sponsors.


Pido una retroalimentación avisando cada que un enlace no sirva o tenga errores al momento de abrirlo, así también si una imagen no se ve o no carga, para corregirlo en el menor tiempo posible.

Publicar un comentario

0 Comentarios