You are on page 1of 38

EI siguienfe curso de progromocion de microconfroIodores Pic no

requiere conocimienfos previos en eI femo. Esfo especioImenfe


desfinodo poro Ios eIecfronicos que quieron dor sus primeros
posos (o Ios siguienfes) en esfe inferesonfe (y en generoI
desconocido) rincon de Io eIecfronico.
Tombien esfo dedicodo poro oqueIIos ingenieros o fecnicos que no
quieren perder eI fren de Io fecnoIogo.
Los MicroconfroIodores son infegrodos copoces de ser
progromodos desde nuesfro PC, y seguir uno secuencio. UfiIi;odos
en fodos porfes deI mundo creo que sero bueno no quedornos
ofuero.
Los PIC, fobricodos por Microchip, son microconfroIodores que
por su bojo cosfo (desde Z doIores o menos) y sus oIfos
presfociones pueden ser ufiIi;odos en pequeos y grondes
proyecfos.
Mosofros en esfe curso Ies presenforemos Ios Pic en generoI,
pero por sobrefodo horemos hincopie en Io ufiIi;ocion de uno de
Ios Pic mos conocidos en eI mercodo. EI Pic IoF84. Esfe es un Pic
ideoI poro oqueIIos personos que recien comien;on con esfe fipo
de fecnoIogo. EI IoF84 es un Pic de muy bojo cosfo (menos de
7,b doIores), y es copos de ser escrifo y borrodo hosfo I000
veces. De esfo monero sobemos que podemos procficor con un
microconfroIodor y reoIi;or profofipos, sin gosfor demosiodo
dinero. Con sus I3 enfrodos soIidos progromobIes podemos hocer
uno voriedod de proyecfos que no pueden dejor de infenfor
procficor esfo fecnoIogo. Ademos posee o4 byfes de EEProm,
copos de guordor informocion imporfonfe ocerco deI usuorio y
guordorIo por mos que esfe se desconecfe de Io bofero. Posee I
Mb de memorio desfinodo oI progromo pero con codigo Io
suficienfemenfe comprimido como poro poder oprovechor oI
moximo Io memorio. OsciIodor o crisfoI o o PC de veIocidod medio
(4Mh; o Z0Mh; en Ios Hs) podemos confroIor inferesonfes
proyecfos que seron de mi ogrodo conocer. Ademos cuofro
fuenfes de inferrupcion diferenfes poro IIomor Io ofencion en
cuoIquier momenfo.
Esfo infroduccion creo que se ho exfendido bosfonfe pero sero
bueno enseorIes Ios moferioIes que ufiIi;oremos en esfe curso.
Mecesiforemos en primer Iugor, su ofencion y dedicocion, pues
usfedes seron Ios que fendron que oprender esfo fecnoIogo. Por
ofro Iodo necesiforemos un progromo poro escribir eI codigo
fuenfe (progromo que IIevoro eI Pic en sus enfroos). Exisfe uno
gron voriedod de progromos en Io web y en eI mercodo, oIgunos
que frobojon bojo dos, Windows o Linux, pero nosofros
ufiIi;oremos eI MPIob
(P)
, disfribuido por Microchip, y de
disfribucion grofuifo. Lo podremos bojor deI sifio de Microchip o
con eI simpIe IIenodo de un formuIorio en Io pogino de esfo
empreso nos Io mondoron en formo grofuifo o nuesfro hogor. Con
eI escribiremos eI codigo, Io compiIoremos y Io simuIoremos, fodo
en nuesfro Pc. Por uIfimo necesiforemos de un grobodor de Pic,
Exisfen en Io red muchos grobodores de Iibre disfribucion. En eI
curso ufiIi;oremos eI Propic, es uno pIoco generico copos de
fomor muchos de Ios Pic ocfuoImenfe exisfenfes, incIuso eI
IoF84. Por supuesfo que si deseomos ufiIi;or Io grobodoro de Pic
deberemos fener un Pic. En eI curso oprenderemos como
Progromor Ios Pic, y he frofodo de ser Io mos procfico posibIe
poniendo ho su disposicion uno gron voriedod de ejempIos como
os proyecfos de fodo fipo. Creo que es fodo, 8ueno suerfe y no
se pierdon que Ios necesifo poro mi fufuro fomo :-)

Empecemos Sefeondo eI MPIob
(P)


Seteundo todo puru empezur trunquiIos

EI MPIob es un progromo. EI MPIob es un progromo. Mo es
infeIigenfe y no sobe que hocer por si soIo. Es mos, Ies debemos
dor Ios ordenes uno o uno y muy bien expIicodos poro que esfe Ios
enfiendo. Esfos ordenes esforon ocompoodos por poromefros
que Ie diron o Io moquino como se reoIi;oro eso foreo. De ofro
monero, esfo no se ejecuforo.
Anfes que nodo nos enconfromos con que eI codigo no se creo en
cuoIquier Iodo. Se escribiro en un orchivo (simiIor o un orchivo de
fexfo comn y corrienfe) que fendro Io exfension ^.osm. EI codigo
se ejecufo de orribo hocio obojo empe;ondo de Io primer Ineo de
codigo y ferminondo en Io Ifimo. Es decir que cuondo Ieomos eI
codigo que hemos escrifo, comen;oremos de Io mismo monero que
si Ieyeromos uno corfo.
Ademos en eI MpIob podemos generor Iibreros (fro;os de codigo
que se comporfen en disfinfos proyecfos), cuyo exfension es
^.inc. Con eIIos nos ohorrororemos fipeo, y fodo esforo mos
orgoni;odo.
Como Io memorio deI microconfroIodor es muy Iimifodo, eI codigo
debe ser escrifo en eI pic de uno monero comprimido. EI MPIob se
encorgoro de comprimir eI codigo y dejornosIo en un orchivo
^.hex. En esfe orchivo se encuenfro fodo nuesfro codigo escrifo
en HexodecimoI. Es decir que eI codigo que verdoderomenfe
hobomos escrifo en vorios hojos de frobojo ohoro soIo es un
porrofifo de numeros y Iefros.
Empecemos ohoro si con eI progromo.
Uno ve; insfoIodo eI MPIob
(P)
, nos enconfroremos con Io siguienfe
venfono:

Aqu nos enconfromos como en cuoIquier progromo con uno 8orro
de men (FiIe, Proyecf, Edif, ...), Uno 8orro de Comondos (son Ios
iconifos que oporecen debojo de Io 8orro de Men, son occesos
ropidos o Ios comondos mos comunes), y un 8orro de TfuIo (Io de
mos orribo en donde oporece eI nombre deI proyecfo obierfo).
Todo eI codigo y Ios Iibreros deberon esfor confenidos en un soIo
proyecfo. Esfe proyecfo poro Ios que no soben progromocion sero
oIgo os como uno corpefo que confendro fodos Ios orchivos que
ufiIi;o un mismo progromo. De esfo monero cuondo nosofros Ie
pidomos oI MPIob por ejempIo simuIor nuesfro progromo, esfe
sobro cuoIes son Ios orchivos que ufiIi;o nuesfro progromo
Enfonces creemos un proyecfo nuevo.
Vomos o Io borro de men, Proyecf, Mew Proyecf. Mos pediro Io
ubicocion y eI nombre deI nuevo proyecfo. Le pondremos un
nombre como Inicio.pjf y Io guordoremos en oIgn sifio que Iuego
Io enconfremos. Todo eI proyecfo, codigo fuenfe y Ios Iibreros
deberon esfor en uno mismo corpefo. Domos eI ok o Io venfono.
Mos oporecero uno venfono de Edicion deI Proyecfo. Por eI
momenfo Ie doremos Ok sin miror mucho pues nos foIforo eI
orchivo de codigo.
OI Esfomos como oI principio. Mo combio nodo excepfo Io 8orro
de TfuIo que ohoro fiene eI nombre y Io ubicocion de nuesfro
proyecfo.
Ahoro debemos creor un creor un orchivo que confengo fodo eI
codigo fuenfe. Enfonces voyomos o Io 8orro de men, FiIe, Mew.
Aqu es donde escribiremos eI codigo fuenfe pero primero
debemos guordor eI orchivo. Poro esfo en Io 8orro de men, FiIe,
Sove os..., y Io guordoremos con eI nombre Inicio.osm en Io mismo
corpefo deI proyecfo.
Ahoro fenemos un proyecfo que no fiene osignodo ningn orchivo
de codigo fuenfe (node) y un orchivo de codigo fuenfe oisIodo,
por eso debemos enIo;orIos. Voyomos o Io 8orro de men,
Proyecf, Edif proyecf, y se obriro uno venfono que yo hemos visfo
onfes. 8usquemos eI bofon Add Mode y presionemos sobre eI.
Enconfroremos eI orchivo Inicio.osm y ponemos Ok. Ofro coso
que debemos combior es en Io opcion DeveIopmenf Mode
debemos presionor eI bofon Chonge. AII se obriro uno venfono en
donde fendremos que sefeor vorios cosos.
En Io soIopo TooIs, pondremos eI nombre deI infegrodo
(processor) y oIgo muy imporfonfe, por Io generoI por defecfo
esfo sefeodo Io opcion Mone(Edifor OnIy), oII pondremos Io
opcion MPLA8-SIM (SimuIofor). Si esfo esfo en OnIy Edifor,
podremos escribir eI codigo pero no nos dejoro simuIorIo en Io PC.
En eI nombre deI infegrodo pondremos Iof84 que es con eI que
frobojoremos dodo su bojo precio y su bueno performonce.
En Io soIopo CIock, pondremos Io frecuencio de osciIodor y eI fipo
de osciIodor de nuesfro micro. Aqu pondremos osciIodor XT y
frecuencio de 4Mh;.

Los demos soIopos por ohoro no Ios focoremos.
Si fodo soIio bien debero quedor os:

Yo cosi esfomos Iisfos poro empe;or o escribir eI codigo. Si oun
no oporecio Io venfono de fexfo (donde se escribiro eI codigo),
pondremos en FiIe, Open..., y pondremos eI orchivo osm que
deseomos modificor.
8ien yo fenemos eI edifor de fexfo, yo fenemos un proyecfo, que
nos foIfo... Debemos creor eI ^.hex. Esfe se creo
oufomoficomenfe cuondo compiIomos eI progromo por primero
ve;. Por ohoro no nos horemos probIemo y empecemos con eI
codigo.
Empe;ondo con eI Progromo

Empezundo con eI progrumu

Primero debemos fomor oIgunos cIoses generoIes ocerco deI
codigo.
Que es eI codigo7 EI codigo sero Io Iisfo de ordenes que seguiro
eI micro. En eI pondremos fodos Ios posos que efecfuoro eI
mismo. EI PIC es microconfroIodor, copo; de seguir nuesfros
indicociones. Ofros componenfes, son fijos, foIes como
compuerfos, memorios, efc. Los microconfroIodores son
infegrodos copoces de seguir uno secuencio progromodo. Esfo
quiere decir que se progromo. Como Io progromomos7 Muesfro
Pc sero Io inferfose Hombre-MicroconfroIodor. Todos Ios
microconfroIodores poseen uno memorio de progromo, en Io cuoI
confendro fodos Ios posos o seguir. EI codigo como en cuoIquier
Iisfo se empe;oro o Ieer Io primero Ineo, Iuego Io segundo y os
sucesivomenfe, soIvo que se especifique Io confrorio.
EI codigo se escribiro en Io venfono en bIonco que oporece poro
en eI MPIob.
Ahoro posoremos o conocer Ios porfes deI progromo.
En Io siguienfe seccion pondremos en visfo un codigo fuenfe de
porfe de un progromo, no voIe Io peno copiorIo y ejecuforIo yo que
su fin es soIo de mosfror Ios porfes de Ios progromos.
Echemos un visfo;o oI siguienfe codigo:
LIST p~IoF84
Lisfodo deI PIC
que se ufiIi;oro
sfofus equ 03h
porfb equ 0oh
frisb equ 8oh
rp0 equ b
rbie equ 3
rbif equ 0
infcon equ 0bh
Ioop equ 0dh
IoopZ equ 0eh
Ioop3 equ 0fh
Ioop4 equ I0h
w equ 00h
Encobe;odo o
heoder, son Ios
equivoIencios
gofo inicio Codigo
dormir
bcf infcon,rbif
bsf infcon,rbie
SLEEP
bcf infcon,rbie
bcf infcon,rbif
refurn

refordoI00mS
movIw dI00
movwf IoopZ
finrefordoI
nop
nop
nop
nop
nop
coII refordoImS
movIw dI00
decfs; IoopZ
gofo finrefordoI
Funciones (Yo
es porfe deI
codigo)
refurn
,^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
,^ PrincipoI ^
,^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Pems: Mo es
porfe deI
codigo son
onofociones
nuesfros. EI
compiIodor Ios
posoro de Iorgo

inicio
bsf sfofus,rp0
bsf frisb,Z
bcf sfofus,rp0


reinicio

coII dormir
bsf porfb,Z
Progromo
principoI
(Codigo)
coII refordoI00mS
bcf porfb,Z
gofo reinicio

end
Senfencio de
Fin deI
progromo
Mo expIicoremos insfonfoneomenfe fodos Ios porfes deI progromo
pero me porece un buen momenfo poro expIicor Ios heoder, yo
que esfos Ios fendremos que fener en cIoro desde eI principio.
En eI codigo cuondo oporeco:
sfofus equ 03h
porfb equ 0oh
frisb equ 8oh
rp0 equ b
Lo que queromos decirIe oI progromo es que codo ve; que
escribomos Io poIobro sfofus, cuondo compiIe eI progromo Io
combie por Io que Ie sigue o equ. Es decir que Sfofus equivoIdro o
03h. Es decir que codo ve; que queremos escribir 03
hexodecimoI en eI codigo, sero Io mismo poner sfofus. Depende
de donde pondromos Io poIobro sfofus, esfo correspondero o un
numero o correspondero o Io direccion 03 de memorio Veomos Ios
siguienfes ejempIos poro redondeor eI femo.
bsf 03h,3
bsf 03h,sfofus
bsf sfofus, 3
(sinfoxis: 8sf xxx,b)
Poro Ios que no conocen Ios insfrucciones deI osembIer, 8SF pone
un I en eI bif b deI regisfro de direccion xxx (si deseos ver mos
ocerco de esfo insfruccion, visifo Io Iistu de instrucciones )
VoIviendo, en Ios fres ejempIos se reoIi;o Io mismo. En Io primero,
eI codigo es confuso, en eI segundo fombien pues ese sfofus no
significo mucho que IIeve eI voIor 3 pero oqui se ve que se uso
como consfofe. en Io fercero Iineo eI codigo fomo coIor pues se
pone un I en eI bif 3 deI regisfro ubicodo en Io direccion sfofus
(03h).
Por ofro Iodo debemos fener en cuenfo que pueden exisfir vorios
heoder con eI mismo voIor pero no pueden exisfir uno heoder con
dos voIores.
VoIveremos o Ios porfes deI progromo Iuego.
Como se progromo7.
Debemos ser proIijos oI progromor. En un primer momenfo soIo
nos debe preocupor que es Io que queremos hocer. Orgoni;ornos
en popeI y Iopi; morcondo Ios porfes imporfonfes deI codigo
oyudoro mucho. Es convenienfe eI uso de rems pues esfos nos
oyudoron en fodo momenfo. Esfos no ocupon memorio en eI pic
pues no se escriben en eI. EI uso odecuodo de Ios nombres de
funciones como os fombien eI de Ios equivoIencios nos oyudoron
muchsimo, pues fendremos bien efiquefodos fodos Ios porfes deI
codigo segn eI uso que Ies demos . Escribir un codigo fuenfe es
muy fociI, escribir eI primer codigo fuenfe es muy difciI.
PIuneemos un proyecto simpIe con eI 1F4
Que foI si queremos simpIemenfe encender un Ied ubicodo en Io
pofo uno deI infegrodo (PoZ).
8ien siempre en fodo progromo de PIC hecho en eI MPIob debero
IIevor Ios siguienfes dos Ineos:
LIST p~IoF84
End
Ok. Lo primero Ineo Ie esfo indicondo oI MpIob que Iisfodo de
MicroconfroIodor se ufiIi;oro. Como ufiIi;oremos eI Pic IoF84 eI
Iisfodo debero ser eI mismo.
Lo segundo Ineo Ie diro donde fermino eI progromo.
En eI medio de esfos dos iro fodo eI codigo.
Poro encender eI Ied nos bosfo soIo con cuofro Ineos mos de
codigo:
LIST p~IoF84

bsf 3,b
bcf 8b,Z
bcf 3,b
bsf b,Z
end
Ju Ios pesque sin enfender nodo.
Es fociI. Lo primero y uIfimo Ineo yo Io hemos onoIi;odo. Lo
segundo y Io quinfo son muy porecidos y Io fercero y cuorfo
fombien.
Veomos que significo Ios senfencios bcf y bsf
cf: if CIeor FIog
sf: if Sef FIog.
Esfo quiere decir que pondro uno bondero (FIog) o no en oIgn 8if.
Vemos que codo Ineo de bxf confiene odemos dos nmeros. Esfos
seron eI primero poro eI regisfro y eI segundo poro eI numero de
bif.
Es decir que Io segundo Ineo pondro un uno (uno bondero) en eI
bif cinco deI regisfro fres.
De Io mismo monero en Io fercero Ineo de codigo fendremos que
pondro en cero eI bif dos deI regisfro ochenfo y cinco.
8ueno pero que significodo fienen Ios regisfros 3 y 8b onfes
nombrodos. Son Ios regisfros de "esfodo" y "Tris A"
Es decir que esfe progromo Io que hoce es occeder primero oI
regisfro de esfodo y modificor Io poginocion de esfe (Pp0 es eI
bif b deI regisfro sfofus), de esfe modo podremos occeder o Io
segundo coIumno de regisfros. Pecordemos que eI regisfro Tris o
esfo en eI bonco uno de Ios boncos de regisfro. Luego de eso,
modificomos Io enfrodo-soIido PoZ (8if Z deI regisfro fris),
coIocondo o esfo como soIido de dofos. Ahoro debemos voIver oI
bonco cero poro poder occeder oI regisfro PorfA. Enfonces
modificomos Io poginocion deI regisfro sfofus voIviendo eI bif b
(Pp0) o cero. Ahoro si esfomos preporodos poro escribir
direcfomenfe en eI puerfo.
Pecuerden que por defecfo eI PIC fendro o fodos Io enfrodos-
soIidos (fonfo Ios puerfos Po y Pb), coIocodos como enfrodo de
dofos, por eso es que Ios debemos sefeor onfes de usor (Si uno
infenfo escribir uno enfrodo eI MPIob no genero ningn error,
simpIemenfe no hoce nodo).
Esfo si Io compiIomos y Io simuIomos, funciono, pero que poso si
venimos denfro de unos dos y vemos eI codigo nuevomenfe. Mos
resuIforo difciI recordor que 03 equivoIe o sfofus y que 8b
equivoIe o Tris A.
Poro eIIo ordenemos un poco eI codigo y IIomemos o Ios cosos por
su nombre:
LIST p~IoF84

Sfofus equ 03h
Pp0 equ b
TrisA equ 8bh
PorfA equ 0bh

bsf Sfofus,Pp0
bcf TrisA,Z
bcf Sfofus,Pp0
bsf PorfA ,Z
end
Mo es verdod que esfo mejor. Y que foI si Ies ponemos oIgunos
onofociones nuesfros. Esfos IIevoron oI principio eI punfo y como,
enfonces de esfo monero, eI compiIodor no fomoro en cuenfo eI
resfo de Io Ineo:
LIST p~IoF84

^ Heoder ^

Sfofus equ 03h
Pp0 equ b
TrisA equ 8bh
PorfA equ 0bh

^ Progromo PrincipoI ^

bsf Sfofus,Pp0
bcf TrisA,Z
bcf Sfofus,Pp0
bsf PorfA ,Z

end ,Esfe es eI fin
Fjense como se esfiro nuesfro progromo.
En esfo porfe hemos expIicodo Ios senfencios "bsf", "bcf", y
porfe de oIgunos regisfros como eI "TrisA", "PorfA" y "Sfofus".
Si queres, Aqui fenes fodos Ios instrucciones deI uscembIer de
pic bien expIicodos.
Que Ies porece si Io simuIomos poro ver que es Io que posoro en
eI PIC.
Poro eIIo posoremos o Io siguienfe porfe.

CompiIundo y simuIundo eI progrumu

Un progromo medionomenfe normoI no se escribe hosfo eI finoI
sin ninguno pruebo en eI medio, pues es muy probobIe que hoyon
oIgunos errores. En Io bsquedo de errores, cuonfo menor
confidod de codigo fengomos que revisor, es mejor. Por eso es
que codo fonfo fiempo, debemos compiIor eI proyecfo y simuIorIo.
Si deseomos escribir fodo eI codigo de corrido, Io podemos
hocer, pero de seguro fendremos mos errores que mofusoIen.

Poro compiIor debe primero guordorse eI proyecfo y Iuego ir o
proyecfo Moke Proyecf. Esfe nos creoro eI proyecfo y uno
venfono nos indicoro Ios errores que fenemos.

En esfe cuodro que confiene eI codigo fuenfe hemos escrifo por
error Sfofis en ve; de Sfofus, Como es de suponer, en eI cuodro
de 8uiId PesuIfs nos indicoro eI error como Error II3, Mo exisfe
definicion previo. Si hocemos dobIe cIick encimo de Io orocion que
confiene Error (De Io venfono de 8uiId PesuIfs), esfo se
posicionoro en Io Ineo de codigo donde supuesfomenfe esfo eI
error.
Los errores no nos dejoron de ferminor de compiIor eI codigo
mienfros que Ios Wornings y Ios messoges si. Esfos Ifimos son
ovisos de posibIes errores.
Hoy errores mos compIicodos como Ios errores de combio de
boncos: Mosofros esfomos en un bonco de memorio diferenfe oI
bonco de memorio oI que queremos occeder. AI Ieer o escribir un
dofo, Ieero o escribiro cuoIquier coso. Esfe fipo de errores Ios
veremos mos odeIonfe cuondo simuIemos eI proyecfo. Poro evifor
esfe fipo de errores, se debe fener especioI cuidodo oI escribir
eI codigo pues muchos veces no generon un error impIcifo en eI
cuodro de 8uiId PesuIfs.
Hoy mos errores que Ios froforemos mos odeIonfe cuondo
opore;con (si no oporecen es que Ios he evifodo :-))
Uno ve; que ferminomos de compiIor nuesfro proyecfo sin ningn
error, podemos cerror Io venfono 8uiId PesuIfs y empe;or o
simuIorIo.
En Io 8orro de herromienfos, Windows, SpecioI Funcions Pegisfer
Windows, nos oporece uno venfono como Io siguienfe con fodos
Ios regisfros especioIes. Esfo es Io que mos se ufiIi;oro o Io horo
de simuIor un proyecfo.


Puede fener combios si esfomos frobojondo con diferenfes fipos
de micros. Los que se encuenfron en rojo son Ios que hon
combiodo por uIfimo ve;.
Tombien fenemos confroIes poro ver eI fiempo en que se reoIi;o
uno deferminodo occion. Esfo esfo en Io 8orro de Herromienfos,
Windows, Sfopwofch. Lo venfono es Io siguienfe:


En Io 8orro de Herromienfos, fenemos fodos Ios cosos necesorios
poro revisor regisfros, modificorIos, poro ver como se escribiro
eI progromo en Io memorio deI PIC, regisfror confodores de
fiempo, efc. Sero bueno que proboron codo uno de esfos poro
conocer Ios herromienfos que fenemos o Io horo de frobojor.
Hoy diferenfes formos de simuIor proyecfos.
Podemos ir Ineo o Ineo viendo como se modificon Ios regisfros o
medido que poso eI fiempo. Poro eIIo fenemos en Io 8orro de
Herromienfos, Debug. Denfro fenemos, enfre Ios mos comunes.
Lo opcion Pun (Aqu fenemos Io opcion Sfep (poso por poso),
Pesef (Pesefeo), Animofe (corre Io simuIocion poso o poso
oufomoficomenfe hosfo que se presiono HoIf), HoIf (defener Io
simuIocion), efc.)
Lo opcion de 8reok Seffing, esfo poro poner uno o mos porodos o
Io Iorgo deI codigo. Uno corre un progromo hosfo que esfo IIego o
un 8reok Poinf. Tombien Io podemos poner presionondo con eI
bofon derecho deI mouse sobre Io Ineo de codigo que queremos
que se defengo. Esfo opcion se ufiIi;o mucho cuondo hoy refordos
de fiempo, o fiempos muerfos deI micro (por ejempIo si
prendemos un Ied debemos esperor oI menos Zb0mS poro
opogorIo yo que sino no Io veriomos pues Io veIocidod deI micro es
muy gronde)
Tombien fengomos en cuenfo que Ios cosos mos comunes Ios
podemos hocer desde Io 8orro de comondos. Poro sober que es
codo uno de esfos cosos nos posicionomos sobre eI icono y sin
oprefor nodo nos oporece un mensoje en Io 8orro de Esfodo (es Io
que esfo mos obojo de fodo Io venfono).
En eI proyecfo onferior veremos que sucede poso por poso:


As es como esfomos en un primer momenfo. Si no esfuviesemos
os Io que debemos hocer es ir o Io 8orro de Herromienfos,
Debug, Sysfem Pesef. Tombien voIe ocomodor Ios venfonos o
gusfo.


Posomos eI primer poso y vemos que hon combiodo oIgunos cosos:
PcI (Confodor deI progromo), Sfofus (modifico eI bif b) (esfomos
preporodos poro modificor eI bonco uno), y como ero de esperor
hi;o un cicIo de reIoj en eI fiempo de IuS.


Aqu modifico nuevomenfe o PcI, y yo modifico eI Tris A de modo
que eI bif Z se puso en posicion de soIido. En esfe coso vemos que
se ho modificodo fombien eI regisfro T0pre. Esfe regisfro es eI
confodor deI Timer 0 que no se esfo ufiIi;ondo pero oI ser un
confodor esfo confondo fodo eI fiempo. EI reIoj esfo en eI
segundo cicIo.


AI fercer cicIo yo nos enconfromos con que combio nuevomenfe eI
T0pre, eI bif b deI regisfro Sfofus (se posiciono en eI bonco 0 deI
bonco de memorio) y eI pcI.


Hon combiodo oIgunos cosos. Por Io pronfo oporecio eI Progrom
Memory Window, indicondo que IIego o Io senfencio End. Por ofro
Iodo Combio eI Porf A poniendo en I eI bif Z. Tombien combio eI
confodor de progromo y eI Timer 0 ounque nosofros no Io
ufiIicemos. Mos enconfromos en eI cuorfo cicIo de frobojo, es
decir que nuesfro progromo fordo 4 micro Segundos en encender
un Ied. VoIe ocIoror que mos odeIonfe encenderemos vorios Ieds
en un soIo cicIo de frobojo.
8ien yo hemos simuIodo nuesfro proyecfo. Los invifo que Io
modifiquen o gusfo poniendo mos puerfos como soIido y
escribiendoIos uno o uno.
Enfre ofros cosos, fombien podremos simuIor bofones, swifches o
puIsodores como si esfos esfubieron conecfodos o cierfos pofos
deI micro. Es fociI de ufiIi;or.
Uno ve; que esfemos corrindo eI progromo, vomos oI menu de
herrominfos o Debug-SimuIofor SfimuIus - Asynchronocs
SfimuIus y oIIi oporece un recuodro con IZ bofones. En eIIos con
eI bofon derecho deI mouse sobre uno de Ios bofones, fendremos
vorios opciones:
Assing pin: sero eI pin que deseos esfimuIor con ese bofon.
PuIse: Es como si fuero un bofon sin refencion. Cuondo Io opriefos
es uno cuondo Io sueIfos es un cero.
Low - high: pone un oIfo o un bojo en eI pin osignodo. Si yo fiene
un bojo o un oIfo, esfe permonecero invoriobIe.
ToggIe: Combio de uno o cero y de cero o uno depende de Io que
fengo ocfuoImenfe.
Ahoro que Ies porece si hocemos un proyecfo de mos ofrocfivo.
Mo se Io pierdon o se Ies coeron Ios ojos.

Luces Chispeantes
Introduccin

Este es una Idea que nos trajo Raul Betancur acerca de un juego de luces que
realiza convinaciones segn como lo configuremos. El Proyecto es muy
interesante para aquellos que estan siguiendo el curso, porque dan buena
prctica para manejo de los micros. Est sobretodo interesante pues maneja
algo que aun no hemos visto aqui: El uso de botones y del temporizador. Para
los mas adelantados, podrn adems hacer uso de interrupciones y de la
memoria EEProm, ya que esta en nosotros cuan completo ser el proyecto.
Invito a todos a compartir esta idea y ponernos en prctica con este proyecto
ya que es la nica manera con la que se presentarn las dudas. Tambin
quiero darles la posibilidad de que compartan sus ideas enviandome su
solucin al problema a andres@moraldo.com.ar. Ademas a todos aquellos que
esten interesados se publicar la respuesta del mismo en los proximos das,
para que todos puedan compartir e intercabiar opiniones. Si asi lo deseas y
crees que tu proyecto vale, enviamelo a andres@moraldo.com.ar de la misma
manera que lo hizo Raul y ser publicado en esta pagina web para que todos lo
aprendamos. Demosle las gracias Raul Bentacur (raulbeta@hotmail.com), y a
todas aquellas personas que mandan a diario sus proyectos (entre ellas estoy
yo: andres@moraldo.com.ar)

Luces Chispeantes
Idea: Raul Betancur

El controlador tendr dos entradas (E1, E2) y ocho salidas. Las ocho salidas
estarn conectadas a 8 LED. De esta manera, controlando las ocho salidas, se
puede elegir cules LED estn encendidos y cules no.
Note que el estado de los ocho LED se puede describir usando un byte. En
consecuencia, una secuencia de estados se puede especificar usando un
arreglo de bytes. Para ejecutar una secuencia, basta con poner los bytes
respectivos en las salidas, uno tras otro, mantenindolos un tiempo.
El controlador podr mostrar cuatro secuencias diferentes las cuales estarn
representadas por cuatro arreglos de bytes. La secuencia que se mostrar se
selecciona por medio de las entradas, las cuales son controladas por dos
conmutadores.
DISEO DEL CONTROLADOR
El diseo del controlador de luces se describe a continuacin :
Los pines 6, 7, 8, 9, 10, 11, 12, 13 corresponden a las salidas RB0/INT, RB1,
RB2, RB3, RB4, RB5, RB6 y RB7 (puerto B del PIC). Cada uno de estos pines
estn conectados a un LED.
Los pines 1 y 2, que corresponden a las salidas RA2 y RA3 (puerto A del PIC),
estn conectados a conmutadores. Estos conmutadores determinan cul de las
4 programaciones predefinidas se desea ejecutar.

Cada patrn de programacin de los LED se encuentra almacenado en un
arreglo en memoria de 8 bytes. Es decir, 8 datos de 1 byte cada uno, que
representan los 8 estados de una secuencia. Dos de los patrones deben ser los
siguientes:
Patrn 1 ("Auto fantstico")

00000001
00000010
00000100
00001000
00010000
00100000
01000000
10000000
Patrn 2 ("White Christmas")

01010101
10101010
01010101
10101010
01010101
10101010
Los otros dos patrones quedan a inventiva del programador.
Cada byte de la secuencia indica cules LED deben encenderse en la salida
Algunas Soluciones

Solucion segun Raul Betancur: luchisra.zip (12Kb)
Ayuditas para la realizacin:
Para detectar los botones apretados se debe proseguir de la siguiente manera:
Se lee el puerto a, se le hace un andlw con el numero correspondiente a las
patas de entrada. Luego se carga el registro w con el valor a comparar y se le
sustrae el valor anterior. Si el resultado es 0 (es decir que ambos son iguales)
en el registro status existe un FLAG que nos lo indicar. (Es el bit Z que
corresponde al bit 2 del registro Status).
El uso del temporizador no es muy dificil ya que se accede de manera directa.
Eso si no olvidemos de ponerle el preescaler en un valor distinto de uno ya que
sino nos costara mucho leerlo.(a no ser de utilizar las interrupciones)
Bueno nada mas. Si algo no les sale, no se preocupen, esto es solo el
comienzo.
No se pierdan de armar el grabador de Pic

Instrucciones

Estas son las todas las instrucciones que hay para poder programar el Pic
16c5x, 16c64, 16c71, 16c74, 16c84 (tambien abarcara los flash respectivos, en
el caso que existan) . Las encontraremos en orden alfabetico.
En total son 37 y haciendo un clic sobre una de ellas podemos acceder a su
respectiva descripcin:
ADDLW
ADDWF
ANDLW
ANDWF
BCF
BSF
BTFSC
BTFSS
CALL
CLRF
CLRW
CLRWDT
COMF
DECF
DECFSZ
GOTO
INCF
INCFSZ
IORLW
IORWF
MOVF
MOVLW
MOVWF
NOP
OPTION
RETFIE
RETLW
RETURN
RLF
RRF
SLEEP
SUBLW
SUBWF
SWAPF
TRIS
XORLW
XORWF

ADDLW ADD Literal to W
Sintaxis ADDLW k
Codificacin 11 111x kkkk kkkk

Palabras,
Ciclos
1, 1
Operacin W + k -> W
Bit de
estado
C, DC, Z
Descripcin
Aade el contenido de W
al contenido de k, y
almacena el resultado en
W
Atencin: Esta
instruccin no existe en
los Pic 16c5X


ADDWF ADD W to F
Sintaxis ADDWF f, d
Codificacin
0001 11df ffff
00 0111 dfff ffff

Palabras,
Ciclos
1, 1
Operacin
W + f -> f si d=1
W + f -> W si d=0
Bit de
estado
C, DC, Z
Descripcin
Aade el contenido de W
al contenido de f, y
almacena el resultado en
W si d=0, y en f si d=1



Volver

ANDLW AND Literal and W
Sintaxis ANDLW k

ANDWF AND W with F
Sintaxis ANDWF f, d
Codificacin
1110 kkkk kkkk
11 1001 kkkk kkkk

Palabras,
Ciclos
1, 1
Operacin W AND k -> W
Bit de
estado
Z
Descripcin
Efecta un AND lgico
entre el contenido de W
y el literal k, y lo
almacena en W

Codificacin
0001 01df ffff
00 0101 dfff ffff

Palabras,
Ciclos
1, 1
Operacin
W AND f -> f si d=1
W AND f -> W si d=0
Bit de
estado
Z
Descripcin
Efecta un AND lgico
entre el contenido de W
y el contenido de f, y
almacena el resultado en
W si d=0, y en f si d=1



Volver

BCF Bit Clear F
Sintaxis BCF f, b
Codificacin
0100 bbbf ffff
01 00bb bfff ffff

Palabras,
Ciclos
1, 1
Operacin 0 -> b(f)
Bit de
estado
Ninguno
Descripcin
Pone a cero el bit numero
b de f


BSF Bit Set F
Sintaxis BSF f, b
Codificacin
0101 bbbf ffff
01 01bb bfff ffff

Palabras,
Ciclos
1, 1
Operacin 1 -> b(f)
Bit de
estado
Ninguno
Descripcin
Pone a uno el bit numero
b de f



Volver

BTFSC Bit Test, Skip If Clear
Sintaxis BTFSC f, b
Codificacin
0110 bbbf ffff
01 10bb bfff ffff
Palabras,
Ciclos
1, 1 o 2
Operacin Salta si b(f)=0
Bit de
estado
Ninguno

BTFSS Bit Test, Skip If Set
Sintaxis BTFSS f, b
Codificacin
0111 bbbf ffff
01 11bb bfff ffff
Palabras,
Ciclos
1, 1 o 2
Operacin Salta si b(f)=1
Bit de
estado
Ninguno
Bit de
estado
Ninguno
Descripcin
Si el bit numero b de f es
nulo, la instruccin que
sigue a esta se ignora y
se trata como un NOP.
En este caso, y solo en
este caso, la instruccin
BTFSC precisa dos
ciclos para ejecutarse.

Bit de
estado
Ninguno
Descripcin
Si el bit numero b de f
esta en uno, la
instruccin que sigue a
esta se ignora y se trata
como un NOP. En este
caso, y solo en este caso,
la instruccin BTFSC
precisa dos ciclos para
ejecutarse.



Volver

CALL Subrutina Call
Sintaxis CALL k
Codificacin
1001 kkkk kkkk
10 0kkk kkkk kkkk

Palabras,
Ciclos
1, 2
Operacin En el caso de los 16c5X:
PC + 1 -> Pila, k ->
PC(0-7), 0 -> PC(8), PA2
Bit de
estado
Ninguno
Descripcin Guarda la direccin de
vuelta en la pila y
despues llama a la

CLRF Clear F with F
Sintaxis CLRF f
Codificacin
0000 011f ffff
00 0001 1fff ffff

Palabras,
Ciclos
1, 1
Operacin 00 -> f
Bit de
estado
Z
Descripcin
Pone el contenido de f a
cero y activa el bit Z.

(en los demas PIC), antes
de ejecutar la instruccin
CALL



Volver

CLRW Clear W register
Sintaxis CLRW
Codificacin
0000 0100 0000
00 0001 0xxx xxxx

Palabras,
Ciclos
1, 1
Operacin 00 -> W
Bit de
estado
Z
Descripcin
Pone el registro W a cero
y activa el bit Z


CLRWDT Clear Watchdog Timer
Sintaxis CLRWDT
Codificacin
0000 0000 0100
00 0000 0110 0100

Palabras,
Ciclos
1, 1
Operacin
00 -> WDT y 0 ->
predivisor del
temporizador
Bit de
estado
1 -> TO y 1 -> PD
Descripcin
Pone a cero el registro
contador del
temporizador watchdog,
asi como el predivisor



Volver

COMF Complement F
Sintaxis COMF f, d
Codificacin
0010 01df ffff
00 1001 dfff ffff

Palabras,
Ciclos
1, 1
Operacin
~f -> f su d=1
~f -> W si d=0
Bit de
estado
Z
Descripcin
Hace un complemento de
f bit a bit. El resultado lo
almacena de nuevo en f
si d=1 (borra el anterior),
o en W si d=0 (f no
vara)


DECF Decrement F to F
Sintaxis DECF f, d
Codificacin
0000 11df ffff
00 0011 dfff ffff

Palabras,
Ciclos
1, 1
Operacin
f - 1 -> f si d=1
f - 1 -> W si d=0
Bit de
estado
Z
Descripcin
Decrementa el contenido
de f en una unidad. El
resultado se guarda en W
si d=0 (f no varia), y en f
si d=1



Volver

DECFSZ
Decrement F, Skip If
Zero
Sintaxis DECFSZ f, d
Codificacin
0010 11df ffff
00 1011 dfff ffff

Palabras,
Ciclos
1, 1(2)
Operacin
f - 1 -> f si d=1
f - 1 -> W si d=0
Bit de
estado
Ninguno
Descripcin
Decrementa el contenido
de f en una unidad. El
resultado se guarda en W
si d=0 (f no varia), y en f
si d=1
Si el reusltado es nulo, se
ignora la siguiente
instruccin y en este caso
la instruccin dura dos
ciclos.


GOTO
Salto Incondicionalwith
F
Sintaxis GOTO k
Codificacin
101k kkkk kkkk
10 1kkk kkkk kkkk

Palabras,
Ciclos
1, 2
Operacin
En el caso de los 16c5X:
k -> PC(0-8), PA2 PA1,
PA0 -> PC(9-11)
En el caso de los
16c64,71,74 y 84:
k -> PC(0-10),
PCLATH(3,4) ->
PC(11,12)
Bit de
estado
Ninguno
Descripcin
LLama a la subrutina
situada en la direccin
cargada en el PC
Atencin: El modo de
clculo de la direccin
difiere segn la familia
de PIC utilizada.
Tambin hay que
posicionar correctamente
PA2, PA1, PA0 (16c5X)
o el registro PCLATH
(en los demas PIC) antes
de ejecutar la instruccin
GOTO



Volver

INCF Increment F
Sintaxis INCF f, d
Codificacin
0010 10df ffff
00 1010 dfff ffff

Palabras,
1, 1

INCFSZ
Increment F, Skip if
Zero
Sintaxis INCFSZ f, d
Codificacin
0011 11df ffff
00 1111 dfff ffff

Ciclos
Operacin
f + 1 -> f si d=1
f + 1 -> W si d=0
Bit de
estado
Z
Descripcin
Incrementa el contenido
de f en una unidad. El
resultado se almacena de
nuebo en f si d=1 y en W
si d=0(en este caso f no
vara)

Palabras,
Ciclos
1, 1(2)
Operacin
f + 1 -> f si d=1
f + 1 -> W si d=0
En ambos casos: Salto si
f + 1 = 0
Bit de
estado
Ninguno
Descripcin
Incrementa el contenido
de f en una unidad. El
resultado se guarda de
nuevo en f si d=1 y en w
si d=0 (en este caso f no
varia). Si el resultado es
nulo, se ignora la
siguiente instruccin y en
este caso, esta
instruccin dura dos
ciclos



Volver

IORLW
Inclusive OR Literal
With W
Sintaxis IORLW k
Codificacin
1101 kkkk kkkk
11 1000 kkkk kkkk

Palabras,
Ciclos
1, 1
Operacin W OR k -> W
Bit de
estado
Z
Descripcin
Efecta un OR lgico
inclusivo entre el
contenido de W y el
literal K, y almacena el
resultado en W


IORWF Inclusive OR W With f
Sintaxis IORWF f, d
Codificacin
0001 00df ffff
11 0100 dfff ffff

Palabras,
Ciclos
1, 1
Operacin
W OR f -> f si d=1
W OR f -> W si d=0
Bit de
estado
Z
Descripcin
Efecta un OR lgico
inclusivo entre el
contenido de W y el
contenido de f, y
almacena el resultado en
f si d=1 o en W si d=0



Volver

MOVF Move F
Sintaxis MOVF f, d
MOVLW Move Literal to W with
Sintaxis MOVF f, d
Codificacin
0010 00df ffff
00 1000 dfff ffff

Palabras,
Ciclos
1, 1
Operacin
f -> f si d=1
f -> W si d=0
Bit de
estado
Z
Descripcin
Pone el contenido de f en
f si d=1 o f en W si d=0
Atencin: El
desplazamiento de f en f
que pareceria inutil,
permite comprobar el
contenido de f con
respecto a cero ya que
esta instuccin acta
sobre el bit Z

F
Sintaxis MOVLW k
Codificacin
1100 kkkk kkkk
11 00xx kkkk kkkk

Palabras,
Ciclos
1, 1
Operacin k -> W
Bit de
estado
Ninguno
Descripcin Carga W con el literal k



Volver

MOVWF Move W to F
Sintaxis MOVWF f
Codificacin
0000 001f ffff
00 0000 1fff ffff

Palabras,
Ciclos
1, 1
Operacin W -> f
Bit de
estado
Ninguno
Descripcin
Carga f con el contenido
de W


NOP No Operation
Sintaxis NOP
Codificacin
0000 0000 0000
00 0xx0 0000

Palabras,
Ciclos
1, 1
Operacin Ninguna
Bit de
estado
Ninguna
Descripcin
Consume tiempo de la
maquina y ocupa un
lugar en la memoria de
programa.



Volver

OPTION Load Option Register

RETFIE Return From Interrupt
Sintaxis RETFIE
Codificacin 00 0000 0000 1001

Codificacin
0000 0000 0010
00 0000 0110 0010

Palabras,
Ciclos
1, 1
Operacin W -> OPTION
Bit de
estado
Ninguno
Descripcin
Carga el registro
OPTION con el
contenido de W
Atencin: Esta
instruccin no debe
utilizarse en otros
circuitos que no sean los
PIC 16c5x. Sin embargo,
es correctamente
interpretada por los
circuitos 16c64, 71, 74,
84 con el fin de asegurar
una compatibilidad
ascendente

Codificacin 00 0000 0000 1001

Palabras,
Ciclos
1, 2
Operacin Pila -> PC, 1 -> GIE
Bit de
estado
Ninguno
Descripcin
Carga el PC con el valor
que se encuentra en la
parte superior de la pila,
asegurando asi la vuelta
de la interrupcin. Pone a
1 el bit GIE, con el fin de
autorizar de nuevo que se
tengan en cuenta las
interrupciones
Atencin: Esta
interrupcin dura dos
ciclos
Esta instruccin no existe
para los PIC 16c5X



Volver

RETLW Return Literal to W
Sintaxis RETLW k
Codificacin
1000 kkkk kkkk
11 01xx kkkk kkkk

Palabras,
Ciclos
1, 2
Operacin k -> W, Pila -> PC
Bit de
estado
Ninguno
Descripcin
Carga W con el literal k,
y despus carga el PC
con el valor que se
encuentra en la parte
superior de la pila,
efectuando asi un retorno
de subrutina
Atencin: Esta
instruccin dura dos
ciclos


RETURN Return from
Subroutinewith F
Sintaxis RETURN
Codificacin
00 0000 0000 0000

Palabras,
Ciclos
1, 2
Operacin Pila -> PC
Bit de
estado
Ninguno
Descripcin Carga el PC con el valor
que se encuentra en la
Esta instruccin no existe
en los PIC 16c5X



Volver

RLF
Rotate Left F through
Carry
Sintaxis RLF f,d
Codificacin
0011 01df ffff
00 1101 dfff ffff

Palabras,
Ciclos
1, 1
Operacin ver descr.
Bit de
estado
C
Descripcin
Rotacin de un bit a la
izquierda del contenido
de f, pasando por el bit
de acarreo C. Si d=1 el
resultado se almacena en
f si d=0 el resultado se
almancena en W


RRF
Rotate Right F through
Carry
Sintaxis RRF f, d
Codificacin
0011 00df ffff
00 1100 dfff ffff

Palabras,
Ciclos
1, 1
Operacin Ver descr.
Bit de
estado
C
Descripcin
Rotacin de un bit a la
derecha del contenido de
f, pasando por el bit de
acarreo C. Si d=1 el
resultado se introduce en
f, si d=0 el resultado se
amacena en W



Volver

SLEEP Sleep
Sintaxis SLEEP
Codificacin
0000 0000 0011
00 0000 0110 0011

Palabras,
Ciclos
1, 1
Operacin 0 -> PD, 1 -> TO, 00 ->
WDT, 0 -> Predivisor del

SUBLW Substract W from
Literal
Sintaxis SUBLW k
Codificacin
11 110x kkkk kkkk

Palabras,
Ciclos
1, 1
Operacin k - W -> W
Bit de
estado
C, DC, Z
Descripcin Sustrae el contenido de
W del literal k, y
almacena el resultado en
instruccin con mucho
cuidado, pues puede
provocar que el micro no
despierte si no se ha
seteado correctamente.

Atencin: Esta
instruccin no existe en
los Pic 16c5X



Volver

SUBWF Substract W from F
Sintaxis SUBWF f, d
Codificacin
0000 10df ffff
00 0010 dfff ffff

Palabras,
Ciclos
1, 1
Operacin
f - W -> f si d=1
f - W -> W si d=0
Bit de
estado
C, DC, Z
Descripcin
Sustrae el contenido de
W del contenido de f, y
almacena el resultado en
W si d=0 y en f si d=1.
La sustraccin se realiza
en complemento a dos


SWAPF Swap F to F
Sintaxis SWAPF f, d
Codificacin
0011 11df ffff
00 1110 dfff ffff

Palabras,
Ciclos
1, 1
Operacin
f(0-3) -> f(4-7) y f(4-7) -
> f(0-3)
Resultado -> f si d=1
Resultado -> W si d=0
Bit de
estado
Ninguno
Descripcin
Intercambia los cuatro bit
de mayor peso por los
cuatro de menor peso de
f, y almacena el resultado
en W si d=0, y en f si
d=1



Volver

TRIS Load TRIS Register
Sintaxis TRIS f

XORLW Exclusive OR Literal
With W
Sintaxis XORLW k
Codificacin
1111 kkkk kkkk
11 1010 kkkk kkkk

en el registro TRIS del
puerto f.
Atencin: Esta
instruccin no debe
utilizarse en otros
circuitos que no sean los
Pic 16c5X. No obstante,
es correctamente
interpretada por los
circuitos 16c64, 71, 74,
84, con el fin de asegurar
una compatibilidad
ascendente

Descripcin
Efecta un OR lgico
exclusivo entre el
contenido de W y el
contenido del Literal K y
almacena el resultado en
W



Volver

XORWF Exclusive Or W with F
Sintaxis XORWF f,d
Codificacin
0001 10df ffff
00 0110 dfff ffff

Palabras,
Ciclos
1, 1
Operacin
W OR (Exclusivo) f -> f
si d=1
W OR (Exclusivo) f ->
W si d=0
Bit de
estado
Z
Descripcin
Efecta un Or lgico
exclusivo entre el
contenido de W y el
contenido de f y
almacena el resultado en
f si d=1 o en W si d=0




Mo fengo eI esquemo ormodo deI proyecfo Iuces chispeonfes,
pero no es nodo
dificiI. Depende de Io
fension de enfrodo que vos o ufiIi;or poro oIimenfor eI pic y de eI
fipo de
osciIodor que vos o ufiIi;or.
Tenes exocfomenfe I3 enfrodos/soIidos, de Ios cuoIes soIo die;
se esfon usondo
en eI proyecfo, osi
que fociImenfe puedes oodir 3 Ieds mos.
Si eI osciIodor deI pic es o crisfoI, eI crisfoI vo enfre Ios pines Ib
y Io deI
pic, con dos condensodores de
Z0pF o moso (uno en codo pofo). Pofo 4 y I4 von o posifivo y b o
negofivo (enfre
3V y b.bV). Codo
soIido (Ied) vo con uno resisfencio en serie, cuyo voIor vo o
depender de Io
fension de enfrodo, sin
superor Ios Ib o Z0 mA en codo pin de soIido. IguoI poro Ios
enfrodos de Ios
puIsodores.

You might also like