Me costó 2 años aprender a programar mi primer PIC, el PIC16F84... todo gracias a PICBASIC, es similar a programar en el legendario QBasic ó el actual Visual Basic... de lo contrario todavía estaría pegandome cabezasos con el Asembler.. El PIC es el sueño de todo electrónico que se veía frustrado al tratar de llevar a cabo los proyectos con digitales, ya que construir circuitos con puertas lógicas llevaba hacer un diseño en papel, minimizarlo mediante mapas de Karnaugh, armarlo en el protoboard, y te das cuenta que queda un circuito gigante y que dificilmente lo puedes llevar a la placa... Pero gracias a san PIC se simplifica la vida, en un solo chip CPU, Ram, EEPROM, I/O y algunos dotados de entradas análogas y de comunicación... ahora puedes hacer circuitos "upgradeables", o sea puedes modificar su funcionamiento sin cambiar la electrónica, sólo a base de programación, además el circuitaje se reduce al mínimo, sólo el regulador de 5V y el oscilador.... realizar funciones matemáticas y algoritmos raros sin mayor complicación... todas las ideas para modificar el vehículo ahora son totalmente factibles, sólo faltan las ganas y llenarlo de displays 7 segmentos y pantallas LCD con la información que se requiere... en esta sección iré directamente al grano, para qué voy a explicar los miles de intentos frustrados que tuve con los PIC... hasta que por fin!!! una sonrisa de oreja a oreja cuando por fin logré que un led blinqueara en una pata del PIC16F84A... listo para dominar al mundo.

PROPIC2:

Lo primero es construir el programador, el PROPIC2... hice el de la página www.ic-prog.com ... pero incluí más zócalos para poder programar pic de 8, 18, 20, 28 y 40 pines. La idea está en la página de www.pablin.com.ar, lo metí en una caja de VHS... y para la alimentación usé un cargador de celular (13VDC) para ahorrar espacio en la caja...


Diagrama de programador Propic2  

IC-PROG: www.ic-prog.com

El programador PROPIC2 va conectado al puerto paralelo LPT1 del PC, el programa utilizado para transferir el programa compilado *.HEX es el IC-PROG, en él debe configurarse el tipo de programador... Propic 2 programmer, Direct I/O, Invertir MCLR, Invertir VCC y retraso I/O al mínimo... esta configuación funciona impecable. Es importante habilitar el check box "Habilitar Driver NT/2000/XP" en caso de usar Windows NT, 2000 ó XP.




Ahora sólo falta el software para hacer el programa del PIC.... hay varias alternativas, Assembler, C, Picbasic... no hay donde perderse, el PICBASIC es la solución, es como usar el legendario lenguaje Microsoft Qbasic.



PicBasic Pro Compiler Ver. 2.43: http://picbasic.com

El PICBASIC es un compilador que transforma un archivo *.BAS a *.HEX. Tiene su propio juego de comandos que es facil de aprender, rutinas listas para usar comunicación serial RS-232, Displays LCD, DTMF, comunicación I2C y usas comandos típicos de basic como el IF... THEN ... ENDIF, GOTO, POKE, GOSUB, etc...

Manual de usuario traducido a español


MicroCode Studio Plus: http://www.mecanique.co.uk
El MicroCode Studio es una interface en el cual escribes el código del programa, te corrige errores de sintaxis, te ordena visualmente las subrutinas... El Microcode queda enlazado con el PICBASIC y el IC-PROG, de manera que una vez que terminas el programas, compilas y generas el archivo *.HEX, los programas los guardas en formato Picbasic *.BAS.


Procedimiento...

Lo principal es decidir qué PIC comprar para tu proyecto, depende de las I/O que necesitas, si quieres análogas o nó... el básico es el PIC16F84A. No voy a hacer el típico ckto del led blinqueando que sale como ejemplo en el manual usuario, si no que algo más original...

Ejemplo:
Se requiere un circuito que envíe una señal de "SOS" en código morse mediante un LED, en morse la S = ... y la O = ---. El LED será conectado a pin 6 que corresponde al RB0 y el PIC oscilará a 4 MHz con un cristal de cuarzo.

En el microcode Studio abres un proyecto nuevo y escribes el siguiente código:


'***************************************************************************
'Programa : MORSE.BAS
'Descripción : Programa que envía por el puerto RB0 el código morse de ayuda ... SOS.


DEFINE OSC
4 'define la velocidad del cristal... 4MHz
led VAR portb.0 'Crea a "led" como alias del bit 0 del puerto B.
OUTPUT
led 'Configura a "led" como un pin de salida.
punto VAR WORD 'Declara que la variable "punto" como word.
raya VAR WORD
pausa VAR WORD
espacio VAR WORD
x VAR BYTE
punto = 200
raya = 500
pausa = 400
espacio = 800
LOW
led 'deja en 0 la salida RB0, led apagado.

loop:
GOSUB S 'procedimiento de la letra "S"
PAUSE espacio 'pausa de 800 mS
GOSUB O 'va a procedimieto de la letra "O"
PAUSE espacio
GOSUB
S 'procedimiento de la letra "S"
PAUSE
espacio
GOTO
loop 'vuelve a repetir los pasos desde la etiqueta "loop"
END 'En realidad en este programa no es necesario, pero END deja al PIC en modo ahorro de energía.

S:
FOR x=1 TO 3 'Repite el ciclo 3 veces
HIGH led ' enciende el led indicador
PAUSE punto 'pausa de 200 mS
LOW led
PAUSE pausa 'pausa de 400 mS
NEXT x
RETURN

O:
FOR x=1 TO 3
HIGH led ' enciende el led
PAUSE raya
LOW led
PAUSE pausa
NEXT x
RETURN

'***************************************************************************


Bueno, esa es la idea, esto se escribe en el Microcode Studio, lo guardas como MORSE.BAS, se elige el PIC que usarás, en este caso el PIC16F84A, la velocidad del cristal es definido en el programa (DEFINE OSC 4), luego el programa se compila y si está sin errores generará un archivo MORSE.HEX, el archivo .HEX lo abres con el IC_PROG, seleccionas el PIC16F84A y escribes el programa mediante el programador PROPIC2 conectado a la puerta paralela del PC, obviamente el PIC16F84 debe está en el zócalo correspondiente.

Fácil y bonito... te das cuenta lo sencillo de programar tus rutinas en Picbasic, por ej. la robótica se ha desarrollado gracias los microcontroladores PIC... actualmente trabajo con el PIC 16F870, tiene entradas análogas y 2 puertos I/O de 8 bit, lo cual es ideal para desarrollar mis proyectos con las señales de los sensores del vehículo, el sensor Lambda (0 a 1000 mV), MAF (0 a 5V), TPS (0 a 5V), y pulsos digitales de los inyectores, entrada bobina de alta para calcular las revoluciones del motor (rpm).

TIPS

Como la memoria es frágil debo anotarlos, así no trabajar el doble en los próximos proyectos...

PIC16F84A:
Memoria de programa 1796 bytes (Flash)
Ram 68 bytes
EEPROM 64 bytes
13 pinout I/O
22 mA por pinout
Entradas análogas, 6 (PIC16F870), 8 (PIC16F871)


Datasheets PIC16F84A
Errata Datasheets PIC16F84A  

PIC16F870/871:
Memoria de programa 3584 bytes (Flash)
Ram 128 bytes
EEPROM 64 bytes
22 pinout I/O (PIC16F870) y 33 (PIC16F871)
22 mA por pinout
Entradas análogas, 6 (PIC16F870), 8 (PIC16F871)



Datasheets PIC16F870/871
Errata Datasheets PIC16F870/871



Lectura análoga:

ADCON1=%10001110 'configura al AN0 como entrada análoga, y las referencias + y - de VDD y VSS respectivamente.

ADCON0=%11000001
'Selecciona Canal 0 para obtener el dato
ADCON0.2 = 1
'Pide lectura de AD


Softwares para programar PIC

Incluye:
- Diagrama de programador Propic2
- IC-Prog v1.05
- PICBasic Pro compiler v2.43 (Full version)
- Manual de Usuario en español
- Mecanique MicroCode Studio Plus 2.1.0.1 (Full version)

50 USD.

Descarga el Pack de softwares para programación de PIC:

Debes ingresar el login y password que recibes
en tu email.



N° de visitas