Translate

jueves, 18 de diciembre de 2008

Comencemos a Programar

El "hola mundo" de los PIC's

El programa llamado hola mundo es bien sabido por los programadores que es el comienzo para desarrollar mas cosas, no existe un compilador que no haga este programa, el nombre hace alusión a que empezamos a ver la luz con el compilador que se use, es decir, que esta vivo tanto el compilador como el cerebro del programador. XD

Bien el dispositivo que vamos a usar sera el 18F4520 con un oscilador de 20MHZ, la idea es hacer blink  en todo el puerto B.  Hay que seguir estos pasos:

  • Abrir MPLAB
  • Una vez cargado dirigirse a menu Project ---> Open..
  • Localizar nuestro proyecto, yo usare el del video anterior.
  • Abrir el menu Debugger---> Select Tool---> Mplab SIM
  • Abrir el menu Debugger---> Settings ---> Processor Frecuency poner 20MHz
  • Una vez cargado abrir el archivo main.c

Una vez dentro del archivo main.c comenzaremos a programar de acuerdo a nuestro esquema de programa anteriormente propuesto. Antes de comenzar echemos un vistazo a la hoja de datos del PIC18F4520 para localizar el puerto B y ver si posee funciones especiales:

Como podemos apreciar el PORTB se encuentra en los pines 33 a 40 del PIC (marcado con rojo), además de que cinco de sus pines poseen la característica de ser convertidores analógicos-digital (ADC, marcados en azul), por esta razón antes de usarlo debemos deshabilitar esos pines como ADC y ponerlos en modo de salidas digitales. Para esto revisamos dentro de la hoja de datos en la sección de 10-BIT ANALOG-TO-DIGITAL CONVERTER (A/D) MODULE  como es que trabajan sus registros.

Tenemos 3 registros asociados a los pines ADC, y estos son ADCON0 ADCON1 y ADCON2, vamos a ver como los debemos trabajar para poder usar los pines como salidas digitales.

 El registro ADCON0

 Este registro como se ve en la imagen anterior es de 8 bits de los cuales solo 6 bits se configuran, los bits 7 y 6 no se implementan y se leen como 0, los bits 2 a 5 configuran el canal AD con el que deseamos trabajar en este caso no queremos ninguno pero lo podemos dejar en Canal 0, el bit 1 indica si la conversión esta en progreso o ha finalizado si el canal AD esta activo, para este caso lo dejaremos a 0 ya que  no lo usaremos, por último el bit 0 configura si el AD estará activado o no, por lo que 0 indica que el modulo esta deshabilitado. De esta forma el registro ADCON0 tendrá el valor binario 0b00000000  por lo que podemos igualarlo en nuestro programa como:

 ADCON0=0;

El registro ADCON1

  Como vemos en la figura anterior el registro ADCON1 habilita las salidas como voltajes de referencia con los bits 4 y 5 los cuales podemos declarar como 0, los bits mientras que los bits 0 a 3 configuran las salidas digitales y AD según la tabla, como en este caso queremos que todas las salidas sean digitales usaremos el valor 1111 de la tabla, de esta manera el registro ADCON1 tendrá el valor  binario 0b00001111, por lo que en el programa lo podemos declarar como:

  ADCON1=15;

El registro ADCON2

 

Como se ve en la figura anterior, registro ADCON2 sirve para configurar el tipo de AD que usaremos, con el bit 7 definimos si sera de 10bits de resolución o de 8 bits, los bits 3 a 5 configuran el tiempo de adquisición y por ultimo los bits 0 a 2 configurar la conversión entre la frecuencia utilizada. Para este caso podemos declarar ADCON2 como 0b00000000.

  ADCON2=0;

Una vez hecho esto declaramos el puerto como salida y en estado inicial apagado.

Ahora insertaremos este código en el archivo main.c

Ahora solo falta compilar y para ello daremos click en el icono de build all (resaltado en rojo)

Y al final obtendremos  el siguiente texto  en la ventana de salida:

 

Como verán no recibimos ningún error y es hora de cargar el HEX en nuestro PIC, pero podemos simularlo primero:

Como se puede ver en el video anterior el puertoB del PIC cambia de estado entre 0 y 1 en todos sus bits. Así que el HOLA Mundo fue un éxito!

No hay comentarios:

Publicar un comentario