Nuestro primer programa sera capas de leer el estado de cuatro pulsadores conectados al puerto A del micro y copiar su estado en cuatro LED's conectados al puerto B.
Me permito recordarles que estos tutoriales están orientados a personas con conocimientos básicos de microcontroladores pic y su estructura. Vi en vano empezar por lo básico ya que en Internet hay mucha información en foros y paginas web sobre el tema como pueden ser NeoTeo, Foros de electronica.com, Micropic, ETC.
En primer lugar vamos a crear un proyecto. Para estos nos dirigimos a "File" luego seleccionamos "New Project..."
Entorno de programación MPLAB |
Presionamos siguiente y seleccionamos el microcontrolador a utilizar. En este caso vamos a realizar la practica con PIC18F1220. Es el equivalente del famoso PIC16F84A solo que en la familia de núcleo avanzado con muchísimas mas prestaciones. Aconsejo descargar el Datasheet de la pagina oficial de Microchip.
En el siguiente cuadro seleccionamos la programadora a utilizar. En mi caso utilizare una copia de la PICKIT2 oficial fabricada por MCElectronics. Quienes no cuenten con programadora aun pueden simularlo con programas como PIC Simulator IDE o Proteus.
Ahora selecionamos el compilador que tenemos que tener previamente instalado.
En el ultimo cuadro del asistente para creación de proyectos elegiremos el nombre del proyecto y le damos al botón "Finish".
Una vez terminada la creación del proyecto necesitamos crear nuestro archivo main. Para esto en la izquierda aparece un cuadro donde aparecen las carpetas del proyecto. hacemos click derecho en la carpeta "Source Files" > "New" > "C Main File..." y creamos un archivo que contendrá la rutina principal del programa.
Este es el programa escrito en lenguaje C
/*
* Title: Práctica uno
* File: main.c
* Author: SEBITRONIC
*
* Created on 4 de mayo de 2015, 15:03
*/
#include <stdio.h>
#include <stdlib.h>
#include <xc.h>
//bits de configuración
#pragma config OSC=INTIO2 //usa el oscilador interno
#pragma config WDT=OFF //deshabilita el WDT
#pragma config MCLRE=ON //deshabilita el reset maestro
//Rutina principal
void main (void){
ADCON1 = 0x0F; //Todas las entradas como digitales
TRISA = 0xFF; //Todo PORTA como entradas
TRISB = 0x00; //Todo PORTB como salidas
while(1){ //Bucle de repeticion infinita
PORTB = PORTA; //Copia el valor de PORTA en PORTB
}
}
Como vemos todo lo escrito entre "/*" y "*/" son comentarios utilizados para aclarar el código en varias lineas y lo escrito después de "//" para comentar en una sola linea. Lo escrito en comentarios es ignorado por el compilador y no es escrito en la memoria del microcontrolador.
Una vez escrito el programa clickeamos en el icono "Build and clean" que tiene por icono un martillo y una escoba
En la parte inferior de la ventana nos aparecerá un cuadro en el que se muestra el proceso de la compilación. Si todo marcha viento en popa y no hay ningún error de en la escritura les va parecer la leyenda:
BUILD SUCCESSFUL
En caso contrario le aparecerá:
BUILD FAILED
En ese caso van a tener que revisar el código en busca de errores.
El hardware a utilizar es el siguiente :
Bueno señores. Coraje y a armarlo en protoboard y arrancar con esto de los micros en lenguaje C.