1. Nos iniciam os e n l
a ut
il
iz ación de e s t
e l
e nguaj
e
para aprov
e ch aral
m áxim o l
os re curs os de l
m icro
Program ación de un m ódul
o e xt
e rno
para PI
C Sim ul
at
orI
DE
Se guim os program ando PI
Cs e n
l
e nguaj
e BASI
C
Tut
orial
de m ane j
o de un s e rv
om ot
or
de s de una com put
adora
¿Cóm o prot
e ge rnue s t
ro código?
¿Qué pos ibil
idade s e xis t
e n de
e v
it
are l
e s pionaj
e indus t
rial
?
L
l
e gó e l
"
día D"a l
os EE.UU. Un orde nadorl
e ge ndario Módul
o para e l
e nt
re nadorde PI
Cs
3. .s
t
af
f
.indice
núm e ro = 5;año = 2;
Dire cción, Re dacción y Corre cción:
Arie l
Pal
azze s i
Arge nt
ina
arie l
pal
az z e s i@ gm ail
.com
w w w .ucont
rol
.com .ar
Dis e ño y Diagram ación:
L
ucas Mart
ín Tre s e r
Arge nt
ina
l
m t
re s e r@ gm ail
.com
Cons e j
o Edit
orial
:
Mario Sacco
Arge nt
ina
s e rv
ice .s e rv
is ys t
e m @ gm ail
.com
Maxim il
iano Mart
ín Sim onazzi
Arge nt
ina
m axis im onaz z i@ gm ail
.com
Al
e j
andro Cas anov
a
Arge nt
ina
inf
.pic.s uk y@ l
iv
e .com .ar
Es paña
die go@ ucont
rol
.com .ar
Arge nt
ina
s e rgiol
s @ k e k o.com .ar
Arge nt
ina
ge rre ul
a@ yah oo.com .ar
De s carga Grat
uit
a.
Es t
e cont
e nido s e rige porl
a l
ice ncia
de Cre at
iv
e Com m ons “
L
ice ncia Cre at
iv
e
Com m ons At
ribución-No Com e rcial
-Sin
Obras De riv
adas 3.0”
PI
C bas ic (iv
) 0x05
Se guridad e n m icros Fre e s cal
e 0x09
Módul
o PI
C Traine r18 0x0E
Re s is t
ore s 0x13
PI
C16F628A e n as s e m bl
e r(i) 0x17
Cont
rol
ando s e rv
os de s de e l
PC 0x24
Addon para PI
C Sim ul
at
orI
DE 0x2C
Conv
e rs orI
rDA a TTL 0x31
El
apagón anal
ógico 0x34
1ºCongre s o v
irt
ual
de m icros 0x39
Com m odore Am iga 0x3C
4. //página 0x04
L
ue go de cas i un año s in publ
icars e , nue v
am e nt
e t
ie ne s e n t
us
m anos un núm e ro de l
a . V
arios m ot
iv
os im pidie ron q ue
pudiés e m os cum pl
ir e n t
ie m po y f
orm a con e ll
anz am ie nt
o de és t
e , e l
q uint
o núm e ro de nue s t
ra publ
icación. En e s os m e s e s s e h an s um ando
una bue na cant
idad de col
aboradore s , y h e m os re cibido ce nt
e nare s de
corre os pre gunt
ando “¿cuándo v
ue l
v
e a apare ce r un num e ro de l
a
re v
is t
a?
”
Bie n, l
a re s pue s t
a ya l
a conoce s : a m e diados de j
unio de 2009 .
Fue ron m uch os m e s e s de e s pe ra, pe ro cre e m os q ue no h abrá s ido
e n v
ano. A l
os ant
igüos col
aboradore s s e h an s um ando nue v
os , h e m os
cam biado un poco e l
dis e ño de l
a re v
is t
a, e s t
am os ut
il
iz ando ot
ro s of
t
w are
para l
a e dición de e s t
e docum e nt
o, pe ro e n e lf
ondo, t
odo s igue igual
:
int
e nt
am os m os t
rar
, de f
orm a cl
ara y orde nada, com o pue de h ace rs e al
go
int
e re s ant
e y út
il
con un puñado de com pone nt
e s e l
e ct
rónicos .
I
gualq ue e n l
a “prim e ra época”de l
a Re v
is t
a uCont
rol
, h e m os
h e ch o l
o pos ibl
e para s at
is f
ace r a t
odos l
os l
e ct
ore s pot
e ncial
e s . T
e ne m os
m ont
aj
e s com pl
e t
os , t
ut
orial
e s s obre l
e nguaj
e s de program ación de
m icrocont
rol
adore s , al
guna q ue ot
ra e xpl
icación s obre e l
f
uncionam ie nt
o de
l
os com pone nt
e s q ue ut
il
iz am os e n nue s t
ros proye ct
os y -alf
inalde l
a
re v
is t
a- un poco de h is t
oria. De h e ch o, a part
ir de e s t
e núm e ro com e nz arán
a apare ce r una s e rie de art
ícul
os s obre program ación de PI
Cs e n
e ns am bl
ador (de lingl
és as s e m bl
e r), al
go q ue m uch os h abían re cl
am ado
ins is t
e nt
e m e nt
e .
A l
argo de e s t
e t
ie m po h e m os cre ado un f
oro, e l , al
cuals e h an s um ado m as de 1200 am igos de l
a e l
e ct
rónica. En élh ay
m at
e rial
com o para l
l
e nar v
arios núm e ros de l
a re v
is t
a, y cada día s e s um a
m ás ge nt
e con proye ct
os m uy int
e re s ant
e s para com part
irl
os con l
a
com unidad. De al
guna m ane ra, e l
l
os s on l
os due ños de uCont
rol
, y a e l
l
os
e s a q uie n t
ie ne s q ue agrade ce rl
e e l
cont
ar con e s t
e pe q ue ño “PDF”
cada
dos m e s e s .
L
a Re v
is t
a uCont
rol
t
ie ne un l
ugar propio de nt
ro de l
Foro. L
a ide a e s
q ue -l
ue go de l
e e r e s t
e e j
e m pl
ar- pue das opinar al
l
í y cont
arnos q ue t
e h a
pare cido, q ue cos as t
e gus t
aron y cual
e s no, q ue t
e m as cre e s q ue h abría
q ue agre gar
, cual
e s q uit
ar
, e t
c. En de f
init
iv
a, part
icipar act
iv
am e nt
e e n e l
cont
e nido y e l
f
orm at
o de l
a re v
is t
a, incl
us o aport
ando t
us propios t
rabaj
os ,
proye ct
os o t
ut
orial
e s para q ue s e an incl
uidos e n núm e ros v
e nide ros .
De nue s t
ra part
e int
e nt
are m os h ace r l
o pos ibl
e para s at
is f
ace r s us
pe didos . Por l
o pront
o, l
a Re v
is t
a uCont
rol
e s t
á nue v
am e nt
e v
iv
a, y ah ora
pue de s part
icipar act
iv
am e nt
e de e l
l
a. Nos v
e m os de nt
ro de un par de
m e s e s .
Foro uCont
rol
: h t
t
p:/
/
w w w .ucont
rol
.com .ar/
f
oros m f
/
inde x.ph p
.e
dit
orial
5. PI
C bas ic cuart
a part
e
Cont
inuam os con nue s t
ro curs il
l
o de program ación de m icrocont
rol
adore s e n
l
e nguaj
e PI
C BASI
C de lPI
C SI
MUL
ATOR I
DE. En e s t
a e nt
re ga v
e re m os com o
e m pl
e are s t
e l
e nguaj
e para e s cribire n dis pl
ays L
CD al
f
anum éricos .
/
/por: Arie l
Pal
az z e s i /
/
arie l
pal
az z e s i@ gm ail
.com
A grande s ras gos , y a
pe s ar de l
a s im pl
icidad q ue
brinda e ldis pone r de un m is -
m o int
e grado e s pe cial
izado
e n cas i t
odos l
os m ode l
os de
dis pl
ays al
f
anum éricos (con-
cre t
am e nt
e , e lbe ne m érit
o H I
-
TACH I H D44780), e le nv
ío de
caract
e re s a una de e s t
as pan-
t
al
l
as de un m icrocont
rol
ador
e s una t
are a re l
at
iv
am e nt
e
com pl
e j
a. Es t
o s e de be a q ue
e s ne ce s ario re s pe t
ar prot
oco-
l
os de inicial
ización y t
ie m pos
a raj
at
abl
a, s o pe na de no ob-
t
e ne r e l re s ul
t
ado de s e ado.
Todo e s t
o h ace bas t
ant
e t
e -
dios a s u program ación e n
as s e m bl
e r
.
Pe ro af
ort
unadam e nt
e e l
dial
e ct
o de BASI
C q ue e s t
am os
apre ndie ndo a ut
il
iz ar dis pone
de un j
ue go de ins t
ruccione s e s -
pe cial
e s para m ane j
ar dis pl
ays .
De h e ch o, y com o v
e re m os a
cont
inuación, pode m os e s cribir
e n e s t
os dis pl
ays e n dos m odos
dif
e re nt
e s : e n m odo “8 bit
s ”
y e n
m odo "
4 bit
s "
. Com o e s l
ógico,
l
as ins t
ruccione s de al
t
o niv
e l
de BASI
C nos e v
it
an t
oda l
a
com pl
e j
idad y cant
idad de ins t
ru-
ccione s q ue t
an bie n dom inan
l
os bue nos program adore s e n a-
s s e m bl
e r
.
Elm ane j
o de l
os L
CD e n
PI
C BASI
C s e h ace m e diant
e e l
us o de v
arias s e nt
e ncias de l
t
ipo “DEFI
NE”
. Bás icam e nt
e , e s -
t
as ins t
ruccione s s e e ncargan
de e s pe cif
icar alcom pil
ador a
q ue pine s de lm icrocont
rol
ador
h e m os cone ct
ado cada uno de
l
os pine s de lL
CD y e n q ue f
or-
m at
o de dat
os de s e am os m ane -
j
arl
os .
L
a f
orm a ge nérica de l
a
ins t
rucción DEFI
NE e s l
a s i-
guie nt
e :
DEFI
NE parám e t
ro = v
al
or
Donde “parám e t
ro”e s e lnom -
bre de l
parám e t
ro al
q ue l
e q ue -
re m os as ignar e l
“v
al
or”
. Exis t
e n
//página 0x05
6. //página 0x06
una bue na cant
idad de e s t
os
parám e t
ros , cada uno con u-
na f
unción de t
e rm inada. L
os
dis ponibl
e s para e lm ane j
o
de L
CD al
f
anum éricos s on
l
os s iguie nt
e s :
De f
ine e lnúm e -
ro de bit
s de l
a int
e rf
az de
dat
os . Se pue de n as ignar v
a-
l
ore s de 4 u 8, s ie ndo 4 e l
v
a-
l
orporde f
e ct
o.
De f
ine a q ue
pue rt
o de lPI
C t
e ne m os co-
ne ct
ado e lport de dat
os de l
L
CD. L
os v
al
ore s pe rm it
idos
s on PORTA, PORTB, PORT-
C, e t
c. Por de f
e ct
o s e as um e
PORTB.
De f
ine cual
e s e l
prim e r pin de lpue rt
o q ue u-
s am os para e nv
iar l
os dat
os
alL
CD cuando s e l
e cciona-
m os un bus de 4 bit
s . Sol
o
pue de s e r e l0 (para l
os pi-
ne s e l
0, 1, 2 y 3) o 4 (para u-
s ar l
os pine s 4, 5, 6 y 7). Por
de f
e ct
o s e as um e “4”
, y e s t
a
ins t
rucción s e ignora para
L
CD_ BI
TS = 8.
De f
ine a q ue
pue rt
o de lPI
C t
e ne m os co-
ne ct
ado e lpin RS de lL
CD.
L
os v
al
ore s pe rm it
idos s on
PORTA, PORTB, PORTC,
e t
c. Por de f
e ct
o s e as um e
PORTB.
De f
ine a q ue
pin de lpue rt
o t
e ne m os co-
ne ct
ado e lpin RS de lL
CD.
Porde f
e ct
o s e as um e “3”
.
De f
ine a q ue
pue rt
o de lPI
C t
e ne m os co-
ne ct
ado e lpin E de lL
CD.
L
os v
al
ore s pe rm it
idos s on
PORTA, PORTB, PORTC,
e t
c. Por de f
e ct
o s e as um e
PORTB.
De f
ine a q ue pin
de l
pue rt
o t
e ne m os cone ct
a-
do e lpin E de lL
CD. Por
de f
e ct
o s e as um e “2”
.
De f
ine a q ue
pue rt
o de lPI
C t
e ne m os co-
ne ct
ado e lpin RW de lL
CD.
L
os v
al
ore s pe rm it
idos s on
0, PORTA, PORTB, PORTC,
e t
c. Por de f
e ct
o s e as um e
“0”
, q ue s ignif
ica “no us am os
e l
pin RW ”
.
De f
ine a q ue
pin de lpue rt
o t
e ne m os co-
ne ct
ado e lpin RW de lL
CD.
Por de f
e ct
o s e as um e “0”
,
q ue s ignif
ica “no us am os e l
pin RW ”
.
De f
ine
cuant
os m icros e gundos de -
m ora l
a e s crit
ura de un co-
m ando e n e ldis pl
ay. Por de -
f
e ct
o, e s t
e v
al
or e s de 5000.
L
a m ayoría de l
os L
CD
f
uncionan bie n con un v
al
or
de 200 o incl
us o m e nor
, as í
q ue conv
ie ne cons ul
t
ar s u
h oj
a de dat
os para col
ocar e l
v
al
or corre ct
o y h ace r m ás
rápidos nue s t
ros program as .
De f
ine cuan-
t
os m icros e gundos de m ora
l
a e s crit
ura de un dat
o e n e l
L
CD. Por de f
e ct
o, e s t
e v
al
or
e s de 100.
De f
ine cuan-
t
os m icros e gundos de m ora l
a
inicial
iz ación de l
a e l
e ct
róni-
ca de lL
CD. Por de f
e ct
o, e s -
t
e v
al
ore s de 100.
PI
C BASI
C de l PI
C
SI
MUL
ATOR I
DE dis pone
t
am bién de una s e rie de
ins t
ruccione s q ue pe rm it
e n
e le nv
ío de com andos e ins -
t
ruccione s al
dis pl
ay.
L
a prim e ra de e l
l
as e s
L
CDI
NI
T
, de s t
inada a inicia-
l
iz ar l
a e l
e ct
rónica a bordo
de ldis pl
ay. Com o e s l
ógico,
e s t
a e s l
a ins t
rucción q ue de -
be ut
il
iz ars e ant
e s de e nv
iar
cual
q uie r com ando o dat
o al
L
CD. L
a f
orm a de e s t
a ins -
t
rucción e s l
a s iguie nt
e :
L
CDI
NI
T n
Donde “n”e s e lt
ipo de cur-
s or q ue q ue re m os q ue m ue s -
t
re e ldis pl
ay. Env
iar un “0”
h ará q ue e l
curs or pe rm ane z -
ca ocul
t
o, un “1” s ignif
ica
q ue e l
curs or parpade ará, un
“2”nos m os t
rará un curs or
s ubrayado, y un “3”
nos pre -
s e nt
ará un curs or s ubrayado
y parpade ando.
7. L
a s iguie nt
e ins t
ru-
cción de e s t
e grupo e s L
CD-
CMDOUT
. Es t
a s e e ncarga
de e nv
iar com andos de con-
t
rolalL
CD. Se e m pl
e a de l
a
s iguie nt
e m ane ra:
L
CDCMDOUT com ando
Donde “com ando”pue de s e r
al
guno de l
os s iguie nt
e s :
Borra com pl
e t
a-
m e nt
e e l
cont
e nido de l
a pan-
t
al
l
a de l
L
CD.
L
l
e v
a e lcurs or a
l
a prim e ra pos ición de lpri-
m e rre ngl
ón de l
L
CD.
L
l
e v
a e l
cur-
s or a l
a prim e ra pos ición de l
s e gundo re ngl
ón de l
L
CD.
Mue v
e e lcurs or u-
na pos ición a l
a iz q uie rda de
l
a act
ual
.
Mue v
e e lcurs or
una pos ición a l
a de re ch a de
l
a act
ual
.
De s pl
az a e l
cont
e nido de lL
CD una pos i-
ción a l
a iz q uie rda.
De s pl
az a e l
cont
e nido de lL
CD una pos i-
ción a l
a de re ch a.
Borra l
a pri-
m e ra l
íne a de l
L
CD.
Borra l
a s e -
gunda l
íne a de l
L
CD.
Col
oca e l
curs or e n l
a pos ición “x”de l
prim e r re ngl
ón de lL
CD. “x”
pue de t
e ne r cual
q uie r v
al
or
e nt
re 1 y 40
Col
oca e l
curs or e n l
a pos ición “x”de l
s e gundo re ngl
ón de l L
CD.
“X”
pue de t
e ne r cual
q uie r v
a-
l
ore nt
re 1 y 40.
L
CDOUT e nv
ía dat
os
aldis pl
ay. Por “dat
os ”
e nt
e n-
de m os caract
e re s q ue e l
m ó-
dul
o L
CD pue de m os t
rar e n
s u pant
al
l
a. Si s on caract
e -
re s s ue l
t
os o cade nas de t
e x-
t
o (incl
uidos s ím bol
os e s pe -
cial
e s y dígit
os ), s im pl
e m e n-
t
e l
os pone m os e nt
re com i-
l
l
as a cont
inuación de lco-
m ando. Si l
os q ue s e t
rat
a
de m os t
rar e s e lcont
e nido
de una v
ariabl
e , s e de be e s -
cribir e lnom bre de l
a v
aria-
bl
e (pre ce dida por “#”
) a con-
t
inuación de lcom ando. Si s e
ne ce s it
an im prim ir v
arias v
a-
riabl
e s , s im pl
e m e nt
e s e s e -
para e l
nom bre de una y ot
ra
m e diant
e una “com a”
.
A cont
inuación v
e re -
m os un par de e j
e m pl
os de
cóm o s e ut
il
iz an t
odas e s t
as
ins t
ruccione s . Elprim e ro de
e l
l
os s e e ncarga de m os t
rar
un t
e xt
o parpade ando e n l
a
//página 0x07
8. //página 0x08
prim e ra l
íne a de ldis pl
ay. Es
un bue n e j
e rcicio re corre r e l
código e xpue s t
o m ie nt
ras s e
int
e nt
a de ducir com o e s t
á co-
ne ct
ado e l
L
CD al
PI
C m iran-
do l
as ins t
ruccione s “DEFI
-
NE”de lprincipio de lprogra-
m a.
En e ls e gundo e j
e m -
pl
o s e m ue s t
ra com o im pri-
m ire l
cont
e nido de una v
aria-
bl
e (“A”
) e n e lL
CD. Concre -
t
am e nt
e , s e m ue s t
ra un t
e xt
o
e n e lprim e r re ngl
ón, m ie n-
t
ras q ue e n e ls e gundo s e
cue nt
an l
os núm e ros de l
65535 al
0.
Com o h e m os v
is t
o, ut
il
iz ar
un dis pl
ay de e s t
e t
ipo de s de
PI
C BASI
C e s una t
are a m uy
s e ncil
l
a, y alal
cance de t
o-
dos l
os l
e ct
ore s de uCont
rol
.
En l
a s iguie nt
e e nt
re -
ga de e s t
e t
ut
orialv
e re m os
com o ut
il
iz ar l
os “h e rm anos
m ayore s ”de e s t
os L
CD: l
os
dis pl
ays gráf
icos o GL
CD, de
128x64 punt
os .
¡
H as t
a l
a próxim a!
DEFI
NE L
CD_ BI
TS = 8
DEFI
NE L
CD_ DREG = PORTB
DEFI
NE L
CD_ DBI
T = 0
DEFI
NE L
CD_ RSREG = PORTD
DEFI
NE L
CD_ RSBI
T = 1
DEFI
NE L
CD_ EREG = PORTD
DEFI
NE L
CD_ EBI
T = 3
DEFI
NE L
CD_ RW REG = PORTD
DEFI
NE L
CD_ RW BI
T = 2
'
L
CDI
NI
T 0 ‘inicial
iz o e l
L
CD s in curs or
.
'
l
oop:
L
CDOUT "
w w w .uCont
rol
.com "‘Mue s t
ra e l
t
e xt
o…
W AI
TMS 1000 ‘Es pe ro un s e gundo
L
CDCMDOUT L
cdCl
e ar‘Borro e l
dis pl
ay
W AI
TMS 1000 ‘Es pe ro un s e gundo
GOTO l
oop ‘V
ue l
v
o a l
oop: para re pe t
irinde f
inidam e nt
e .
DEFI
NE L
CD_ BI
TS = 8
DEFI
NE L
CD_ DREG = PORTB
DEFI
NE L
CD_ DBI
T = 0
DEFI
NE L
CD_ RSREG = PORTD
DEFI
NE L
CD_ RSBI
T = 1
DEFI
NE L
CD_ EREG = PORTD
DEFI
NE L
CD_ EBI
T = 3
DEFI
NE L
CD_ RW REG = PORTD
DEFI
NE L
CD_ RW BI
T = 2
'
DI
M A AS W ORD
A = 65535
'
L
CDI
NI
T 3 ‘Curs orparpade ando
W AI
TMS 1000
'
l
oop:
L
CDOUT "
¡
Es t
oy cont
ando!” ‘T
e xt
o de l
prim e rre ngl
ón
L
CDCMDOUT L
cdL
ine 2H om e ‘Pas o al
Se gundo re ngl
ón
L
CDOUT #A ‘Mue s t
ro e l
v
al
orde A
A = A - 1
W AI
TMS 250
L
CDCMDOUT L
cdCl
e ar‘L
im pio de l
dis pl
ay
GOTO l
oop
9. s e guridad e n m icros f
re e s cal
e
T
odos l
os q ue t
rabaj
am os con m icros de s de m uch o t
ie m po s ie m pre t
uv
im os un
gran probl
e m a y e ra e lh e ch o de q ue cual
q uie ra podia cl
onar nue s t
ro f
irm w are .
En e s t
e art
ícul
o v
e re m os com o l
a e m pre s a Fre e s cal
e nos brinda una s ol
ución
m uy práct
ica.
/
/por: Maxim il
iano Mart
ín Sim onaz z i /
/
m axis im onaz z i@ gm ail
.com
cl
av
e , s i e s t
a e s e rrone a, s e
pe rm it
e e lingre s o alm odo m o-
nit
or pe ro s ol
o s e pue de re al
iz ar
un borrado t
ot
al
de l
a Fl
as h y s i
s e int
e nt
a l
e e r e l cont
e nido,
s ie m pre v
am os a obt
e ne r com o
re s ul
t
ado $
AD. Por e lcont
rario,
s i l
a cl
av
e e s corre ct
a, podre -
m os v
e r
, grabar y borrar t
odo e l
bl
oq ue de m e m oria Fl
as h . Para
v
e rif
icar s i e lcódigo ingre s ado
e s e lcorre ct
o, s ol
o bas t
a con
dirigirnos a v
e rif
icar e l
bit6 de l
a
dire cción de m e m oria RAM $
40,
s i e s t
a s e t
e ado (o s e a t
ie ne un
v
al
or 1) e nt
once s e lcódigo f
ue
ingre s ado corre ct
am e nt
e y po-
de m os acce de ra l
a Fl
as h .
A cont
inuación e xpl
icare
de una m ane ra s e ncil
l
a com o u-
t
il
iz ar e s t
e m ét
odo y e v
al
uare -
m os q ue t
an s e gura e s e s t
a pro-
t
e cción.
Para al
m ace nar l
a cl
av
e
s e ut
il
iz an 8 pos icione s de m e -
m oria, y e s as s on de s de FFF6 a
FFFD. Es t
as dire ccione s coinci-
de n con l
os 4 v
e ct
ore s ant
e rio-
re s al
re s e t
. De pe nde de l
a f
am i-
Te ne r s e guridad e n un
m icrocont
rol
ador s ie m pre f
ue
al
go bas t
ant
e com pl
e j
o. Elú-
nico punt
o a f
av
or q ue t
e nia
e l
dis e ñador e s q ue e l
q ue co-
piaba e lf
irm w are s ol
o s e l
l
e -
v
aba e lcódigo m áq uina (t
am -
bién conocido com o arch iv
o
h e x) y e s o h acia q ue e lcódi-
go s e a cas i im pos ibl
e de m o-
dif
icar
.
Sin e m bargo Fre e s cal
e
pe ns o un poco e n nos ot
ros y
nos e nt
re gó un bue n s is t
e m a de
s e guridad q ue pe rm it
e prot
e ge r
l
os dat
os grabados e n l
a m e m o-
ria f
l
as h con una cont
ras e ña de
8 byt
e s (no e s de m as iado pe ro
nos da una prot
e cción de 64
bit
s cas i irrom pibl
e por m ét
odos
conv
e ncional
e s ).
Es t
a cl
av
e s e de be int
ro-
ducir cada v
e z q ue s e q uie ra in-
gre s ar e n e lm odo m onit
or l
ue -
go de un POR (Pow e r On Re -
s e t
). Elm odo m onit
or e s e lq ue
nos pe rm it
e v
e r y m odif
icar e l
cont
e nido de l
a m e m oria f
l
as h .
Una v
e z q ue s e ch e q ue a l
a
//página 0x09
10. //página 0x0A
l
ia e s t
os pue de n e s t
ar im pl
e -
m e nt
ados o no. Para t
om ar
un e j
e m pl
o:
68H C9 08GP32:
FFF6/
FFF7 = V
e ct
or CH 0
t
im e r1
FFF8/
FFF9 = V
e ct
orPL
L
FFF
A/
FFFB = V
e ct
orI
RQ
FFFC/
FFFD = V
e ct
orSW 1
68H C9 08JL
3:
FFF6/
FFF7 = V
e ct
or CH 0
t
im e r
FFF8/
FFF9 = L
ibre
FFF
A/
FFFB = V
e ct
orI
RQ
FFFC/
FFFD = V
e ct
orSW 1
Pe ro, ¿por q ué us ar
l
os v
e ct
ore s com o cl
av
e ?Es -
t
a ide a s urge de cons ide rar
q ue , dif
ícil
m e nt
e , dos progra-
m as coincidan e n t
odos l
os
v
e ct
ore s , por e nde , no h ay
q ue de s t
inar 8 byt
e s e s pe cíf
i-
cos para l
a prot
e cción. Pe ro
e s t
o t
ie ne un e f
e ct
o s e cunda-
rio y e s q ue a m e dida q ue e l
program a s e m odif
ica, l
os
v
e ct
ore s pue de n cam biar de
pos ición, y por l
o t
ant
o t
am -
bién l
a cl
av
e .
Para cada uno de l
os 4 v
e c-
t
ore s e xis t
e n dos opcione s :
Si ut
il
iz a e l
v
e ct
or
, e lv
al
or de be e s t
ar
de nt
ro de lrango de l
a m e -
m oria FL
ASH y apunt
aral
có-
digo de l
a int
e rrupción corre s -
pondie nt
e . Es t
o re s t
ringe e l
rango de v
al
ore s pos ibl
e s y
pe rm it
e a un at
acant
e barre r
un m e nor núm e ro de pos ibil
i-
dade s para de s cubrir l
a cl
a-
v
e corre ct
a. L
o m e j
or e n e s t
e
cas o e s no de j
ar t
odos l
os
v
e ct
ore s e n v
al
ore s m uy pró-
xim os , s ino dis t
ribuirl
os a l
o
l
argo de t
oda l
a FL
ASH . Es t
o
pue de re al
iz ars e m e z cl
ando
l
as rut
inas a l
o l
argo de l
pro-
gram a (s i t
ie ne l
a FL
ASH
m uy com prom e t
ida de e s pa-
cio) o f
orz ando pos icione s
“raras ”
m e diant
e e lcom ando
“ORG”e n l
ugare s v
acíos de
l
a FL
ASH .
Si t
ie ne l
a pre -
caución de de s h abil
it
ar l
a
caus a de int
e rrupción o e l
proce s ador no l
a im pl
e m e n-
t
a, pue de pone r e lv
al
or q ue
de s e e e n l
os dos byt
e s co-
rre s pondie nt
e s alv
e ct
or con
“DW $
xxxx“.
T
e nga pre s e nt
e q ue l
a I
RQ
por de f
e ct
o e s t
á act
iv
a e n e l
re s e t y de be de s h abil
it
ars e
con e l com ando m ov #2,
I
NTSCR. NUNCA de j
e l
os
v
e ct
ore s de l
a cl
av
e q ue no
us a e n $
FF
.
11. Alt
e ne r un código de
s e guridad de 64-bit
s , l
a m áxi-
m a cant
idad de com binacio-
ne s e s de 1.8×10^18. Es t
e
núm e ro s e obt
ie ne al
m ul
t
ipl
i-
car l
a cant
idad de com bina-
cione s de cada v
e ct
or por 4,
l
as cual
e s de pe nde n de s i s e
ut
il
iz an o pue de us ars e cual
-
q uie r v
al
or
, dado q ue e n e l
prim e r cas o l
a cant
idad de
com binacione s e s igual
al
t
a-
m año e n byt
e s de l
a FL
ASH
y e n e ls e gundo e s 65536
(t
odos l
os v
al
ore s pos ibl
e s
con 2 byt
e s ). Es t
a dif
e re ncia
e s m ás im port
ant
e e n l
os pro-
ce s adore s con m uy poca
FL
ASH . Ent
once s :
NCom bT
ot
al
= NCom bV
1 x
NCom bV
2 x Com bV
3 x
Com bV
4
Es t
e e s un núm e ro m uy gran-
de , por l
o cualpue de s upo-
ne rs e q ue e s m uy dif
ícil
rom -
pe r e s t
e código. El
punt
o cl
a-
v
e s e rá e nt
once s q ue t
an rá-
pido s e pue de probar una
por una h as t
a cubrir t
odas
l
as pos ibl
e s com binacione s .
L
a única f
orm a de probar u-
na cl
av
e e s l
ue go de un POR
o s e a, h ay q ue q uit
arl
e al
i-
m e nt
ación al m icrocont
rol
a-
dor y e s pe rar un t
ie m po an-
t
e s de cone ct
arl
o nue v
am e n-
t
e para probar ot
ra cl
av
e . El
e nv
ío de l
a cl
av
e t
am bién de -
m ora un t
ie m po, ya q ue de -
be e nv
iars e e n f
orm a s e rial
(e xce pt
o e n e l
m odo paral
e l
o
de lGP32) q ue a 9 600 bau-
dios e q uiv
al
e a 8.33 m S.
En e lm e j
or cas o t
o-
dos l
os v
e ct
ore s e s t
án l
ibre s :
NCom bT
ot
al
= 655364 = 1.8
×10^19
Pe or cas o de l68H C9 08GP-
32: NCom bT
ot
al
= 322564 =
1.1 ×10^18
Pe or cas o de l68H C9 08JK1:
NCom bT
ot
al
= 65536*15363
= 2.4 × 10^14 (ya q ue alno
t
e ne r PL
L uno de l
os
v
e ct
ore s s ie m pre e s t
á l
ibre ).
L
o cualt
raducido a t
ie m po
da (cons ide rando q ue cada
cl
av
e s e pue de probar e n 1
m il
is e gundo y e n l
a m it
ad de
l
as prue bas e ncue nt
ran e l
v
al
orcorre ct
o):
Me j
or cas o: 29 2 m il
l
one s de
años .
Pe or cas o de l68H C9 08GP-
32: 17 m il
l
one s de años .
Pe or cas o de l68H C9 08JK1:
3765 años .
//página 0x0B
12. Es t
e anál
is is e s v
ál
ido
dado q ue no s e conoce e l
re -
s ul
t
ado h as t
a no h abe r ingre -
s ado l
os 8 byt
e s . Si s e pudie -
ra s abe r s i cada byt
e e s co-
rre ct
o o no s in e s pe rar alf
i-
nal
, bas t
aría con probar 128
x 8 v
e ce s = 1024 prue bas y
obt
e ne r l
a cl
av
e corre ct
a e n
1 s e gundo!.
Siguie ndo con e l
e j
e m -
pl
o #4, e n l
a dire cción FF33
s e pue de v
e r l
a ins t
rucción
NOP ins e rt
ada para q ue s e
produz ca e lm is m o de l
ay an-
t
e cl
av
e corre ct
a e incorre ct
a
e n am bos l
az os , no pe rm i-
t
ie ndo inf
e rir de s de f
ue ra e l
re s ul
t
ado de l
t
e s t
e o. Sin e s t
a
ins t
rucción podría m e dirs e e l
t
ie m po de s de l
os byt
e s e nv
ia-
dos y e lBREAK q ue ge ne ra
e lproce s ador alf
inal
iz ar l
a
v
e rif
icación y obt
e ne r l
a cl
a-
v
e e n pocos s e gundos
En e l
l
is t
ado de l
a ROM pue -
de v
e rs e q ue e l
m odo paral
e -
l
o pe rm it
e ace l
e rar e l
ingre s o
de l
a cl
av
e v
acía (t
odos $
FF)
ponie ndo 8 re s is t
ore s de
“pul
l
-up”e n e lPORTA. Ut
il
i-
z ar e s t
e m odo para ingre s ar
ot
ra cl
av
e e s m uy com pl
ica-
do (aunq ue pos ibl
e ) dado
q ue e n l
a dire cción FF23 s e
l
e e PA7 para v
e r s i e s s e rie
o paral
e l
o y e n FF2B s e l
e e
e l prim e r v
al
or de s de e l
PORT
, no e xis t
ie ndo una re -
f
e re ncia de t
ie m po de s de e l
e xt
e rior q ue pe rm it
a s abe r
cuando cam biar e lv
al
or de l
PORTA. Una f
orm a pos ibl
e
e s m e diant
e un circuit
o de re -
s e t m uy pre cis o, s in us ar e l
PL
Ly de t
e rm inando e l
de l
ay
de t
odas l
as ins t
ruccione s
com pre ndidas e nt
re cada l
e c-
t
ura.
Una v
e z f
inal
iz ada l
a
cl
av
e , e l proce s ador e nv
ía
un BREAK y de s de al
l
í e n
m ás t
odos l
os com andos de -
be n e nv
iars e e n f
orm a s e rie .
Com o concl
us ión, po-
de m os de cir q ue e s t
e m ét
o-
do de prot
e cción de l
os da-
t
os e s m uy s e guro y pode -
m os e s t
ar t
ranq uil
os q ue
nue s t
ra inf
orm ación s ie m pre
v
a a e s t
ar s e gura de nt
ro de
un m icrocont
rol
ador Fre e s -
cal
e .
Dat
as h e e t de m icros 68H C-
9 08, not
as de apl
icación
Fre e s cal
e , not
a de apl
ica-
ción I
ng. Dubat
t
i e I
ng.
DiL
e l
l
a
//página 0x0C
13.
14. //página 0x0E
m ódul
o PI
C Traine r18
e lcircuit
o de e s t
e m ódul
o t
am -
bién t
ie ne una gran s e ncil
l
e z .
H e m os col
ocado una s e rie de
cone ct
ore s I
DC10 (e n l
os bor-
de s de lPCB) q ue pe rm it
e n a
l
os m ódul
os pe rif
éricos acce de r
a cada pin de e nt
rada / s al
ida
de lm icrocont
rol
ador q ue ocupe
e l
z ócal
o ce nt
ral
de l
e nt
re nador
.
L
a al
im e nt
ación de lm ó-
dul
o s e h a re s ue l
t
o m e diant
e un
re gul
ador de v
ol
t
aj
e int
e grado
de l
a s e rie L
M78xx, concre t
a-
m e nt
e e lm ode l
o L
M7805, y u-
na borne ra de dos t
ornil
l
os pe r-
m it
e al
im e nt
ar a l
a pl
aca de s de
una f
ue nt
e e xt
e rna de corrie nt
e
cont
inua. Es t
a de be s e r capaz
de e nt
re gar una t
e ns ión de e n-
t
re 7.5 y 15V
, l
o m as e s t
abl
e po-
s ibl
e . Un diodo 1N4007 s e e n-
carga de prot
e ge r e lre s t
o de l
a
e t
apa de al
im e nt
ación de una
cone xión con l
a pol
aridad inv
e r-
t
ida, y conde ns ador e l
e ct
rol
ít
ico
de 470uF/
16Vf
il
t
ra e l
poco ripl
e
q ue pue da h abe r e s capado al
f
il
t
ro de l
a f
ue nt
e q ue e s t
e m os
e m pl
e ando.
Tal com o ocurre con
l
os m icrocont
rol
adore s de 40
pine s , l
a e m pre s a Microch ip
col
oca l
os pue rt
os de l
os m i-
cros de 18 pine s cas i s ie m pre
e n l
a m is m a pos ición. Es o
nos pe rm it
e dis e ñar una pl
a-
ca “univ
e rs al
” q ue pue da ut
il
i-
zars e con una gran v
arie dad
de m ode l
os . De h e ch o, no s o-
l
o podre m os h ace r e xpe rim e n-
t
os con l
os m uy popul
are s
“16F” y 16C”, s ino q ue t
am -
bién v
am os a pode r us ar un
bue n s urt
ido de ch ips de l
a
f
am il
ia “18F”. Sol
o de be m os
as e gurarnos , cons ul
t
ando l
a
h oj
a de dat
os de l ch ip e n
cue s t
ión, q ue l
os pine s de al
i-
m e nt
ación, os cil
ador
, e t
c., e s -
t
én e n una pos ición q ue l
os
h aga com pat
ibl
e s con l
a dis -
t
ribución de s e ñal
e s e m pl
e a-
da e n e l
e nt
re nador
.
Com o pue de v
e rs e e n e l
diagra-
m a q ue acom paña e s t
e art
ícul
o,
Se t
rat
a de ls e gundo m ódul
o de nue s t
ro e nt
re nador de s t
inado a al
be rgar un
m icrocont
rol
ador
. En e s t
e cas o, pue de n ut
il
iz ars e l
os PI
Cs de 18 pine s m ás
popul
are s , com o e l16F84A, e l16F88, 16F627A, 16F628A, 16F818A y m uch os
m ás . Su cons t
rucción no pre s e nt
a dif
icul
t
ade s , y s e guram e nt
e podrás apre nde r
m uch o s obre program ación de PI
Cs ut
il
iz ándol
o. ¡
Manos a l
o obra!
/
/por: Arie l
Pal
az z e s i /
/
arie l
pal
az z e s i@ gm ail
.com
16. El
re gul
ador de v
ol
t
aj
e
e s t
á dot
ado de l
os dos con-
de ns adore s de 0.1uF de ri-
gor
, y un diodo L
ED, e n s e rie
con un re s is t
or de 220V s e
e ncie nde cuando e lcircuit
o
e s t
á al
im e nt
ado, para q ue s e -
pam os q ue s e e ncue nt
ra e n
e s t
a s it
uación.
T
alcom o ocurría con
l
a pl
aca para m icrocont
rol
a-
dore s de 40 pine s , e n l
ugar
de ut
il
iz ar un cris t
al
com o os -
cil
ador de l
PI
C q ue e s t
á s ie n-
do e m pl
e ado e n e lm ódul
o,
h e m os col
ocado 3 de e l
l
os .
Una s e rie de j
um pe rs (ide nt
i-
f
icados com o JP4, JP5 y JP-
6) s e e ncargan de s e l
e ccio-
nar e lq ue s e corre s ponda
con l
a f
re cue ncia de t
rabaj
o
q ue re q uie ra nue s t
ro proye c-
t
o. L
os dos conde ns adore s
de 22pF com pl
e t
an e s t
a par-
t
e de l
circuit
o, y pare ce n f
un-
cionar bie n con l
as f
re cue n-
cias t
ípicas ut
il
iz adas . En
cas o de ut
il
iz ar PI
Cs q ue f
un-
cione n a m ás de 20MH z , e s
pos ibl
e q ue h aya q ue cam -
biarl
os por conde ns adore s
de 15pF o incl
us o al
go m e -
nos .
Aunq ue pare z ca ob-
v
io, t
e ne m os q ue re cordar al
l
e ct
or q ue no de be col
ocar
m ás de un j
um pe r a l
a v
e z ,
ya q ue e n e s e cas o e l
m icro-
cont
rol
adorno f
uncionará.
En cuant
o a l
os cris t
a-
l
e s , h e m os e l
e gido (com o
pue de v
e rs e e n e le s q ue m a
e l
éct
rico) v
al
ore s de 4MH z ,
8MH z y 20MH z , pe ro nada
im pide ut
il
iz ar ot
ros . Ell
e ct
or
pue de cam biarl
os a gus t
o.
En cas o de ut
il
iz ar al
-
gún m ode l
o de PI
C q ue dis -
ponga de os cil
ador int
e rno y
s e q uie ran ut
il
iz ar l
os pine s
15 y 16 de lm is m o (corre s -
pondie nt
e s , e n ge ne ral
, a A6
y A7) com o pine s de e nt
rada
/s al
ida, bas t
ará con no col
o-
car ninguno de l
os j
um pe rs
m e ncionados .
En e lcas o de conf
i-
gurar l
os pine s 15 y 16 com o
e nt
rada / s al
ida, e s t
os s e
com port
arán de l
a m is m a
m ane ra q ue e lpin 3, corre s -
pondie nt
e albit 4 de lPORT-
A. Es t
o h abil
it
a l
os L
EDs y
pul
s adore s incorporados e n
e lm ódul
o, pe rm it
ie ndo s u u-
s o com o f
orm a de ingre s ar(o
re pre s e nt
ar) dat
os a (o de )
nue s t
ro program a. L
os j
um -
pe rs JP1, JP2 y JP3 pe rm i-
t
e n s e l
e ccionar s i cone ct
a-
m os alPI
C e lL
ED o e lpul
-
s ador
.
En cas o de s e l
e ccio-
nar l
os pul
s adore s , de be m os
re cordar q ue e s t
os pone n e l
pin corre s pondie nt
e a 5Vcu-
ando s on pre s ionados . Mie n-
t
ras q ue e s t
án e n re pos o, l
as
e nt
radas s e m ant
ie ne n a
GND a t
rav
és de s e ndos re -
s is t
ore s de 10K.
L
os cone ct
ore s s i-
gue n l
as m is m as norm as
q ue e xpl
icam os e n e l
art
ícul
o
principalde nue s t
ra re v
is t
a
núm e ro 4, as í q ue no de be -
rías t
e ne r probl
e m as a l
a h o-
ra de de t
e rm inar l
a f
unción
de cada pin. Com o re gl
a ge -
ne ral
, re cue rda q ue de l
os
pine s e xt
e riore s de cada co-
ne ct
or s ol
o s e e m pl
e a uno
(+ V
) y l
os ot
ros cuat
ro e s t
án
s in cone ct
ar
. De l
o cinco int
e -
rior
, uno corre s ponde a GND
y l
os ot
ros 4 a dat
os . No e s
m al
a ide a t
e ne r a m ano e l
gráf
ico con l
a f
unción de ca-
da pin cuando de cidas h ace r
//página 0x10
17. //página 0x11
al
gún program a para cargar
e n e l
e nt
re nador
.
L
a única e xce pción, o
de s v
ío de l
o norm al
, q ue pue -
de s v
e r e n e ldiagram a de
l
os cone ct
ore s e s e n l
os pi-
ne s corre s pondie nt
e s a RB6
(CL
OCK) y RB7 (DATA), ya
q ue pos e e n un re s is t
or de
220 oh m s e n s e rie . Cum pl
e n
con l
a f
unción de pe rm it
irpro-
gram ar e lPI
C m e diant
e e l
cone ct
or I
CSP s in ne ce s idad
de re t
irar e l
cabl
e q ue cone c-
t
a e l e nt
re nador con e l
m ódul
o de t
urno. Por s upue s -
t
o, s i l
o de s e as pue de s re e m -
pl
az ar e s os dos re s is t
ore s
por s e ndos pue nt
e s , y a ot
ra
cos a. Sol
o de be rás q uit
ar e l
cabl
e pl
ano a l
a h ora de re -
program are l
PI
C.
Elpin 4, q ue corre s -
ponde alRESET (y albit 5
de l
PORTA) e n l
os m icrocon-
t
rol
adore s PI
C de 18 pine s
(alm e nos , e n l
os q ue s on
com pat
ibl
e s con e s t
e e nt
re -
nador), e s t
a unido a un pul
-
s ador a t
rav
és de un re s is t
or
de 470 oh m s y a + Vm e dian-
t
e ot
ro de 4.7K y un diodo
1N4148. Alpre s ionar e lpul
-
s ador
, e lm icrocont
rol
ador s e
re s e t
e a. Durant
e e lf
unciona-
m ie nt
o norm alde lprogram a,
e l
pin e s t
a a + V
. El
diodo im -
pide l
os probl
e m as q ue podrí-
an s urgir e nt
re l
as al
im e nt
a-
cione s de lm ódul
o y de lpro-
gram ador al
ut
il
iz ar e l
cone c-
t
orI
CSP
.
Si ya h as m ont
ado al
-
guno de nue s t
ros proye ct
os ,
no t
e ndrás ninguna dif
icul
t
ad
a l
a h ora de cons t
ruír t
u pro-
pio e nt
re nador
. De s carga e l
arch iv
o PDF corre s pondie nt
e
alPC de s de nue s t
ra W e b, y
m e diant
e l
a f
orm a q ue m ás
t
e gus t
e (pue de s us ar e l
“m é-
t
odo de l
a pl
anch a”e xpl
ica-
do e n l
a re v
is t
a núm e ro 1)
t
rans f
iére l
o a un t
roz o de
PCB v
irge n. L
ue go, albaño
de cl
oruro f
érrico; y por úl
t
i-
m o, una bue na l
im pie z a y
h ace s l
os aguj
e ros .
A l
a h ora de s ol
dar l
os
com pone nt
e s , com o s ie m -
pre , re s ul
t
a m ás s e ncil
l
o s i
prim e ro v
as col
ocando l
os
q ue s on m ás baj
os , com o l
os
pue nt
e s , diodos , z ócal
os y
re s is t
ore s . De j
a para e lf
inal
l
os cone ct
ore s , re gul
ador de
v
ol
t
aj
e y conde ns adore s . A-
s e gúrat
e de q ue , inv
ol
unt
aria-
m e nt
e , no h ace s un pue nt
e
e nt
re dos punt
os de l
circuit
o.
Pre s t
a e s pe cialat
e n-
ción a l
a h ora de s ol
dar l
os
com pone nt
e s q ue t
ie ne n “po-
l
aridad”
, com o l
os diodos ,
L
EDs y conde ns adore s e l
e c-
t
rol
ít
icos . T
am bién e s im por-
t
ant
e q ue col
oq ue s e lz ócal
o
de s t
inado alPI
C e n l
a dire -
cción corre ct
a, ya q ue de h a-
ce rl
o m alpue de s conf
undirt
e
cuando ins e rt
e s e lm icrocon-
t
rol
ador
, dañándol
o.
Una v
e z m ont
ado t
o-
do, s in col
ocar e lPI
C e n s u
l
ugar
, al
im e nt
a e l
circuit
o con
una t
e ns ión de e nt
re 7.5 y
12V
. El
L
ED “Pow e r”
de be ría
e nce nde rs e . Si e s as í, v
e ri-
f
ica con un m ul
t
ím e t
ro q ue l
a
t
e ns ión e nt
re l
os pine s 5
(GND) y 14 (V
cc) de l
z ócal
o
de lm icrocont
rol
ador s e a de
5V
. T
am bién pue de s v
e rif
icar
q ue e n l
os cone ct
ore s de e x-
pans ión e s t
e pre s e nt
e e s a
t
e ns ión. Si t
odo e s t
a bie n, ya
18. //página 0x12
t
ie ne s l
is t
o t
u e nt
re nador
. Ca-
s o cont
rario, re pas a l
as s ol
-
daduras y pos ición de l
os
com pone nt
e s .
H e m os m ont
ado ot
ra
pl
aca m uy im port
ant
e de nu-
e s t
ro e nt
re nador
. Exis t
e n u-
na gran cant
idad de proye c-
t
os q ue pue de n re s ol
v
e rs e
con PI
Cs cons ide rados “pe -
q ue ños ”o “m e dianos ”com o
l
os q ue s oport
a e s t
e m ódul
o,
as í q ue s e guram e nt
e podrás
pas ar m uch as h oras apre ndi-
e ndo con él
. Re cue rda q ue
para m e j
orar s us pos ibil
ida-
de s de e nt
rada /s al
ida, pue -
de s cons t
ruir e lm ódul
o de 8
e nt
radas / s al
idas publ
icado
e n e l
núm e ro ant
e rior
.
19. //página 0x13
Si bie n t
e óricam e nt
e e s
pos ibl
e cons t
ruir re s is t
ore s de
práct
icam e nt
e cual
q uie r v
al
or
,
por una cue s t
ión pract
ica s ol
o
s e l
as cons t
ruye de una s e rie
de v
al
ore s pe rf
e ct
am e nt
e nor-
m al
iz ados , y q ue com binados
com o v
e re m os m as ade l
ant
e ,
pe rm it
e n l
ograr cual
q uie r v
al
or
de re s is t
e ncia q ue ne ce s it
e m os
para nue s t
ro proye ct
o. Dich as
s e rie s de v
al
ore s s e e ncue nt
ran
agrupadas e n l
as l
l
am adas
“Fam il
ias E”
.
Exis t
e n v
arias f
am il
ias de
v
al
ore s pos ibl
e s , con nom bre s
com o E6, E12, E24, e t
c., donde
e l
núm e ro q ue acom paña a l
a E
re pre s e nt
a l
a cant
idad de v
al
o-
re s dif
e re nt
e s q ue com pone n l
a
f
am il
ia m e ncionada. A l
os v
al
o-
re s bas e s e l
os m ul
t
ipl
ica por
10, 100, 1.000, 10.000, 100.000
o 1.000.000 para obt
e ne r l
os
v
al
ore s de l
os re s is t
ore s con
re s is t
e ncias m ás al
t
as . En e l
Práct
icam e nt
e no e xis -
t
e n e s q ue m as e l
e ct
rónicos e n
l
os q ue no s e v
e an una o m ás
re s is t
e ncias . Es t
os com po-
ne nt
e s t
ie ne n com o f
unción
dis t
ribuir ade cuadam e nt
e l
as
t
e ns ione s y corrie nt
e s q ue cir-
cul
an por e lcircuit
o. Su f
un-
cionam ie nt
o s e bas a e n l
a
dif
icul
t
ad q ue of
re ce n alpas o
de l
a corrie nt
e e l
éct
rica al
gu-
nos m at
e rial
e s , ge ne ral
m e nt
e
con v
al
ore s de re s is t
iv
idad al
-
t
os .
Para de f
inir e lv
al
or de
un re s is t
or s e ut
il
iz a com o uni-
dad e lOh m , q ue s e re pre s e nt
a
por l
a l
e t
ra grie ga om e ga (Ω),
e n h onor a Ge org Sim on Oh m
(1789 -1854). Oh m f
ue un f
ís ico
y m at
e m át
ico al
e m án q ue apor-
t
ó a l
a t
e oría de l
a e l
e ct
ricidad
l
a L
e y q ue re l
aciona l
a int
e ns i-
dad de una corrie nt
e e l
éct
rica,
s u f
ue rz a e l
e ct
rom ot
riz y l
a re -
s is t
e ncia. En 1827 f
orm ul
ó l
a
l
e y, q ue l
l
e v
a s u nom bre , y q ue
e s t
abl
e ce q ue : U = Ix R.
Conocidos e n al
gunos país e s com o “re s is t
e ncias ”
, l
os m ode s t
os re s is t
ore s
f
orm an part
e de práct
icam e nt
e l
a t
ot
al
idad de nue s t
ros proye ct
os . Elcódigo de
col
ore s q ue s e e m pl
e a para de not
ar s u v
al
or e s una de l
as prim e ras cos as q ue
apre nde t
odo af
icionado a l
a e l
e ct
rónica. En e s t
e pe q ue ño art
ícul
o t
e cont
am os
t
odo l
o q ue ne ce s it
as s abe r para e m pl
e ar corre ct
am e nt
e e s t
e com pone nt
e e n t
us
circuit
os .
/
/por: Arie l
Pal
az z e s i /
/
arie l
pal
az z e s i@ gm ail
.com
re s is t
ore s
20. cuadro núm e ro 1 f
iguran l
os
v
al
ore s bas e de cada f
am il
ia
de re s is t
e ncias . L
as de m ás
s e rie s , com o l
a (2% de
t
ol
e rancia), y l
as m e nos ut
il
i-
z adas y agre gan
v
al
ore s int
e rm e dios a l
os
m e ncionados , y t
ol
e rancias
m ás pe q ue ñas .
Para no t
e ne r l
a ne ce -
s idad de e s cribir grande s
cant
idade s de ce ros ale x-
pre s ar v
al
ore s de re s is t
e n-
cias e l
e v
adas , s e ut
il
iz an l
a
l
e t
ra y , q ue de s ignan
f
act
ore s m ul
t
ipl
icat
iv
os de
1.000 y 1.000.000. Si a un
v
al
or cual
q uie ra de l
a t
abl
a
ant
e rior
, por e j
e m pl
o a 4,7 l
e
agre gam os l
a obt
e ne m os
4.7K q ue s ignif
ican 4700 Ω.
Si l
e añadim os l
a , nos q ue -
da 4.7M q ue indica 4.700.-
000Ω. Much as v
e ce s s e ut
i-
l
iz a l
a l
e t
ra e n l
ugar de l
a co-
m a, porl
o q ue 4.7K y 4K7 re -
pre s e nt
an e l
m is m o v
al
or
.
Cuando nos re f
e rim os
a l
a “t
ol
e rancia”
q ue t
ie ne un
re s is t
or
, e s t
am os h abl
ando
de l
a m áxim a de s v
iación de l
v
al
or t
e órico q ue pode m os
e s pe rar e ncont
rar al m e dir
s u v
al
or
. Por e j
e m pl
o, una re -
s is t
e ncia con un v
al
or de cl
a-
rado de 1KΩ y una t
ol
e ran-
cia de l
5% t
ie ne un v
al
or re al
com pre ndido e nt
re 9 50 Ω y
1050 Ω.
Fís icam e nt
e , l
as re s is -
t
e ncias m ás com une s cons is -
t
e n e n un pe q ue ño cil
indro
con dos t
e rm inal
e s , uno e n
cada e xt
re m o, con anil
l
os de
col
ore s s obre s u cue rpo q ue
re pre s e nt
a e lv
al
or e n oh m s .
Exis t
e n bás icam e nt
e dos t
i-
pos de códigos , uno ut
il
iz a
t
re s bandas y e lot
ro cinco.
En e lcódigo de cuat
ro ban-
das , l
os dos prim e ros anil
l
os
re pre s e nt
an l
os dígit
os q ue
f
orm an e l
v
al
or bas e de l
a re -
s is t
e ncia, e lt
e rce ro e lnúm e -
ro de ce ros q ue e s ne ce s ario
añadir
, y e l
cuart
o e l
v
al
or de
l
a t
ol
e rancia.
Por e j
e m pl
o, s i t
om a-
m os una re s is t
e ncia q ue t
ie -
ne una banda m arrón, una
roj
a, una naranj
a y ot
ra do-
rada, s u v
al
or s e rá 12000
oh m s , con e l5% de t
ol
e ran-
cia, dado q ue s e gún l
a t
abl
a
de col
ore s e lm arrón re pre -
s e nt
a e l1, e lroj
o un 2 y e l
naranj
a s ignif
ica q ue s e agre -
gan t
re s ce ros . L
as re s is t
e n-
cias con cinco bandas de co-
l
ore s s e l
e e n de l
a m is m a
m ane ra, pe ro t
e nie ndo e n cu-
e nt
a q ue l
as t
re s prim e ras
s on l
os dígit
os q ue f
orm an e l
v
al
or bas e , l
a cuart
a banda
l
a cant
idad de ce ros a agre -
gary l
a q uint
a l
a t
ol
e rancia.
Com o de cíam os an-
t
e s , a part
ir de l
os v
al
ore s
dis ponibl
e s e n cada s e rie de
re s is t
e ncias e s pos ibl
e obt
e -
ne r práct
icam e nt
e cual
q uie r
v
al
or q ue de s e e m os , s im pl
e -
m e nt
e com binándol
as de a
//página 0x14
E6 1.0, 1.5, 2.2, 3.3, 4.7, 6.8 T
ol
e rancia: 20%
E12 1.0, 1.2, 1.5, 1.8, 2.2, 2.7, 3.3, 3.9 ,
4.7, 5.6, 6.8, 8.2
T
ol
e rancia: 10%
E24 1.0, 1.1, 1.2, 1.3, 1.5, 1.6, 1.8, 2.0,
2.2, 2.4, 2.7, 3.0, 3.3, 3.6, 3.9 , 4.3,
4.7, 5.1, 5.6, 6.2, 6.8, 7.5, 8.2, 9 .1
T
ol
e rancia: 5%
21. dos o m as . Bás icam e nt
e h ay
dos m ane ras de h ace r e s t
o,
y s e de nom inan agrupación
e n s e rie y agrupación e n pa-
ral
e l
o.
L
a agrupación e n s e -
rie cons is t
e e n unir l
as re s is -
t
e ncias una a cont
inuación
de l
a ot
ra, com o s e v
e e n e l
e s q ue m a de l
a f
igura corre s -
pondie nt
e . De e s t
a m ane ra,
l
a corrie nt
e I q ue circul
a por
am bas e s l
a m is m a, m ie n-
t
ras q ue , cada re s is t
e ncia
pre s e nt
a una dif
e re ncia de
pot
e ncial dis t
int
a e nt
re s us
e xt
re m os , q ue de pe nde rá,
s e gún l
a l
e y de Oh m , de l
os
v
al
ore s de cada re s is t
e ncia.
No e s dif
ícilj
ugar m a-
t
e m át
icam e nt
e s um ando l
os
product
os parcial
e s de t
e n-
s ione s y corrie nt
e s para de -
m os t
rar q ue l
a re s is t
e ncia t
o-
t
al
de l
a agrupación de re s is -
t
e ncias e n s e rie e s igual
a l
a
s um a de l
as re s is t
e ncias in-
div
idual
e s .
En s e rie : R = R1+ R2+ R3+ … + Rn
En e l
cas o de l
a agru-
pación e n paral
e l
o, l
a cone -
xión s e e f
e ct
úa com o m ue s -
t
ra l
a f
igura s iguie nt
e , donde
s e v
e q ue l
os t
e rm inal
e s s e
une n e n dos punt
os com une s
l
l
am ados nodos . En e s t
e ca-
s o, por cada ram a, com pu-
e s t
a por una re s is t
e ncia, cir-
cul
a una corrie nt
e dif
e re nt
e ,
pe ro l
a t
e ns ión apl
icada a
t
odas e s l
a m is m a. Nue v
a-
m e nt
e , t
rabaj
ando m at
e m át
i-
cam e nt
e con l
as corrie nt
e s y
t
e ns ione s s e pue de de m os -
t
rar q ue l
a re s is t
e ncia e q uiv
a-
l
e nt
e de una as ociación e n
paral
e l
o e s igual
a l
a inv
e rs a
de l
a s um a de l
as inv
e rs as
de cada una de l
as re s is t
e n-
cias .
En paral
e l
o: 1/
R =
1R1+ 1/
R2+ 1/
R3+ ...+ 1/
Rn
H ay dos cas os part
icu-
l
are s q ue de be m os t
e ne r e n
cue nt
a. L
a re s is t
e ncia e q ui-
v
al
e nt
e a dos re s is t
ore s e n
paral
e l
o e s
;y s i t
odas l
as re s is t
e n-
cias s on igual
e s , .
Por s upue s t
o, nada
im pide as ociar re s is t
ore s de
m ane ras q ue s e an una com -
binación de l
as dos agrupa-
cione s v
is t
as . En e s os ca-
s os , s e dice q ue l
as re s is -
t
e ncias pre s e nt
an una as o-
ciación m ixt
a, y para cal
cul
ar
e lv
al
or de lre s is t
or e q uiv
a-
l
e nt
e h abrá q ue ir re s ol
-
v
ie ndo e lcircuit
o por part
e s ,
e n cada una de l
as cual
e s
ut
il
iz are m os al
guna de l
as
f
órm ul
as q ue v
im os , s e gún
s e a e l
cas o.
En e lcas o de lcircuit
o
de l
a f
igura 3, l
a re s is t
e ncia
t
ot
als e cal
cul
aría s um ando
e n prim e r l
ugar l
as agrupa-
cione s e n s e rie R1 y R2 por
un l
ado, y R3 y R4 por ot
ro,
con l
o q ue e lcircuit
o q ue -
daría com o una agrupación
e n paral
e l
o de cuat
ro re s is -
t
e ncias : R1+ R2, R3+ R4, R5
y R6. Ut
il
iz ando l
a f
órm ul
a
v
is t
a m ás arriba, pode m os
cal
cul
ar e l v
al
or de l
a re -
s is t
e ncia e q uiv
al
e nt
e de lcir-
cuit
o.
Ade m ás de l
as re s is -
t
e ncias f
ij
as q ue ya e s t
u-
diam os , e xis t
e n ot
ras cuyo
v
al
or pue de v
ariar
. Quiz ás
l
as m ás com une s de nt
ro de
e s t
e grupo s e an l
as l
l
am a-
das pot
e ncióm e t
ros o pre s e t
s
//página 0x15
22. q ue cons is t
e n e n una pis t
a
de m at
e rialre s is t
iv
o por l
a
q ue s e de s l
iz a un curs or ca-
paz de re corre rl
a de un e x-
t
re m o alot
ro als e r accio-
nado por un m ando e xt
e rno.
L
a re s is t
e ncia de ldis pos it
iv
o
s e t
om a e nt
re uno de l
os e x-
t
re m os y e l
curs or
, por l
o q ue
s u v
al
or v
aria de acue rdo a
l
a pos ición de e s t
e . En e l
ca-
s o de l
os pot
e ncióm e t
ros , e s -
t
án cons t
ruídas para q ue s u
v
al
or s e v
aríe con f
re cue n-
cia, y s e ut
il
iz an por e j
e m pl
o
para cont
rol
ar e lv
ol
um e n de
un am pl
if
icador o l
a l
um ino-
s idad de una l
ám para. En e l
cas o de l
os pre s e t
s , l
a f
un-
ción e s de aj
us t
e , y s e s u-
pone q ue s ol
o s e m odif
icara
s u v
al
or m uy de v
e z e n cu-
ando, por l
o q ue ge ne ral
m e n-
t
e no dis pone n de un m ando
s ino de un t
ornil
l
o o ranura
para s e r accionadas con un
de s t
ornil
l
ador
. L
a f
orm a e n
q ue v
aria l
a re s is t
e ncia a m e -
dida q ue de s l
iz am os e lcur-
s or pue de s e r l
ine al
o l
ogarít
-
m ica. En al
gunas apl
icacio-
ne s , com o e laudio, s e ut
i-
l
iz an pot
e ncióm e t
ros l
ogarít
-
m icos dado q ue s e aj
us t
an
m e j
or a l
as caract
e rís t
icas
de l
oído h um ano.
T
am bién e xis t
e n re s is -
t
e ncias para us os e s pe cial
e s
q ue v
arían s u v
al
or con l
a
t
e m pe rat
ura. Se f
abrican de
dos t
ipos , de pe ndie ndo s i s u
re s is t
e ncia aum e nt
a o dis m i-
nuye con l
a t
e m pe rat
ura. Re -
cibe n e lnom bre de C y
, s e gún t
e ngan un coe f
i-
cie nt
e ne gat
iv
o (s u v
al
or dis -
m inuye al
aum e nt
arl
a t
e m pe -
rat
ura) o pos it
iv
o de t
e m pe ra-
t
ura.
L
as (L
igh t De -
pe nde nt Re s is t
or
, o Re s is t
or
De pe ndie nt
e de l
a L
uz ) s on,
com o s u nom bre l
o indica, re -
s is t
ore s cuyo v
al
or v
aria de
acue rdo al
niv
e l
de l
uz al
q ue
e s t
án e xpue s t
as . L
os v
al
ore s
e xt
re m os q ue adopt
a una
L
DR cuando e s t
a e n t
ot
al
os -
curidad o e xpue s t
a a pl
e na
l
uz v
arían de un m ode l
o a o-
t
ro, y s e s it
úan e n e lrango
de l
os 50Ω a 1000Ω (1K)
cuando e s t
án il
um inadas con
l
uz s ol
ar y v
al
ore s com pre n-
didos e nt
re 50.000Ω (50K) y
y v
arios m e goh m ios (m il
l
o-
ne s de oh m s ) cuando e s t
á a
os curas .
Por úl
t
im o, alm om e n-
t
o de s e l
e ccionar una u ot
ra
re s is t
e ncia e n nue s t
ros pro-
ye ct
os de be m os cons ide rar
l
a pot
e ncia m áxim a para l
a
q ue f
ue cons t
ruída. En e f
e c-
t
o, l
a caída de t
e ns ión q ue
s e produce cuando l
a corri-
e nt
e at
rav
ie s a l
a re s is t
e ncia
s e t
rans f
orm a e n cal
or
, y e l
com pone nt
e e l
e gido de be
s e r capaz de s oport
arl
o s in
de s t
ruirs e . Para pot
e ncias
pe q ue ñas , de 1/
8 de W at
t a
1 W at
t s ue l
e n s e r f
abricadas
a part
ir de una barra de car-
bón, pe ro l
as q ue s on capa-
ce s de dis ipar pot
e ncias m a-
yore s s e cons t
ruye n arrol
l
an-
do un h il
o re s is t
iv
o s obre un
cil
indro m e t
ál
ico, t
odo cubie r-
t
o por un e s m al
t
e v
it
rif
icado.
Es t
e t
ipo de re s is t
e ncia pue -
de n l
l
e gar a dis ipar h as t
a
100W , y a m e nudo e s ne ce -
s ario al
gún t
ipo de m e canis -
m o para prov
e e r l
a v
e nt
il
a-
ción ade cuada.
//página 0x16
23. //página 0x17
ElPI
C16F628 cue nt
a con dos
pue rt
os A y B, al
gunos pine s de
e s t
os pue rt
os de e nt
rada/
s al
ida
s on m ul
t
ipl
e xados con una f
un-
ción al
t
e rnat
iv
a de l
os pe rif
é-
ricos de ldis pos it
iv
o. Cuando un
pe rif
érico e s act
iv
ado e lpin no
pue de s e r us ado para propós i-
t
os ge ne ral
e s de e nt
rada/
s al
ida.
ElPUERTO A e s un pu-
El
PI
C16F628A e s un m i-
crocont
rol
adorde 8 bit
s de Mi-
croch ip. Pe rt
e ne ce a l
a f
am il
ia
de rango m e dio, e s m uy e co-
nóm ico y dis pone de v
arios
pe rif
éricos int
e grados q ue
nos pe rm it
irán re al
izar una
gran v
arie dad de apl
icacio-
ne s . Cue nt
a con un s e t de
ins t
ruccione s re ducido, t
an
s ol
o 35, l
o q ue nos f
acil
it
ará
s u program ación.
Aq uí s e pre s e nt
a un t
ut
orialde lPI
C16F628A e n e lcuals e da una pe q ue ña
int
roducción al
m icrocont
rol
ador y l
ue go ire m os a l
o int
e re s ant
e , l
a program ación.
Se com e nz ará de s de ce ro h as t
a abarcar cada m ódul
o q ue t
ie ne , s ie m pre con un
e j
e m pl
o s e ncil
l
o de apl
icación. L
a ide a e s ir adq uirie ndo conce pt
os a m e dida q ue
l
os ut
il
iz are m os e n e lde s arrol
l
o de l
os e j
e m pl
os , de e s t
a m ane ra l
o q ue s e
pre s e nt
a t
e óricam e nt
e l
o as ociam os inm e diat
am e nt
e con l
a pract
ica.
/
/por: Al
e j
andro Cas anov
a /
/
inf
.pic.s uk y@ l
iv
e .com .ar
e l
PI
C16F628A e n as s e m bl
e r
prim e ra part
e
- Conj
unt
o re ducido de ins t
ruccione s (RI
SC).
- Os cil
adorint
e rno de 4MH z .
- Ope ra con una f
re cue ncia de re l
oje xt
e rna de h as t
a 20 MH z (cicl
o
de m áq uina de 200ns ).
- Me m oria de program a: 2048 l
ocacione s de 14 bit
s .
- Me m oria de dat
os : RAM de 224 byt
e s (8 bit
s porre gis t
ro).
- Me m oria EEPROM: 128 byt
e s (8 bit
s porre gis t
ro).
- St
ack de 8 niv
e l
e s .
- 16 T
e rm inal
e s de I
/
O q ue s oport
an corrie nt
e s de h as t
a 25 m A.
- 3 T
e m poriz adore s .
- Módul
o de com unicación s e rie (USART).
- Módul
o CCP(Capt
ura/
Com paración/
PW M).
- 2 com paradore s anal
ógicos , 1 re f
e re ncia de v
ol
t
aj
e program abl
e .
24. e rt
o de e nt
rada de 8 bit
s . T
o-
dos l
os pine s , e xce pt
o ,
pue de n s e r conf
igurados co-
m o e nt
rada o s al
ida con l
a
re s pe ct
iv
a conf
iguración de l
re gis t
ro TRI
SA. Elpin
e s t
a m ul
t
ipl
e xado con l
a e n-
t
rada de re l
oj y com o
s al
ida s e com port
a com o co-
l
e ct
or abie rt
o, por l
o t
ant
o de -
be m os pone r una re s is t
e ncia
pul
l
-up a V
dd. El
pin e s
un dis parador Sch m it
t s ol
o
de e nt
rada y no cue nt
a con
cont
rol
adore s de s al
ida, s e -
gún l
a conf
iguración pue de
s e r us ado com o (re -
s e t e xt
e rno), y ade m ás s irv
e
t
am bién para e nt
rar e n e l
m odo de program ación cuan-
do s e apl
ica una t
e ns ión
iguala V
pp (13,4V m ínim o).
L
os de m ás pine s de lpue rt
o
t
rabaj
an de e nt
rada com o
dis parador de Sch m it
t Tri-
gge r y com o s al
ida l
ógica
CMOS. L
os pine s
s irv
e n de e nt
rada para l
os
com paradore s anal
ógicos y
por de f
e ct
o v
ie ne n as ocia-
dos a e l
l
os , as í q ue para
us arl
os com o I
/
O digit
alde -
be n s e r pre v
iam e nt
e conf
igu-
rados . L
os pine s y
cuando no s e ut
il
iz a os ci-
l
ador e xt
e rno s e us an para
e nt
rada e xt
e rna de re l
oj y
s al
ida de os cil
ador
, de pe ndi-
e ndo l
a conf
iguración q ue s e
us e .
El e s un
pue rt
o bidire ccional de 8
bit
s , de l
cual
por s of
t
w are s e
pue de n h abil
it
ar re s is t
e ncias
de pul
l
-up int
e rnas . El
PUER-
TO B e s m ul
t
ipl
e xado con in-
t
e rrupcione s e xt
e rnas , t
al
e s
com o de t
e cción de f
l
anco
por , cam bio de niv
e l
por
a , m ódul
o ,
e lm ódul
o y e lre l
oj de
e nt
rada/
s al
ida . L
os de -
m ás pine s s on: , pin de
al
im e nt
ación pos it
iv
a (de 2 a
5,5 V
cc) y , pin de al
i-
m e nt
ación ne gat
iv
a.
L
a arq uit
e ct
ura q ue
ut
il
iz a e lPI
C e s l
a H arv
ard,
e s t
a dis pone de dos m e m o-
rias inde pe ndie nt
e s , una q ue
cont
ie ne s ol
o ins t
ruccione s
(m e m oria de program a) y l
a
ot
ra s ol
o cont
ie ne dat
os (m e -
m oria RAM). Am bas dis po-
ne n de s us re s pe ct
iv
os bu-
s e s de acce s o y e s pos ibl
e
re al
iz ar ope racione s de acce -
s o s im ul
t
áne am e nt
e e n am -
bas .
ElPI
C16F628A pos e e
un cont
ador de program a de
13 bit
s , capaz de dire ccionar
un e s pacio de m e m oria de
8Kx14. Sin e m bargo, única-
m e nt
e l
os prim e ros 2Kx14,
de s de 0000h h as t
a 07FFh ,
e s t
án im pl
e m e nt
ados . L
os
v
e ct
ore s de re s e t e int
e rrup-
ción e s t
án e n l
as dire ccione s
0000h y 0004h , re s pe ct
iv
a-
m e nt
e . L
a pil
a (s t
ack ) e s de
8 niv
e l
e s , l
o cual s ignif
ica
q ue pue de s oport
ar h as t
a 8
dire ccione s de re t
orno de
s ubrut
ina.
ElPI
C16F628A pos e e
un e s pacio de m e m oria RAM
//página 0x18
25. de dat
os de 512x8, div
idido
e n 4 bancos de 128 byt
e s ca-
da uno. Sin e m bargo, s ól
o
e s t
án im pl
e m e nt
ados 330 by-
t
e s , corre s pondie ndo 224 al
áre a de l
os re gis t
ros de pro-
pós it
o ge ne ral(GPR) y 36 al
áre a de l
os re gis t
ros de f
un-
ción e s pe cial
(SFR). L
os re s -
t
ant
e s 70 byt
e s im pl
e m e nt
a-
dos s on e s pe j
os de al
gunos
SFR de us o f
re cue nt
e , as í
com o de l
os úl
t
im os 16 GPR
de l
banco 0. Por e j
e m pl
o, l
as
pos icione s 0Bh , 8Bh , 10Bh y
18Bh corre s ponde n alre gis -
t
ro I
NTCON, de m odo q ue u-
na ope ración h e ch a e n cual
-
q uie ra de e l
l
os , s e re f
l
e j
a au-
t
om át
icam e nt
e e n l
os ot
ros .
Se dice , e nt
once s , q ue l
as
pos icione s 8Bh , 10Bh y
18Bh e s t
án m ape adas e n l
a
pos ición 0Bh . Es t
a caract
e -
rís t
ica agil
iz a e l
acce s o a e s -
t
os re gis t
ros , pue s t
o q ue no
s ie m pre e s ne ce s ario e s pe ci-
f
icar e lbanco donde s e e n-
cue nt
ran. L
a s e l
e cción de l
banco de ubicación de un
SFR o un GPR part
icul
ar s e
h ace m e diant
e l
os bit
s 6
(RP1) y 5 (RP0) de lre gis t
ro
STATUS.
ElPI
C16F628 h a s ido
cons t
ruído con caract
e rís t
i-
cas t
al
e s q ue s e pue de con-
f
igurar para f
uncionar e n m o-
dos de ope ración q ue no ne -
ce s it
an com pone nt
e s e xt
e r-
nos t
al
e s com o e lcircuit
o de
re l
oj o de re s e t
. Es t
o im pl
ica
q ue e s ne ce s ario conf
igurar
s u m odo de ope ración a t
ra-
v
és de una pal
abra de conf
i-
guración.
L
a pal
abra de conf
igu-
ración s e e ncue nt
ra m ape a-
da e n l
a dire cción 2007h de
l
a m e m oria de program a y
s ol
o pue de s e r acce s ada du-
rant
e l
a program ación de dis -
pos it
iv
o.
L
os m icrocont
rol
ado-
re s dis pone n de un pin de s t
i-
nado para e j
e cut
ar un RE-
SET e n e lcas o de una f
al
l
a
o cuando s e a ne ce s ario apl
i-
carl
e un RESET
. En e lcas o
de l de be e s t
ar
h abil
it
ado por f
us e .
Es t
a e nt
rada e s t
á ne gada,
porl
o cual
t
e ndre m os q ue co-
ne ct
arl
o a l
a al
im e nt
ación po-
s it
iv
a s i q ue re m os q ue
nue s t
ro PI
C f
uncione . Una
f
orm a de t
e ne r cont
rols obre
e l
RESET e s ut
il
iz ar e l
circui-
t
o de l
a f
igura #7.
//página 0x19
Bit
s de prot
e cción de código. L
os bit
s 13-10 e ncar-
gados de prot
e ge rl
a m e m oria de program a.
Bitde prot
e cción para código de dat
os .
1 = Prot
e cción de s h abil
it
ada de l
a m e m oria de dat
os .
0 = Prot
e cción h abil
it
ada e n l
a m e m oria de dat
os .
H abil
it
ación de l
a program ación porv
ol
t
aj
e baj
o.
1 = L
V
Ph abil
it
ado, l
a t
e rm inal
RB4/
PGM t
ie ne t
al
f
unción.
0 = L
V
P: de s h abil
it
ado, RB4/
PGM e s una t
e rm inal
I
/
O.
Bitde re s e tporv
ol
t
aj
e de al
im e nt
ación baj
o.
1 = Re s e tporBOD h abil
it
ado
0 = Re s e tporBOD de s h abil
it
ado
H abil
it
ación de l
t
e rm inal
de re s e t
.
1 = T
e rm inal
de re s e te n RA5.
0 = MCL
R cone ct
ado int
e rnam e nt
e a V
dd, RA5 e s un pin I
/
O.
Bitde h abil
it
ación de t
e m poriz adoral
e ne rgiz ar
.
1 = PW RTh abil
it
ado.
0 = PW RTde s h abil
it
ado.
Bit
s de h abil
it
ación de W at
ch -Dog.
1 = W DTh abil
it
ado.
0 = W DTde s h abil
it
ado.
Se l
e cción de l
t
ipo de os cil
ador
.
26. A cont
inuación v
am os
a de s arrol
l
ar nue s t
ro prim e r
program a. Es t
e act
iv
ará un
L
ED cone ct
ado a RB0 s ie m -
pre q ue e lint
e rrupt
or cone c-
t
ado a RA0 e s t
e ce rrado.
Para e l
l
o v
am os a ne ce s it
ar
e l
circuit
o de l
a f
igura #8.
En t
e ne m os co-
ne ct
ado un pul
s ador de f
or-
m a q ue cuando l
o pul
s e m os
s e int
roduz ca un ce ro l
ógico
e n e l
pin y cuando no l
o pul
-
s e m os s e int
roduz ca un uno
l
ógico. T
e ne m os un L
ED con
s u corre s pondie nt
e re s is t
e n-
cia l
im it
adora de corrie nt
e e n
e l
pin .
Prim e ro q ue nada de -
be m os e s pe cif
icar con q ue
m icrocont
rol
ador e s t
am os
t
rabaj
ando, e s t
o l
o re al
iz a-
m os e n l
as dos prim e ras l
í-
ne as :
;****Encabe z ado ****
l
is tp=16F628A
#incl
ude P16F628A.inc
En e l arch iv
o
s e e ncue nt
ran l
as
de f
inicione s de l
as dire ccio-
ne s de l
os re gis t
ros e s pe cíf
i-
cos , l
os bit
s ut
il
iz ados e n ca-
da re gis t
ro y l
os f
us ibl
e s de l
m icrocont
rol
ador
.
H ay cie rt
os as pe ct
os
de l PI
C q ue h an de s e r
act
iv
ados o de s act
iv
ados m e -
diant
e h ardw are a l
a h ora de
program arl
o. Es t
o q uie re de -
cir q ue no s e pue de n v
ol
v
e r
a cam biar h as t
a q ue e lch ip
no s e re program e de nue v
o.
En e s t
e e j
e m pl
o us am os , CP
de s h abil
it
ada, W at
ch dog apa-
gado, Bode n h abil
it
ado, Po-
w e r-on h abil
it
ado, Os cil
ador
int
e rno, CP de dat
a de s h abil
i-
t
ada, L
V
P de s h abil
it
ado y
MCL
R h abil
it
ado.
_ _ CONFI
G _ CP_ OFF&
_ W DT_ OFF& _ BODEN_ ON
& _ PW RTE_ ON &
_ I
NTOSC_ OSC_ NOCL
KOUT
& _ DATA_ CP_ OFF&
_ L
V
P_ OFF& _ MCL
RE_ ON
En e s t
e cas o s ol
o de -
f
inire m os bit
s , por e j
e m pl
o
L
ED y Pul
s ador
.
Para organiz ar nue s -
t
ro program a l
o e s t
ruct
urare -
m os de l
a s iguie nt
e m ane ra:
1- Niv
e l
2- Dire ct
iv
a
3- Ope randos
4- Com e nt
arios
//página 0x1A
27. Para l
a conf
iguración ne ce -
s it
am os l
os s iguie nt
e s re gis -
t
ros :
.
Por de f
e ct
o l
os pue rt
os q ue -
dan conf
igurados com o e n-
t
radas de dat
os y s i s e q uie -
re cam biar h ay q ue conf
igu-
rarl
os . Es t
o s e re al
iz a con
l
os re gis t
ros y ,
t
e nie ndo e n cue nt
a q ue s i s e
as igna un ce ro (0) a un pin,
q ue dará com o s al
ida y s i s e
as igna un uno (1), q ue dará
com o e nt
rada. Ade m ás e n
e s t
e m icrocont
rol
ador de be -
m os conf
igurar l
os pine s
a , q ue por de f
e ct
o
v
ie ne n as ociados a l
os com -
paradore s , e s t
o s e re al
iz a
con e l
re gis t
ro .
En nue s t
ro cas o s e
ne ce s it
a col
ocar igual
a 11111 (o s e pue de de j
ar
por de f
e ct
o), 111 e n
(para t
odos l
os pine s I
/
O digi-
t
al
e s ) y 11111110. A-
h ora bie n, cuando e lPI
C a-
rranca s e e ncue nt
ra e n e l
banco 0, y s e
e ncue nt
ran e n e lbanco 1,
e nt
once s de be m os cam biar
de banco. Es t
o s e re al
iz a
con e lbit de lre gis t
ro
. Si e s t
e s e pone un
ce ro a , e s t
are m os e n e l
banco 0. Si s e col
oca un u-
no, e s t
are m os e n e l
banco 1.
Es e lre gis t
ro m ás im -
port
ant
e q ue t
ie ne e lm icro-
cont
rol
ador y e s de nom inado
acum ul
ador
. Es t
e re gis t
ro al
-
m ace na t
e m poral
m e nt
e uno
de l
os dat
os q ue int
e rv
ie ne n
e n l
a ope ración de l
a
.
AL
U com o indica s u nom bre ,
re al
iz a l
as ope racione s arit
-
m ét
icas y l
ógicas pre v
is t
as
e n l
a col
e cción de ins t
ruccio-
ne s de l
m icrocont
rol
ador
.
Ya conf
igurado nue s -
//página 0x1B
;
****De f
inición de v
ariabl
e s ****
L
e d e q u 0 ;De f
inim os L
e d com o e l
bit0 de un re gis t
ro, e n e s t
e cas o PORTB.
Pul
s ador e q u 0 ;De f
inim os Pul
s adorcom o e l
bit0, e n e s t
e cas o s e rá para PORTA.
Figura 7. Circuit
o de re s e t
.
;
****V
e ct
orRe s e t****
Re s e t
org 0x00 ;Aq uí com ie nz a e l
m icro.-
got
o inicio ;Sal
t
o a inicio de m i program a.-
org 0x05 ;Orige n de l
código de program a.-
;
****Program a Principal
****
I
nicio
;
****Conf
iguración de pue rt
os ****
m ov
l
w b’00000111’ ;Conf
iguram os PORTA com o I
/
O Digit
al
.
m ov
w fCMCON ;Mov
e m os 111 a W , y W a CMCON.-
bs f STATUS,RP0 ;Pas am os de Banco 0 a Banco 1.-
;TRI
SA porde f
aul
te s t
a e n 11111111.-
m ov
l
w b’11111110’ ;Mov
e m os 11111110 a W .-
m ov
w fTRI
SB ;Mov
e m os W a TRI
SB.-
bcf STATUS,RP0 ;Pas o de l
Banco 1 al
Banco 0
bcf PORTB,L
e d ;Apago L
e d.-
28. t
ro PI
C, v
am os a re al
iz ar l
a
rut
ina q ue e j
e cut
ará. Aq uí s o-
l
am e nt
e e n un bucl
e inf
init
o
t
e s t
e am os cont
inuam e nt
e e l
e s t
ado de lpul
s ador
, y s e gún
s u e s t
ado s e e nce nde rá o a-
pagará e l
L
ED.
Cicl
o de m áq uina. Es
l
a unidad bás ica de t
ie m po
q ue ut
il
iz a e lm icrocont
rol
a-
dor y e q uiv
al
e a 4 cicl
os de
re l
oj
. Ós e a, s i t
e ne m os un
os cil
ador de 4 MH z , e lcicl
o
de re l
oj (T
os c) s e ria de 250-
ns y e l cicl
o de m áq uina
(T
cy) de 1 us .
//página 0x1C
;
****Cont
rol
de L
e d ****
Bucl
e
bt
f
s c PORTA,Pul
s ador ;Pre gunt
am os s i e s t
a e n 0 l
ógico.-
got
o Apagar ;Es t
a a 1 l
ógico, Apagam os L
e d.-
bs f PORTB,L
e d ;Es t
a a 0 l
ógico, Ence nde m os L
e d.-
got
o Bucl
e ;T
e s t
e am os nue v
am e nt
e l
a condición de l
Pul
s ador
.-
Apagar
bcf PORTB,L
e d ;
Apagam os L
e d.-
got
o Bucl
e ;T
e s t
e am os nue v
am e nt
e l
a condición de l
Pul
s ador
.-
e nd ;T
e rm inam os código.-
;****Encabe z ado ****
l
is tp=16F628A
#incl
ude P16F628A.inc
_ _ CONFI
G _ CP_ OFF& _ W DT_ OFF& _ BODEN_ ON & _ PW RTE_ ON &
_ I
NTOSC_ OSC_ NOCL
KOUT & _ DATA_ CP_ OFF& _ L
V
P_ OFF& _ MCL
RE_ ON
;
****De f
inición de v
ariabl
e s ****
L
e d e q u 0 ;De f
inim os L
e d com o e l
bitce ro de un re gis t
ro, e n e s t
e cas o
;PORTB.-
Pul
s ador e q u 0 ;De f
inim os Pul
s adorcom o e l
bit0, e n e s t
e cas o s e rá para PORTA
;
****V
e ct
orRe s e t****
Re s e t
org 0x00 ;Aq uí com ie nz a e l
m icro.-
got
o inicio ;Sal
t
o a inicio de m i program a.-
org 0x05 ;Orige n de l
código de program a.-
29. L
as ins t
ruccione s de l
m icrocont
rol
ador ne ce s it
an 1
cicl
o de m áq uina e xce pt
o al
-
gunas e xce pcione s , com o
s on l
os com andos q ue incl
u-
ye n s al
t
os (got
o, cal
l
, bt
f
s s ,
bt
f
s c, re t
urn, e t
c.) q ue ne ce -
s it
an dos cicl
os de m áq uina.
Para e xpl
icar com o s e
cal
cul
a e m pe z are m os con u-
na de 1 s ol
o cicl
o, ós e a:
Ent
re parént
e s is s e
m ue s t
ra e lnúm e ro de cicl
os
q ue de m ora cada ins t
ruc-
ción. De m ane ra q ue e lnú-
m e ro de cicl
os de ins t
rucción
T
s ub cons um idos por l
a ru-
t
ina, incl
uye ndo l
os 2 cicl
os
de l
a l
l
am ada (CAL
L
) s e rán:
Donde T
cy e s l
a duración e n
s e gundos de un cicl
o de ins -
t
rucción. Ut
il
iz ando un os cil
a-
dor de 4 MH z l
a m ayor dura-
ción pos ibl
e e s de 770us ,
con 0xXX = 0xFF
.
Para l
ograr de m oras
de m ayor duración de be n ut
i-
l
iz ars e l
az os anidados , poni-
e ndo un l
az o de de m ora de n-
t
ro de ot
ro. V
e am os e le j
e m -
pl
o de l
a página s iguie nt
e pa-
ra pode rcom pre nde rl
o:
//página 0x1D
;
****Program a Principal
****
I
nicio
;
****Conf
iguración de pue rt
os ****
m ov
l
w b’00000111’ ;Conf
iguram os PORTA com o I
/
O Digit
al
.
m ov
w fCMCON ;Mov
e m os 111 a W , y W a CMCON.-
bs f STATUS,RP0 ;Pas am os de Banco 0 a Banco 1.-
;TRI
SA porde f
aul
te s t
a e n 11111111.-
m ov
l
w b’11111110’ ;Mov
e m os 11111110 a W .-
m ov
w fTRI
SB ;Mov
e m os W a TRI
SB.-
bcf STATUS,RP0 ;Pas o de l
Banco 1 al
Banco 0
bcf PORTB,L
e d ;Apago L
e d.-
;
****Cont
rol
de L
e d ****
Bucl
e
bt
f
s c PORTA,Pul
s ador ;Pre gunt
am os s i e s t
a e n 0 l
ógico.-
got
o Apagar ;Es t
a a 1 l
ógico, Apagam os L
e d.-
bs f PORTB,L
e d ;Es t
a a 0 l
ógico, Ence nde m os L
e d.-
got
o Bucl
e ;T
e s t
e am os nue v
am e nt
e l
a condición de l
Pul
s ador
.-
Apagar
bcf PORTB,L
e d ;Apagam os L
e d.-
got
o Bucl
e ;T
e s t
e am os nue v
am e nt
e l
a condición de l
Pul
s ador
.-
e nd ;T
e rm inam os Código.-
De m ora_ xxus
m ov
l
w 0xXX ;Cargam os v
al
orXX q ue cont
rol
a duración (1)
m ov
w fCont
ador ;I
niciam os Cont
ador(1)
Re pe t
icion
De cf
s z Cont
ador ;De cre m e nt
a cont
adory s i e s ce ro s al
e (1 s i no s al
e , 2 s i s al
e )
got
o Re pe t
icion ;No e s 0, re pe t
im os (2)
re t
urn ;Re gre s am os de l
a s ubrut
ina (2)
30. En e s t
e e j
e m pl
o s e a-
pl
icará l
a rut
ina de de m ora.
Se h ará t
it
il
ar un L
ED cone c-
t
ado a RB0 s ie m pre q ue e l
in-
t
e rrupt
or cone ct
ado a RA0
e s t
e ce rrado. El
h ardw are ne -
ce s ario e s idént
ico al
de l
pri-
m e re j
e m pl
o.
//página 0x1E
De m ora_ xx
m ov
l
w 0xXX ;(1)
m ov
w fCont
ador1 ;(1)
Re pe t
icion1
m ov
l
w 0xYY ;(1)
m ov
w fCont
ador2 ;(1)
Re pe t
icion2
de cf
s z Cont
ador2,1 ;(1 s i no s al
e , 2 s i s al
e )
got
o Re pe t
icion2 ;(2)
de cf
s z Cont
ador1,1 ;(1 s i no s al
e , 2 s i s al
e )
got
o Re pe t
icion1 ;(2)
re t
urn ;(2)
L
a duración de e s t
a rut
ina e n
cicl
os de re l
oj e s t
á dada por
l
a s iguie nt
e f
órm ul
a, y de be -
rá s e r:
Ts ub = 2 + 1 + 1 + (0xXX)*[1
+ 1 + (0xYY - 1)*(1 + 2) + 2 +
1 + 2]+ [1 + 1 + (0xYY -
1)*(1 + 2) + 2 + 2 + 2]cicl
os
L
o cuals e pue de s im pl
if
icar
com o s igue :
[b]
Ts ub = [0xXX*((0xYY -
1)*3 + 7) + 5]Tcy[/
b]
En e s t
e cas o, para os cil
ador
de 4MH z e lm áxim o q ue s e
pue de cons e guir e s de apro-
xim adam e nt
e 19 6m S.
;****Encabe z ado ****
l
is tp=16F628A
#incl
ude P16F628A.inc
_ _ CONFI
G _ CP_ OFF& _ W DT_ OFF& _ BODEN_ ON & _ PW RTE_ ON &
_ I
NTOSC_ OSC_ NOCL
KOUT & _ DATA_ CP_ OFF& _ L
V
P_ OFF& _ MCL
RE_ ON
;
****De f
inición de v
ariabl
e s ****
Cont
ador1 e q u 0x20 ;Se l
e ccionam os pos ición e n l
a m e m oria RAM (GPR) para guardar
;re gis t
ro ut
il
iz ado para de m ora.-
Cont
ador2 e q u 0x21 ;Re gis t
ro ut
il
iz ado e n de m ora.-
L
e d e q u 0 ;De f
inim os L
e d com o e l
bitce ro de un re gis t
ro, e n e s t
e cas o
PORTB.-
Pul
s ador e q u 0 ;De f
inim os Pul
s adorcom o e l
bit0, e n e s t
e cas o s e ra para PORTA
;
****V
e ct
orRe s e t****
Re s e t
org 0x00 ;Aq uí com ie nz a e l
m icro.-
got
o inicio ;Sal
t
o a inicio de m i program a.-
org 0x05 ;Orige n de l
código de program a.-
;
****Program a Principal
****
I
nicio
;
****Conf
iguración de pue rt
os ****
m ov
l
w b’00000111’ ;Conf
iguram os PORTA com o I
/
O Digit
al
.
m ov
w fCMCON ;Mov
e m os 111 a W , y W a CMCON.-
31. El
PC, dire ccionam ie n-
t
o de lprogram a: e s pe cif
ica
l
a dire cción de l
a ins t
rucción
q ue s e e j
e cut
ará. Cons t
a de
13bit
s , con l
o q ue e s pos ibl
e
dire ccionar h as t
a 8K pal
a-
bras , pe ro e n e lPI
C16F628
s ol
o s e im pl
e m e nt
a 2k .
L
a part
e al
t
a de lcon-
t
ador de program a ( ) no
s e pue de acce de r dire ct
a-
m e nt
e , e l
l
a de be cargars e
de s de l
os 5bit
s m ás baj
os de l
re gis t
ro l
l
am ado
(dire cción 0x0A).
En l
a cre ación de t
a-
bl
as , l
a pos ición a l
e e r de l
a
m is m a s e re al
iz a con e l
con-
t
rolde lre gis t
ro . Es t
e
re gis t
ro e s de 8bit
s , por l
o
q ue dire cciona s ol
o 256 po-
s icione s , por e l
l
o s e de be t
e -
ne r e n cue nt
a: l
a pos ición de
l
a t
abl
a e n l
a m e m oria de
program a, y e lt
am año de l
a
t
abl
a, s i nue s t
ra t
abl
a t
ie ne
m ás de 255 pos icione s , s i o
s i de be m os m ane j
ar l
os bit
s
m ás s ignif
icat
iv
os de PC [PC-
L
ATCH ].
Para de v
ol
v
e r e lv
al
or
dire ccionado s e ut
il
iz a ,
és t
a ins t
rucción de v
ue l
v
e un
v
al
or e n e l
acum ul
ador al
re -
t
ornar de una s ubrut
ina. L
a
cre ación de l
a t
abl
a s e h ará
de l
a s iguie nt
e f
orm a:
T
abl
a
addw fPCL
,f
re t
l
w V
al
or0
re t
l
w V
al
or1
re t
l
w V
al
or2
//página 0x1F
bs f STATUS,RP0 ;Pas am os de Banco 0 a Banco 1.-
;TRI
SA porde f
aul
te s t
a e n 11111111.-
m ov
l
w b’11111110’ ;Mov
e m os 11111110 a W .-
m ov
w fTRI
SB ;Mov
e m os W a TRI
SB.-
bcf STATUS,RP0 ;Pas o de l
Banco 1 al
Banco 0
bcf PORTB,L
e d ;Apago L
e d.-
;
****Cont
rol
de L
e d ****
Bucl
e bt
f
s c PORTA,Pul
s ador ;Pre gunt
am os s i e s t
a e n 0 l
ógico.-
got
o Apagar ;Es t
a a 1 l
ógico, Apagam os L
e d.-
bs f PORTB,L
e d ;Es t
a a 0 l
ógico, Ence nde m os L
e d.-
cal
l De m ora_ 150m s ;Mant
e ne m os pre ndido 150 m il
is e gundos
bcf PORTB,L
e d ;Apagam os L
e d
cal
l De m ora_ 150m s ;Apagam os durant
e 150 m s , Ya re al
iz am os un t
it
il
o.-
got
o Bucl
e ;T
e s t
e am os nue v
am e nt
e l
a condición de l
Pul
s ador
Apagar bcf PORTB,L
e d ;
Apagam os L
e d.-
got
o Bucl
e ;T
e s t
e am os nue v
am e nt
e l
a condicion de l
Pul
s ador
.-
;
****De m ora ****
De m ora_ 150m s
m ov
l
w 0xFF ;
m ov
w fCont
ador1 ;I
niciam os cont
ador1.-
Re pe t
icion1
m ov
l
w 0xC3 ;
m ov
w fCont
ador2 ;I
niciam os cont
ador2
Re pe t
icion2
de cf
s z Cont
ador2,1 ;De cre m e nt
a Cont
ador2 y s i e s 0 s al
e .-
got
o Re pe t
icion2 ;Si no e s 0 re pe t
im os cicl
o.-
de cf
s z Cont
ador1,1 ;De cre m e nt
a Cont
ador1.-
got
o Re pe t
icion1 ;Si no e s ce ro re pe t
im os cicl
o.-
re t
urn ;Re gre s a de l
a s ubrut
ina.-
e nd ;T
e rm inam os código.
32. Donde V
al
or0, V
al
or1, V
al
or-
2, ..., e t
c. s on l
os v
al
ore s
q ue q ue re m os al
m ace nar e n
l
a t
abl
a.
L
a e s t
rat
e gia a s e guir
para cons ul
t
ar al
gún v
al
or de
l
a t
abl
a e s cargar e n e la-
cum ul
ador (W ) l
a dire cción
de l
a t
abl
a donde s e e ncue n-
t
ra e l
v
al
or q ue q uie re s l
e e r y
de s pués l
l
am ar a l
a s ubru-
t
ina TABL
A (con un CAL
L
).
Adv
e rt
e ncia: l
a carga de W
no pue de s upe rar e lnúm e ro
de v
al
ore s de l
a t
abl
a, s ino
s e e s t
ará e j
e cut
ando una ins -
t
rucción e rróne a prov
ocando
un m al f
uncionam ie nt
o de l
program a.
Para apl
icar e lus o de
l
as t
abl
as v
am os a h ace r un
e j
e m pl
o donde s e cont
rol
e
un dis pl
ay de 7 s e gm e nt
os .
Un dis pl
ay e s una col
e cción
de L
EDs ubicados de f
orm a
e s t
rat
égica. Si s e l
os agrupa
unie ndo s us cát
odos s e rá de
, o bie n agru-
pando s us ánodos , un dis -
pl
ay de .
Por ot
ro l
ado e s t
os
L
EDs pue de n s e r f
abricados
e n f
orm a de punt
os o s e g-
m e nt
os , t
al
e s as í q ue s e e n-
cue nt
ran dis pl
ay de 7 s e g-
m e nt
os com o l
os de l
a f
igura
#9 :
Elprogram a q ue re al
i-
z are m os l
e e rá l
a cant
idad de
v
e ce s q ue s e act
iv
a un pul
s a-
dor y m os t
rare m os e l
re s ul
t
a-
do. Cone ct
are m os e ldis pl
ay
e n f
orm a dire ct
a, e s de cir co-
ne ct
ando e lpue rt
o B de lm i-
crocont
rol
ador a l
os pine s
de l
dis pl
ay, y l
ue go e nce nde r
cada uno de l
os s e gm e nt
os
de ldis pl
ay para v
is ual
iz ar e l
v
al
or corre s pondie nt
e . Para
e l
l
o cre are m os una t
abl
a q ue
cont
e nga l
os dis t
int
os códi-
gos para e lnúm e ro q ue ne -
ce s it
e m os v
is ual
iz ar
. Es ob-
v
io q ue con un s ol
o dis pl
ay
s ol
am e nt
e podre m os cont
ar
de 0 a 9 .
Una m ane ra m ás có-
m oda de e s cribir l
a t
abl
a de
ins t
ruccione s pue de
l
ogrars e us ando l
a dire ct
iv
a
(De f
ine T
abl
e ) de l
e ns am -
bl
ador
, l
a cualnos pe rm it
e
de f
inir una t
abl
a de dat
os
q ue s e rá s us t
it
uida por una
l
is t
a de ins t
ruccione s
; (cont
inua e n l
a página
0x22)...
//página 0x20
33. ;****Encabe z ado ****
l
is tp=16F628A
#incl
ude P16F628A.inc
_ _ CONFI
G _ CP_ OFF & _ W DT_ OFF & _ BODEN_ ON & _ PW RTE_ ON &
_ I
NTOSC_ OSC_ NOCL
KOUT & _ DATA_ CP_ OFF& _ L
V
P_ OFF& _ MCL
RE_ ON
;
****De f
inición de v
ariabl
e s ****
Cont
ador e q u 0x20 ;Re gis t
ro para al
m ace narcont
e o
Cont
ador1 e q u 0x21 ;Re gis t
ro ut
il
iz ado e n de m ora.-
Cont
ador2 e q u 0x22 ;Re gis t
ro ut
il
iz ado e n de m ora.-
Pul
s ador e q u 7 ;De f
inim os Pul
s adorcom o e l
bit7, e n e s t
e cas o s e rá
;PORTB.-
;
****I
nicio de l
Micro ****
Re s e torg 0x00 ;Aq uí com ie nz a e l
m icro.-
got
o I
nicio ;Sal
t
o a inicio de m i program a.-
;
****T
abl
a de conv
e rs ión BCD a 7 Se gm e nt
os ****
;Se col
oca al
inicio para as e gurarubicación e n Página.-
org 0x05 ;Orige n de l
código de t
abl
a.-
BCD7SEG: ;re t
l
w b'gf
e dcba' para dis pl
ay cát
odo com ún
addw fPCL
,1 ;Se incre m e nt
a e l
cont
adorde l
program a.-
re t
l
w b'0111111' ;0
re t
l
w b'0000110' ;1
re t
l
w b'1011011' ;2
re t
l
w b'1001111' ;3
re t
l
w b'1100110' ;4
re t
l
w b'1101101' ;5
re t
l
w b'1111101' ;6
re t
l
w b'0000111' ;7
re t
l
w b'1111111' ;8
re t
l
w b'1101111' ;9
cl
rf Cont
ador ;Si l
l
e ga 10, s e re s e t
e a cont
ador
re t
l
w b'0111111' ;0
;
****Program a principal
****
;
****Conf
iguración de pue rt
os ****
I
nicio bs f STATUS,RP0 ;Pas am os de Banco 0 a Banco 1.-
m ov
l
w b'10000000' ;RB7 com o e nt
rada y l
os de m ás com o s al
ida.-
m ov
w fTRI
SB
bcf STATUS,RP0 ;Pas o de l
Banco 1 al
Banco 0
m ov
l
w b'0111111' ;Com ie nz a e n ce ro.-
m ov
w fPORTB
cl
rf Cont
ador
;
****T
e s t
e o de Pul
s ador****
T
e s t
e o
bt
f
s c PORTB,Pul
s ador ;T
e s t
e am os s i e s t
a a 0 l
ógico.-
got
o T
e s t
e o ;No, s e guim os t
e s t
e ando.-
//página 0x21
34. cal
l De m ora_ 20m s ;El
im inam os Ef
e ct
o re bot
e
bt
f
s c PORTB,Pul
s ador ;T
e s t
e am os nue v
am e nt
e .-
got
o T
e s t
e o ;Fal
s a Al
arm a, s e guim os t
e s t
e ando.-
incf Cont
ador
,1 ;Se h a pul
s ado, incre m e nt
am os cont
ador
.-
m ov
f
w Cont
ador ;pas am os cont
adora W
cal
l BCD7SEG ;L
l
am am os t
abl
a.-
m ov
w fPORTB ;Cargam os v
al
orre cibido porT
abl
a e n PORTB
bt
f
s c PORTB,Pul
s ador ;Es pe ram os a q ue s e s ue l
t
e e l
pul
s ador-**-
got
o $
-1 ;No, PCL- 1, --> bt
f
s s PORTA,Pul
s ador
.-
cal
l De m ora_ 20m s ;El
im inam os e f
e ct
o re bot
e .-
bt
f
s c PORTB,Pul
s ador ;T
e s t
e am os nue v
am e nt
e .-
got
o $
-4 ;No, Fal
s a al
arm a, v
ol
v
e m os a t
e s t
e ara q ue s e s ue l
t
e (**).-
got
o T
e s t
e o ;Si, T
e s t
e am os nue v
am e nt
e .-
;
****De m ora ****
De m ora_ 20m s
m ov
l
w 0xFF ;
m ov
w fCont
ador1 ;I
niciam os cont
ador1.-
Re pe t
icion1
m ov
l
w 0x19 ;
m ov
w fCont
ador2 ;I
niciam os cont
ador2.-
Re pe t
icion2
de cf
s z Cont
ador2,1 ;De cre m e nt
a Cont
ador2 y s i e s 0 s al
e .-
got
o Re pe t
icion2 ;Si no e s 0 re pe t
im os cicl
o.-
de cf
s z Cont
ador1,1 ;De cre m e nt
a Cont
ador1.-
got
o Re pe t
icion1 ;Si no e s ce ro re pe t
im os cicl
o.-
re t
urn ;Re gre s a de l
a s ubrut
ina.-
e nd
//página 0x22
as í, l
a t
abl
a ant
e rior pue de
q ue darcom o s igue :
En e l
m om e nt
o de pre -
s ionar un bot
ón pul
s ador o
cual
q uie r conm ut
ador e l
e ct
ro-
m e cánico e s ine v
it
abl
e q ue
s e produz ca un pe q ue ño ar-
co e l
éct
rico durant
e e lbre v
e
ins t
ant
e e n q ue l
as pl
acas
de lcont
act
o s e aproxim an o
s e al
e j
an de s us punt
os de
cone xión.
L
a duración de pe nde
de l
a cal
idad de l
os s w it
ch e s
y l
a v
e l
ocidad de acciona-
m ie nt
o, pe ro no dura m ás de
20m S. Se guim os e n e l
próxi-
m o núm e ro...
BCD7SEG: ;re t
l
w b'gf
e dcba' para dis pl
ay
;cát
odo com ún.-
addw fPCL
,1 ;I
ncre m e nt
a e l
cont
adorde l
program a.-
DT 0x3F
, 0x06, 0x5B, 0x4F
, 0x66, 0x6D, 0x7D, 0x07, 0xFF
,
0x6F
cl
rf Cont
ador
re t
l
w 0x3F
35.
36. //página 0x24
s u propio nom bre indica: Pul
s e
W idt
h Modul
at
ion, q ue dich o pa-
ra e nt
e nde rnos s ignif
ica
.
Un s e rv
o e s un m ot
or
cont
rol
ado por una e l
e ct
rónica
q ue l
e e e l y q ue s e e n-
carga de m ov
e r alm ot
or de -
pe ndie ndo de l
o q ue h a l
e ído. El
s e rv
o, o m e j
or dich o l
a e l
e ct
ró-
nica de ls e rv
o col
oca alm ot
or
e n cada pos ición de pe ndie ndo
de lt
ie m po e n q ue e lpul
s o q ue
l
e inye ct
am os pe rm ane ce e n al
-
t
o. Si e lt
ie m po q ue dura pul
s o
e n e s t
ado al
t
o e s de e xact
am e n-
t
e 1.5m S, e nt
once s e ls e rv
o s e
col
oca e n e lce nt
ro de s u re co-
rrido. Si e lpul
s o dura e xact
a-
m e nt
e 0.5m S e l
s e rv
o re t
roce de
de s de e lpunt
o m e dio unos 9 0º
y s e col
oca e n s u e xt
re m o iz -
q uie rdo;y s i, por úl
t
im o, e l
pul
s o
dura e xact
am e nt
e 2.5m S e l
s e r-
v
o av
anz a de s de e lpunt
o m e -
dio unos 9 0º y s e col
oca e n s u
e xt
re m o de re ch o. A l
a re l
ación
e nt
re e lt
ie m po e n q ue pe rm a-
ne ce e n al
t
o y baj
o un pul
s o l
e
Ell
e nguaj
e C e s e lq ue
us o por de f
e ct
o para e l9 0%
de m is program as . Elq ue v
a-
m os a de s arrol
l
ar e s uno de
l
os e j
e m pl
os de cóm o h ace r
cos as con e s t
e idiom a q ue
pue de n e ncont
rar e n m i pági-
na W e b. H e us ado e l PCW
PI
CC de CCS (v
.3.242). Pe ro
com o de cía Jack ElDe s t
ripa-
dor: ¡
V
ayam os porpart
e s !
Y para e m pe z ar v
e re m os
un poco de t
e oría, q ue a ningu-
no de nos ot
ros nos v
a a v
e nir
m al
. Un s e rv
om ot
or e s un ca-
ch arro, e nt
re ot
ros m uch os , q ue
pue de m ane j
ars e inye ct
ándol
e
una s e ñal
PW M.
Si m e pre gunt
áis q ué e s
e s t
o, os re s pondo q ue “
e s m é-
t
odo de cont
rolq ue cons is t
e e n
e nv
iar un t
re n de pul
s os , cada
uno de e l
l
os con un pe riodo de
t
ie m po e n al
t
o, a 5V
, y ot
ro e n
baj
o, a 0V
;s e parados cada uno
de ls iguie nt
e un t
ie m po cons -
t
ant
e y q ue pode m os v
ariarl
e l
a
re s pe ct
iv
as duracione s q ue pe r-
m ane ce e n al
t
o y baj
o”, o com o
Es m uy probabl
e q ue e n al
gún m om e nt
o s e t
e h aya ocurrido q ue no de be ría s e r
m uy com pl
icado cont
rol
ar l
os m ov
im ie nt
os de un pe q ue ño s e rv
om ot
or de s de e l
orde nador
. Y de h e ch o, no l
o e s . En e s t
e art
icul
o Die go, con s u e s t
il
o am e no y
s e ncil
l
o, nos e xpl
ica com o h ace rl
o.
/
/por: Die go Márq ue z García-Cue rv
o /
/
die go@ ucont
rol
.com .ar
cont
rol
ars e rv
os de s de e l
PC
37. l
l
am am os Dut
y Cycl
e .
Con duracione s int
e r-
m e dias de lt
ie m po e n q ue
pe rm ane ce e lpul
s o e n al
t
o,
o s e a: con dis t
int
os Dut
y Cy-
cl
e , e ls e rv
o s e pos iciona e n
punt
os int
e rm e dios de s u re -
corrido. Para q ue e ls e rv
o
re s ponda corre ct
am e nt
e de -
be n l
l
e garl
e l
os pul
s os con u-
na pe riodicidad (o f
re cue n-
cia) , uno t
ras o-
t
ro, s e parados 20m S cada u-
no de l s iguie nt
e . Ade m ás ,
cada f
l
anco de s ubida de be
e s t
ar s e parado de ls iguie nt
e
f
l
anco de s ubida l
os m is m os
20m S;por l
o t
ant
o cada cicl
o
al
t
o-baj
o dura s ie m pre e xac-
t
am e nt
e 20m S y l
o q ue v
a-
riam os e s l
a re l
ación e nt
re e l
t
ie m po q ue e s t
á e n al
t
o y e n
baj
o.
De cir q ue l
os pul
s os
e s t
án s e parados unos de o-
t
ros 20m S e s e xact
am e nt
e l
o
m is m o q ue de cir q ue s e e n-
v
ían con una
, ya q ue 50H z s on 50
pul
s os por s e gundo y por l
o
t
ant
o 1000m S (q ue t
ie ne un
s e gundo) div
idido e nt
re 50
s on e xact
am e nt
e e s o: 20m S.
En e lf
ondo t
odo e s t
e
as unt
o no e s dis t
int
o de e n-
ce nde r y apagar nue s t
ro f
a-
m os o L
ED, q ue e s al
go por
l
o q ue e m pe z am os t
odos
cuando com e nz am os a t
ras -
t
e ar con l
os PI
C's , pe ro con-
t
rol
ando m uy e xact
am e nt
e
l
os t
ie m pos durant
e l
os q ue
pe rm ane ce e nce ndido y apa-
gado. Es t
o pode m os v
e rl
o
m ás f
ácily cl
aro e n l
a f
igura
#1:
Ah ora l
o q ue t
e ne m os
q ue h ace r e s s abe r cóm o po-
de m os cont
rol
ar e s t
os t
ie m -
pos e n nue s t
ro , para po-
ne r e n al
t
o (dis parar e lpul
-
s o) y e n baj
o (apagarl
o) s igui-
e ndo l
a t
abl
a de t
ie m pos de s -
crit
a m ás arriba.
Para e l
l
o v
oy a e ch ar
m ano de ls ocorrido
de lPI
C q ue nos v
a a s e rv
ir
de re l
ojpara s abe r cuándo y
durant
e cuánt
o t
ie m po t
e ngo
q ue t
e ne r m i pul
s o e n al
t
o.
Com o s oy e lm ás l
is t
o de l
a
cl
as e h e e l
e gido un div
is or
, o
Pre e s cal
e r
, de lTI
MER0 de
1:16 (m as ade l
ant
e os con-
t
aré e lpor q ué de e s t
e di-
v
is or). ElTI
MER0 f
uncionan-
do a 1:16 h ace s al
t
ar l
a
, t
am bién
conocida com o , cada
4.09 6m S.
Es t
o e s l
o m is m o q ue
de cir q ue TI
MER0 t
arda
4.09 6m S e n cont
ar de s de 0
a 255 y q ue all
l
e gar a 255
pas ar de nue v
o a 0 h ace s al
-
t
ar l
a RTCC. Cada pas o de
cont
ador de lTI
MER0, a l
o
q ue v
am os a l
l
am ar un
, t
arda 4.09 6 /256 =
0.016m S. Es t
o m e da una
paut
a bas t
ant
e f
ácilde cal
-
cul
ar q ue cons is t
e e n q ue ca-
da 5 RTCC com pl
e t
as t
e ngo
5 * 4.09 6 = 20.48m S q ue e s
un poco m ás de l
o q ue ne ce -
s it
o, q ue s on 20m S e xact
os .
Es t
o l
o pode m os con-
s e guir cont
ando
, a 4.09 6m S cada
una, y
. No pode m os h a-
ce r q ue l
a RTCC s e acabe
ant
e s de l
a cue nt
a, pe ro s i
q ue pode m os , y e s l
o q ue v
a-
m os a h ace r
, q ue
: e s t
o s e e xpl
ica
porq ue 30 * 0.016 = 0.48m S
m e nos q ue v
a cont
ar e s t
a
úl
t
im a RTCC alh abe r e m pe -
z ado de s de un v
al
or de 30
e n l
ugar de 0, l
ue go 4.09 6 -
0.48 = 3.616m S para l
a úl
t
i-
m a RTCC.
t
e ngo
cuat
ro RTCC's com pl
e t
as a
4.09 6m S y una capada a
//página 0x25
38. 3.616 l
ue go 4 * 4.09 6 +
3.616 = 20m S. L
o q ue re al
-
m e nt
e v
oy a h ace r e s cont
ar
1 RTC com pl
e t
a, 2 RTCC
com pl
e t
as , 3 RTCC com pl
e -
t
as , 4 RTCC com pl
e t
as y
pongo e l
cont
ador de TI
MER-
0 a 30, 5 RTCC com pl
e t
as
l
ue go ya h an pas ado 20m S
e xact
am e nt
e .
A e s t
as 5 RTCC's l
e s
l
l
am o q ue s ol
o
v
oy a act
iv
ar cuando s e com -
pl
e t
e n l
as 5 RTCC's (4 com -
pl
e t
as y ot
ra m as incom pl
e -
t
a).
Ade m ás , s abie ndo
q ue cada t
ick de re l
oj ocupa
0.016m S pode m os t
raducir
l
os t
ie m pos de anch os de
pul
s os de s crit
os ant
e riorm e n-
t
e e n t
ick s de re l
oj
: as í
s on l
o m is m o q ue e s -
pe rar de re l
oj
,
e q uiv
al
e n a
de re l
oj y s on
de re l
oj
. (Re cue rda
q ue un t
ick de re l
oj e s e l
t
ie m po q ue t
arda TI
MER0 e n
cont
ar e xact
am e nt
e 1, o s e a
0.016m S).
L
a im age n ant
e rior po-
de m os ah ora conv
e rt
irl
a e n
l
a f
igura #2 e n l
as q ue h e -
m os
.
Com o v
e m os e n e l
nue v
o cronogram a: cada v
e z
q ue s e produce un
, de 4 RTC's y pico a
l
a q ue l
l
am am os ,
pone m os e n al
t
o e l
PI
N de l
a
s e ñal
de l
s e rv
o, de be m os re -
cordar q ue e s t
o s ie m pre v
a a
ocurrir e n e l
t
ráns it
o de l
con-
t
ador TI
MER0 e nt
re l
os v
al
o-
re s de 255 y 0, por l
o q ue
.
Ah ora e nt
once s s ol
o
de be m os e s pe rar e lnúm e ro
s uf
icie nt
e de t
ick s para v
ol
-
v
e ra pone rnue s t
ro a ba-
j
o. Si de s e am os q ue e l
s e rv
o
s e pos icione e n s u ce nt
ro de -
be m os m ant
e ne r e l e n
al
t
o durant
e 9 3 t
ick s de TI
-
MER0 o, l
o q ue e s l
o m is m o,
e s pe rar 1.5 m S para baj
ar e l
pul
s o.
L
a s e cue ncia q ue da
ah ora de l
a s iguie nt
e m ane ra:
- RTCC corre al
ocadam e nt
e ,
una t
ras ot
ra, de dicándos e
e xcl
us iv
am e nt
e a cont
ar cu-
ant
as de e l
l
as h an pas ado, s i
e s l
a cuart
a pone Tim e r0 a
30 para q ue l
a q uint
a s e a
m ás cort
a, s i e s l
a q uint
a po-
ne e n al
t
o f
l
agRTCC para l
o
q ue s e a ne ce s ario y com ie n-
z a de nue v
o.
- En e l
program a principal
de -
t
e ct
am os q ue f
l
agRTCC s e
h a act
iv
ado as í q ue l
o de s ac-
t
iv
am os y pone m os e n al
t
o e l
PI
N y m arcam os , con f
l
ag-
SERV
O1, q ue acabam os de
act
iv
arl
o.
- A cont
inuación, y s ie m pre
q ue f
l
agSERV
O1 e s t
é act
i-
v
ado, com probam os e lv
al
or
de TI
MER0 q ue s i e s m ayor
q ue e l q ue de s e am os , e n
nue s t
ro cas o 9 3, y cuando l
o
al
cance m os pone m os a baj
o
e l
PI
N y l
o m arcam os de s ac-
t
iv
ando f
l
agSERV
O1. H e m os
acabado.
Cada 20m S act
iv
a-
m os e lpul
s o, y t
rans curridos
1.5m S l
o de s act
iv
am os , q ue
e s e xact
am e nt
e l
o q ue q ue -
ríam os h ace r
.
El v
al
or de TI
MER0
con e l
q ue com param os para
cont
rol
ar l
a duración de cada
pul
s o e s t
á guardado e n
t
SERV
O1, q ue inicial
m e nt
e
//página 0x26
39. cargam os con e lnúm e ro de
t
ick s ne ce s arios para col
ocar
e ls e rv
o e n s u punt
o m e dio,
, y
q ue pode m os cam biar diná-
m icam e nt
e m e diant
e l
a re -
ce pción de com andos a t
ra-
v
és de l
a RS232.
De e s t
a f
orm a con l
os
com andos po-
de m os cam biar e lv
al
or de
a
,
y
re s pe ct
iv
am e nt
e ; y
con l
os com andos "
+ " y "
-"
v
am os incre m e nt
ando o de -
cre m e nt
ando s u v
al
or
. Con
"
r" l
e pe dim os alPI
C q ue
nos e nv
íe s u v
al
oract
ual
.
Ah ora s ol
o nos q ue -
daría im pl
e m e nt
ar t
odo e s t
o
e n un program a e n C q ue
q ue da de l
a s iguie nt
e f
orm a:
//página 0x27
40. /
/s e rv
o_ pw m _ 232
/
/Ej
e m pl
o con un s e rv
o FUTABA S3003
/
/Al
im e nt
ación y pul
s os a 5V
/
/Cuadro de Tie m pos :
/
/Pe riodo 20 m s (Fre cue ncia 50 H z )
/
/Anch o Pul
s o m inim o 0.5 m s
/
/Anch o pul
s o m e dio 1.5 m s
/
/Anch o pul
s o m axim o 2.5 m s
/
/TMR0 a 1:16 -> 1 RTCC cada 4.09 6 m s
/
/-> 1 Tick cada 0.09 6 /256 = 0.016 m s
/
/-> 20 m s = (4 x RTCC com pl
e t
as ) + (1 *RTCC - 30 t
ick s )
/
/Anch o Pul
s o m inim o 0.5 m s -> 31 t
ick s de TMR0
/
/Anch o pul
s o m e dio 1.5 m s -> 9 3 t
ick s de TMR0
/
/Anch o pul
s o m axim o 2.5 m s -> 155 t
ick s de TMR0
#incl
ude <16f
876a.h >
#f
us e s XT
,NOW DT
,NOPROTECT
,NOL
V
P
,PUT
,BROW NOUT
#us e de l
ay(cl
ock =4000000)
#us e s t
andard_ io(b)
#us e rs 232(baud=9 600, xm it
=PI
N_ C6, rcv
=PI
N_ C7)
#de f
ine PI
N_ SERV
O1 PI
N_ B0
cons tintAJUSTE_ FI
NO_ DE_ RTCC = 30;
cons tintt
ick s _ PUL
SO_ MI
NI
MO = 31;
cons tintt
ick s _ PUL
SO_ MEDI
O = 9 3;
cons tintt
ick s _ PUL
SO_ MAXI
MO = 155;
int
1 f
l
agRTCC = 0;
intcont
RTCC = 0;
int
1 f
l
agSERV
O1 = 0;
intt
SERV
O1 = t
ick s _ PUL
SO_ MEDI
O;
ch arKe ypre s s =0x00;
v
oid e co_ s e rv
os (v
oid);
v
oid aj
us t
a_ s e rv
o(v
oid);
#int
_ rda
v
oid rda_ is r() {
Ke ypre s s =0x00;
if
(k bh it
()){
Ke ypre s s =ge t
c();
}
}
#int
_ RTCC
RTCC_ is r(){
+ + cont
RTCC;
if
(cont
RTCC==4){
//página 0x28
41. //página 0x29
s e t
_ TI
MER0(AJUSTE_ FI
NO_ DE_ RTCC);
}
if
(cont
RTCC==5){
f
l
agRTCC=1;
cont
RTCC=0x00;
}
}
v
oid m ain() {
intV
al
TI
MER0;
s e t
up_ count
e rs (RTCC_ I
NTERNAL
,RTCC_ DI
V
_ 16);
e nabl
e _ int
e rrupt
s (int
_ rda);
e nabl
e _ int
e rrupt
s (gl
obal
);
print
f
("
rnSERV
O Com m ande rrnrn");
e co_ s e rv
os ();
s e t
_ TI
MER0(0);
e nabl
e _ int
e rrupt
s (I
NT_ RTCC);
do {
/
/DI
SPARO DELPUL
SO PW M
if
(f
l
agRTCC==1){
f
l
agRTCC=0;
out
put
_ h igh (PI
N_ SERV
O1);
f
l
agSERV
O1=1;
}
/
/CONTROLDE ANCH O DELPUL
SO PW M
if
(f
l
agSERV
O1==1){
v
al
TI
MER0 = ge t
_ TI
MER0();
if
(v
al
TI
MER0>t
SERV
O1){
f
l
agSERV
O1=0;
out
put
_ l
ow (PI
N_ SERV
O1);
}
}
/
/CONTROLDESDE L
A RS-232
if
(Ke ypre s s !=0x00){
aj
us t
a_ s e rv
o();
Ke ypre s s =0x00;
}
}w h il
e (TRUE);
}
v
oid aj
us t
a_ s e rv
o(v
oid){
s w it
ch (Ke ypre s s ){
/
/Pe riodos Pre f
ij
ados
cas e '1': t
SERV
O1=t
ick s _ PUL
SO_ MI
NI
MO;
bre ak ;
cas e '2': t
SERV
O1=t
ick s _ PUL
SO_ MEDI
O;
bre ak ;
42. Com o podéis v
e r e n
e lcom e nt
ario inicialde lcó-
digo, t
odo e s t
o e s t
á m ont
ado
para l
a f
am il
ia de s e rv
os
com pat
ibl
e s
q ue s on de l
os m ás us ados
por l
os af
icionados alradio-
cont
rol
.
Para aj
us t
ar e s t
e có-
digo a ot
ros s e rv
os s ol
o h ay
q ue cal
cul
ar e lPre e s cal
e r y
l
os t
ick s ne ce s arios para a-
j
us t
ars e a l
as caract
e rís t
icas
de és t
e . H ay s e rv
os q ue f
un-
cionan a 400H z e n l
ugar de
50H z y con anch os de pul
s o
l
ige ram e nt
e dis t
int
os a l
os ut
i-
l
iz ados aq uí. Es norm alan-
ch os de pul
s o e n l
os e xt
re -
m os de 1.00 y 2.00m S re s -
pe ct
iv
am e nt
e . Elpunt
o m e -
dio e n 1.5m S e s m uy com ún.
Ot
ro corol
ario de e s t
e
e j
e m pl
it
o e s t
riba e n l
a pos i-
bil
idad de m ane j
ar v
arios s e r-
v
os . Ut
il
iz ando l
a m is m a e s -
t
ruct
ura de y
pode m os h abil
it
ar
e lcont
rolindis t
int
o de t
ant
os
s e rv
os com o de s e e m os , t
e ni-
e ndo as í y
, y
..., e t
c. cont
rol
an-
do cada uno de e l
l
os de f
or-
m a abs ol
ut
am e nt
e s im il
ar
.
//página 0x2A
cas e '3': t
SERV
O1=t
ick s _ PUL
SO_ MAXI
MO;
bre ak ;
/
/I
nc De c Pe riodo
cas e '+ ': if
(+ + t
SERV
O1>t
ick s _ PUL
SO_ MAXI
MO){
t
SERV
O1=t
ick s _ PUL
SO_ MAXI
MO;
}
bre ak ;
cas e '-': if
(--t
SERV
O1<t
ick s _ PUL
SO_ MI
NI
MO){
t
SERV
O1=t
ick s _ PUL
SO_ MI
NI
MO;
}
bre ak ;
/
/Dam e Pe riodo act
ual
cas e 'r': e co_ s e rv
os ();
bre ak ;
}
}
v
oid e co_ s e rv
os (v
oid){
print
f
("
S=% urn"
,t
SERV
O1);
}
43.
44. //página 0x2C
de s arrol
l
o. En l
a f
igura #2 po-
de m os v
e r dich o m e nú y uno de
l
os m ódul
os : 8 L
EDs con s al
i-
das conf
igurabl
e a dif
e re nt
e s
pue rt
os , l
a opción "
Al
w ays On
T
op" e s út
il
cuando s e nos l
l
e na
l
a pant
al
l
a de v
e nt
anas y q ue re -
m os q ue e s t
é s ie m pre v
is ibl
e .
Para l
a cre ación de un
m ódul
o e xt
e rno para PSI
DE e s
ne ce s ario com pre nde r al
gunos
conce pt
os de ut
il
iz ación de ob-
j
e t
os de s de .
Es una pl
at
af
orm a de
Micros of
t im pl
e m e nt
ado de s de
W indow s 9 x com o una f
orm a de
l
ograr l
a com unicación, cre ación
y de s t
rucción de obj
e t
os q ue
re s ide n e n dif
e re nt
e s cont
e xt
os
de e j
e cución (e nt
re dif
e re nt
e s a-
pl
icacione s y/
o s is t
e m as ).
ElPI
C SI
MUL
ATOR I
DE
(PSI
DE) e s una s ue rt
e de s ui-
t
e de de s arrol
l
o para l
a s im u-
l
ación de un m icrocont
rol
a-
dor re alcon m úl
t
ipl
e s h e rra-
m ie nt
as int
e rnas y e xt
e rnas
l
l
am adas m ódul
os para l
a
prue ba de l
os dif
e re nt
e s dis -
pos it
iv
os con l
os q ue s e co-
m unica e lm icro. Para re al
izar
l
a s im ul
ación, e l
PSI
DE re cre a
l
a m e m oria de program a, re -
gis t
ros , m e m oria EEPROM,
pue rt
os , e t
c., h acie ndo pos i-
bl
e l
a cons t
rucción de nue s -
t
ros proye ct
os e n f
orm a v
ir-
t
ualy s e gura ant
e s de l
an-
zarnos a cons t
ruir e l h ard-
w are .
Baj
o e lm e nú de l
PSI
DE s e l
is t
an t
odos l
os m ó-
dul
os de l
a s uit
e . Para l
a re al
iz a-
ción de m ódul
os propios e s ne -
ce s ario ut
il
iz ar l
a opción
para s ubs cribir
nue s t
ro m ódul
o ale nt
orno de
Es t
a guía e s t
á de s t
inada a program adore s principiant
e s y/
o av
anz ados q ue
de s e an cre ar m ódul
os e xt
e rnos als im ul
ador de PI
C de V
l
adim ir Sos o, e lPI
C
SI
MUL
ATOR I
DE.
/
/por: Se rgio L
uis Scarnat
t
o /
/
s e rgiol
s @ k e k o.com .ar
addons e n PI
C s im ul
at
orI
DE
45. L
os com pone nt
e s de
COM s e program an e n cual
-
q uie r t
ipo de l
e nguaj
e s ie m -
pre q ue ut
il
ice l
os s e rv
icios y
re q ue rim ie nt
os de COM, q ue
s on bas t
ant
e s .
Much os program ado-
re s de V
is ualBas ic 6, por e -
j
e m pl
o, conoce n m uy s upe rf
i-
cial
m e nt
e l
os conce pt
os de
COM, dado q ue l
a com pl
e -
j
idad e s t
á ocul
t
a e n l
a ps e u-
do m áq uina v
irt
ual
.
Con e l
t
ie m po l
l
e gó Mi-
cros of
t.NET y s e im pus o co-
m o un e s t
ándar para l
a cre a-
ción, com unicación, de s t
ru-
cción y not
if
icación de obj
e -
t
os re de f
inie ndo v
arios de e s -
t
os conce pt
os .
Cuando s e cons t
ruye
un obj
e t
o COM l
o q ue s e e s -
t
á h acie ndo e s de f
inie ndo u-
na int
e rf
ace , al
go as í com o
e lprot
ot
ipo de una f
unción
e n C, y s e l
a re gis t
ra e n un
cat
ál
ogo (e n e s t
e cas o e lre -
gis t
ro de W indow s ).
Para l
ograr l
a com uni-
cación e nt
re un obj
e t
o .NET
y un obj
e t
o COM e s ne ce s a-
rio cre ar una e nv
ol
t
ura (W ra-
ppe r e n ingl
és ) q ue re al
iz a
l
as conv
e rs ione s ne ce s arias
e n l
os t
ipos de dat
os de C# y
l
os de f
inidos por e l obj
e t
o
COM.
Es t
a e nv
ol
t
ura o w ra-
ppe r s e e ncarga ade m ás de
proce s ar l
os t
e m as de m ane -
j
o de t
ie m po de v
ida, punt
e -
ros a e s t
ruct
uras y f
uncione s
de l
obj
e t
o COM.
Cuando un cl
ie nt
e
COM l
l
am a a un obj
e t
o .NET
,
e lCL
R (Com m on L
e nguage
Runt
im e ) cre a e lobj
e t
o m a-
ne j
ado y un CCW (COM Ca-
l
l
abl
e W rappe r) para e lob-
j
e t
o. Dado q ue no e s pos ibl
e
para un cl
ie nt
e COM h ace r
una re f
e re ncia dire ct
a de un
obj
e t
o .NET
, de be n us ar e s t
e
CCW com o un proxy al
obj
e -
t
o m ane j
ado.
Cre am os un nue v
o
proye ct
o e n y
abrim os e larch iv
o As s e m -
bl
yI
nf
o.cs . V
e re m os q ue e l
arch iv
o cont
ie ne l
a s iguie nt
e
l
íne a:
/
/Se t
t
ing Com V
is ibl
e t
o f
al
s e
m ak e s t
h e t
ype s in t
h is a-
s s e m bl
y not v
is ibl
e t
o COM
com pone nt
s . I
f you ne e d t
o
acce s s a t
ype in t
h is as s e m -
bl
y f
rom COM, s e t t
h e Com -
V
is ibl
e at
t
ribut
e t
o t
rue on
t
h att
ype .
[as s e m bl
y:
Com V
is ibl
e (f
al
s e )]
Cam biam os por
y de e s t
a m ane ra t
odas
l
as cl
as e s públ
icas de nue s -
t
ro proye ct
os s e v
an a v
e rco-
m o obj
e t
os COM.
L
ue go podríam os cre -
arpore j
e m pl
o una nue v
a cl
a-
s e l
l
am ada "
Se rv
e r"
.
L
os at
ribut
os de e s t
a
cl
as e indican q ue s e de s e a
ge ne rar e n f
orm a t
rans pare n-
t
e l
as int
e rf
ace s q ue im pl
e -
//página 0x2D
46. m e nt
an (v
e r Aut
o-
m at
ion e n l
a MSDN), ya q ue
V
is ualBas ic 6 (l
e nguaj
e e n
e lq ue e s t
á program ado e l
PSI
DE) no pue de e nt
e nde r
l
as int
e f
ace s s im pl
e s
.
Se gún e l
aut
or de l
PS-
I
DE, e le nt
orno nos e nv
iará
t
re s e v
e nt
os a nue s t
ra cl
as e :
obj
e ct
init
(): I
nv
ocado por e l
PSI
DE cuando s e inicia l
a s i-
m ul
ación. L
o podre m os ut
il
i-
z ar para inicial
iz ar e le s t
ado
int
e rno de nue s t
ro m ódul
o.
obj
e ct
re f
re s h (): I
nv
ocado l
u-
e go de cada ins t
rucción s i-
m ul
ada.
obj
e ct
t
e rm (): I
nv
ocado an-
t
e s de q ue PSI
DE e l
im ine e l
m ódul
o de l
a m e m oria. Us a-
do norm al
m e nt
e para ce rrar
re curs os ut
il
iz ados .
Dado q ue C# e s un
l
e nguaj
e cas e -s e ns it
iv
e (dif
e -
re ncia m inús cul
as y m ayús -
cul
as ) e s im port
ant
e not
ar
q ue l
os m ét
odos s e de be n
e s cribir e n t
odos m inús cul
as .
Alcre ar un nue v
o f
or-
m ul
ario o pant
al
l
a principal
e n agre gam os l
a s i-
guie nt
e re f
e re ncia alproye c-
t
o. Alcre ar e s t
a re f
e re ncia a
l
os s e rv
icios de l PSI
DE e l
V
is ual
St
udio nos e s t
á cre an-
do por de t
rás l
a (w ra-
ppe r de lcl
ie nt
e .NET alob-
j
e t
o COM).
L
ue go m odif
icam os e l
código de lf
orm ul
ario agre -
gando l
a re f
e re ncia a l
os s e r-
v
icios de PSI
DE y
.
L
a v
ariabl
e
cont
e ndrá l
a ins t
ancia alob-
j
e t
o COM de l
os s e rv
icios de l
PSI
DE. Marcam os l
a cl
as e
de l
f
orm ul
ario com o Com V
is i-
bl
e (f
al
s e ) para no publ
icar
cl
as e s q ue no s on ne ce s a-
rias ni út
il
e s para e lPSI
DE.
L
ue go e n e l
cons t
ruct
orl
e da-
m os ins t
ancia a l
a v
ariabl
e
:
publ
ic MSCKe yboard() /
/
<--
cons t
ruct
or
{
I
nit
ial
iz e Com pone nt
();
_ s e rv
e r= ne w s e rv
e r();
}
//página 0x2E
us ing Sys t
e m .Runt
im e .I
nt
e ropSe rv
ice s ;
nam e s pace pics im t
e s t
{
[Cl
as s I
nt
e rf
ace (Cl
as s I
nt
e rf
ace Type .Aut
oDis pat
ch )]
[ProgI
d("
PI
CSim T
e s t
.Se rv
e r"
)]
[Guid("
F
A08D8C2-3616-483c-8B21-B7C72D6B5E7D"
)]
publ
ic cl
as s Se rv
e r
{
}
}
us ing pic18s im ul
at
oride ;
us ing Sys t
e m .Runt
im e .I
nt
e ropSe rv
ice s ;
nam e s pace pics im t
e s t
{
[Com V
is ibl
e (f
al
s e )]
publ
ic part
ial
cl
as s MSCKe yboard : Form
{
priv
at
e s e rv
e r_ s e rv
e r;
47. Abrim os e lobj
e ct bro-
w s e r y s e l
e ccionam os l
a l
i-
bre ría
, y l
ue go nav
e gam os
h as t
a l
a cl
as e y
nos m os t
rará q ue t
ie ne l
os s i-
guie nt
e s m ét
odos públ
icos y
dis ponibl
e s para us ar e int
e -
ract
uarcon PSI
DE.
L
os m ét
odos s on m uy
s e ncil
l
os de e nt
e nde r
, por e -
j
e m pl
o:
St
ring ge t
pic() nos de v
ue l
v
e
e n una cade na e l
nom bre de l
m icrocont
rol
ador q ue s e l
e -
ccionam os e n PI
C Sim ul
at
or
I
DE.
Ut
il
iz ando po-
dre m os acce de r alv
al
or ac-
t
ual
de un de t
e rm inado pue r-
t
o q ue l
e pas e m os com o re f
e -
re ncia (ut
il
iz ando l
a dire cción
de m e m oria q ue f
igura e n l
a
h oj
a de dat
os de lm icrocon-
t
rol
ador s e l
e ccionado). Por e -
j
e m pl
o:
/
/l
e e e l
portB
intport
b = s .ge t
re g(0xF81);
Cre ar un nue v
o pro-
ye ct
o l
l
am ado
y conf
igurarl
o. Cre ar un
nue v
o f
orm ul
ario l
l
am ado
y conf
igurarl
o. A-
rras t
rar un obj
e t
o cont
rolt
ipo
"
Pane l
" de s de l
a T
ool
box al
f
orm ul
ario. Cam biar e lback -
col
or de lpane la W h it
e . Y
por úl
t
im o agre gar al
f
orm ul
a-
rio l
a "
cl
as e s e rv
e r"
.
//página 0x2F
publ
ic v
oid Re f
re s h Dat
a()
{
intl
e ds t
at
e = s .ge t
re g(0xF81) & 0x01; /
/l
e e RB0
if(l
e ds t
at
e == 1)
pane l
1.Back Col
or= Col
or
.Re d;
e l
s e
pane l
1.Back Col
or= Col
or
.W h it
e ;
}
us ing Sys t
e m .Runt
im e .I
nt
e ropSe rv
ice s ;
nam e s pace L
e dT
e s t
Modul
e
{
[Cl
as s I
nt
e rf
ace (Cl
as s I
nt
e rf
ace Type .Aut
oDis pat
ch )]
[ProgI
d("
PI
CSim T
e s t
.Se rv
e r"
)]
[Guid("
F
A08D8C2-3616-483c-8B21-B7C72D6B5E7D"
)]
publ
ic cl
as s Se rv
e r
{
[Com V
is ibl
e (f
al
s e )]
priv
at
e L
e dT
e s tl
e dT
e s t
;
publ
ic Se rv
e r()
{
l
e dT
e s t= ne w L
e dT
e s t
();
l
e dT
e s t
.Sh ow ();
}
publ
ic v
oid obj
e ct
re f
re s h ()
{
l
e dT
e s t
.Re f
re s h Dat
a();
}
}
}
48.
49. //página 0x31
f
unciona m uy bie n a 9 600 bau-
dios , y pos ibl
e m e nt
e s irv
a para
v
e l
ocidade s m ayore s .
En cas o de e m pl
e ar e s t
e
circuit
o com o part
e de un pro-
ye ct
o m ayor
, pue de cone ct
ars e
e l
pin corre s pondie nt
e a + Vcon
l
a l
ine a DTR de un pue rt
o RS-
232, q ue al
e s t
ar e n al
t
o propor-
cionará l
a al
im e nt
ación ne ce s a-
ria al
pe q ue ño conv
e rs or
.
Com o s ie m pre , h e m os
cre ado un pe q ue ño PCB (por
s us s igl
as e n ingl
és , Print
e d
Circuit
o Board) para q ue no
h aya dif
icul
t
ade s a l
a h ora de
"
f
abricar" e l
conv
e rs or
. El
dis e ño
de lm is m o pue de v
e rs e e n l
a
f
igura #2.
Para l
l
e v
ar a cabo e l
m is m o bas t
a con s ol
darl
os com -
pone nt
e s s obre e l
PCB, ut
il
iz an-
do com o guía l
a f
igura #3.
Bás icam e nt
e , e lcircui-
t
o e s un f
ot
ot
rans is t
or inf
ra-
rroj
o cuya s al
ida s e am pl
if
ica
e inv
ie rt
e para conv
e rt
ir l
os
pul
s os l
um inos os q ue re cibe
e n niv
e l
e s de t
e ns ión com pat
i-
bl
e s con l
os niv
e l
e s TTL
, con
l
os cual
e s t
rabaj
an m uch os
circuit
os int
e grados q ue nor-
m al
m e nt
e ut
il
izam os e n nue s -
t
ros proye ct
os .
Se h an e l
e gido com po-
ne nt
e s m uy com une s , por l
o
q ue no s e rá com pl
icado cons e -
guir t
odo l
o ne ce s ario para
t
e ne r e l
m ont
aj
e f
uncionando e n
una h ora o poco m ás .
Com o pue de v
e rs e e n l
a
f
igura #1, s ol
o s e dis pone de un
cone ct
or de t
re s pine s . Elpin
s upe rior e s e lq ue s e e ncarga
de proporcionar l
os 5V de corri-
e nt
e cont
inúa q ue ne ce s it
a e l
circuit
o para f
uncionar
. El
pin in-
f
e rior corre s ponde a GND. Y e l
pin ce nt
rale s e lq ue e nt
re ga l
a
s e ñale q uiv
al
e nt
e a l
a re cibida
por e lf
ot
ot
rans is t
or
. Elcircuit
o
Es t
e s e ncil
l
o circuit
o e s t
a pe ns ado para f
orm ar part
e de un proye ct
o m ayor
. Se
t
rat
a de un s im pl
e conv
e rs or de s e ñal
e s inf
rarroj
as a niv
e l
e s de t
e ns ión TTL
.
Pue de s e r e m pl
e ado, por e j
e m pl
o, para com unicar un dis pos it
iv
o port
át
ilcom o
una PAL
M con un m icrocont
rol
ador o incl
us o con un orde nador h ogare ño. L
as
apl
icacione s : un s inf
ín. ¡
Manos a l
a obra!
/
/por: Arie l
Pal
az z e s i /
/
arie l
pal
az z e s i@ gm ail
.com
conv
e rs orI
rDA a TTL
50. L
a l
is t
a de com pone n-
t
e s ne ce s arios para e s t
e pro-
ye ct
o no podría s e r m as cor-
t
a:
2 re s is t
ore s de 1K, 1/
8W
2 re s is t
ore s de 27K, 1/
8W
1 capacit
orce rám ico de 22nF
2 t
rans is t
ore s BC548B
1 cone ct
orde t
re s pine s
1 f
ot
ot
rans is t
or BPW 40 (o s i-
m il
ar)
Re cue rde n q ue cual
-
q uie r cons ul
t
a s obre e lf
un-
cionam ie nt
o o arm ado de e s -
t
e circuit
o l
a pue de n h ace r
e n e l . ¡
H as t
a
l
a próxim a!
//página 0x32