Tuesday, August 31, 2010

Un programa en codigo maquina

Programa: Entrenador-01

Pues bien, en la sesion anterior hemos programado el PIC con un programa existente en formato hex. Aún no hemos hecho ningun programa en ensamblador ni hemos usado el MPLAB para nada.

Este programa es muy sencillo, enciende unicamente los 4 leds correspondientes a los bits de mayor peso, mientras que mantiene apagados a los de menor peso.(Enciende 4 y apaga 4).

Este programa , lo vamos a capturar en el editor del programador WinPic. Haremos la captura directa de los codigos hexadecimales que resultarían despues de ensamblar.

Primero, asegurese que la cejilla "Device, Config" del programa WinPic, tiene la siguiente configuracion:
OSC Oscillator: XT
WDT Watchdog Timer: Off
PUT: Disabled
MCLRE: Enabled
BODEN: Disabled
LVP: Disabled
CPD: Disabled
CP: Off
Si los ajustes son correctos, el parámetro Config word #1 será 3F29 y el parámetro Config word #2 será 3FFF

Este es el programa a grabar y ejecutar:
direccion contenido
0000       1683
0001       0186
0002       1283
0003       30F0
0004       0086
0005       2804

(Quizas sea necesario habilitar el editor a traves de la opcion "Enable HEX editor" del menu "Edit"

Usando el programa WinPic, capturé dichos contenidos en la pantalla de codigo. Quedó así:


Para transferir estos contenidos a nuestro PIC, basta seleccionar la opcion "PROGRAM (CODE+DATA+CONFIG)" desde el menú "Device", espere a que se lleve a cabo la transferencia de informacion desde la PC hasta nuestro EduPIC.

Para ejecutar el programa, seleccione la opcion "Reset/ Disconnect ICSP /Go" desde el menú "Device".
Al ejecutar el programa, se encienden únicamente los leds B4,B5,B6 y B7, tal como se esperaba.

En este punto, lo importante es saber editar los contenidos del editor hexadecimal del WinPic y saber como pasar (programar) dichos contenidos al PIC en el EduPIC.
De momento, no sabemos lo que significan los valores programados, eso lo veremos mas adelante...


Sunday, August 29, 2010

Programar el PIC

La tarea de hoy es cargarle un programa diferente al PIC16F628 del "edupic".

Desconecte el eliminador, desconecte el LCD y, siguiendo el manual que viene en el CD:
  • Puse el "jumper" S1 en la posicion "PROGRAMAR"
  • Volvi a conectar el eliminador, y conecte el cable serial desde la PC hasta el edupic.
  • Copie el folder que viene en el CD al escritorio
  • abri la carpeta "WINPIC" y corri el programa Winpic.exe
  • En la cejilla "Device,Config" puse el control "Part:" igual a "16F628A"
  • En la cejilla "Interface" puse el control "Interface Type" igual a "JDM programmer for serial port"
  • En la cejilla "Interface" puse el control "on port:" igual a "COM1"
  • Activé la cejilla "Code", hice click en el menu "File", luego "Load & Program Device (CODE+DATA+CONFIG)"
  • Seleccione el archivo "contadorF628.hex" localizado en el path:
    • archivos16F628
    • PROGRAMAS EN LENGUAJE ENSAMBLADOR
    • LEDS, MICROSWITCHES, RELEVADOR
  • hice click en el menu "device" y luego en "Reset/ Disconnect ICSP/ Go"
Como resultado, se observa que los leds parpadean en una secuencia de conteo binario, lo cual nos indica que todo salió bien.

Saturday, August 28, 2010

Aprender a programar PICs


Siempre quise aprender a programar microcontroladores y por alguna razón, nunca me dí el tiempo para ello. Hace ya bastantes años, hasta me hice del libro "Bebop BYTES Back" el cual incluía un simulador de un sistema microcontrolador para quienes quieren aprender a programar en ensamblador.
Dicho microprocesador virtual era llamado "la beboputer", el libro está en ingles en un tono muy ameno y divertido.

Al retomar este asunto de aprender a programar -ahora microcontroladores-, elejí los PIC's debido a la gran popularidad de la que gozan.
Ademas de aprender, trataré de involucrar a mi hijo para:
1) ver si despierto en él el interés por la programacion y la electronica, y
2) trabajar juntos en algo que nos quede para el recuerdo.

Pues bien, primero, me hice de un libro y compré en linea un tablerito llamado "edupic" a traves del proveedor http://www.puntoflotante.net/ (y no es comercial).
Una noche, me decidí a solicitarlo, y, menos de 48 hrs despues, ya tenía aquel tablerito en mis manos.

Esto es lo que venía como parte del paquete:


El micro que trae el kit es el PIC 16F628.

A conectarlo...
El sistema dice venir ya programado con un mensaje que se desliza en el LCD, por lo que me dispuse a conectarlo.
1) El LCD, en el conector cercano a la hilera de leds
2) El eliminador, en el conector cercano al regulador 7805.
Como se puede observar en la foto, el eliminador de baterias es del tipo "universal" por lo que hay que tener cuidado de conectar el cable que tiene los cuatro "plugs" alineando el simbolo "+" de un lado con "TIP" en el otro, de modo que la terminal central de salida sea positiva y el barril externo sea el negativo.



Enseguida, hice presion en el switch "RST" del edupic y...listo!
Observé el mensaje de prueba desplazandose en el LCD.

siguiente paso: Programar el pic

Saturday, August 14, 2010