You are on page 1of 6

http://www.rodrigog.

com/pic/index
.htm
Me cost 2 aos 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 todava estara
pegandome cabezasos con el Asembler.. El PIC es el sueo de todo electrnico que se vea frustrado
al tratar de llevar a cabo los proyectos con digitales, ya que construir circuitos con puertas lgicas
llevaba hacer un diseo 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 anlogas y de comunicacin... ahora puedes hacer circuitos
"upgradeables", o sea puedes modificar su funcionamiento sin cambiar la electrnica, slo a base de
programacin, adems el circuitaje se reduce al mnimo, slo el regulador de 5V y el oscilador....
realizar funciones matemticas y algoritmos raros sin mayor complicacin... todas las ideas para
modificar el vehculo ahora son totalmente factibles, slo faltan las ganas y llenarlo de displays 7
segmentos y pantallas LCD con la informacin que se requiere... en esta seccin 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 pgina www.ic-prog.com ... pero
inclu ms zcalos para poder programar pic de 8, 18, 20, 28 y 40 pines. La idea est en la pgina
de www.pablin.com.ar, lo met en una caja de VHS... y para la alimentacin 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

mnimo... esta configuacin funciona impecable. Es importante habilitar el check box "Habilitar
Driver NT/2000/XP" en caso de usar Windows NT, 2000 XP.

Ahora slo falta el software para hacer el programa del PIC.... hay varias alternativas, Assembler, C,
Picbasic... no hay donde perderse, el PICBASIC es la solucin, 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 comunicacin serial RS-232, Displays
LCD, DTMF, comunicacin I2C y usas comandos tpicos de basic como el IF... THEN ... ENDIF, GOTO,
POKE, GOSUB, etc...
Manual de usuario traducido a espaol

MicroCode Studio Plus: http://www.mecanique.co.uk


El MicroCode Studio es una interface en el cual escribes el cdigo 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 anlogas o n... el bsico es el PIC16F84A. No voy a hacer el tpico ckto del led blinqueando
que sale como ejemplo en el manual usuario, si no que algo ms original...
Ejemplo:
Se requiere un circuito que enve una seal de "SOS" en cdigo 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 cdigo:

'***************************************************************************
'Programa : MORSE.BAS
'Descripcin : Programa que enva por el puerto RB0 el cdigo 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

energa.
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 usars, 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 zcalo correspondiente.
Fcil y bonito... te das cuenta lo sencillo de programar tus rutinas en Picbasic, por ej. la robtica se
ha desarrollado gracias los microcontroladores PIC... actualmente trabajo con el PIC 16F870, tiene
entradas anlogas y 2 puertos I/O de 8 bit, lo cual es ideal para desarrollar mis proyectos con las
seales de los sensores del vehculo, 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 frgil debo anotarlos, as no trabajar el doble en los prximos proyectos...

PIC16F84A:

Memoria de programa 1796 bytes (Flash)


Ram 68 bytes
EEPROM 64 bytes
13 pinout I/O
22 mA por pinout
Entradas anlogas, 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 anlogas, 6 (PIC16F870), 8 (PIC16F871)

Datasheets PIC16F870/871
Errata Datasheets PIC16F870/871

Lectura anloga:
ADCON1=%10001110 'configura al AN0 como entrada anloga, 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 espaol


- Mecanique MicroCode Studio Plus 2.1.0.1 (Full version)

50 USD.
Descarga el Pack de softwares para programacin de PIC:

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

You might also like