Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Curso de Pics PDF
Curso de Pics PDF
ISBN Nº:987-1116-68-3
ISBN Nº: 978-987-1116-68-3
1
Nº 116
CAPITULO 1
Director de la Colección Club Saber
ESTRUCTURA Y CARACTERŒSTICAS DE UN PIC Electrónica
Que es un PIC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Ing. Horacio D. Vallejo
La Memoria de Programa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 Jefe de Redacción
La Memoria de Datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 Pablo M. Dodero
Los Puertos del PIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 Club Saber Electrónica es una publi-
El Clock
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 cación de Saber Internacional SA de
El Reset
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 CV de México y
Primeras Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 Editorial Quark SRL de Argentina
además ajusta sus parámetros. esto se realiza a través tenga, a su vez, un loop secundario y cuando se ejecu-
del bloque de control o decodificador de instrucciones. ta ese loop secundario se debe volver al mismo punto
Analicemos ahora la sección de arriba a la izquier- del loop primario, eso se consigue con guardar ese nú-
da en donde observamos la memoria de programa, el mero de instrucción del loop secundario en otro registro
contador de programa, el registro de instrucciones y la de la pila.
pila o sTACK de 8 niveles. Cuando hablamos de regis- Analicemos ahora la sección inferior derecha. en
tros nos referimos a pequeñas unidades de memoria ese sector se ubican los bloques responsables de efec-
transitoria, construida por lo general, con un registro de tuar operaciones matemáticas y lógicas binarias; recor-
desplazamiento. son memorias volátiles que se utilizan demos que el nombre ALu proviene de Aritmetic Logic
para guardar información por un tiempo mínimo, con el unite (unidad arimética y lógica). en este sector es im-
fin de realizar una operación compleja de varios pasos. prescindible utilizar un registro ya que una operación
el contador de programa es el responsable de que aritmética o lógica siempre se efectúa entre dos núme-
el microprocesador vaya analizando las instrucciones en ros. Los números binarios que deben procesarse se to-
orden ascendente. este guarda el número de instrucción man de la memoria de datos, el primero se acumula en
en el sTACK y la instrucción misma la pasa al registro el registro de trabajo o registro W (de Work = trabajo)
de instrucciones desde donde se envía al resto del micro- el segundo es el presente en el instante en que se invo-
procesador. el sTACK es, en realidad, una pila de regis- ca la memoria de datos. Como las operaciones pueden
tros (en nuestro ejemplo hay 8), debido a que el progra- ser encadenadas (cuando el resultado sirve como ope-
ma puede tener derivaciones (en la jerga LOOPs, rulos rando de la siguiente operación, tal como el caso de un
o subprogramas). Cuando se termina de ejecutar un producto) el registro W tiene un retorno a la ALu. Vemos
loop se debe volver al mismo punto del programa en además que la ALu está comandada por el bloque MuX
donde se había producido la bifurcación y eso es posi- (MultipleXador). en efecto, la ALu requiere que se le en-
ble porque ese número de instrucción quedó guardado víen números para procesar que le lleguen desde la me-
en uno de los registros de la pila. es común que un loop moria de datos, pero antes se la debe predisponer para
Figura 3
5
que efectúe la operación requerida (comparación, rota- enseñarle significa programarlo y eso se realiza con
ción de dígitos, etc.). una plaqueta de programación que depende de cada
el registro de estado o estatus colabora durante las marca y modelo de microcontrolador. Antiguamente los
operaciones matemáticas. Piense cómo opera ud. para microprocesadores tenían una ventanita transparente y
realizar una resta: primero ubica el primer número, lue- era necesario exponerlos a la luz ultravioleta para bo-
go el segundo y después comienza a analizar los bits rrar su memoria e introducir un programa nuevo. Actual-
menos significativos (las unidades), pero si el número de mente cuentan con memorias que no tienen este requisi-
arriba es menor que el número de abajo, entonces toma to. Basta con cargarlos con un programa para que se
prestado de la columna de las decenas, luego debe re- borre el anterior. esto significa que, con el mismo inte-
cordar esto porque el número de arriba en la columna grado, podremos construir diferentes dispositivos que
de las decenas se redujo en una unidad. en realidad, realicen funciones totalmente distintas unas de otras.
aunque se trate de una operación entre dos números su
ejecución requiere guardar lo que se llama acarreo en
otro registro y éste no es otra cosa más que el registro LA MeMORIA De PROGRAMA
sTATus.
La memoria del PIC16F84 es una eePROM, es decir,
el PIC16F84 contiene además de todo lo visto, una
de lectura solamente (ROM = Read Only Memory) que
memoria RAM de registros que puede ser llamada des-
se programa por tensión (no necesita luz ultravioleta);
de el registro de instrucción a través de un multiplexador
es decir que basta con introducir los datos con cierto ni-
de direcciones. esta sección sólo se utiliza en desarrollos
vel de tensión para que éstos borren el programa ante-
avanzados. Ahora bien, un microcontrolador sin progra-
rior y graben uno nuevo.
ma no sabe hacer nada, es como un niño recién nacido;
tiene algunos reflejos condicionados como el de succión ¿Por qué esta memoria se llama ROM, si se pueden
que le permite alimentarse pero no sabe hacer más que grabar datos sobre ella?
eso. nosotros deberemos enseñarle a realizar acciones se llama ROM porque para grabarla se debe conec-
y lo vamos a hacer como a un bebé, paso a paso. su tar el PIC al programador; luego de que el PIC coloca
capacidad de aprendizaje es enorme y sumamente va- estos datos en la plaqueta del dispositivo, sólo pueden
riada. Le vamos a enseñar a llorar a intervalos regulares, ser leídos, ya que entonces forman el programa del PIC.
a encender luces, a sumar, a restar, etc. esta memoria (figura 4) tiene una longitud de 1 Kby-
te con palabras de 14 bits. Digamos
que tiene un ancho de 14 bits y una al-
tura de 1.000 Bytes o que es una me-
moria de 1.000 x 14. Observe que
los números de instrucción en hexade-
cimal van desde el 000 al 3FF, lo cual
implica que existen 1.040 posiciones
de memoria, valor obtenido emplean-
do la fórmula:
Observe que
Figura 5 dos de las posicio-
nes de memoria tie-
nen las indicaciones
“vector de reset” y
“vector de interrup-
ción”.
eso significa
que, cuando se pro-
voca un reset, el mi-
croprocesador vuel-
ve a la posición
000 del programa
y cuando se produ-
6 ce una interrupción,
1 - ESTRUCTURA Y CARACTERISTICAS DE UN PIC
a la posición 004. estos retornos forzados deben ser mediante el programa. estos resistores se desconectan
considerados al diseñar el programa del microprocesa- automáticamente si una pata se predispone como pata
dor; es decir que el reset se produce porque la señal ex- de salida debido a que las salidas ya tienen posibilidad
terna pone el contador de programa en 000 y todo el de entregar corriente desde fuente con un transistor. To-
programa se reinicia. en cambio, cuando ingresa una dos los resistores de pull-up se conectan o desconectan
señal por la pata de interrupción el contador de progra- al mismo tiempo (no existe un comando que los conec-
ma va a 004 y la acción que, en general ocurre, es que te independientemente). Como puerto de salida, una
se comienza a leer un subprograma particular. Cuando pata puede tomar 25mA del circuito o entregar 20mA
este subprograma termina, el contador de programa re- al mismo, sin embargo, en el puerto “A” sólo se pueden
cupera el número que tenía en el momento de arribar la consumir 80mA en total o entregar 50mA, esto signifi-
interrupción. ca que sólo algunas patas pueden trabajar al máximo
porque si todas lo hicieran (y son 8) el consumo total se-
ría de 25 x 8 = 200mA. el puerto “B” tiene otras carac-
LA MeMORIA De DATOs terísticas máximas, ya que en total puede tomar 150mA
o entregar 100mA. Como vemos, las salidas admiten
La RAM (Random Access Memory = memoria de ac-
suficiente carga como para alimentar directamente a un
ceso aleatorio, figura 5) es una memoria de lectura y es-
led (figura 6). Los puertos no utilizados siempre se de-
critura de 64. De estos 64 registros, los primeros 12 son
ben conectar a la fuente de 5V a través de un resistor de
fijos y cumplen un propósito determinado, en tanto que
10kΩ debido a que se trata de un dispositivo CMOs que,
desde el 13 hasta el 64 son registros de propósito gene-
de otro modo, podría deteriorarse por captación elec-
ral, en donde el programa puede indicar que se almace-
trostática (figura 7).
ne un dato para ser tomado más tarde. Además, posee
La pata 3 perteneciente al puerto “A” puede ser con-
un conjunto de memoria sRAM de 36 posiciones con los
figurada como de entrada/salida o como de arranque
que se pueden construir registros de 8 bits con carac-
terísticas eePROM. en lo personal, prefiero designar a
este conjunto de registros como “memoria libre”. Figura 7
Figura 6
7
de un temporizador/contador (figura 8). Cuando se pro- eL ReseT
grama como entrada esta pata funciona como un dispa-
el PIC “se resetea” cuando la pata 4 (MCLR nega-
rador de sCHMITT o schmitt trigger, ideal para recono-
da) se pone a potencial bajo. Para simplificar el circuito
cer señales distorsionadas o con crecimiento lento. esta
de reset, el PIC posee un temporizador interno que per-
misma pata también tiene una característica distinta
mite realizar un reset automático cuando se aplica ten-
cuando opera como salida. ella es la única que trabaja
sión de 5V. en estos casos el circuito externo de reset só-
a colector abierto, es decir, que no puede emplearse co-
lo implica el uso de un resistor de 10kΩ entre la pata 4 y
mo fuente, en este caso siempre se utilizará un resistor
fuente tal como se muestra en la figura 11.
externo.
en muchos circuitos es necesario realizar un reset
manual y para ello existen dos posibilidades, una es uti-
lizar sólo el temporizador interno (por programa) y la
eL CLOCK otra es agregar una constante de tiempo exterior como
Los PICs poseen un oscilador configurable por pro- se muestra en la figura 12. en el segundo circuito C1
grama de características muy amplias. Cuando no se re- provee un retardo al encendido o posterior al pulsado
quiere mucha precisión se puede trabajar con un oscila- de reset porque C1 se cargará lentamente a través de
dor a RC conectado según la figura 9. R1 con una constante de tiempo de 22kΩ x 10µF =
Para circuitos que requieran una gran precisión se 220ms.
puede trabajar con un cristal de frecuencia baja, media el resistor R3 limita la corriente de descarga de C1
o alta (figura 10). Como máximo el PIC16F84 puede tra- a valores compatibles con sus características de corrien-
bajar con un cristal de 10MHz. te de pico máxima.
Internamente la frecuencia del cristal se divide por 4, D1 descarga a C1 cuando la tensión de fuente de-
por lo tanto, es muy común la utilización de un cristal de cae para permitir un reset inmediato cuando la fuente se
4MHz para obtener un CLOCK interno de 1MHz que apaga y se enciende en rápida sucesión. R2 limita la co-
garantiza que cada instrucción dure exactamente 1ms. rriente de reset, tomada desde el microprocesador. es-
Para temporizadores de período largo se utilizan crista- te segundo sistema se suele utilizar cuando se requiere
les de baja frecuencia. un reseteado remoto a través de varios metros de cable
que podrían captar zumbido (C1 reduce la
impedancia del circuito de reset).
Figura 8
PRIMeRAs COnCLusIOnes
el PIC es un microcontrolador, una es-
pecie de "ordenador en miniatura" (con
muchas comillas) que podremos progra-
mar. Hay muchos tipos de microcontrola-
dores PIC, los hay de 8 patas con 6 termi-
nales para intercambio de datos (6 termi-
nales de entrada / salida de datos), pero
también existen dispositivos más poderosos
de 80 patas con 40 pines I/O (de entrada
y salida de datos).
8
1 - ESTRUCTURA Y CARACTERISTICAS DE UN PIC
Figura 12
Opera a una frecuencia máxima de 10MHz También posee una serie de registros y temporizado-
(excepto el PIC16F84A que puede operar a 20MHz). res, cuyo estudio no realizaremos en esta obra.
1kbyte de memoria eePROM para nuestro
programa (1024 posiciones). •••••••••••••••••••••
9
Art Tapa - OBD y escaner.qxd:ArtTapa 17/01/14 09:56 Página 13
Manejo de las InstruccIones
de un PIc
unainstrucciónesuncomando,partedelprograma,
queseleaplicaalPIcparaquelointerpreteyejecute
sucumplimiento.lainstrucciónsecomponedeunaserie
de bits presentada en secciones o posiciones perfecta-
mente delimitadas, que el procesador interpreta para
cumplirunaordendeseada,quedandoestablecidaslas
variablesquesemodifican.
dichodeotraforma,lasinstruccionesposeenunfor-
matodeacuerdoaunsistemadecodificación.elforma-
tocambiadeacuerdoconlaoperaciónquesevaarea-
lizar.
cadainstrucción,paralalíneabajadelosPIcstipo
16X54(conlaXqueremosdenotarquepuedeserunPIc
conmemoriaotP-16c54-omemoriaFlasH-16F84-),
consisteenunapalabrade12bitsquecodificaenun
solobloque,laorden,eloperadorylaubicacióndelre-
sultadooelsalto(encasodequelohubiere).enlosmi-
crocontroladoresPIcstipo16X84cadainstruccióntiene
unalongitudde14bits.
los bits que actúan como datos de la memoria
eProMserecibeneneldecodificadordeinstruc-
ciones,yoperanconelcontadordeprogramay
elregistrodetrabajoW,paraaccederalugares Figura 1
específicos del microcontrolador, tales como la
alu,posicionesdememoria,registros,etc.
comosabemos,losPIcs16X84,entreotros,
manejanunsetreducidodeinstrucciones(35ins-
truccionesenloquesedenominarIsc)quepre-
sentan una codificación muy particular llamada
“formatodelainstrucción”.
cadainstrucciónposeesuformatoyestotal-
mentedefinidoporMIcrocHIP.
enlafigura1podemosapreciar“lasintaxis”
deunainstruccióndelset.setratadelainstruc-
ciónquesumaelcontenidodelregistrodetraba-
joconelcontenidodeunregistrocuyadirección
estádeterminadaporeloperador“f”.enestafi-
gura,enprimerlugarseobservala“sintaxis”,es
decir,laformaenqueelprogramadorescribirála
11
instrucciónenellenguaje“entendibleporeloperador” addWFf,d
(elprogramaen.asm).lacodificacióneselformatode elensambladorgeneraráelcódigo:
la palabra que define la instrucción y que veremos en
detalleluego.notequeparaquesecompletelainstruc- 000111dfffff
ciónsenecesitaunasolapalabrayunsolociclodelcon-
tadordeprogramas. enestecódigo,losseisbitsdemayorpeso(bits6al
comoveremos,elresultadodelaoperaciónseguar- 11enlafigura2)definenlaoperaciónquevaareali-
daenunsitiodefinidoporelprogramador(dependien- zarlainstruccióndeacuerdoalorequeridoporelpro-
dodequéestadotomeelbit“d”)yqueestainstrucción gramador.aquísedefineunaordenqueelPIcinterpre-
modificalosbitsc,dcyZdelregistrodeestado(sta- tayejecutasobreunoperandodeterminado,cuyadirec-
tus).estoquieredecirquecuandocolocolainstrucción: ciónlabuscasegúnloindicadoporlos5bitsmenossig-
nificativos(bits0al4enlafigura2).
elbit5esuncódigodereco-
nocimiento de destino y determi-
naenquélugarsevaaalojarel
resultadodelaoperación.sieste
bites“0”eldestinodelaopera-
ciónserápuestoenelregistrode
trabajo(W).sielbit“d”espues-
to a “1” el destino será el de la
posicióndememoriadefinidopor
“f”.loscincobitsdemenorpeso
enelformatodelainstrucciónre-
presentanladireccióndondeestá
guardadoeloperando(f),quees-
táenlamemoriadedatosypor
tenercincobitssólopodemosdi-
reccionar una de las posiciones
dememoriadedatos.
la mayoría de las instruccio-
Figura 2 nesserealizanenunciclodecon-
tador de programa (ci-
clo de instrucción) ex-
cepto las instrucciones
de salto que necesitan
dos ciclos para ejecu-
tarla. se determina el
ciclodeinstruccióndivi-
diendo por cuatro la
frecuencia del oscila-
dor, elegida para el
funcionamiento del mi-
crocontroladortalcomo
seobservaenlafigura
3.
es decir, la señal
queprovienedeloscila-
dorexterno,conectado
a los pines osc1/cl-
KIn y osc2/clKout
del microcontrolador,
se divide en cuatro ci-
clos, obteniéndose así
la señal requerida por
Figura 3 el procesador interno
12
2-ProGraMacIondePIcs
pararealizarlasoperaciones.deestamanerasepuede sobrelasnotasalasquehacemosreferenciaendi-
realizarlabúsquedayejecucióndelainstrucción. chasfiguras,debetenerencuentalosiguiente:
elrelojdeinstruccióneselciclointernoqueposeeel nota1. almodificarunregistrodeentrada/salida
microcontrolador para cronometrar el tiempo de ejecu- (e/s) con una operación sobre él mismo (por ejemplo
cióndelasinstrucciones. MoVFPortB,1),elvalorutilizadoeselqueseencuen-
lospulsosentrantesdelrelojsondivididospor4,ge- trepresenteenlaspatasdelPortB.Porejemplo,siel
nerandodiferentesseñalesdenominadasQ1,Q2,Q3y biestabletieneun"1"paraunapataconfiguradacomo
Q4.elestadoQ1haceincrementarelcontadordepro- entradayseponeanivelbajodesdeelexterior,elda-
grama,Q2yQ3,seencargandeladecodificacióny tosevolveráaescribircomoun"0".
ejecucióndelainstrucciónyporúltimo,Q4eslafasede nota2. siseejecutaestainstrucciónsobreeltMr0
búsquedadelainstrucción.elcódigosealmacenaenel y d=1, será borrado el divisor de frecuencia (preesca-
registrodeinstrucciones. ler),siestáasignadoaltMr0.
nota3. sisemodificaelcontadordePrograma(Pc
ócP)oesverdaderaunacondicióndeprueba,lains-
el set de InstruccIones del 16X84 trucciónrequieredosciclosdemáquina.elsegundoci-
closeejecutacomounnoPPP. alosefectosdeenten-
dercómo“funciona”cadainstrucción,vamosadaruna
Vimoscómoeslaestructuradeunainstrucción,ra-
breve expliación de “lo que hace” cada una de ellas.
zónporlacuallerecomendamosqueleanuevamenteel
tengaencuentaqueenellibroMicrocontroladoresPIc,
comienzodeestecapítulosinoentiendeloqueaconti-
delIng.Horaciod.Vallejo,editorialQuark,estetemase
nuaciónexpresaremos.
desarrollaconmayorprofundidad.Paraentendermejor
loscódigos(denominadosmnemónicos)quesimbo-
cadainstrucciónprimeroexplicamoselsignificadodeal-
lizanunconjuntodeinstrucciones,representanlatarea
gunosparámetros:
que debe hacer el microcontrolador una vez que las
analiceenfuncióndeloperando.
f:registroalqueafectalainstrucción
unmnemónicoayudaarecordarelsignificadoque
W:acumulador(Workingregister)
tienelainstrucción.
b:númerodebit(hayinstruccionesqueafec-
Parapoderanalizaralconjuntodeinstruccionesque
tanaunsolobit)
conformanelsetrIsc,selossueleagruparteniendoen
k:constante(unnúmero)
cuentaeltipodeoperaciónquerealizan,asíescomún
d:seleccióndedestinodelresultadodelains-
queselaspresentebajocuatroposiblesformas,asaber:
trucción,puedeser"0"o"1",sies"0"elresultadose
guardaenelacumulador(W)ysies"1"seguardaen
1.Instruccionesorientadasaregistros.
elregistrofalqueafectalainstrucción.
2.Instruccionesorientadasabits.
3.Instruccionesconliterales.
4.Instruccionesdecontrolyespeciales.
InstruccIones orIentadas a reGIstros
enlafigura4vemosuncuadrodondesereprodu- addWFf,d: sumaW(sucontenido)yelregistrof
cenlasinstruccionesorientadasalbit,lafigura5mues- (elcontenido),elresultadologuardasegúnd(sid=0se
tralasoperacionesorientadasaregistrosylafigura6 guardaenWysid=1seguardaenf).
nospermiteconocercuálessonlasinstruccionesconlite- andWF f,d:realizalaoperaciónandlógi-
ralesydecontrol. caentreWyf,elresultadologuardasegúnd.
Figura 4
13
Figura 5
Figura 6
#deFIne:esotrainstrucciónparaelensamblador. 4)enlasegundacolumnaseponenlasinstrucciones
esparecidoaeQu,soloqueaquínoponemosetiquetas (BsF,clrF,BtFsc...etc.)
aunregistro,podemosponerlaaunainstrucciónentera, 5)enlaterceracolumnaseponenlosregistrosopa-
Porejemplo: rámetrosalosqueafectalainstrucción.
#deFIneBanco1BsFstatus,5 6) en la cuarta columna se ponen los comentarios
#deFIneBanco0BcFstatus,5 quecreapertinentes(cuantosmásmejor)seguidosdeun
apartirdeahora,cuandoescribamosBanco1se puntoycoma.
pondráa"1"elbitdeseleccióndebancoypasaremos cabeaclararquetodoloqueestádespuésde“;”
albanco1,alescribirBanco0pasaremosalbanco0 (puntoycoma)enunafila,noestenidoencuentaporel
programa,éste“sabe”queesunaobservaciónparaque
orG: Indicaalensambladorladirección(dememo- puedasaberquéquisohacerelprogramadorcondicha
riadeprograma)dondeseguardarálainstrucciónque instrucción.sibiennoexistenestructurasdeprograma-
vayaacontinuación.Porejemplo: cióndefinidas,siempreconvieneseguirunorden,talco-
orG00H moexplicamosanteriormente.damosenelPrograma2
clrFVarIaBle1 un ejemplo “ordenado” propuesto por carlos díaz, y
lainstrucciónclrFestáenladireccióndememoria paramayorinformacióndebedirigirsea:http://www.e-
deprograma00H(serálaprimerainstrucciónensereje- lectron.es.vg/.
cutadaporelpic)
end: seescribealfinaldelprogramaparaindicar
queyahaacabado.(esobligatorio,sinodaerror). aPrendIendo a ProGraMar
etiquetasadireccionesdePrograma: muyútilespa-
rausarconinstruccionescall(llamadaasubrutina)o
antes de dar los primeros ejemplos prácticos para
Goto(salto).Porejemplo,veaelprograma1.
queusted“arme”susprimeroscircuitos,esconveniente
tenerencuentalossiguientesconceptos:
1) entodoprogramasedebedecircuáleseltipo
cóMo se ordena un ProGraMa dePIcqueseempleará,hayqueincluirsuslibreríasy
configurarlo:
esimportantellevarunpocodeordenalahorade
escribirelprograma,nosayudarámucho: ejemplo:
1)alprincipiovanloseQuylos#deFIne,después list p=16f84
comenzamosconelprograma. include <p16f84.inc>
2)elprogramaseescribeencuatrocolumnassepa- __config_rc_osc&_Wdt_oFF
radasportabuladores:
3)enlaprimeracolumnaseponenlasetiquetaso 2)alescribirunprogramaserealizanlassenten-
lasdireccionesdeprograma ciasencolumnas.laprimeracolumnaseutilizapara
16
2-ProGraMacIondePIcs
;************************************
;*ejeMPlo:ProGraMaBIenordenado* Programa 2
;************************************
;*elsiguienteprogramaconfigura*
;*ra1comoentradayra0como*
;*salidayhacequelasalida(ra0)*
;*sealainversadelaentrada*
;*(ra1)*
;************************************
;(convieneponertítuloyunapequeñaexplicacióndeloque
;haceelprograma)
;(Primerolosecuylos#deFIne)
;(despuésempezamosconelprograma)
end ;Indicafinaldelprograma
Programa 3
; Primer programa de práctica
goto ciclo
envíaelprogramahacialaetiqueta"ciclo".lasdos
últimas operaciones hacen que al ejecutarse un progra-
ma,éstesequedeenunlazoquesellama“loopcerra-
do”.
Figura 7
laúnicamaneradesalirdeesteloopespulsando
reset.entoncesseobservaquelosledsseapaganhas-
taquesesueltaelpulsadoryelprogramacomienzanue-
vamenteporlaetiquetareset.
obviamente,esteprogramadebesereditadoenun
utilitarioadecuado(MPlaB,porejemplo)yluegodebe
sercompilado(utilizandoelMPasMoelmismoMPlaB)
paraobtenerelarchivo.hexquemepermitirácargarel
PIcquedeberécolocarenelcircuitodelafigura1pa-
raverificarquerealmente“hace”loqueestamosdicien-
do.ParacargarelPIcconelprograma.hexseutiliza
unprototipoadecuado(cargadordePIcs)queconsiste
enuncircuitoqueesmanejadoporunprogramapara programa);porlotanto,lademoraesde5µs.Veamos
permitirlacarga.todoesteprocesoseexplicacontotal ahoraalgunosejemplosdeprogramassencillosquerá-
claridadenelprimertextodeestaserie,titulado:“todo pidamentepodemosllevaralapráctica:
sobrePIcs”.
enlafigura7sepuedeobservarundiagramadeflu-
joquereflejaelfuncionamientodelprogramaqueaca-
bamosdeexplicar. ProGraMa Que PerMIte el
encendIdo de los dos BIts Menos
¿cuántotardanenencenderselosledsluegodesol-
tarelbotóndereset? sIGnIFIcatIVos del Port B
siseobservaelcircuito,severáuncristaldeclock sea el siguiente listado que responde al programa
de4MHz(0,25µsdeperíodo);comointernamenteexis- delafigura8yqueusaremoscomoejempoparadeter-
teundivisorx4cadaoperaciónserealizaráen0,25x minarsiud.haaprendidocómoeslasecuenciaquede-
4=1µs.sicontamoslassentenciashastallegaracar- beseguirunprograma:
garelpuertoB,veremosquehay5(cincorenglonesde list p=16f84
Figura 8
19
include <p16F84.inc> tris PortB
org 0 conestasdosinstruccionesdigoquetodaslaspatas
movlW B'00000000' delPortBseránsalidas.
tris PortB
movlw B'00000011' movlw b'00000001'
movwf PortB movwf PortB
end Mandéun“1”alapataB0,esdecirquesihayunled
conectadoentreesapataymasa,elmismoseencenderá.
le recomendamos que siga paso a paso cada ins-
trucciónparaversiinterpretalasecuencia,sinologra mloop: rlf PortB,f
hacerlo,entoncesvuelvaa“estudiar”todoestetema. enestasentenciacoloquéunaetiqueta(unamar-
ca)queserálaposiciónalaqueiráelprogramaen
algúnmomento,cuandoseledélainstrucción.luego
secuencIador de 8canales conlainstrucciónrlfdigoqueserotehacialaizquier-
daelcontenidodelregistroPortB,esdecirquelue-
en la figura 9 se observa el programa correspon- godeestainstrucciónahoramandéun“1”albitB1
dienteaunsecuenciadorde8canalesquehemosedita- ytodaslasdemáspatasquedanencero,esdecir,se
doenelprogramaMPlaB. apagaelledconectadoenB0yseenciendeelledco-
list p=16f84 nectadoenB1(pata7delintegrado).
include <p16f84.inc>
__conFIG_rc_osc&_Wdt_oFF&_PWrte_on movlw d'50'
estejuegodesentenciasindicaquesevaautili- movwf j
zarelPIc16F84,sepidequesecarguenlaslibrerías Puseenlaposicióndememoriajelnúmero50
delPIcyseconfiguraalprogramaparatrabajarcon
clockrc,eltemporizadorWdtapagadoyeltempo- jloop movwf k
rizadorlibreactivo. Puse en la posición de memoria k el número 50,
ademásenestasentenciacoloquéunaetiquetayenal-
j equ h'11' gúnmomentolediréalprogramaquevayahaciaesadi-
k equ h'12'
definoalasvariablesjykenlasposicionesdememo-
riadedato11y12(enhexadecimal)respectivamente.
org 0
comienzaelprograma
movlw b'00000000'
Figura 10
Figura 9
20
2-ProGraMacIondePIcs
22
EntrEnador dE PIC meraeselnoPPPporsermuysencilodearmar,
fácildeusarymuydidácticoparaqueel“lector”
UnentrenadordePICesunsistemacompuesto sepaentodomomentoquéesloqueestáhacien-
deunentornodedesarrollo(elMPLaB),uncarga- do.Sinembargo,estaaplicaciónposeeladesven-
dor(tambiénllamadoprogramadoroquemador)y tajadeprecisarunafuentedealimentaciónexter-
una placa verificadora. El MPLaB es un “progra- naylaversiónquerecomendamossólofunciona
ma”queentregagratuitamenteMICroCHIPensu bajoambientedoS,porlocualquienesposeenel
páginadeInternetyquepermiteeditarprogramas sistema operativo Windows XP o 2000 deberán
enassembler,simularsufuncionamiento,detectar utilizarelnoPPParrancandolacomputadoracon
ycorregirerroresymuchasotrasfuncionesqueno undiscodebooteoconelsistemadoS.
se explican en esta sección. Cabe aclarar que si El otro programador recomendado es el
Ud.deseadescargaresteprogramayunmanual QUarKPro2,quepermitelaprogramaciónde
de uso en español debe dirigirse a nuestra web casitodoslosPICS,diferentesmemoriasEEProM
(www.webelectronica.com.ar) luego debe hacer yotrosmicrocontroladores.Seloutilizaconelpro-
“click” en el ícono password e ingresar la clave grama ICProG y no precisa fuente externa, ya
“mplab”. quesealimentaconlatensióndelpuertoseriede
Encuantoalprogramador,setratadeundis- lacomputadora.
positivocompuestodeunhardwaredondesecolo-
caráelPICaprogramaryunsoftwarequepermi- LaPlacaVerificadora
telacomunicaciónentrelaPCydichohardware. UncircuitoconPICsiempresecomponededos
Existen dos versiones que recomendamos, la pri- secciones.Elcircuitodeldispositivodeseadoylos
23
necesarios componentes
periféricos imprescindi-
bles para que el PIC fun-
cione,asaber:clockyre-
set (la primer sección
cambiaconcadaproyec-
to,entantoquelasegun-
da puede ser común a
muchos proyectos). am-
bos circuitos periféricos
tienen diferentes opcio-
nes:elclockpuedesera
cristalcuandoserequiera
precisión, o a rC (como
en nuestro caso) cuando
sóloserequierequelase-
cuencia de encendido
tenga un tiempo aproxi-
mado.Encuantoalreset,
éste puede ser externo
conunpulsadorointerno Figura 1
y automático, cada vez
queseconectalaalimen-
taciónde5V. ¿Quéocurriríasicomproloscomponentes,los
Unavezdefinidasestascosassepuededibu- armoypruebodirectamenteelcircuito?
jar el circuito completo de un sencillo “entrena- novaafuncionarporqueelPICnoestáinstrui-
dor”,quenosvaapermitirverificarsihemospro- dopararealizarningunafunciónylosLEdsvana
gramadoycargadobienaunchip. permanecertodosencendidos.ElPICtieneuname-
observeprimeroenlafigura1lasecciónperi- moriainternaquedebecargarseconnúmerosbi-
férica imprescindible. El clock está generado por nariosde8dígitos;exactamentetiene48posicio-
unosciladorrCrealizadoconelPIC,r1yC2(ele- nesdememoria(numeradasdesdeel0hastael2F
gidos para obtener una secuencia completa que ennúmeroshexadecimales),endondeseleindica-
dureunsegundoaproximadamente),entantoque ráquétareadeberealizaroquédatosfijosdebe
elresetserealizaenformaautomática,cadavez cargarparaejecutaresastareas.
que se enciende el equipo, si bien en el circuito Ennuestrocasoactivartransistoresinternosen
puede no colocarse, es recomendable el uso de algunaspatasdelpuerto“B”(predispuestascomo
unaresistenciade10kΩentrelapata4delPICyla salidas)demododegenerarcortocircuitosmomen-
tensióndealimentación(r10).nuestrocircuitode táneosamasaenformasecuencial.
aplicación no puede ser
más sencillo, sólo utiliza-
mos ocho LEds sobre las
patas rB0 a rB7 (puerto
“B”)ysuscorrespondien-
tesresistoresdepullup(re-
sistores a fuente). nada
más simple y fácil de ar-
mar en un panel proto-
board. En la figura 2 se
muestra una sugerencia
de circuito impreso para
la placa verificadora del
entrenadordePICs. Figura 2
24
3-CarGadorESdEPICµCYEEProM
Figura 3
queexistanmásdeunasalidaparalelo)siemprese elquemanejaelprogramador,porlotanto,antes
usaelpuerto1.Pulselatecla“1”parapasarala de cargar el PIC debemos generar este archivo
siguientepantallaquepodemosobservarenlafi- “hex”.
gura6. S)SeleccionareltipodePIC.Ennuestrocaso
En esta pantalla se confirma que se está utili- elPICyafueseleccionado,peropodríamosnece-
zandoelpuerto1yqueestepuertotieneunapo- sitaruncambiosidebemosprogramarmásdeun
sicióndememoria378h(paraWindows98,para tipo.
otrosistemapuedeserotraposiciónyquienessa- E) Borrar un PIC previamente grabado. En lo
ben de computadoras también conocen la forma personal,aconsejoborrarelPICcomopasoprevio
de modificar esta dirección si hiciera falta). ade- alagrabaciónporrazonesdeseguridad.
más el programa indica que V)Verificarelprogramacar-
sedebeconectarlafuente,pe- gadoenunPIC.Enestafunción
romanteniendoelPICsinubi- secargaunprogramahexadeci-
carenelzócalo(base).Luego malyelcargadorverificaqueel
debemos apretar la barra es- programaalmacenadoenelPIC
paciadoraparairalasiguien- seaigualalhexadecimal.
tepantalla(figura7).
Enestapantallaelprogra- Porlogeneral,elarchivode
manosindicaquesólosopor- programa que tenemos disponi-
ta tres tipos de PICs y debe- ble tiene una extensión “.asm”
mosoptarporunodelostres, (más adelante veremos este te-
pulsando las teclas C, F o 3. mamásdetalladamente)queco-
también se puede hacer una rresponde a la versión “assem-
verificación del funcionamien- Figura 8 bler” (ensamblado), nemotécni-
todelcargadorpulsandolate- ca o nemónica del microcontro-
clat. ladorconelquevamosatraba-
Luegodepulsarlateclaco- jar. Como el cargador de PIC
rrecta(porejemplolaC)apa- no entiende ese idioma, el pro-
receunanuevapantallacomo gramase“pasa”porunprogra-
laindicadaenlafigura8.Es- ma traductor llamado MPaSM
tapantallasólonosindicaque (esuncompilador)queademás
es el momento de insertar el delatraducciónrealizauncon-
PICenelzócalo(notequeya trolypermitedepurarerroresy
aparece la palabra puede bajar sin cargo de la
PIC16C84,indicandoqueva- web.
mosacargaraesteµC).aho- Para programar el PIC (op-
radebeconectarlafuentede ciónP)antesdebemoscargarel
alimentación y apretar la ba- programa“.hex”enelnoPPPy
rraespaciadorademodoque para ello presionamos la letra
aparezcan las opciones de “L” de “load hexadecimal file”
Figura 9
manejo, tal como se muestra cuyatraducciónexactaes“car-
enlafigura9.Enestapanta- gararchivohexadecimal”.apa-
lla podemos elegir la opera- recerá una pantalla como la
ción que deseamos realizar mostradaenlafigura10.
entrelasopciones(selecciona- Escribaelnombredelarchi-
blesporlasteclasrespectivas) voacargaresdecir,porejem-
L, S, E, y V que tienen las si- plo secua.hex, teniendo en
guientesfunciones: cuentaqueestearchivodebees-
tar dentro de la misma carpeta
L)CargarelPICconunar- dondesealojaelnoPPP(sino
chivoquedebeserdeltipohe- Figura 10 sabemanejardoShagaalpie
xadecimal.Esteformatonoes delaletraloqueleindicamos).
27
El archivo “secua.hex”, que cienden en secuencia una y
también puede bajar de nues- otravez.
tra web con la clave tepec26, Prueba
correspondeaunsecuenciador Preliminar
de4canalesquepodráprobar delnoPPP
conlaplacaverificadora.
Unaveztipeadoelnombre Si ejecuta el noPPP y no
delarchivoaprietelateclaEn- estáconectadoelhardwareen
tErparaquesecargueelpro- elpuertoparalelodelacompu-
gramaenelnoPPPyelresul- tadora, luego de apretar la te-
tado de la carga se observará cla “1” (cuando lo solicita el
en una pantalla como la mos- Figura 11 programa) va a aparecer una
tradaenlafigura11. pantalla como la indicada en
En esta pantalla se pueden lafigura12.Estapantallalein-
observaralgunosdetallesdeltamañodelarchivo dicaqueeldispositivoestádesconectado(noPPP
“.hex” desglosado en cantidad de palabras de hardware not found), si está conectado significa
programa, de configuración, de identificación y quesuPCtieneunpuertoparalelodeidasolamen-
dedatos.tambiénapareceunaindicacióndeque te(envíaseñalesalaimpresora,peronorecibeto-
elprogramafuecargadocompleto.Porúltimose daslasseñalesderetornodesdelamisma).Enes-
indica “apretar la barra espaciadora para conti- te caso ignore la pantalla que le va a aparecer
nuar”conlocualaparecenuevamentelapantalla siempre.Puedetambiénaparecerestapantallasi
deopciones. estámalarmadoelcargadoroelcabledecone-
ahora podemos programar el PIC eligiendo xión. Ignore la indicación, ya que en el proceso
“P”(ProGraMPIC).Seobservaráunmovimiento posteriorapareceráelmododerepararlafalla.Si
en la pantalla y unos desea salir del progra-
segundosdespuésapa- ma debe pulsar las te-
recerá un cartel indi- clas Ctrl y C al mismo
candoquelacargafue tiempo o debe hacer
exitosa. recuerde que click sobre la crucesita
elnoPPPcargarálos que está en el margen
datosenlamemoriay superior derecho. Para
luego los irá leyendo; continuar,ignorandoel
sielúltimodatosecar- mensaje,pulselabarra
gócorrectamentepasa- espaciadora.
ráacargarelsiguiente La siguiente panta-
y así sucesivamente lla es la que ya vimos
hastallegaralúltimo. en la figura 7 donde
Posteriormente el Figura 12 debeelegirundetermi-
programaindicaráque nadotipodePICopue-
se debe quitar la ten- de realizar el tESt de
sión de alimentación y prueba del PIC. La pri-
luego sacar el PIC del mera vez que conecte
zócalo. el hardware acepte la
Cumpla con las in- propuestaderealizarel
dicacionesycoloqueel auto diagnóstico pul-
PIC programado en el Figura 13 sando “t”. Si recibe
zócalo(base)delentre- una pantalla como la
nadordelafigura1.Y mostrada en la figura
por último alimente el 13significaqueelcar-
circuito y observe los gadornorecibetensión
leds.Sitodosalióbien de fuente. Si su fuente
observará que se en- está activa aparecerá
28
3-CarGadorESdEPICµCYEEProM
Figura 19
Conesteproyectosepuederealizarunprogra- -PIC16C62x
mador para PICs y EEProMs de la serie 24LXxx -PIC16C71
quefuncionabienyrequierepocoscomponentes -PIC16C71x
externos. El circuito está basado en el “Luddi” o -PIC16C8x
programadordeJdM(vea:www.jdm.com),siendo
-PIC16F8x
compatible con diferentes softwares cargadores.
Sehaprobadoendiferentescomputadorasdesde -PIC16F873/4/6/7(Modelosde28patas)
-PIC16C73B/74B/76/77
-EEProMsdelaserie24LCxx
Enlafigura19semuestraelcircuitodelcarga-
dor, en la 20a la placa de circuito impreso pro-
puestayenla20blamismaplacaperodellado
deloscomponentes.
Eltamañodelcargadoresbastantereducidoy
posee bases (zócalos) para la mayoría de los
chipsquepuedeprogramar(siempreenencapsu-
Figura 20a ladodILnoentSoP,SMdniotrosformatos).
31
Figura20b Existenmuchoscargadores,sinembar-
go, desarrollamos este prototipo para
usuariosdePICsmásexigentes.
Este nuevo prototipo les permitirá pro-
gramar PICs más poderosos como el
PIC16F873 (de 28 pins) , el PIC16F874
(de 40 pins) o pics mejorados como el
PIC16F627.
Existen,enInternet,muchosprograma-
doresdepicsdeusolibre,comoelJdM,el
taIt, el ProPIC 2 y el taFE, entre otros
Sibienesposibleutilizardistintostiposdesoft- muchos.Sinembargo,ningúnquemador(progra-
wares, hemos realizado experiencias con el ital- mador) funciona sin un programa que lo opere,
que,eldesden,elpixyelicprog.Esprecisamente paraelloexistentambiénmuchosutilitarioscomo
elicprogelquepermite“cargar”acasitodoslos elIC-ProG,elPIC-aLL,elnoPPP,elPonY-ProG,
chipsindicadosylopuedebajargratuitamentesi- etc.(muchosdeusolibre).
guiendolospasosquemencionamosanteriormen- Cada programador y cada programa posee
te,utilizandolaclavedeacceso:aiwa15. sus propias ventajas y desventajas, lo importante
El programa pix se puede usar para los esescogerunprogramaqueseacompatibleconel
PIC16F8x y PIC16C8x, es rápido y permite bas- programadorelegido.
tantes opciones. Para las EEProM 24LCxx, pue-
denemplearsetantoelIcprogcomoelPIX. ¿Por qué basar el diseño en el programador
Paralos12C508/ay12C509/alomásse- JdM?
guroesusarelprog508yelprog509(vealosfo- Enprincipio,paraprogramarunPICserequie-
rosPSX)yquesepuedendescargardelapágina redeunafuentede5voltparaalimentarlo(Vdd)
deJdM. y otra fuente de 13 volt para programar o “que-
Lalistadematerialesdelcargadoruniversales mar”elPIC(Vpp)loqueimplicaquedebemoste-
lasiguiente: nerdosfuentesdevoltajepararealizarlaopera-
ción,loquedeentradanoselevaríaelcosto.
C1-22µF,16vtantalio/Electrolítico
EnelJdM(véasewww.jdm.homepage.dk)ca-
C2-100µF,16vtantalio/Electrolítico bedestacar“loingeniosodeldiseño”yaqueem-
C3,C4-0,001µF-Cerámico plealosvoltajesdisponiblesdelpuertoseriedela
d1,d2,d3,d4-1n4148 computadoraparaque,medianteunarreglocon
diodosycapacitores(llámesemultiplicadordeten-
d5-5.1V1/2W
siónintegradopord3,d4,d5,d6,C1YC2)se
d6-8.2V1/2W puedanobtenerlosmásde13Vnecesariospara
J1-Zócalo24LCXX8Patillas programarcualquierPIC.
J2-ZócaloPIC18Patillas Estonosofreceunagranventaja,yaqueno
requerimosfuentedealimentaciónexternaalguna
J3-ZócaloPIC28Patillas
convirtiendoelprogramadorenuncircuito“pará-
P2-ConectordB9Hembra
sito”queennuestrocasosealimentadelpuerto
Q1,Q2-BC548B serie de la computadora, logrando así abatir el
Q3-BC558B costomásaltoquerepresentanlasfuentesdeali-
r1-100kΩ mentación.
otra ventaja que ofrece este programador es
r2-10kΩ
quenorequerimosdeunlimitadordecorrientepa-
r3-1k5 raelcasodeinsertarunPICdañado,yaqueelcir-
cuitorS232delpuertoseriedelaPCtienesupro-
piolimitadordecorriente.Sinembargo,nopode-
ahora bien, como hemos dicho, existen mu-
mostenertodalagloria,yaqueparalosquese
choscircuitoscargadoresdePICsquesepueden
dedicanalaprogramación“insitu”,esdecir,los
bajardeInternet.
32 queprogramanlosPIC’senelmismocircuitodon-
3-CarGadorESdEPICµCYEEProM
Figura 22
Figura 23
deoperayelcualsediseñaconun
conector especialmente destinado
para la programación, este progra-
madorocargadordePIC’snofuncio-
na ya que la tierra del circuito no es compatible software(IC-ProG),basadosenelquefueramás
conlatierraflotantedenuestroprogramador.Pa- compatible.ElIC-ProGofrecevariasventajas:La
ratalcaso,sesuponequelosquerealizanesteti- primeraesqueesdentrodesumenúofreceopcio-
podeprogramaciónsededicanprofesionalmente nes importantes como la posibilidad de seleccio-
aello,yporendecontarántambiénconunprogra- narelpuertoautilizar,asícomoelprototipode
mador profesional que tenga sus propias fuentes programadorautilizar;lasegundaesqueelpro-
de alimentación. Cabe recordar que el objetivo gramaofreceunambientedetrabajomuyamiga-
principaldenuestroprototipoesqueseaeconómi- ble,yaqueesteprogramaygraciasalasaporta-
co,fácildeusaryconfiable. cionesdemuchoscolaboradoresdetodoelmun-
Enlafigura21semuestraeldiagramaesque- do, está traducido a varios idiomas y tercero es
máticodelprogramadorJdM.Enlafigura22se queescompatibleconlamayoríadelossistemas
muestraencircuitoimpresosugerido. operativos de la PC, además que con frecuencia
estándisponiblesdemaneragratuitaversionesac-
¿PorquéutilizarelprogramaIC-ProG? tualizadas(véasewww.ic-prog.com).Enlafigura
Con el mismo criterio que seleccionamos el 23semuestraelambientedetrabajodeestepro-
hardware (programador JdM), seleccionamos el grama.
Figura 21
33
Si usted ha trabajado con ambientes
de programas diferentes, podrá observar
queelambientedelIC-Progdisponedehe-
rramientasdetrabajomuycompletas.
Paracargarunprogramaenunmicro-
controlador PIC se requiere de una serie
de parámetros básicos, tal como hemos
vistoyelQuarkPro2noeslaexcepción.
Lastensionesnecesariasson:
Vdd=Voltajedealimentaciónde5V
VSS=referenciadetierradelcircuito
VPP=Voltajedeprogramaciónde14V
PGd=datosdeprogramación
PGC=Pulsosderelojparalasincroni-
zación
Enlafigura24semuestraelcircuitoeléctrico maciónVPP,cargandoelcapacitorC2yestabili-
delprogramadorQUarK-Pro2.Comopuedeob- zandoconeldiodozenerd6(8.2V)elcualsesu-
servarnoexisteningunafuentedealimentaciónex- ma al voltaje del zener d5 (5,1V), obteniéndose
terna.Elcircuitosealimentadelpuertoserialdela así 13.3 Volt suficientes para realizar la progra-
PCatravésdelconectordB9.Elvoltajedealimen- macióndelPIC.SehanadicionadoelLEdL1pa-
taciónVddseobtienedelosmismospulsosdere- ravisualizarelprocesodegrabaciónolecturadel
loj(pin7deldB9),loscualessonrectificadospor PIC,asícomoelLEdL2paraindicarqueelcircui-
losdiodosd3yd4yestabilizadoa5voltmedian- toseencuentraalimentado,además,sisecoloca-
teeldiodozenerd5(5.1V)yelcapacitorC1.de raunPICencorto,esteLEdseapagaráobajará
lamismamanera,seobtieneelvoltajedeprogra- significativamentesuintensidad.
Figura24
34
3-CarGadorESdEPICµCYEEProM
y tenga conflictos
en la ejecución
delIC-Prog.
abra el archi-
voconWin-Zipy
ejecute el progra-
ma icprog.exe (fi-
gura27)parains-
talarlo. Una vez
que haya hecho
esto, aparecerá
un ícono de acce-
so directo a su
programa (figura
28)quelepermiti-
rá abrir directa-
mente en progra-
Figura 25 ma cuando lo de-
seeutilizar.aleje-
cutar este ícono
aparecerá una
ventana del pro-
grama(figura23).
ahora sólo queda
probar su proyec-
to. Conecte al
puertoserialdesu
PC el programa-
dor y el led rojo
(L2)deberáencen-
der. Seleccione
cualquierdispositi-
vo y elija la op-
ción“programar”,
ejecute y observe
el led verde (L1).
Este deberá en-
Enlafigura25semuestraelcircuitoimpreso
cenderconformeselleveacaboelproceso.Sito-
sugeridoparanuestroprototipo.
dovabien:–felicidades!,suproyectofunciona.Si
Unavezquehayaarmadosuprototipodepro-
tienealgúnproblemaoduda,porfavorescribaa
gramador(quemador)QUarK-Pro,yatienelisto
ateclien@webelectronica.com.ar y con gusto lo
suhardware,ahoralefaltaelsoftware,quepara
ayudaremos.
nuestrocasohemossugeridoelIC-ProG.
VayaalapáginadeInternetwww.ic-prog.com
acontinuacióndamoslalistadematerialesde
eingresealáreadedescargas(download),ahíen-
estecargador:
contrarávariasversionesdeesteprogramatalco-
mosesugiereenlafigura26.
U1-Base(zócalo)paraCIde8pins
descarguelaúltimaversiónyguárdelaenuna
U2-BaseparaCIde18pins
carpetadesudiscorígido.tambiéndescargueel
U3-BaseparaCIde28pins(usar2bases
archivoIC-Prognt/2000driveryguárdeloenla
de14pins)
mismacarpeta,porquepuedeserleútilencasode
U4-BaseparaCIde40pins
queestéusandounsistemaoperativoWindowsXP
dB9-ConectordB9hembra 35
Figura 29
Figura26
ProGraME
dI,d2,d3,d4-diodo1n4148
d5-diodozenerde5.1V1W MICroControLadorES
d6-diodozenerde8.2V1W Con EL ICProG
Q1,Q2-transistorBC547C
Q3-transistorBC557C
C1,C2-Electrolíticosde470µFx25V
C3,C4-Cerámicosde0.001µF Conelusodelcargadoruniversaldemicrocon-
r1-resistenciade100kΩ troladores, el software IC-ProG permite progra-
r2-resistenciade10kΩ margrancantidaddedispositivoselectrónicos.
r3-resistenciade1.5kΩ a continuación nos vamos a referir, breve y
r4-resistenciade1kΩ únicamente,alaprogramacióndedispositivosPIC
r5-resistenciade2.7kΩ deMicrochipdeltipo16F84,16F873y16F876.
L1-diodoLedverde Elmaterialmínimonecesarioeimprescindible
36 L2-diodoLedrojo para la programación de los microcontroladores
3-CarGadorESdEPICµCYEEProM
PIC,eselsiguiente: partirdeahorasesuponeeles-
Figura 30
pañol).
1) Software de programa-
ciónIC-ProG. Elpasosiguienteesconfigu-
2)Cableserieconconecto- rarelhardwarenecesariopara
res dB9 hembra – hembra, programar los microcontrolado-
prolongadorsinningúntipode resPIC.
cruceentresusuniones(seco- Enlaplacadeprogramació-
nectan los pines correspon- n/utilizaciónqueseharealiza-
dientes del mismo número en do,lapartedelcircuitoquese
cadaextremo). encarga de la programación,
3) Placas de programa- está basada en el programa-
ciónyusocomoladelQuark dortipoJdM.
Pro 2 (figura 29), el Pony En pantalla principal de
Quark, o el clásico noPPP IC-ProG,podemosaccedera
(figura30). laconfiguracióndelhardware
LosmenúesprincipalesdeIC-ProGtienenun
íconográficoenlapantallaprincipal,detalforma
queconestosíconosprácticamentesepuedeleer,
borrar,programaryverificarcualquierdispositivo.
abrirunnuevoarchivo
Configurarelhardware
Leerunchip
Borrarunchip
Figura 33
Mostrarenensamblador
Guardarelbufferaunarchivo
opciones
Grabarunchip
Verificarunchip
Mostrarenhexadecimal
Figura 34
EnlapantallaprincipaldelIC-ProGsenospre-
senta toda la información relativa al dispositivo en
cuestión(vealafigura33). y la posible identificación del microcontrolador, si
Esta ventana muestra el tipo de dispositivo que éstelotuviera.
sehaseleccionado.Pulsandoenlaflechadelaven- debajo de la pantalla principal podemos ver
tana podemos elegir cualquiera de los dispositivos queexistenunaspestañasparaindicarelcontenido
soportados por el software de programación IC- de5buffersdiferentes(figura34).
ProG (también se puede elegir el dispositivo me- disponemosde5buffersdiferentesdondealma-
diantelapestañaajustes ylaopcióndispositivo). cenardatosenmemoria.Encadaunodeestosbuf-
tambiénsepuedenverlasopcionesdeconfigu- ferspodemosteneralmacenadoelcontenidodeun
racióndeldispositivoseleccionado. chipobienelcontenidodeunfichero.
Se muestra información del tipo de oscilador Conlosdatoscontenidosencualquieradeestos
usadoporelmicrocontroladorencuestión(rC,Xt, bufferssepuederealizarcualquieradelasoperacio-
HS). nesquehemosvistoenlosíconosanteriores.Esde-
tambiénsemuestranlosdiferentesbitsdeconfi- cirquesepuedenguardarenunarchivoendisco,
guraciónquetieneelmicrocontrolador.Estosbitsse- obiensepuedeprogramarunchipconellos.tam-
rándiferentesparacadaunodelosmicrocontrola- biénsepuedecompararelcontenidodeestosbuf-
dores utilizados. Los de la imagen son los bits de fers entre sí para saber si existen diferencias entre
configuracióndelPIC16F84,yquemuestraneles- ellosono.
tado del Wachtdog (Wdt), el Power on reset
(PWrt)ylaproteccióndecódigo(CP).
Sielprogramayatieneunapalabradeconfigu- aJUStES
racióndeterminadaaquíapareceránestasopciones
marcadas. Cuandoseleccionamoselidiomadeutilización,
Enelcasodesequieramodificarelestadode vimoslapestañaajustes yelcomandoopciones del
algunodeestosbits,bastaconmarcarloonoenes- principal.Vamosaverahora,unpocomásendeta-
tapantalla. lle,losajustesnecesariosparaelcorrectofunciona-
tenemos, además, información del checksum mientodelprograma.
38 (chequeoquesegeneradetodoelficherodedatos), Loscomandosposiblesdeestapestañasonlos
3-CarGadorESdEPICµCYEEProM
siguientes: programación.
dispositivo. Sirve para activaremos la casilla de
elegir el dispositivo con el verificar tras la programa-
que queremos trabajar. ción, para que el programa
(16F84). cada vez que realice la pro-
dispositivos recientes. gramación de un chip, auto-
Muestraeltipodelosúltimos máticamente después de es-
dispositivosutilizados. cribirelchip,verifiquequeel
tipo Hardware F3. aquí contenido del chip es el mis-
se elige el tipo de hardware moqueelbufferactivoenese
Figura 35
que vamos a usar para pro- momento.
gramareldispositivoelegido alactivartambiénlacasi-
anteriormente (JdM Program- lladeVerificardurantelapro-
mer). gramación, lo que le indica-
Pruebahardware. Sepuederealizarunaprueba mosalprogramaesquecadabloquededatosque
dequeelhardwareelegidoestáconectadoalorde- escribaenelchipvayacomparandoquesehaes-
nadorenelpuertoelegido,yporlotantoestálisto critocorrectamente,leyéndoloyverificandosucon-
parausarse. tenidoconelbufferactivo.
opciones. desdeestecomandosepuedenreali- Estohacequeeltiempoempleadoenprogramar
zarlasconfiguracionesquevanahacerqueeluso un chip sea mayor, pero también nos aseguramos
deIC-ProGseamuchomássencillo,prácticoyade- de que los errores de programación son mínimos.
másfiable(vealafigura35). otradelaspestañasquesepuedenconfiguraresla
Veamos,acontinuación,loscambiosarealizar delosatajos,paraquenosseamuchomásfácilel
paraqueestesoftwarequedeadaptadoanuestras usodelprograma.
necesidades. Comoelnúmerodedispositivosquepuedenpro-
Elidiomayalocambiamosalprincipiodeesta gramarseconestesoftwareesmuygrande,median-
guía,asíesquevamosaconfigurarlasopcionesde teestosatajospodemoshacerqueelegirunouotro
paratrabajarconélseamuysencillo(vealafigura
36).Bastaconelegiraquílosmásutilizadosyasig-
narles una de las combinaciones de teclas que se
muestran,paraquedespuésdesdelapantallaprin-
cipal baste con teclear la combinación de teclas
CtrL+F1paraqueautomáticamenteeldispositivo
elegidoquedeseleccionadoenelbufferactivo,con
elconsiguienteahorrodetiempo(figura37).
Enelcasodetrabajarconlossistemasoperati-
vosWindowsnt,Windows2000oWindowsXP,
Figura 36 comoyasecomentóanteriormentesedeberátener
enelmismodirectorioqueelarchivoejecutablede
IC-ProG,elficheroicprog.sysparaWindowsXP,y
ademásdeesto,activarlaopcióndeHabilitardri-
ver nt/2000, que se encuentra en la pestaña de
Misceláneadeestaopcióndeajustes.Estaopción
solamentepodráactivarseenunodeestossistemas
operativos,yaqueenWindows95,98óMenose
encuentraactiva,comopuedeverseenlasiguiente
pantalla.
Elrestodeopcionesquepuedanaparecerestán
configuradas por defecto, para un correcto funcio-
namientoenlamayoríadelosordenadoresysiste-
Figura 37 masoperativosactuales,yencasodedudasiempre
sepodráaccederalaayudaenlíneaenlapágina
webwww.ic-prog.com.
39
Figura 38
ProGraMaCIón dE Un
PIC16F84 Figura 39
Lospasosqueexponenacontinuación,son
prácticamenteidénticosencualquiertipodedis-
positivo a programar, con las únicas variacio-
nesdelascaracterísticasparticularesdecadaunode ellos se puede hacer clickeando directamente sobre
losdispositivos,peroelprocesosepuedegeneralizar él. también se puede cambiar el tipo de oscilador
paracualquieraqueseaeldispositivoaprogramar. conquetrabajarálaaplicaciónunavezcargadaen
SesuponequeelsoftwareIC-ProGyaseencuen- elPIC.Siennuestraaplicaciónnoseprogramónin-
traconfiguradocomosehaexplicadoanteriormente, gunapalabradeconfiguración,senosmostraránlos
ytambiénelhardwaredeprogramaciónseencuentra datospordefectodelprograma(osciladortiporCy
conectadoyconfiguradocorrectamente.(Encasode WatchdogWdtactivado).
quenoseaasí,seruegaleerestedocumentodesde Cualquieradelasáreasdedatos(códigodepro-
suinicioyseguirlaspautasmarcadasporelmismo). gramaodatosEEprom),puedeseraquímodificada,
• abrir el archivo que contiene los datos a pro- yaqueestesoftwarepermitelaedicióndelosdatos
gramarenelPIC16F84(vealafigura38). queestánpresentesenelbufferdelordenadorantes
deserenviadosalPIC.Estodeberáhacerseconsu-
Medianteelícono obienconlapestaña mocuidadopueslaedicióndelosdatossellevaráa
archivo yelcomandoabrirdatos,seaccedealdirec- cabo en hexadecimal directamente, con el consi-
toriodondeseguardanlosarchivos,comoseobser- guienteriesgodecometererroresycausarunmalfun-
vaenlafigura. cionamientodelprogramacargado.
Los ficheros de datos que usan para programar
un PIC, normalmente tendrán la extensión .hex (for- •ProGraMar EL PIC16F84
matoIntelhexadecimalde8bits). Paraprocederalaprogramaciónfísicadelchip
•ajustarlapalabradeconfiguraciónyeltipode
oscilador. delPIC,bastaconclickearsobreelícono ,o
Una vez cargados los datos del archivo corres- bienactivarlapestañaComando ydespuésProgra-
pondiente,lapantalladelIC-ProGpresentaráunas-
pectocomoelmostradoenlafigura39.
Se observa que los datos se han cargado en el
área de código de programa y si existieran datos
tambiénenlaEEprominternadePIC. Figura 42
Enelcasodequesehayaprogramadolapala-
bradeconfiguración,losbitscorrespondientesapa-
recerán marcados. Si se quiere cambiar alguno de
Figura 40 Figura 43
Figura 41
40
3-CarGadorESdEPICµCYEEProM
mar todo, o bien pulsar la tecla de función F5, de contenidodelchipenlaprimeraposicióndememoriadel
cualquieradeestastresformas,ydespuésdesolici- mismo0000h.
tarnosconfirmacióndelaordendada,elchipcomen- Esteerrorsueleestarmotivadoporalgúnfalloenla
zaráaserprogramadoconlosdatoscargadosenel comunicación entre el ordenador y el programador, tal
bufferactivo. comounamalaconexióndelcableserie,ounacoloca-
El proceso de grabación se nos irá mostrando, ciónerróneadelPICenelprogramador,ohastaincluso
talcomopuedeverseenlafigura40. portenermalconfiguradoelpuertoserieconelqueco-
El tiempo empleado en la grabación del PIC municamoselordenadoryelprogramador.tambiénpue-
16F84 dependerá de la rapidez del ordenador en deestarproducidoporqueelPICqueestamosintentando
queseestétrabajando. programarseencuentredefectuosoosehayaestropeado
despuésdeprogramarelcódigoseprogramarán porunmaluso.
losdatosdelamemoriaEEpromyposteriormentela Cuandoapareceesteerrorpodemostratardeevitar-
palabradeconfiguracióndenuestroprograma,todo losiguiendolospasosqueseenumeranacontinuación:
ello sin requerir para nada la atención del usuario. •Loprimerodetodoesasegurarnosdequenohe-
Veaenlafigura41comoquedan,enformaautomá- mosseleccionadolaproteccióndecódigoCPenlosbits
tica,losbitsdeconfiguración. deconfiguración (Esteesunerrormuytípico,yenesteca-
Unavezterminadalaprogramaciónseprocede- soelprogramaleeríalos8primerosbytesdedatoscomo
ráautomáticamentealaverificacióndelosdatoses- ceros,dandoportantoelerrordeverificaciónenlapri-
critosenelchip(recordarqueseactivólaverificación meradirección).
traslaprogramación). Unavezcomprobadoquenosehaelegidolaopción
delprocesodeverificacióntambiénsenosiráin- deproteccióndecódigoparaprogramarrelPIC,podemos
formando,talcomomuestralafigura42. probar con las siguientes comprobaciones del software y
Seránverificados,igualmente,elcódigodepro- hardwarequeutilizamos:
grama,losdatosdelamemoriaEEpromylosbitsde •ComprobarqueelPICseencuentrabienintroduci-
lapalabradeconfiguración.Enelcasodequelave- doenelzócalodelprogramador.
rificaciónhayasidocorrectasenosinformarádetal •Verificarqueelcableserieestábienconectadoen
hechomediantelaventanarepresentadaenlafigura susdosextremos,tantoenelconectordelprogramador
43,yelprocesodegrabaciónhabráfinalizado. comoeneldelordenador.
Unabuenaprácticaparaevitarerroresenlapro- •asegurarnosdequehemoselegidoenajustestipo
gramación,esladeunavezterminadoelprocesode Hardware, el tipo de programador correcto y el puerto
grabación,comosehadescriptohastaaquí,irala CoMadecuado.
seccióndeleerdispositivoypreviocambiodelbuffer •Comprobarqueeldispositivoelegidoeselquees-
activoleerdenuevoelPICprogramadoyprocedera tamos realmente programando (PIC 16F84 ó PIC
la comparación entre los contenidos de los dos buf- 16F84a).
fers, es decir comparar el archivo con el contenido •Comprobarqueenningunodelosajustesrealiza-
delPIC.Enrealidadestamosvolviendoarealizarla doshemosvariadolasconfiguracionesrelativasalaspa-
comprobación que ya se ha realizado automática- tillasdeVccparaeltipodeprogramador(JdM)utilizado.
mente al programar el dispositivo. Esta nueva com- Enelcasodequeningunadeestascomprobaciones
probacióntraeconsigoelempleodemástiempo,pe- dieraunresultadoquenospermitavolveraprogramarel
roavecesmásvaleprevenir… PIC,lomejoresrepetirlaprogramaciónconotrochipque
estéenbuenestado,paradescartarcompletamenteque
elfalloestéenelsoftwareohardwaredelordenadoro
programadorypoderasegurarquesetratadelchipque
seencuentraenmalestado.
ErrorES FrECUEntES
Cuandosetrabajaenunodelossistemasoperativos
En La ProGraMaCIón Windows XP, Windows nt o Windows 2000, además
delanteriorsepuededarelquesemuestraenlafigura
Cuandoporalgunacausalaprogramaciónnoserea- 45.
lizacorrectamente,elprogramanosinformarádeellome- Esteerror,enrealidad,estáindicándonosqueelsis-
dianteelavisooportuno.
El error más frecuente en
laprogramacióndeunPICes
elquesemuestraenlafigura
44,quenosinformadequese
produjounerroralverificarel Figura 44 Figura 45
41
temanopuedeaccederalospuertosdelordenadorypor 16F84.Lostiposdeosciladorquepuedenelegirse(rC,
tantoalprogramadorconectadoaellos,ycomoseindicó LP,Xt,HS),sonlosquemarcaelfabricanteMicrochip
anteriormente para solucionarlo se deberá instalar el ar- paraestetipodedispositivos.Laproteccióndelcódigo
chivoicprog.sysenlacarpetadondeseencuentraeleje- denuestroprograma,queenelcasodelPIC16F84sola-
cutableyademáshabilitareldriverparant/2000 enlas mentepodíaactivarseonohacerlo,enestetipodedispo-
opcionesdeMiscelánea enlapestañadeajustes. sitivossepuedeelegirentremantenerlasinactivar,prote-
Una vez habilitado este driver el programa pedirá gertodoelcódigo,obienprotegerloporpáginas,como
volverainiciarse,yapartirdeesemomentoyaestáper- seobservaenlasfiguras46y47.Elrestodelosbitsque
fectamente habilitado para realizar la programación de forman la palabra de configuración (Wdt, PWrt, Bo-
losdispositivosnecesarios. dEn,LVP,CPd,Wtr,dEBUGGEr)sepuedenactivaro
desactivar simplemente con clickear sobre la casilla co-
rrespondiente.
ProGraMaCIón Si cuando se escribió el
programa fuente, bien en en-
dE Un PIC16F87X sambladorobienencualquier
otrolenguajedealtonivel,co-
todoloexpuestoanteriormenteparaelPIC16F84es mopuedaserelC,seactivaron
válido para los PIC’s de la gama más alta, del tipo algunosdeestosbits,cuadose
16F87X,conlaúnicadiferenciadequesucapacidades carga el archivo .hex en IC-
mayor(de4kba8kbdememoria),loqueharáquelosfi- ProG, estos bits aparecen ya Figura 46
cherosdedatosusadosseandemayortamañoyqueel automáticamente activados. Es
tiempoempleadoenprogramaryverificarundispositivo decir este software es sensible
seatambiénmásgrande. a la palabra de configuración
ComoenelcasodelPIC16F84,elprocesodepro- programada.
gramacióndeunPIC16F87X,secomponedelosproce- Losposibleserroresquese
sosdeaperturayedición(sieselcaso)delficherodeda- pudieranpresentarsonlosmis-
tos,grabaciónfísicadelchipyposteriorverificacióndel mos que vimos para el caso
contenidodelchipprogramadoconelficherodedatos. delPIC16F84,ysedeberáte-
EnlagrabacióndeunPIC16F87Xsemantienento- ner más cuidado si cabe que
doslosajustestantodesoftwarecomodehardwareque anteriormente para tratar de
hemosrealizadoanteriormente. evitar el Error de programa-
Solamentecambiarálaplacadeprogramaciónque cióndecódigoenladirección
seutilizará,yaqueahorausaremosladiseñadaapro- 0000h, ya que el tiempo em-
pósitoparaestosdispositivos. pleado en programar y verifi-
Enelcasodeutilizarotrotipodeprogramadorequi- carestosdispositivosesdelor-
valentesedeberátenercuidadodeconfigurarsusopcio- dende4y8vecesmásqueel
nescorrectamenteparaestetipodemicrocontrolador. empleadoparaun16F84.
Lospasosaseguirparalagrabación,sonlosmis- LECtUra dE Un Figura 47
mosqueparacualquierotrodispositivo,
se pueden esquematizar en la siguiente
lista.
•SeleccionarenIC-ProGeldisposi-
tivoaprogramarPIC16F87X.
• abrir el archivo que contiene los
datosaprogramarenelPIC16F87X.
• ajustar la palabra de configura-
ciónyeltipodeoscilador.
•Programareldispositivo.
Figura 48
Vamosaexplicarbrevementelorefe-
rentealosbitsdeconfiguraciónyeltipo
deosciladorelegido,puestoqueenestos
PIC´sdegamaalta,losbitsdeconfigura-
ción son bastantes más que en el PIC
42
3-CarGadorESdEPICµCYEEProM
PIC16F84
o Un
PIC16F87X
Lalecturadeundispositi-
vo mediante el software IC-
Figuras 49, 50 y 51
ProGyelprogramadorade-
cuado, es idéntica para to-
dos los dispositivos soporta-
dos.
Enestaobratodolorela-
tivoalalecturadeundispo-
sitivo se realizará sobre un
PICtipo16F873.
Esmuyimportanteselec-
cionar el tipo de dispositivo
que vamos a leer, pues el
programa IC-ProG al indi-
carle el tipo de dispositivo
ajusta automáticamente la
capacidad del buffer de lec-
tura al tamaño del PIC en Figuras 52 y 53
cuestión. reas. Una buena medida es cambiar el buffer activo y
asísielegimosunPIC16F873,veremosqueelbuffer volver a leer el chip para posteriormente comparar los
decódigodeprogramaseajustaaltamañode4Kbytes contenidosdeambosbuffersytenerseguridaddequela
de memoria (0000h – 0FFFh), mientras que al elegir el lecturahasidocorrecta.recordarquealleernoseverifi-
PIC16F876elbufferaumentasucapacidadhastalos8 canlosdatos.
Kb(0000h–1FFFh). Lacomparacióndelosdosbuffersdedatossereali-
alleerundispositivo,noserealizaunaposteriorve- zaenlapestañaBuffer conelcomandoComparar,ysila
rificación,conlocualsielbufferelegidoesdemenorca- comparaciónescorrecta,senosindicaelresultadotalco-
pacidadqueelPICleído,lasúltimosdatosnosealmace- mosemuestraenlasfiguras52y53.
naránenélyseperderásucontenido. Enelcasodequelacomparacióndelosbuffersde
noesnecesarioactivarningúnbitdelapalabrade datosdécomoresultadoqueéstosnosoniguales,elpro-
configuración,nielegireltipodeoscilador,yaqueuna gramanosiráinformandodelasdiferenciasquesevayan
vezleídoelPIC,seráelpropiosoftwareIC-ProGquien encontrandoentreunoyotrobuffer.
nosmuestrelainformacióndetodosellos,siesqueexis-
teenelprogramaleído. deestamanerapodemosaveriguartambiénlasdife-
renciasentreloscontenidosdeunchipyotroqueaunque
Pulsandosobreelícono comienzalalectura
esténprogramadosconelmismoprograma,nofuncionen
de los datos del chip, se-
cuencialmenteseiránleyen- TABLA 1
do el código de programa, 0000: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF ÿÿÿÿÿÿÿÿ
losdatosdelamemoriaEE- 0008: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF ÿÿÿÿÿÿÿÿ
promyfinalmentelosbitsde 0010: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF ÿÿÿÿÿÿÿÿ
configuración. El buffer de 0018: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF ÿÿÿÿÿÿÿÿ
códigodeprograma,yensu 0020: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF ÿÿÿÿÿÿÿÿ
caso el de la EEprom inter-
na,sellenaráconlosdatos
TABLA 2
leídos, y éstos se mostrarán
0000: 0000 0000 0000 0000 0000 0000 0000 0000 ........
enhexadecimal.Parapoder
0008: 0000 0000 0000 0000 0000 0000 0000 0000 ........
verlos en ensamblador se
0010: 0000 0000 0000 0000 0000 0000 0000 0000 ........
puede activar el íco-
0018: 0000 0000 0000 0000 0000 0000 0000 0000 ........
no delabarradeta- 0020: 0000 0000 0000 0000 0000 0000 0000 0000 ........
43
TABLA 3 todas las posiciones del PIC y una posterior lectura del
0000: FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿ mismo,paraverificarqueestáenblanco.
0008: FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿ SielPICestáprotegidocontralecturas(CPactivado)
0010: FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿ sucontenidoalleerloserádetodaslasposicionesa0,co-
mosemuestraenlatabla2.
0018: FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿ
Sisóloestuvieseprotegidaunapartedelcódigo,al
0020: FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿ
leerelPIC,lapartequenoestáprotegidaseleenormal-
correctamente,odeunficheroyotroquealensamblarlos menteylapartedecódigoqueestéprotegidaseleeráco-
noseanexactamenteiguales. motodaslasposicionesa0000.
Cuandounprogramaocupasólounapartedelame-
moriadecódigo,sileemoselPIC,elrestodeposiciones
noocupadasporelprogramaseleeráncomosiestuvie-
LECtUraS ESPECIaLES dE datoS senenblanco3FFF.LosdatosdelamemoriaEEpromson
de8bitsyporesoalleerlossiestánvacíossemuestran
SiunPICnohasidonuncaprogramado,oestácom- comosepuedeverenlatabla3.
pletamenteborrado,sucontenidoseráde3FFF(sonposi-
cionesde13bits),unapruebadeellosemuestraacon-
tinuación: ver tabla 1. Esta lectura de un PIC completa-
menteborradoesloqueseconocecomoverificaciónde
blanco,ypuederealizarseautomáticamentemediantela
VErIFICaCIón dE Un dISPoSItIVo
orden Verificar blanco, que se encuentra en la pestaña
Comando. aunqueyasehaexplicadoanteriormentequealrea-
Mástardeveremoslaopcióndeborradodeundis- lizarlaprogramacióndeundispositivo,ésteesautomáti-
positivo,queloquerealizaesunaescriturade3FFFen camenteverificado,enelmenúprincipaldeIC-ProGse
Borrado dE Un dISPoSItIVo
Cuandosequiererealizarelborradocompletodeun
chip,antesdeprocederaunanuevaprogramación,esto
sepuedehacerconelícono delmenúprincipal,
obienconlaopciónBorrartodo queseencuentraenla
pestañaComando.
Sidentrodelapestañadeajustes,enelmenúdeop- Figura 62
ciones lacasilladeBorrarundispositivo (comosemues-
traenlafigura57)estáactivada,antesdeprocederal
borradodelchip,senospediráqueconfirmemoslaop-
ción elegida mediante una panta-
lladeaviso,casodenoestaracti-
Figura 61
vadaestacasillanosepedirácon-
firmaciónyelchipseborraráper-
diendotodossusdatos.
Elborradodelchipsellevaa
caboenuntiempomuybreve,yal
finalizar el mismo se nos informa
dequeelprocesohafinalizado.
La comprobación de este pro-
cesosepuederealizardedosma-
neras:
1.Medianteunanuevalectura
delchip,locualnosdarácomore-
sultado que el buffer tendrá todas
susposicionesa3FFF.
2. realizando la verificación
delblanco.Encuyocasosenosin-
formarámedianteunapantallade
45
InStaLaCIón dE SU ProGraMador QUarK-
LISta1 Pro En dIFErEntES
SIStEMaS oPEratIVoS
U1-BaseparaCIde8pins
U2-BaseparaCIde18pins InStrUCCIonES
U3-BaseparaCIde28pins(usar2bases
de14pins) 1. asegúrese de tener instalado el programa WIn-
ZIP,delocontrario,instaleprimeroesteprograma.
U4-BaseparaCIde40pins
dB9-ConectordB9hembra 2. abra la carpeta IC-Prog , copie el programa
dI,d2,d3,d4-diodo1n4148 “icprog105c” y guárdelo en una carpeta. desde ahí
d5-diodozenerde5.1V1/2W extraigaelprogramaicprog.exe(EXCtraCt)alamisma
carpeta. En ese momento aparecerá en su carpeta un
d6-diodozenerde8.2V1/2W
íconoparaelaccesodirectoasuprograma.
Q1,Q2-transistorBC547C
Q3-transistorBC557C 3.Conecteelprogramadoralpuertoseriedesucom-
C1, C2 - Capacitor electrolítico de putadora.Elledrojodeberáencender.
1000µF/25V
C3,C4-Capacitorcerámicode0.001µF
r1-resistenciade100kΩ1/8W
r2-resistenciade10kΩ1/8W
r3-resistenciade1.5kΩ1/8W
r4-resistenciade1kΩ1/8W
r5-resistenciade2.7kΩ1/8W
L1-diodoLedverde
L2-diodoLedrojo
J1-Puentedealambre
Figura 63
Figura 64
46
3-CarGadorESdEPICµCYEEProM
4. abra el programa IC-Prog instalado (aparecerá la casilla “Ejecutar este programa.....” y seleccione
unapantallaigualalafig.61)yrealiceunaoperación Windows 98 preferentemente (puede probar con win-
de borrado, lectura o programación sin colocar ningún dows2000ont),seleccioneaplicaryaceptar.Cierre
PIC en el programador. Si todo va bien, el led verde laventana.
deberáencender.
d. abra normalmente el programa IC-Prog, selec-
5.Sinoenciendeelledverde,esquenoexistecomu- cione “ajustes de hardware”. ahí active la casilla
nicación con el programador. En este caso, vaya a WindowsaPI.Enestamismaventana,verifiquey/oselec-
“ajustesdehardware”(fig.63)yconfirmelasiguientecon- cione que el programador seleccionado sea “JdM
figuración: Programmer”yelpuertoserial(CoM)correspondiente.
Programador:JdMProgrammer Elretardonormalmentedebeestaren10,peroparaeste
Interfaz:directI/o casoajústeloa5.Vealafigura63.
retardo:(Muevaelcursora10)
Comunicación:(ningunacasillaseleccionada) E.realicelacomprobacióndefuncionamientodela
Puertos:(Seleccioneelpuertocorrespondiente.Sino mismamaneraqueenlospuntos4y5.
loconoce,pruebeconcadaunodeellos)
6.Paraconfirmarelcorrectofuncionamiento,instale Enlafigura64seveeldiagramaesquemáticoyen
unPICyselecciónelodelalibreríacorrespondientepara lalista1,loscomponentesutilizados.
configurarlo.Cargueunprogramaosimplementeescriba
enelbuffereditorcualquierdatodemaneraaleatoriay
programe su PIC. después abra otro buffer y realice la InstalacióndelMP-LaB
operacióndelectura.Elbuffer2deberácontenerlosmis-
1. SeleccionedelacarpetaMP-Lablaversiónmás
mos datos del buffer 1. Si esto es
reciente(6.40)yejecuteelprogramadeinstalación.
correcto....Felicidades....la comunicación del programa
2. dependiendo del sistema operativo que esté
con el programador es correcta, ha quedado perfecta-
usando, se pueden generar conflictos por actualiza-
menteinstaladoylistoparausar.
ciones. En este caso se recomienda utilizar una versión
anteriordelMP-Lab
47
3ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1
Tec Punta - Redes:ArtTapa 08/27/2013 15:29 Página 69
Semáforo con PIc
AntesdeempezarsuProyecto
A modo de resumen, digamos que la gran
ventajadelosPIcsradicaenqueexisteabundan-
tebibliografíagratuitadisponibleendistintaspla-
taformas (sin duda Internet ha contribuido a po-
tencializarestaventaja),losentornosdedesarro-
llosonprovistosporlamismamicrochipenforma
gratuitayselospuedeprogramarycargarcon
grancantidaddedispositivos.
existendiferentesmodelosdePIcs,estánlos
degamabajaconapenasunpuertodeentrada
y salida de datos de 6 patas como el
PIc12c508, los de mejor desempeño, entre los
queseencuentraelPIc16f84,condospuertosy
13pinesdeentradaysalidadedatosolosde
gama alta, como el PIc18c658, de 80 patas,
con40terminalesdeentradaysalidayprepara-
dosparatransmisionesdedatos,entreotrasco-
sas.
Sindudas,trabajarconunPIcrequierecono-
cimientosprevios,peropodemosdecirque,con
muypocosconocimientosdeelectrónica,esposi-
blediseñarcasicualquierproyecto,yhacerlofun-
cionaraunquenosepaprogramar.
Alrespecto,debemostenerencuentaqueto-
domicrocontroladorposeeensuinterioraunmi-
croprocesador,unamemoriaeePromendonde
sealojaelprogramaquedeberáseguirelmicro-
procesadorparaquehagaloquenosotrosespe-
ramos, una memoria de datos para la creación
devectoresyparapoderconducirlosdatosdes-
deyhaciaelexteriorypuertosparaqueactúen
comointerfazentreelcircuitointegradoyelexte-
rior.
elprogramaquetenemosqueintroducirenla
memoriadeprogramadelmicrocontroladordebe
51
Figura 1
construcción
delDiagramadeflujo
notequetantolosledspilotoscomolostran-
sistoresquemanejanlaslámparasestánconecta-
dosalosterminales6,7y8delPIcquecorres-
pondenalosbitsmenossignificativosdelPuerto
B(vealafigura2),osea,paraconstruirnuestro
diagramadeflujo,debemosrecordarqueusare- Figura 4
moslosbitsB0,B1yB2delPIc(podríamosha-
berempleadootraspatas,inclusohastadelpuer-
53
ciónnIPLe.cabeaclararqueutilizamosunDemo,que cómousarlo,escritoporelIng.AlbertoH.Picerno.Alos
puedeutilizarparasusproyectos.elDemoposeeva- fines prácticos, daremos una breve explicación de su
instalación y cómo hacemos para generar el código
riaslimitaciones,peroelprogramaoriginaltieneuncos-
toaccesible. “.asm”delsemáforo.
ParadescargarelDemosincargo,diríjaseanues- ParainstalarelDemodelnipleensucomputado-
tra página web: www.webelectronica.com.ar, haga ra,cópieloeneldiscorígidodesucomputadora,des-
clickenelíconopasswordeingreselaclavenip11.Po- comprímaloyluegoejecuteelarchivosetup.exe.elpro-
drábajartantoelDemocomoelartículoqueexplica grama lo guiará durante la instalación y le avisará
cuandolamismahayafinalizado(figura3).
Udsabrádóndehasidoalojadoelprogra-
Figura 5 madentrodesudiscorígido,porlotantoejecú-
teloydeinmediatotendrálapantalladebien-
venida(figura4).
Posteriormente (y sin que Ud. deba hacer
nada),sedesplegarálapantalladeconfigura-
cióndesistema(figura5)paraqueUd.coloque
laubicacióndondeestáelsoftwarecompilador
queemplearáparasusproyectos(nosotrosdiji-
mosqueemplearíamoselmPASm,razónporla
cualposteriormentevolveremosaestetema)yla
ubicacióndelprogramacargador(utilizaremos
el IcProG con el cual controlamos nuestro
QuarkPro2).
enestepaso,ysinrealizarmodificaciónal-
guna,hacemosclickeningresar.
AhoravamosalaventanaArcHIVoy,co-
mo se trata de un Demo, tenemos la posibili-
dadde“AbrirunProyectoexistente”(figura6),
Figura 6 por lo tanto seleccionamos esta opción y abri-
moselarchivoqueseencuentradentrodecar-
petaTUTorIAL_1que,asuvez,estádentrodel
directorio niple. Hacemos doble click sobre di-
chacarpetayensuinteriorapareceelarchivo
“Demo01_Quark.nPL”,loseleccionamos,apre-
tamos“abrir”ysedespliegalapantalladelafi-
gura7.
Vemoseldiagramadeflujocorrespondiente
alejemploqueelIng.Picernoutilizóparaexpli-
car el funcionamiento del programa. nosotros
vamos a modificar dicho diagrama para reali-
Figura 7
Figura 8
54
4 ? TRABAJANDO?CON?PICS?DESDE?CERO
zarelproyectocorrespondientealsemáforo.Paraello,
manteniendoapretadoelbotónizquierdodelmousese-
leccionamostodoslosbloquesdeldiagrama(vealafi-
gura8)yapretamoslatecladeleteparaqueseborren
todoslosbloques.Deestamaneranosqueda“lahoja
enblanco”paraquemodifiquemoselproyectoabierto
demododepoderhacereldiagramadeflujodelsemá-
foro.entiéndaseque“estamosmodificandoelproyecto
existente”yqueesteDemoposeesuslimitaciones,tal
comoyahemosexplicado.Paraarmareldiagramade
flujotenemosquedefinirquépatasdelPIcvamosaem-
plearparaencenderlaslámparasdelsemáforo.Deci-
mosentoncesqueusaremoslossiguientespines:
Luego,parahacereldiagramadeflujo,deberemos tequeenlapartederechadelprograma(debeejecutar
realizarlossiguientespasos: elprograma,abrirelproyectoexistenteyborrareldia-
gramadeflujoparapoderhacerelnuevodiagrama)le
1)Iniciamoselprograma. dicequetrabajaráconel“diagramaprincipaldenues-
2)configuramoselpuertoBcontodaslaspatasco- troproyecto”ytambiéntienelasherramientasparatra-
mosalida,sólonosinteresanlos3bitsmenossignifica- bajarconel16f84(figura9).
tivos,peroigualconfiguramosatodaslaspatascomo notequeendiagramadeflujopodráinsertar:
salida).
3)escribimosenelpuertoBeldato“00000001”, Instrucciones,rutinasBásicas,
deestamaneramandamosun“1”lógicoalbitB0pa- Interrupciones,SubrutinasdeUsuario
raqueseenciendalalámparaverde. Alosefectosderealizarundiagramadeflujo,va-
4)Hacemosuntemporizadorde45segundos,pa- mos a insertar
ra que la lámpara verde permanezca encendida ese “rutinas bási-
tiempo(notequelaslámparasamarillayrojavanaes- cas”,porlotan-
tarapagadasporquelosbitsB1yB2estánen“0”). to, hacemos do-
5) escribimos en el puerto B el dato “00000010” ble click sobre
para que se encienda la lámpara amarilla y queden esa opción y se
apagadaslaslámparasrojayverde(notequeelbitB1 desplieguen to-
estará en “1” mientras que los bits b0 y B2 están en das las opcio-
“0”). nes posibles (fi-
6)Hacemosuntemporizadorde5segundos,para gura10).
Figura 10
que la lámpara amarilla permanezca encendida ese Hacemosun
tiempo(notequelaslámparasverdeyrojavanaestar doble click so-
apagadasporquelosbitsB0yB2estánen“0”). bre la opción
7)escribimosenelpuertoBeldato“000000100” “Iniciar Progra-
paraqueseenciendalalámpararojayquedenapaga- ma” y de inme-
daslaslámparasamarillayverde(notequeelbitB2es- diato aparecerá
taráen“1”mientrasquelosbitsB0yB1estánen“0”). elsímboloenla
8)Hacemosuntemporizadorde45segundos,pa- hoja de trabajo
raquelalámpararojapermanezcaencendidaesetiem- (figura 11). Lue-
po(notequelaslámparasamarillayverdevanaestar go, debemos
apagadasporquelosbitsB0yB1estánen“0”). configurar el
9)retornamosalpaso(3). puerto B; note
10)findelprograma. queenlacolum-
na de “rutinas
ParahacerestediagramadeflujoenelnoPPP,no- Básicas” está la
55
opciónpuertoyalhacerundobleclicksobredichaop- Siguiendo el desarrollo del programa, debemos
ción,sedespliegantodaslascosasquepodemosreali- ahora“escribirsobreelpuerto”porlotanto,selecciona-
zarenlospuertosyunadeellases“configurarPuerto mosestaopcióndelabarradeherramientasdel16f84
B”,asíquehacemosundobleclickyaparecelaimagen (aladerechadelapantalladelniple)hacemosdoble
mostradaenlafigura12.notequepordefecto,elpro- clicksobreellaysedespliegalapantalladelafigura
gramanosponeatodaslaspatasdelpuertoBcomosa- 14.elegimoslaopción“unvalorLiteral”yselecciona-
lidasperounopodríacambiarestacondicióncolocan- moscolocareldatoenbinario,luegoescribimoselnú-
dountildeconelbotónizquierdodelmousesobrela mero“00000001”,talcomoloexpresamosenelpun-
patarequerida.nosotrosdejamostodaslaspatascomo to3delprogramaexplicadoanteriormente.Porúltimo,
salida,asíquepulsamoselbotón“Ingresar”yestaac- seleccionamoslaopción“PuertoB”yapretamoselbo-
ciónapareceeneldiagramadeflujo,talcomosemues- tón“Ingresar”(figura15).Deestamanera,enlahoja
traenlafigura13. detrabajodelniplenosquedaráeldiagramadeflujo
delafigura16.
Ahora,talcomosemencionaenelpaso4,debe-
mos hacer el temporizador, por lo tanto, hacemos un
dobleclicksobrelaopción“Temporizadores”delasru-
tinas Básicas y seleccionamos la opción “Tiempos por
bucles”(figura17).enlaventanaqueapareceseleccio-
namosuntiempofijo,expresadoensegundosycoloca-
moselvalor45,talcomosemuestraenlafigura18,
hechoestoapretamoselbotón“Ingresar”.Automática-
menteapareceuncartelquenosdicequeelprograma
creóregistrosenformaautomática,pulsamosoKynos
quedaeldiagramadeflujotalcomomostramosenlafi-
gura19.Deestamaneraprendimoslalámparaverde
Figura 11 y la mantuvimos encendida 45 segundos. Ahora tene-
Figura 12
Figura 13
Figura 14
Figura 15
56
4 ? TRABAJANDO?CON?PICS?DESDE?CERO
mosquecontinuarconelpaso5,escribiendoelvalor ciónassembler,buscamosellugardenuestrodiscodu-
“00000010”enelpuertoByluegorealizaruntempo- roendondequeremosguardarelarchivo“.asm”quese
rizadorperoahorade5segundos,procediendodela genereyledamosunnombre,porejemplo:“sem”(figu-
maneraquefuimosexplicando.Así,realizamoslospa- ra24).Aconsejamoscrearunacarpetaconelnombre
sos5a8yalfinalizar,tendremoseldiagramadeflujo “semáforo” en donde guardará los archivos que esta-
delafigura20. mosgenerando.enparticular,podemoscrearestacar-
Ahora, tal como dice el paso 9,
debemos hacer una realimentación o
retornoalpaso3.Paraello,nosposi-
cionamosconelmousesobreelcen-
trodelúltimobloquecito,apretamosel
botón izquierdo del mouse y, mante-
niendo el botón apretado, desplaza-
moselmousehastaelsímbolocorres-
pondientealpaso3(figura21)ysol-
tamos el botón, veremos cómo se ha
generadoelretornoenformaautomá-
tica,figura22.
Deestamanera,hemosconstruído
el diagrama de flujos que representa Figura 16
el funcionamiento
de un semáforo y
porlotantopode-
mos obtener el
programa en ar-
chivo assembler
demicrochip.
Para obtener
dicho programa,
vamosa“Archivo-
s/Archivo ASm-
/Generar código
ASm”(figura23),
hacemosunclicky
nos aparece la
Figura 18
ventadeopciones Figura 17
para la codifica-
Figura 20
Figura 19
57
petaenelescritoriodeWindows.Hechoesto,pulsamos
elbotón“codificarASm”ysecrearáelarchivoenlalo-
Figura 22 caciónespecificadaanteriormente.Apareceráuncartel
quenosindicaqueelarchivo“sem.asm”sehacreado
satisfactoriamenteyaalpulsaroKapareceráellistado
delprograma(figura25)enassemblerconlasinstruc-
ciones del sistema rISc del 16f84. A los fines prácti-
cos,enlafigura26podemosverellistadocompletodel
programa.cabeaclararque,unavezquetenemosel
programaenlaversiónassembler,podríamosemplear
el niple para “abrir” el programa compilador y luego
pedirlaejecucióndelprogramacargador,paralocual
deberíamosconfigurarloparaquenospermitaestasop-
ciones.comonuestrointerésesexplicarcómollegara
unproyectofinaldesdeelmomentoquelopensamos,y
nolaexplicacióndelfuncionamientodelniple,damos
porfinalizadoelusodeesteprogramarecordandoque,
alserunaversiónDemo,novamosapodersalvarlos
cambiosefectuados.
comPILAcIón DeL
Figura 23 ArcHIVo ASSemBLer
Yatenemosnuestroprograma“sem.asm”guardado
Figura 24
Figura 25
Figura 21
58
4 ? TRABAJANDO?CON?PICS?DESDE?CERO
en la carpeta “semáforo” que está en el escritorio de lo sabe manejar, déjelo todo como está y sólo haga
Windows,debemosahora,compilardichoarchivopa- clicksobreelbotón“ASSemBLe”)einmediatamentese
raobtenerelcorrespondiente“sem.hex”.comosoftwa- generaráelarchivo“sem.hex”yunaseriedearchivos
recompiladorpuedeemplearelmPSAmqueestájunto adicionales que están relacionados con las opciones
con el programa mPLAB que puede descargar desde delprogramaperoquenosonnecesariosparanuestra
nuestra web, dirigiéndose al ícono password e ingre- explicación(figura33).Tengaencuentaqueenelca-
sandolaclavetepec26. pítulo5seexplicacómoseempleaelmPLAB,“entorno
ParainstalarelmPLABennuestracomputadora,co- dedesarrollo”quetrabajaenconjuntoconelmPASm
piamosdesdelawebelarchivomPLAB.exeenalgúnlu- queacabamosdeutilizar.
gardeldiscorígidoyluegohacemosdobleclickenél.
Aparecerálapantalladebienvenidaquenosguia-
ráparalainstalacióndelprograma(figura27).Segui- cArGA DeL PIc
moslospasosquenosindicaelprograma,paraellos,
aprieteelbotón“next”sucesivamente(amenosqueUd. Yatenemoselarchivo“sem.hex”,necesariopara
deseecambiaralgunadelasopcionesqueallísemen- cargar a nuestro PIc. Para hacerlo, podemos utilizar
cionan) hasta que comience la
instalación del programa como Figura 26
semuestraenlafigura28.
Terminada la instalación, el
programanospreguntarásique-
remosleerinformaciónimportan-
te(seleccionamoslaopciónque
nosinterese)yporúltimonosdi-
ráquelainstalaciónhafinaliza-
do(figura29),aceptamosynos
pediráquereiniciemoslaPc,lo
cualdeberemoshacer.
Luego,abrimoselprograma
tal como muestra la figura 30
(Inicio/Archivo de Programas-
/microchip mPLAB/mPASm for
Windows).
Aparecerá la pantalla del
mPASm(figura31)yselecciona-
mos el botón “BroWSe” para
buscar el archivo “sem.asm” (fi-
gura32).Luegopulsamoselbo-
tón “ASSemBLe” (si sabe mane-
jarelmPASmpuedeseleccionar
lasopcionesdesuagrado,sino
Figura 27
Figura 28
59
cualquiera de los cargadores descriptos en diferentes
oportunidades.
nosotros emplearemos el QUArK Pro 2 (figura
34) que emplea el programa IcProG como interfase
deprogramación,porlotanto,conlaclavetepec26ba-
jamoselprogramadelapáginadecontenidosespecia-
lesdewww.webelectronica.com.ar,locopiamosenel
discodurodenuestracomputadora,lodescomprimimos
yloinstalamossiguiendolasinstruccionesqueseindi-
canduranteelproceso.
Luego ejecutamos el programa y deberemos reali-
Figura 29 zarunapequeñaconfiguración(sinoentiende,dejeto-
docomoestá),alconcluir,aparecerálaimagendela
figura35.Seobservarándoscuadrosconnúmeros.el
cuadrosuperiorcorrespondealcontenidodelamemo-
riadeprograma(cadaposiciónposeeeldato“3fff”,
que corresponde l binario “11111111111111”) que,
comocorresponde,tienetodoslosbitsen“1”debidoa
Figura 30
Figura 33
Figura 34
Figura 31
Figura 32
Fig. 35
60
4 ? TRABAJANDO?CON?PICS?DESDE?CERO
Figura 37
Figura 36
queestáborrada(nocontieneinformación).elcuadro
inferiorcorrespondealas64posicionesdelamemoria
libre.
enlafigura36podemosobservarquéconseguimos
conlabarrademenúdelIcProG(cargarunarchivo
paraprogramaelPIc,leerelPIc,borrarlo,programar-
lo,etc.)además,podemosseleccionarlaoperacióncon
diferentescomponentes,yaseaunagranvariedadde
PIcscomomicrocontroladoresdeotrasfamilias,memo-
riaseeProm,etc.
Para programar al PIc, abrimos el archivo “sem-
.hex”(figura37).cuandohayamosabiertoelarchivo, Fig. 38
habráncambiadolosdatosdelamemoriadeprogra-
ma,talcomosepuedeverenlafigura38.
conectamos el hardware del QUArK Pro 2 al
puerto serie de nuestra computadora, ponemos el
PIc16f84enelzócalo(base)correspondiente,yyaes-
¿esdifícilrealizarunprograma?
tamoslistosparalaúltimapartedenuestroproyecto.en
no,noloes.esmás,enelcapítulo2deestelibro
primerlugarborramoselPIchaciendounclickconel
explicamoscómoseprogramaunPIc,sinembargo,so-
botón izquierdo del mouse sobre el ícono correspon-
mosconscientesdequeexistenlectoresqueposeenco-
diente(veanuevamentelafigura36).cuandosehaya
nocimientosbásicosyporlotanto“esprobable”queno
borradoapareceráuncartelquenosindicaesteestado.
hayancomprendidorealmente“quéesunprograma”.
LuegoprogramamoselPIcclicandosobreelbotónade-
cuadodelabarrademenú;nospreguntasirealmente
queremosprogramarelPIcalocualcontestamosque
síylapantalladelIcProGmostrarácómoevoluciona
lagrabación,automáticamenteverificalosdatosgraba- AprendiendoporAsociación
dosyporúltimonosdicequelagrabaciónsecompletó estructuradeunPrograma
conéxito(salvoquehayamoscometidounerror).
DeestamanerayatenemoselPIcgrabadoylisto
paracolocarenelcircuitodelsemáforo.enlafigura39 elPIc16f84,comootrosmicrocontroladoresdela
tenemoselPcBparalaplacadecircuitoimpresodelse- mismaclase,puedenprogramarsepormediodeunset
máforoprevistoenlafigura1.elmontajeessencillope- reducidodeinstrucciones(son35instrucciones,talco-
rorecomendamoslacolocacióndeunzócaloparapo- movimosenelcapítulo2).
dercolocaryquitarelPIcalosefectosdepoderreali- en el video Todo Sobre PIcs volumen 1 (que está
zardiferentesexperiencias. disponibleenversionesVHS,enVcDparacomputado-
comopuedeapreciar,enestecapítuloexplicamos rayenDVDparareproductoreshogareños)yenelli-
“pasoapaso”cómoobtenerunPIcprogramadodesde bromicrocontroladoresPIc,deeditorialQuark,seex-
que“pensamos”enlaformaenqueoperaunsemáfo- plicantodaslasinstruccionesdelsetycómoeslaestruc-
ro. turabásicadeunprograma,indicandocómosereali-
De la misma manera, podemos proceder para la zan las operaciones en forma gráfica, para que sea
elaboración de cualquier otro proyecto, sin embargo, comprensible, sin embargo, realizaremos una breve
nohemos“hechounprograma”dadoqueéstefuege- descripciónsobrela“estructuradeunprograma”para
neradoporelniple;lapreguntaentonceses: queellector“tengaunaidea”decómoserealizaun 61
programa.endichovideosedicequeunamemoriaes joneracorrespondeaunaposicióndememoria,elmi-
comounacajonera(figura40),cadacajóndeesaca- crocontroladorentiendealaposicióndememoriaque
nosotros llamamos “A”
conundeterminadonú-
meroexpresadoenhe-
xadecimaldenominado
posicióndememoria.
enelejemplodela
figura 40 tenemos una
memoriade4palabras
(cajonerade4cajones)
y cada palabra puede
tener un contenido ex-
presadoenbits.
Supongamos que
yo quiero sumar el nú-
mero 5 con el número
7ydeboguardarelre-
sultadoenunaposición
dememoria.
cargoelnúmero5
en la posición de me-
moria, correspondiente
alavariable“A”(figu-
ra41)yelnúmero7lo
cargoenlaposiciónde
memoria correspon-
diente a “B” (figura
42), y digo que voy a
Figura 39 sumarlosnúmerosenA
yB(figura43)yexpre-
sar el resultado en la
unidadc.
Loquehacelauni-
dadaritméticaylógica
es sumar el contenido
deAyByguardaelre-
sultado donde el pro-
gramaseloindique,en
este caso en c quiere
decirquedentrodeesa
posicióntenemoselnú-
mero 12 correspon-
dientealasumadela
variableAyBrespecti-
vamente(figura44).
expresado gráfica-
mente vemos una me-
moria rAm compuesta
devariasposiciones(fi-
gura 45), obviamente
enunmicrocontrolador
lacapacidaddememo-
riaestádadaporlase-
62 riealacualnosreferi-
4 ? TRABAJANDO?CON?PICS?DESDE?CERO
mosenelPIc16f84,tenemos64posicionesdememo- ciónentreloscontenidosdelasposicionesAyByse
riayencadaunodeellassepuedencolocar14bits. guardaelresultadoenlaposicióndememoriacorres-
ennuestrocasosisonlosdatosytenemospalabras pondientealavariablec(figura48).matemáticamen-
de8bits,enlaposiciónquecorrespondealavariable te:
“A”cargamoselnúmero5(figura46),enlaposición
que corresponde a la variable B el número 7 (figura A+B=c
47),luego,mediantelainstruccióncorrespondiente,la
ALUrecibelainstruccióndesumar,ysehacelaopera-
Figura 43
Figura 40
Figura 44
Figura 41
Figura 45
Figura 42
63
Peroestonoesalgocomprensibleporelmicrocon- sistemasbasadosenmicrocontroladoresson:
trolador,debemosentoncessabercuáleslaestructura
delprograma,paraqueseacomprensiblepornuestro *Desarrollodelsoftware:
controlador,temaqueseexplicaenelvideoTodoSo- editordePrograma.Haymuchasformasdehacer
brePIcs1yquetambiénanalizaremosenfuturasedi- unprograma,nosotrosutilizamoselnipleparaobtener
ciones. unprograma“.asm”apartirdelaconstruccióndeun
Loqueacabamosdevernoesunaestructuracom- diagramadeflujo.
prensibleconnuestromicrocontrolador,nisiquieraestá ensamblador.Laprogramaciónenlenguajeensam-
expresado de forma tal para que yo luego pueda en- bladorpuederesultaruntantoarduaparaelprincipian-
samblarlo,paraquesílocomprendanuestroprocesa- te,peropermitedesarrollarprogramasmuyeficientes,
dor. yaqueotorgaalprogramadoreldominioabsolutodel
Lainstrucciónquepermitelasumaentrecontenidos sistema.Losfabricantessuelenproporcionarelprogra-
deregistros(oposicionesdememoriayregistroW)es maensambladordeformagratuitayencualquiercaso
ADDWfquesignificabaquesumaloscontenidosdelre- siempre se puede encontrar una versión gratuita para
gistrodetrabajoconloscierrespendientesaunavaria- losmicrocontroladoresmáspopulares.
bleyalojalosresultadosenelcontenidodetrabajoo nosotrosnohemosusadounensamblador,simple-
enotravariable(figura49). mente el niple actuó como programador y ensambla-
Loquehacemosessumarelcontenidodelregistro dor(sepodríahaberempleadoelmPLABparaensam-
WconelcontenidodelavariableAquecorresponde blarunprogramaensueditor).
aunaposicióndememoriayalojarelresultadoenotra compilador. Laprogramaciónenunlenguajedeal-
posicióndememoriaquenosotroshemosdenominado tonivel(comoelc)permitedisminuireltiempodede-
r. sarrollodeunproducto.noobstante,sinoseprogra-
maconcuidado,elcódigoresultantepuedesermucho
másineficientequeelprogramadoenensamblador.Las
versiones más potentes suelen ser muy caras, aunque
concLUSIoneS DeL cAPíTULo 4 paralosmicrocontroladoresmáspopularespuedenen-
contrarseversionesdemolimitadaseinclusocompilado-
ParaobtenerunPIc“programado”esprecisocon- resgratuitos.HemosutilizadoalmPASmcomosoftwa-
tarcondeterminadosrecursos.Unodelosfactoresque re compilador para obtener el archivo “.hex” a partir
másimportanciatienealahoradeseleccionarunmi- delarchivo“.asm”.
crocontroladoreselsoportetantodesoftwarecomode
hardwaredelquedisponemos.Unbuenconjuntodehe- *Desarrollodelhardware:
rramientasdedesarrollopuedeserdecisivoenlaelec- cargador o Programador: Son placas manejadas
ción,yaquepuedensuponerunaayudainestimableen porunprogramaquepermitenintroducirelarchivode
eldesarrollodelproyecto. programa en formato hexadecimal a la memoria ee-
enestecapítulohemosvistocómoobtenerunpro- Prom del microcontrolador. Utilizamos para nuestro
yectoterminadoapartirdeunaidea“mental”sobreel ejemplolaplacaQuarkPro2,controladaporelprogra-
funcionamientodelaparato(enestecasounsemáforo). maIcProG.
Lasprincipalesherramientasdeayudaaldesarrollode Placasdeentrenamiento. Setratadepequeñossis-
Figura 46
Figura 47
64
4 ? TRABAJANDO?CON?PICS?DESDE?CERO
Figura 48 Figura 49
temasconunmicrocontroladoryamontadoyquesue- moriadelmicrocontrolador,puedepermitirencualquier
lenconectarseaunaPcdesdelaquesecarganlospro- momentorealizarejecuciónpasoapaso,monitorizarel
gramasqueseejecutanenelmicrocontrolador.Laspla- estadodelmicrocontroladoromodificarlosvaloresal-
cassuelenincluirvisualizadoresLcD,teclados,LeDs,fá- macenadoslosregistrosoenlamemoria.ennuestroca-
cilaccesoalospinesdee/S,etc.elsistemaoperativo so,nohemosempleadoplacadeentrenamiento,dado
delaplacarecibeelnombredeprogramamonitor.el quedimoselproyectoPcBdelsemáforoparaquepo-
programa monitor de algunas placas de evaluación, damos “probar” directamente, el comportamiento del
apartedepermitircargarprogramasydatosenlame- PIcprogramado.************************
65
3ª de forros.qxd:sumario 223 21/11/13 18:12 Página 3ªFo1
EDI CI NY SI MU LA CI N * Ma ne jar el es cri to rio MPLAB
* Crear un nue vo ar chi vo de c di go fuen te pa ra
DE PRO GRA MAS el en sam ble e in gre sar lo a un nue vo pro yec to pa ra
el 16F84
* Iden ti fi car y co rre gir los erro res sim ples
MPLAB es un entorno de desarrollo integrado que le * Eje cu tar el si mu la dor in ter no
permite escribir, codificar, simular y emular programas
para los microcontroladores PIC de Microchip. El MPLAB Para que Ud. aprenda a programar sus microcontro-
incluye un editor de texto, funciones para el manejo de ladores, damos a continuación, paso a paso, las instruc-
proyectos, un simulador interno y una variedad de herra- ciones de instalación y uso de la aplicación:
mientas que lo ayudarán a mantener y ejecutar su apli-
cación. También provee una interfase de usuario para
todos los productos con lenguaje Microchip, programa- INS TA LA CI N
dores de dispositivos, sistemas emuladores y herramien-
Descargue los archivos del software de instalación y
tas de tercer orden.
ejecute el archivos correspondientes al programa. Estos
Posee varias versiones y es posible “conseguir” la
archivos puede obtenerlos por medio de Internet en la di-
versión 4.0 que está diseñada para ser ejecutada bajo
rección:
Windows 3.11, y puede operar con Windows 95, 98 o
versiiones actuales con características superiores y ca-
http//www .mi cro chip .com
paz de correr en Windows XP (vea www.microchip-
.com). Nosotros haremos este “manual de aplicación”
Si bien la empresa “actualiza” periódicamente su
haciendo uso de las tres versiones, para que note que es
página, no tendrá inconvenientes en “encontrar” los ar-
posible aplicar cualquiera de ellas para los alcances de
chivos para descargar. En la figura 1 podemos ver la
este libro. Asume que el usuario ya conoce el entorno de
imagen correspondiente a la página web de Microchip
Windows y sabe manejarlo. La guía que describimos le
al momento de escribir este texto. Note que en la segun-
permitirá realizar las siguientes tareas:
67
da columna tiene la posibilidad
de acceder al sitio correspon-
diente a la opción “MPLAB®I-
DE”. Al hacer click en dicho
ítem, se despliega la pantalla de
la figura 2.
Luego, elija la opción
“MPLAB®IDE v6.50” y lo lleva-
rá al sitio de descarga del pro-
grama. Este programa está com-
primido y tiene un peso 34MB
por lo cual la descarga le lleva-
rá un tiempo bastante amplio,
especialmente si se conecta a In-
Figura 1 ternet por medio de la línea tele-
fónica. Sin embargo, tiene la
posibilidad de “bajar” versiones
anteriores de menor peso y que
le permitirán trabajar sin incon-
venientes. Por ejemplo, la ver-
sión 4.1 tiene un peso inferior a
los 9MB y ya está subidividido
en archivos que puede copiar
en disquetes en caso de que Ud.
desee bajar estos archivos des-
de un cyber café.
Si Ud. baja la versión 6.51
o superior, cópiela al disco rígi-
do de su computadora (en la fi-
gura 3 puede ver el archivo que
debe bajar desde el sitio de Mi-
crochip), descomprímalo con el
Winzip, ejecute el archivo co-
rrespondiente y siga las instruc-
Figura 2
ciones de pantalla. En la figura
4 puede ver una imagen corres-
pondiente a esta versión ejecuta-
da y con sus ventanas desplega-
das.
A los fines prácticos, y res-
petando a todos aquellos que
Figura 3
poseen computadoras con unos
cuántos años, explicaremos el
manejo del PMLAB en su versión
4.0, teniendo en cuenta que las
versiones posteriores se mane-
jan de forma similar y que, las
modificaciones introducidas en
las versiones superiores, no se
utilizan para las aplicaciones
que son objeto de esta obra.
Recuerde que, cuando con-
siga la versión 4.1, puede trans-
ferir los archivos a disquetes si
68 desea instalar el MPLAB en otra
5 ? MANEJO?DEL?MPLAB
Figura 4
computadora. De acuerdo a la versión que haya descar- programador o emulador del dispositivo, sólo debiera
gado, los nombres de los archivos pueden variar leve- instalar las siguientes herramientas del software:
mente. Por ejemplo, la versión 4.00 del MPLAB tendría
los siguientes archivos: Ar chi vos MPLAB IDE
Ar chi vos MPASM/M PLINK/M PLIB
MP40000.E XE Ar chi vos de Pro tec ci n del Si mu la dor MPLAB?
MP 40000.WO2 SIM
MP 40000.WO3 Ar chi vos de Ayu da
MP 40000.WO4
MP 40000.WO5
MP 40000.WO6
Figura 5
Si Ud. lo prefiere, puede dirigirse
a nuestra web: www.webelectronica-
.com.ar y con la clave: tepec26 en-
contrará los links para acceder a dife-
rentes versiones del MPLAB.
En el caso de obtener la versión
4.00, copie el contenido de los 6 dis-
quetes en el disco rígido de su PC (en
un lugar que pueda identificar).
Cuando ejecute el archivo MPLA-
B.exe, comenzará la instalación del
MPLAB en su sistema. Seguidamente
deberá elegir los componentes del
MPLAB que desea instalar en su siste-
ma. A menos que haya comprado un 69
los todos (por defecto). Al hacer
“doble click” en MP40000.EXE,
el instalador le va diciendo lo
que debe hacer. Luego de insta-
Figura 6
larlos, ejecute MPLAB.EXE o cli-
que el ícono MPLAB para iniciar
el sistema.
Aparecerá el escritorio del
MPLAB (figura 6).
Con fi gu rar el Mo do
de De sa rro llo
Cuando ejecute el progra-
ma MPLAB, verá que su escrito-
rio básico se asemeja al de las
aplicaciones de Windows (co-
mo pudo ver en la pantalla de
la figura 6, que muestra el escri-
torio de la versión 5.6). Tiene
Luego aparecerá el menú de la figura 5 que le per- una barra de menú en el margen superior, una barra de
mitirá seleccionar los componentes de lenguaje Micro- herramientas y también una barra de estado en el mar-
chip que desee instalar. Usualmente debiera seleccionar- gen inferior. Podrá advertir que la barra de esta-
do incluye información sobre cómo se ha configu-
rado el sistema.
No ta: El "mo do de de sa rro de termina
llo"
la herramienta, debe elegir alguna, que ejecutará
el código. Para esta guía, usaremos el simulador
de software MPLAB?SIM . Si sabe del tema y tie-
ne un emulador, en este capítulo encontrará más
información para cambiar a una de sus operacio-
nes. Al seleccionar el ítem del menú "Op cio ?
nes >Mo do de De sa rro , apa recerá una ca-
llo"
ja de diálogo semejante a la de la figura 7.
El MPLAB es un producto en constante evolu-
ción, de modo que pueden aparecer sutiles dife-
Figura 7
rencias entre la pantalla que usted vea y la que
mostramos aquí. Seleccione el
ícono próximo al Simulador
MPLAB-SIM (MPLAB-SIM Simula-
tor) y elija 16F84 (que corres-
ponde a un tipo de PIC) en la lis-
ta de procesadores disponibles
que pueden ser resistidos por el
simulador. Clique 16F84 y lue-
go presione el botón "Re set" .
De este modo se iniciará el simu-
lador, y debería aparecer en la
barra de estado "16F84" y
"Sim". Se encuentra así en el
modo simulador para el 16F84.
Figura 8 C mo Crear un
Pro yec to Sim ple
El simulador se ejecutará
desde el mismo archivo, llama-
70
5 ? MANEJO?DEL?MPLAB
Figura 14
to y aún sin nombre. ingrese el texto de la figura 14, exactamente como está
C mo Crear un Nue vo Ar chi vo Fuen te Simescri pleto en cada línea. No debe ingresar los comentarios
Clique dentro del espacio en blanco de la ventana (los textos que siguen a cada punto y coma).
de archivo creada. Seguramente se llamará "Sin t tu lo Este código es un programa muy simple que incre-
(Un ti tled)". De este modo accederá al "fo co"de la menta un contador y lo "resetea" a un valor predetermi-
ventana. Use la opción de menú "Ar chi vo >Guar dar nado cuando el contador vuelve a cero.
co mo... ", y guarde el archivo vacío como ejem ? No ta: Todos los rótulos comienzan en la primera co-
plo.asm. Cuando abra el diálogo de exploración están- lumna, y la última línea tiene una directiva "end". Las pá-
dar, encontrará su ubicación en el directorio del proyec- ginas de datos del micro PIC contienen información com-
to. Ingrese el nombre de archivo y presione "Acep tar ". pleta sobre instrucciones con ejemplos para su uso.
Vea la figura 13. Guarde el archivo usando la función de menú "Ar?
Ahora estarán disponibles el escritorio MPLAB y la chi vo >Guar dar" (Fi le >Sa ve).
ventana de archivo vacío, pero el nombre de la ventana
de archivo reflejará su nuevo nombre. En sam ble del Ar chi vo Fuen te
No ta: El nombre del archivo fuente y el nombre del El ensamble del archivo puede realizarse de varias
proyecto ("ejemplo" en esta guía) deben ser iguales en maneras. Aquí describiremos un método. Use el ítem de
este tipo de proyectos. Hay otros proyectos de archivo menú "Pro yec to >Cons truir to do (Pro yect >Build
múltiple que usan el “linker” y permiten que el nombre All)" . De este modo ejecutará el lenguaje ensamblador
del archivo de salida sea diferente al del archivo de en- MPASM en el trasfondo usando las configuraciones
trada (hay una guía aparte para los proyectos de archi- guardadas con el proyecto anteriormente. Una vez com-
vos múltiples que usan el linker). pletado el proceso de ensamble, aparecerá la ventana
"Re sul ta dos de Cons truc ci n (Build (fiRe - sults"
El MPASM siempre creará un archivo hex de salida gura 15):
con el mismo nombre que el archivo fuente, y esta confi- Ha ingresado intencionalmente al menos “un error”
guración no puede modificarse. Si cambia el nombre si ingresó el código tal como lo hemos escrito en el pa-
del archivo fuente, también deberá cambiar el nombre so anterior. El último "goto" en el programa refiere a un
del proyecto. Ahora ya
está listo para escribir el
código que almacenará
en el PIC para que cumpla
una función determinada.
In gre sar el C di go
Fuen te
Use el mouse para
ubicar el cursor al comien-
zo de la ventana de archi-
vo vacío ejem plo.asm ,e Figura 15
73
rá destacada con
una barra oscura.
También advertirá
que en la barra
de estado, la PC
se establecerá en
0x00.
Use el ítem de
menú "De bu?
g>E je cu tar ?
>Pa so (De bu ?
Figura 16 g>Run>s tep)"
(figura 17). Al ha-
cerlo, el contador
del programa
rótulo inexistente llamado "bug". Dado que este rótulo avanzará hasta la siguiente ubicación de instrucción. La
no ha sido definido previamente, el lenguaje ensambla- barra oscura seguirá el código fuente y el contador del
dor informará el error. También podría relevar otros programa desplegado en la barra de estado avanzará
errores. hasta "4".
Ha ga un do ble click so bre el men sa je deCuando ejecute el ítem de menú "Debug>Ejecutar-
error. De este modo ubicará el cursor en la línea que >Paso", advierta la aparición de un texto en el lado de-
contiene el error en el código fuente. Cambie "bug" por recho del ítem de menú que dirá "F7". El mismo equiva-
"start". Use la ventana "Re sul ta dos de cons truc leci a "te
n cla de función siete" en su teclado. Muchas fun-
(Build Re sults)" para hacer una búsqueda de errores, ciones del MPLAB se asignan a "teclas-especiales". Estas
y reparar los que aparecieran en el código fuente. Reen- teclas cumplen la misma función que los ítems de menú
samble el archivo ejecutando la función de menú "Pro? a los cuales corresponden. Presione F7 varias veces y ve-
yec to >Cons truir to . Esdo"
te procedimiento puede rá cómo el contador del programa y la barra avanzan a
demandar un par de repeticiones. través del programa.
No ta:Cuando reconstruya un proyecto, todos sus Ejecute el ítem de menú "De bu g>E je cu ta? r>E je
archivos fuente serán guardados en el disco. cu tar (De bu g>Run >Run)" o presione F9 para inciar
Luego de reparar todos los problemas en el código la ejecución del programa desde la ubicación actual del
fuente, la ventana "Resultados de construcción" mostra- contador. Los colores de la barra de estado cambiarán,
rá el mensaje "Cons truc ci n com ple ta da ?exi pa tora sa
indicar que el programa está ejecutando las ins-
men te (Build com ple ted suc cess .fully)" Ya ha trucciones. Ninguno de los campos de la barra de esta-
completado un proyecto que puede ejecutarse usando el do se actualizará mientras el programa esté en ejecu-
simulador (figura 16). ción.
Detenga el programa ejecutando el ítem de menú
Eje cu ci n de su Pro gra ma "De bu g>Run >Halt (de te oner)" presionando F5. La
Cierre la ventana “resultados de la construcción” y barra de estado volverá a su color original, y el conta-
haga "De bu g>E je cu ta r>Re set (De bu ?g>Run dor >Re
del programa y otras informaciones de su estado se-
set)"para iniciar el sistema. El contador del programa rán actualizadas.
se reseteará a cero, que es el vector de reset en el No ta: Otra manera de ejecutar funciones es usar la
16F84. La línea del código fuente en esta dirección se- barra de herramientas ubicada en el margen supe-
rior de la pantalla. Si ubica el cursor sobre los ítems
de la barra de herramientas, podrá ver el nombre
de su función en la barra de estado. El botón de la
izquierda es un botón estándar "cam biar ba rra
de he rra mien tas (chan ge tool que le
bar)"
permite desplegar las barras de herramientas dispo-
nibles. Estas pueden ser personalizadas, como po-
drá advertirlo en la sección "Algunas Sugerencias"
al final de esta guía. En la barra de herramientas
de Debug, la luz verde es equivalente a F9 (Ejecu-
ción) y la luz roja equivale a F5 (Detención).
Figura 17 Hasta aquí, aprendió a instalar el programa y
74
5 ? MANEJO?DEL?MPLAB
crear un archivo para apren der a pro gra mar . Di- tualiza la ventana de observación mientras el valor del
mos un ejemplo de programación y ya sabemos cómo contador se incrementa. Si dejó la ventana de registro
co rrer el pro gra ma en lapaPC ra saber si todo de archivo abierta, la misma también será actualizada
está bien, antes de escribir dicho programa en nuestro (mueva una de ellas para que pueda ver las dos en la
PIC. Sin embargo, cuando los programas son más lar- pantalla).
gos, es posible cometer errores que pueden ser evitados. Puede guardar la ventana de observación y sus con-
A continuación explicamos el procedimiento. figuraciones al ejecutar el ítem "Guar dar ob ser va ci n
(Sa ve Watch)" debajo del botón del sistema, ubicado
Abrir Otras Ven ta nas en el ángulo superior izquierdo de la ventana de obser-
Pa ra el Se gui mien to de Erro res vación. Al clicar este botón, se desplegará un menú en
Hay muchas maneras de visualizar el programa y su cascada. Seleccione "Guardar observación" y aparece-
ejecución usando el MPLAB. Por ejemplo, este programa rá el diálogo de exploración estándar ubicado en el di-
está destinado a incrementar un contador temporario pe- rectorio del proyecto. Elija algún nombre arbitrario y
ro, c mo pue de ase gu rar se que se es?t pre prosiodu
ne "Aceptar (OK)".
cien do di cho in cre Una menma nera es abrir e ins-
to? Si no nombra la ventana de observación, el MPLAB
peccionar una ventana de registro de archivo. Puede ha- lo hará por usted. La ubicación y el estado en la panta-
cerlo ejecutando el ítem de menú "Ven ta na >re? gislla de la ventana abierta o cerrada serán guardados con
tros de ar chi vo (Win dow >Fi le Re . Apa
gisre- ter)"
el proyecto, de modo que la próxima vez que abra su
cerá una pequeña ventana con todos los registros de ar- proyecto, sus ventanas de observación aparecerán res-
chivo o el RAM del 16F84. tauradas.
Presione F7 (ejecute instrucción por instrucción, si No ta:También puede editar ventanas de observa-
piensa anularlo) varias veces, y observe la actualización ción luego de crearlas. Use el botón del sistema y selec-
de valores en la ventana de registro de archivo. cione "Agre gar Ob ser va ci n (Add Watch)" para
Hemos colocado la variable del contador en la ubi- que aparezca un diálogo mediante el cual podrá agre-
cación de dirección 0x0C. Mientras el contador tempo- gar más ítems. Con la tecla "Ins"podrá hacer lo mismo.
rario se incremente, este incremento se reflejará en la Si desea borrar un ítem, selecciónelo y presione la tecla
ventana de registro de archivo. Los registros de archivo Suprimir (Delete); la observación referida desaparecerá
cambian de color cuando su valor cambia, de modo que de la ventana. Puede seleccionar "Edi tar ob ser va ci n
los cambios puedan advertirse fácilmente en la inspec- (Edit Watch)" en el menú del sistema para cambiar el
ción. De todos modos, en muchos programas complejos, modo en el cual se muestra el ítem (en hex, binario, co-
varios valores pueden cambiar, así resultará más difícil mo una variable de 16-bit en vez de 8-bit, etc.).
focalizar las variables que le interesan. Usando una ven-
tana de observación especial, este problema puede so- C mo se Mar ca un Pun to de In te rrup ci n
lucionarse.
Ahora, ya sabemos mejor qué es lo que estamos ha-
ciendo:
76
3ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1
4ª forros.qxd:Maquetación 1 15/01/14 12:45 Página 1