You are on page 1of 7

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.

You might also like