Professional Documents
Culture Documents
TEORIA Y PRACTICA
MICROCONTROLADOR 16F628
DESCRIPCION DE PINES
Nombre
RA! / AN! RA1 / AN1 RA2 / AN2 / "REF RA# / AN# / CMP1 RA$ / TOC%I / CMP2 RA& / MCLR / T'" RA6 / OSC2 / CL%O(T RA) / OSC1 / CL%IN RB! / INT RB1 / R* / DT RB2 / T* / C% RB# / CCP1 RB$ / P+M RB& RB6 / T1OSO / T1C%I RB) / T1OSI "SS "DD
Pin #
17 18 1 2 3 4 15 16 6 7 8 9 10 11 12 13 5 14
Tipo E/S/P
E/S E/S E/S E/S E/S E/P E/S E/S E/S E/S E/S E/S E/S E/S E/S/P E/S/P P P
Tipo Bu
ST ST ST ST ST ST ST ST TTL TTL TTL TTL TTL TTL TTL TTL -------
er
TEORIA Y PRACTICA
TEORIA Y PRACTICA
CONJUNTO DE INSTRUCCIONES
El conjunto de inst ucciones de los !ic o" oces#do es PIC 16F$$$ consiste en un "e%ue&o e"e to io de solo '( inst ucciones) En este cu so se *# o"t#do "o cl#si+ic# l#s, desde el "unto de -ist# del " o. #!#do , en cinco c#te.o /#s 0ien de+inid#s de #cue do con l# +unci1n 2 el ti"o de o"e #ndos in-oluc #dos)
Los 0its 9 # < =( 0its>, deno!in#dos ?+@ "e !iten seleccion# uno de '( e.ist os de l# !e!o i# inte n#) El 0it (, deno!in#do ?d@, "e !ite es"eci+ic# el destino del esult#do) Si d = 1 el esult#do se .u# d# # en el e.ist o seleccion#do) Si d = 0 el esult#do se .u# d# # en W) Los 0its 6 # 11 identi+ic#n l# inst ucci1n es"eci+ic# # e#liA# ) Inst ucciones de o"e #ciones l1.ic#s de do0le o"e #ndo 8
ANDWF f,d ;operacin AND !ica, de"#ino = W $ f IORWF f,d ;operacin OR !ica, de"#ino =W%f &ORWF f,d ;operacin &OR !ica, de"#ino = W ' f
Los no!0 es !ne!1nicos de est#s inst ucciones " o-ienen de 8 AND W c ! F" I!c#$%&'( OR W C ! F ) *OR W c ! F+ I!%,-$cc& !(% .( /(-0c& !(% 0-&,12,&c0% ) #34&c0% %(!c&##0% .( %&1/#( /(-0!. 5
(O)F f,d ;*o+i*ien#o de da#o", de"#ino = f CO(F f,d ;co*p e*en#o !ico, de"#ino = NOT f INCF f,d ;incre*en#o ari#*,#ico, de"#ino = f - 1 DECF f,d ;decre*en#o ari#*,#ico, de"#ino = f . 1
Los !ne!1nicos de est#s inst ucciones " o-ienen de 8 BOCe File, COB"le!ent File, NC e!ent File 2 DEC e!ent File) En l#s siete inst ucciones #nte io es el 6nico 0it #+ect#do de l# "#l#0 # de est#do del " oces#do es el D, %ue se "one en 1 si el esult#do de l# o"e #ci1n es 99999999, 2 se "one en 9 si el esult#do tiene cu#l%uie ot o -#lo )
TEORIA Y PRACTICA
En est#s o"e #ciones 4Rot#te Le+t File 2 Rot#te Ri.*t File> los 0its son des"l#A#dos de c#d# "osici1n # l# si.uiente, en sentido de ec*o o iA%uie do) El des"l#A#!iento es ce #do, +o !#ndo un #nillo, con el 5i# C 4CARR67 de l# "#l#0 # de est#do) En est#s dos inst ucciones, el 6nico 0it #+ect#do de l# "#l#0 # de est#do del " oces#do es el 0it C, %ue to!# 3 el -#lo %ue teni# el 0it ; o el 0it 9, se.6n se# el sentido del des"l#A#!iento) Est#s inst ucciones son !u2 6tiles "# # l# !#ni"ul#ci1n de 0its, 2 #de!3s "# # e#liA# o"e #ciones # it!7tic#s, 2# %ue en nu!e #ci1n 0in# i#, des"l#A# un n6!e o # l# iA%uie d# es e%ui-#lente # !ulti"lic# lo "o 2, 2 *#ci# l# de ec*#, # di-idi lo "o 2) Inst ucci1n %ue e#liA# el inte c#!0io de "osiciones ent e los cu#t o 0its !enos si.ni+ic#ti-os 2 los cu#t o !3s si.ni+ic#ti-os =ni00le 0#jo 2 ni00le #lto>)
SWA8F f,d ;in#erca*5ia ni55 e", de"#ino = SWA8 f
Est# inst ucci1n =S5AP File> no #+ect# nin.uno de los 0its de l# "#l#0 # de est#do del " oces#do ) Est# inst ucci1n es !u2 6til "# # el !#ni"uleo de n6!e os BCD e!"#%uet#dos, en los %ue en un solo 02te se .u# d#n dos d/.itos BCD =uno en c#d# ni00le>) Inst ucciones de o"e #ciones de l# su!# 2 l# est# # it!7tic#s 8
ADDWF f,d ;"2*a ari#*,#ica, de"#ino = f - W SU9WF f,d ;re"#a ari#*,#ica, de"#ino = f . W
Est#s o"e #ciones 4ADD 5 # F 2 SFBst #ct 5 de F7 #+ect#n # los t es 0its de est#do C, DC 2 D) El 0it D se "one en 1 si el esult#do de l# o"e #ci1n es 99999999, 2 se "one en 9 si el esult#do tiene cu#l%uie ot o -#lo ) L# su!# se e#liA# en # it!7tic# 0in# i# "u # sin si.no) Si *#2 un #c# eo del 0it ;, es deci %ue el esult#do es !#2o %ue 2((, el 0it C 4carr:7 esult# 1, en c#so cont # io esult# 0) Si *#2 un #c# eo del 0it ', es deci %ue l# su!# de l#s dos !it#des 4ni55 e"> !enos si.ni+ic#ti-#s 45i#" 0 a ;7 esult# !#2o %ue 1(, se "one en 1 el 0it DC 4di!i# carr:7, en c#so cont # io se "one en 9)
Eje!"los 8
TEORIA Y PRACTICA
L# est# se e#liA# su!#ndo, en 0in# io "u o sin si.no, el e.ist o + !3s el co!"le!ento # dos de 5 =el co!"le!ento # 1, o co!"le!ento l1.ico, !3s 1> E,emp-o. / f W 9199 9199 H 9919 1999 0001 1100 e%ui-#lente # 8
f
Los 0its de est#do C 2 DC to!#n el -#lo no !#l co es"ondiente # l# su!# de + con el co!"le!ento # 2 de 5) De est# !#ne # el si.ni+ic#do "# # l# o"e #ci1n de est# esult# in-e tido, es deci %ue C =c# 2> es 1 si no *u0o des0o de en l# est#, o dic*o de ot # !#ne #, si el contenido de 5 es !eno %ue el de +) El 0it DC se co!"o t# de !#ne # si!il# , es deci %ue DC es 1 si no *u0o des0o de en l# !it#d !enos si.ni+ic#ti-#, lo %ue e%ui-#le # deci %ue el ni00le 0#jo del contenido de 5 es !eno %ue el del e.ist o+) Inst ucciones de si!"le o"e #ndo 2 el destino es sie!" e el e.ist o seleccion#do 8
C/RF f ;5orrado de con#enido, f = 0
L# inst ucci1n CLRF =CLe#R File> #+ect# solo #l 0it D %ue esult# sie!" e 9) L# inst ucci1n BOC5F =BOCe 5 # F> no #+ect# nin.6n 0it de l# "#l#0 # de est#do)
Est#s inst ucciones se e+ie en tod#s #l e.ist o W, es deci %ue uno de los o"e #ndos de o i.en 2 el o"e #ndo de destino son sie!" e el e.ist o W) En l#s inst ucciones de este . u"o %ue tienen un se.undo o"e #ndo de o i.en, este es sie!" e un# const#nte de " o. #!# lite #l!ente incluid# en l# inst ucci1n, ll#!#d# const#nte lite #l o si!"le!ente lite #l) El +o !#to .en7 ico de est#s inst ucciones es el si.uiente 8
11 19 : 8 ; 6 ( < ' 2 1 9
Los 0its 9 # ; es"eci+ic#n l# const#nte lite #l de 8 0its %ue se utiliA# # en l# o"e #ci1n)
TEORIA Y PRACTICA
L#s t es inst ucciones %ue si.uen son l#s o"e #ciones l1.ic#s t #dicion#les, si!il# es # l#s %ue 2# -i!os #nte io !ente, "e o e#liA#d#s ent e un# const#nte de " o. #!# 2 el e.ist o 58
IOR/W ? ; operacin OR !ica, W = W % ? AND/W ? ; operacin AND !ica, W = W $ ? &OR/W ? ; operacin &OR !ica, W = W ' ?
En est#s t es inst ucciones =Inclusi-e OR Lite #l 5, AND Lite #l 5 2 $OR Lite #l 5> el 6nico 0it #+ect#do de l# "#l#0 # de est#do del " oces#do es el D, %ue se "one en 1 si el esult#do de l# o"e #ci1n es 99999999, 2 se "one en 0 si el esult#do tiene cu#l%uie ot o -#lo ) Inst ucci1n %ue c# .# un# const#nte de " o. #!# en el e.ist o 5 8
(O)/W ? ;car!a con"#an#e en W, W = @
Est# =BOCe Lite #l 5> inst ucci1n no #+ect# nin.uno de los 0its de est#do del " oces#do ) L# inst ucci1n %ue si.ue 4C/eaR W7 no co es"onde /# inclui l# en este . u"o, 2 "e tenece en e#lid#d #l " i!e o, el de l#s inst ucciones %ue o"e #n so0 e e.ist os, 2# %ue se t #t# de un c#so es"eci#l de l# inst ucci1n CLRF, con destino 5, 2 + I 9) L# inclui!os #%u/ "o %ue co!o se le *# #si.n#do un !ne!1nico "# ticul# e+e ido es"ec/+ic#!ente #l e.ist o 5, c ee!os %ue, desde el "unto de -ist# del " o. #!#do , es !3s 6til -e l# dent o del . u"o de inst ucciones e+e id#s # 5)
C/RW ;5orra e con#enido de W, W = 0
Al i.u#l %ue en l# inst ucci1n CLRF, el 6nico 0it de est#do #+ect#do es el D %ue esult#1 . In"#r2ccione" de 9i# El +o !#to .en7 ico de est#s inst ucciones es el si.uiente 8
11 19 : 8 ; 6 ( < ' 2 1 9
L % 6&,% 0 0 4 7& bi0.8" .(! 1&!0. % 9 :" /(-1&,(! %(#(cc& !0- $! .( #& re1i.0ro. .( #0 1(1 -&0 &!,(-!0+ L % 6&,% 5 0 7" .(! 1&!0. % 9b:" /(-1&,(! (%/(c&;&c0- (# !$1(- .( 6&, 70 0 78 % 6-( (# <$( %( /(-0-0+ E%,0% &!%,-$cc& !(% /(-0! % #01(!,( % 6-( (# 6&, (%/(c&;&c0. " (# -(%, .( # % 6&,% .(# -(4&%,! % ! 0#,(-0. %+ E%,0% &!%,-$cc& !(% ! ,&(!(! (%/(c&;&c0c&3! .( .(%,&! " )0 <$( (# 1&%1 (% %&(1/-( (# -(4&%,%(#(cc& !0. +
9CF f,5 ; 5orra e 5i# 5 de f ;5i# f457 = 0 9SF f,5 ; co oca en 2no e 5i# 5 de f ;5i# f457 = 1
Est#s inst ucciones =9i# C ear Fi e : 9i# Se# Fi e> no #+ect#n nin.6n 0it de l# "#l#0 # de est#do del " oces#do +
TEORIA Y PRACTICA
H In"#r2ccione" de Con#ro =OTO 2 3.4-0o 4 -4 po.i5i6n 2 78 bi0.9 :e- pro1r4m4 Est# es l# t/"ic# inst ucci1n de s#lto incondicion#l # cu#l%uie "osici1n de l# !e!o i# de " o. #!# ) L# const#nte i#era ? es l# di ecci1n de destino del "a #o, es deci l# nue-# di ecci1n de !e!o i# de " o. #!# # "# ti de l# cu#l co!enA# 3n # lee se l#s inst ucciones des"u7s de ejecut# l# inst ucci1n GOTO) Est# inst ucci1n si!"le!ente c# .# l# const#nte J en el e.ist o PC =cont#do de " o. #!#>) L# 6nic# co!"lic#ci1n de est# inst ucci1n es %ue l# const#nte J es de solo : 0its, !ient #s %ue el e.ist o 8C es de 11 0its, 2# %ue en el 1AFA>B de0e "e !iti di eccion# un# !e!o i# de " o. #!# de 2 K) Los dos 0its +#lt#ntes, 0it : 2 19 del PC, son to!#dos es"ecti-#!ente de los 0its de selecci1n de "3.in# PA9 2 PA1 de l# "#l#0 # de est#do) Este co!"o t#!iento "# ticul# *#ce %ue l# !e!o i# de " o. #!# #"# eAc# co!o di-idid# en "#.in#s de (12 "osiciones co!o se -e # !3s #del#nte) El " o. #!#do de0e tene en cuent# %ue #ntes de ejecut# un# inst ucci1n GOTO es "osi0le %ue *#2# %ue " o. #!# los 0its PA9 2 PA1) CA// ? ;s#lto # l# su0 utin# en l# "osici1n J =8 0its> Su co!"o t#!iento es !u2 si!il# #l de l# inst ucci1n GOTO, s#l-o %ue #de!3s de s#lt# .u# d# en el st#cJ l# di ecci1n de eto no de l# su0 utin# 4para a in"#r2ccin RET/W7) Esto lo *#ce si!"le!ente .u# d#ndo en el st#cJ un# co"i# del PC inc e!ent#do, #ntes de %ue el !is!o se# c# .#do con l# nue-# di ecci1n J) L# 6nic# di+e enci# con l# inst ucci1n GOTO es"ecto de l# +o !# en l# %ue se e#liA# el s#lto, es %ue en l# inst ucci1n CALL l# const#nte J tiene solo 8 0its en -eA de :) En este c#so t#!0i7n se utiliA#n PA9 2 PA1 "# # c# .# los 0its : 2 19 del PC, "e o #de!3s el 0it 8 del PC es c# .#do sie!" e con 9) Esto *#ce %ue los s#ltos # su0 utin# solo "ued#n e#liA# se # "osiciones %ue est7n en l#s " i!e #s !it#des de l#s "#.in#s !encion#d#s) El " o. #!#do de0e tene en cuent# este co!"o t#!iento 2 #se.u # se de u0ic# l#s "osiciones de inicio de l#s su0 utin#s en l#s " i!e #s !it#des de l#s "#.in#s) L# inst ucci1n %ue #"# ece # continu#ci1n es l# de eto no de su0 utin#8 RET/W ? ; eto no de su0 utin# con const#nte J, 5 I J E%,0 7RETurn 5on Li0er4- in ;8 &!%,-$cc&3! /- .$c( (# -(, -! .( %$6-$,&!0 c ! $!0 c !%,0!,( #&,(-0# > (! (# -(4&%,- W+ L0 /(-0c&3! <$( -(0#&?0 c !%&%,( %&1/#(1(!,( (! %0c0- .(# %,0c> $! '0# - ) c0-40-# (! (# PC+
TEORIA Y PRACTICA
Ese -#lo es el 8C incre*en#ado #ntes de e#liA# el s#lto, de l# ulti!# inst ucci1n CALL ejecut#d#, "o lo t#nto es l# di ecci1n de l# inst ucci1n si.uiente # dic*o CALL) D#do %ue el st#cJ es de 11 0its, el -#lo c# .#do en el PC es un# di ecci1n co!"let#, 2 "o lo t#nto se "uede eto n# # cu#l%uie "osici1n de l# !e!o i# de " o. #!#, sin i!"o t# co!o est7n los 0its de selecci1n de "#.in#) Est# inst ucci1n #de!3s c# .# sie!" e un# const#nte lite #l en el e.ist o 5) E# %ue est# es l# 6nic# inst ucci1n de eto no de su0 utin# de los 8IC1AF&&&, no *#2 en estos !ic o" oces#do es +o !# de eto n# de un# su0 utin# sin #lte # el e.ist o 5) Po ot o l#do, 2 con un# !etodolo./# es"eci#l de " o. #!#ci1n, un conjunto de sucesi-#s inst ucciones RET/W "uede se us#do co!o un# t#0l# de -#lo es const#ntes incluid# en el " o. #!# =Ej) 8 t#0l#s BCDL; se.)>) In"#r2ccione" de C"a #oD 4"?ip7 condiciona = Est#s inst ucciones son los 6nicos !edios "# # i!"le!ent# 0i+u c#ciones condicion#les en un " o. #!#) Son !u2 .ene #les 2 !u2 "ode os#s 2# %ue "e !iten #l " o. #!# to!# decisiones en +unci1n de cu#l%uie 0it de cu#l%uie "osici1n de l# !e!o i# inte n# de d#tos, 2 eso inclu2e # los e.ist os de "e i+7 icos, los "ue tos de ent #d#Ls#lid# e incluso l# "#l#0 # de est#do del " oces#do ) Est#s dos inst ucciones ree*p a0an 2 su"e #n # todo el conjunto de inst ucciones de s#lto condicion#l %ue "oseen los !ic o" oces#do es sencillos con-encion#les =s#lto "o ce o, "o no ce o, "o c# 2, etc)>)
9TFSC f,5 ;"a #a "i 5i# = 0 9TFSS f,5 ;"a #a "i 5i# = 1
9TFSC =Bit Test File #nd SJi" i+ Cle# > s#lte# l# " 14i!# inst ucci1n si el 0it 0 del e.ist o + es ce o) 9TFSS =Bit Test File #nd SJi" i+ Set> s#lte# si el 0it es 1) Est#s inst ucciones "ueden us# se "# # e#liA# o no un# #cci1n se.6n se# el est#do de un 0it, o, en co!0in#ci1n con GOTO, "# # e#liA# un# 0i+u c#ci1n condicion#l) EEe*p o 1 F EEe*p o >F
TEORIA Y PRACTICA
L#s inst ucciones %ue si.uen son c#sos es"eci#les de l#s de inc e!ento 2 dec e!ento Est#s inst ucciones "od /#n c#te.o iA# se dent o del . u"o de inst ucciones o ient#d#s # 02te so0 e e.ist os =" i!e . u"o>, 2# %ue e+ecti-#!ente o"e #n so0 e los !is!os, 2 el +o !#to del c1di.o de l# inst ucci1n es"onde #l de ese . u"o, "e o, # di+e enci# de l#s ot #s, "ueden #de!3s #lte # el +lujo line#l del " o. #!# 2 "o eso se les inclu21 en este . u"o)
DECFS< f,d ;decre*en#a : "a #a "G 0, de"#ino= f . 1 INCFS< f,d ;incre*en#a : "a #a "G 0, de"#ino= f - 1
Est#s dos inst ucciones =DEC e!ent File #nd SJi" i+ De o, e INC e!ent File #nd SJi" i+ De o> se co!"o t#n de !#ne # si!il# # DECF e INCF, s#l-o %ue no #+ect#n # nin.6n 0it de l# "#l#0 # de est#do) Fn# -eA e#liA#do el inc e!ento o dec e!ento, si el esult#do es 99999999, el !ic o" oces#do s#lt# l# " 14i!# inst ucci1n del " o. #!#) Est#s inst ucciones se utiliA#n .ene #l!ente en co!0in#ci1n con un# inst ucci1n de s#lto 4HOTO>, "# # el dise&o de ciclos o l#Aos =loo"s> de inst ucciones %ue de0en e"eti se un# c#ntid#d dete !in#d# de -eces)
Inst ucciones %ue cont ol#n +unciones es"ec/+ic#s del !ic o" oces#do o %ue #ct6#n so0 e e.ist os es"eci#les no di eccion#dos co!o !e!o i# inte n# no !#l) L# inst ucci1n %ue si.ue es l# t/"ic# NO OPERATION)
NO8 ;no 3ace nada, con"2*e #ie*po
Est# inst ucci1n solo si -e "# # int oduci un# de!o # en el " o. #!#, e%ui-#lente #l tie!"o de ejecuci1n de un# inst ucci1n) No #+ect# nin.6n 0it de l# "#l#0 # de est#do) L# inst ucci1n %ue si.ue 0o # el cont#do del M#tc* do. ti!e ) Este e.ist o t#!"oco est# #ccesi0le co!o !e!o i#, 2 est# es l# 6nic# inst ucci1n %ue lo !odi+ic#) C/RWDT ;5orra e Ia#c3 do! #i*er, WDT = 0 Est# inst ucci1n, #de!3s, coloc# en uno los 0its PD ="oMe doMn> 2 TO =ti!eHout> de l# "#l#0 # de est#do) L# si.uiente es un# inst ucci1n es"eci#l de cont ol del !ic ocont ol#do %ue lo "one en el !odo "oMe doMn) En este !odo el !ic o" oces#do se detiene, el oscil#do se #"#.#, los e.ist os 2 "ue tos conse -#n su est#do, 2 el consu!o se educe #l !/ni!o) L# 6nic# +o !# de s#li de este est#do es "o !edio de un eset o "o ti!eHout del M#tc* do. ti!e )
S/EE8 ;co oca e JC en *odo " eep, WDT = 0
Est# inst ucci1n, #de!3s, 0o # el 0it PD ="oMe doMn> 2 sete# el 0it TO =ti!eHout> de l# "#l#0 # de est#do+
TEORIA Y PRACTICA
10
TEORIA Y PRACTICA
Re-o, prin5ip4El oscil#do .ene # un# ond# cu#d #d# de #lt# + ecuenci#, %ue con+i.u # los i!"ulsos de eloj us#dos en l# sinc oniA#ci1n de l#s o"e #ciones del siste!#) Gene #l!ente, el ci cuito de eloj est3 inco "o #do en el !ic ocont ol#do 2 s1lo se necesit#n unos "ocos co!"onentes e4te io es "# # seleccion# 2 est#0iliA# l# + ecuenci# de t #0#jo) Dic*os co!"onentes suelen consisti en un c ist#l de cu# Ao junto # ele!entos "#si-os o 0ien un eson#do ce 3!ico o un# ed RHC) Au!ent# l# + ecuenci# de eloj su"one dis!inui el tie!"o en %ue se ejecut#n l#s inst ucciones "e o lle-# #"# ej#do un inc e!ento del consu!o de ene ./# P# # l#s "e son#s %ue no est3n de todo +#!ili# iA#dos con el te!# es 0ueno eco d# %ue es el led) LED se.6n sus si.l#s en in.les =Li.*t E!ittin. Diode> se t #duce co!o diodo e!iso de luA, %ue es un dis"ositi-o se!iconducto =-e# el di0ujo de #0#jo> de dos te !in#les no!in#dos co!o c3todo =te !in#l ne.#ti-#> 2 3nodo =te !in#l "ositi-#>) Si "ol# iA#!os nuest o led di ect#!ente este -# # " oduci un *#A de luA 2 con l# "ol# iA#ci1n in-e s# -# # "e !#nece #"#.#do) A -eces el +uncion#!iento de los diodos es co!"# #do con los sMitc*es %ue se " enden 2 se #"#.#n)
@! . A
@! . --
-u=
CB, . A CB, . Polarizacin inversa
Polarizacin directa
Fn# -eA +#!ili# iA#dos con el *# dM# e "ode!os " ose.ui con el so+tM# e) Antes de "one se # esc i0i el " o. #!# es #consej#0le #n#liA# " i!e o los e.ist os %ue se -#n # e!"le# en el dic*o " o. #!#)
11
TEORIA Y PRACTICA
Re!i"#ro STATUS
Nosot os es"et# e!os l# no!encl#tu # in.les#, "e o esc i0i e!os l#s -# i#0les %ue nos inte es#n) El !oti-o es !u2 si!"le8 en ese PIC16F628 no se *# conside #do el " o0le!# de los 0#ncos de !e!o i#, %ue se de0en inte c#!0i# # t #-7s del e.ist o de est#do) De este !odo "# # nosot os PORTB e" esent# 3 #l "ue to B, TRISB se 3 el !is!o 2 5 se 3 el e.ist o de t #0#jo) El " o. #!#, "o lo de!3s, es 0#st#nte e-idente) Necesit#!os s1lo int oduci el sentido de los TRIS) Este e.ist o est3 #soci#do # los distintos "ue tos 2 en 7l c#d# 0it e" esent# un "in del "ue to #l %ue se e+ie #) Fn 9 en uno de sus 0its e" esent# 3 %ue el "in es de s#lid#, 2 un 1 %ue es de ent #d#) De este !odo c#d# "in se 3 inde"endiente, d3ndonos !#2o +le4i0ilid#d "# # l# i!"le!ent#ci1n +/sic# de los dise&os) Es "osi0le incluso, #un%ue no *#0itu#l, c#!0i# l# di ecci1n del "in du #nte l# ejecuci1n del " o. #!#) Est# o"ci1n "uede lle.# # d# nos l# "osi0ilid#d de !#nej# -# ios dis"ositi-os con un solo "ue to)
12
TEORIA Y PRACTICA
SET DE INSTR(CCIONES (TILI>ADAS EN LA PRO+RAMACION 1= 9CF f, 5 F C ! (%,0 &!%,-$cc&3! %( / !( (! ! (# 6&, b .(# -(4&%,EC(1/# 5 S& %( ,&(!( (! (# /$(-, A 7 PORTA 8 D 1010 ) %( <$&(-( c # c0- (! c(- (# ,(-c(- 6&," #0 &!%,-$cc&3! (% #0 %&4$&(!,(5 BCF PORTA ? #+ >= 9SF f, 5 F C ! (%,0 &!%,-$cc&3! %( / !( (! 1 (# 6&, b .(# -(4&%,EC(1/# 5 S& %( ,&(!( (! (# /$(-, A 7 PORTA 8 D 1010 ) %( <$&(-( c # c0- (! ENO (# ,(-c(- 6&," #0 &!%,-$cc&3! (% #0 %&4$&(!,(5 BSF PORTA ? #+ ;= HOTO @ / -(0#&?0 $! %0#, &!c !.&c& !0# 0 #0 .&-(cc&3! ##010.0 2 .(# /- 4-010 EC(1/# 5 +OTO CONFI+ <$&(-( .(c&- %0#,( 0 #0 /0-,( .( c !;&4$-0c&3! .(# /- 4-010+ K)C/RF F F F --0 (# c !,(!&. .(# -(4&%,- " c$) '0# - <$(.0-G0 (! !!!!!!!!
13
TEORIA Y PRACTICA
TRIS"7 DI 0
FANCO!
F --0- /$(-, B
P -,6"7DI 1
14
TEORIA Y PRACTICA
INI
PIREBOS AL BANCO1 PEL PFERTO RB; ESTARA COBO SALIDA PDECFELTA AL BANCO9 PPARA BORRAR EL PFERTO E QFEDE EN CEROS PENCIA FN 1=(C> A RB; PARA ENCENDER LED PEL CONTADOR DEL PROGRABA SE QFEDARS AQFI
15
TEORIA Y PRACTICA
E,emp-o. :e .ubru0in4./
$!0 %$6-$,&!0 <$( /(-&3.&c01(!,( 1( 6%(-'0 (# (%,0. #34&c .( $! /$(-, $!0 %$6-$,&!0 <$( %( (!c0-4$( .( -(0#&?0- cB#c$# % .( .(,(-1&!0.0% '0-&06#(%
en +in es l# li0e t#d del " o. #!#do de #si.n# un# dete !in#d# t# e# # l# su0 utin#) El uso de su0 utin#s, siendo sencillo 2 no e%ui iendo un #"# t#do es"ec/+ico, es esenci#l, "uesto %ue si!"li+ic# los " o. #!#s, *#ci7ndolos, #de!3s, !3s !odul# es) Ll#!# e!os # un# su0 utin# con l# inst ucci1n CA//, se.uid# de l# eti%uet# %ue l# enc#0eA# o su di ecci1n en !e!o i#) P# # e. es# # l# si.uiente inst ucci1n t #s el CALL 0#st# 3 con situ# , en l# 6lti!# l/ne# de l# su0 utin#, el co!#ndo RETURNP t#!0i7n se 3 "osi0le e!"le# RET/W ?, el cu3l se di+e enci# del #nte io "o situ# en el e.ist o 5 el -#lo J) En el c#so de nuest # " #ctic# -#!os # des# oll# un# su0 utin# %ue se conoce con el no!0 e de et# do) El et# do o su0 utin# se enc# .# de %ue el " o. #!# " inci"#l en un dete !in#do !o!ento se %ued# "# #d# "o un tie!"o %ue nosot os %ue e!os %ue se deten.#) P# # se !#s conc eto, #l " ende el led necesit#!os %ue se %uede " endido "o un tie!"o, des"u7s tene!os %ue #"#.# lo 2 !#ntene lo #"#.#do "o ot o #to 2 -ol-e # *#ce todo el " ocedi!iento de nue-o) A*o #, co!o se # !# un# su0 utin# en el len.u#je de " o. #!#ci1n %ue nosot os est#!os us#ndo o se# (8/A9O L# +o !# !#s cl3sic# de # !# un# su0 utin# es us#ndo l#s inst ucciones CA// : RETURN) Donde l# inst ucci1n CA// es us#do "o el " o. #!# " inci"#l "# # ll#!# l# su0 utin# , donde es# # su -eA e#liA# su t# e# #si.n#d# = en n2e"#ro ca"o e" 2n re#ardo en e #ie*po> 2 eto n# #l " o. #!# " inci"#l de donde l# ll#!# on us#ndo l# inst ucci1n RETURN) E# s#0iendo co!o se # !# un# su0 utin# necesit#!os s#0e co!o se *#ce el dic*o et# do del tie!"o %ue es l# t# e# de l# su0 utin#, "# # eso o0se -#!os l# si.uiente su0 utin#8
16
TEORIA Y PRACTICA
RETARDO OTRACED
)2(( PSe c# .# un e.ist o CONTADOR CONTADOR Pcon un -#lo !34i!o deci!#l de 2(( CONTADOR PSe dec e!ent# el dic*o e.ist o en uno OTRACED PSi CONTADOR no es ce o se dec e!ent# Pot # -eA PAl lle.# # ce o l# su0 utin# RETARDO P eto n# #l " o. #!# " inci"#l
E%0!. $! .&04-010 .( ;#$C % #0 -$,&!0 0!,(-& - %( /$(.( -(/-(%(!,0- .( #0 %&4$&(!,( ; -10+ CONTADOR V255
CONTADOR - 1
JCONTADO R
D0K NO SI RETORNAR Del eje!"lo #nte io lo %ue -e!os es %ue l# su0 utin# RETARDO se to!# >PP -eces *#ciendo l# !is!# inst ucci1n DECFSD #ntes de eto n# #l " o. #!# " inci"#l) S/ nos #co d#!os %ue est#!os t #0#j#ndo con un cri"#a de K (Q0, donde es# + ecuenci# es di-idid# inte n#!ente "o el C "o cu#t o, K(Q0RK = 1(Q0, eso %uie e deci %ue el !ic o se de*ora 1 *icro"e!2ndo "# # e#liA# un# inst ucci1n T = 1Rf = 1R1(Q0 = 1 "e!= Po lo t#nto l# su0 utin# RETARDO lo %ue *#ce es *#ce un et# do #" o4i!#d#!ente de 2(( !ic ose.undos) Des#+o tun#d#!ente en l# -id# e#l un et# do de 2(( !ic ose.undos es de!#si#do 3"ido "# # el ojo *u!#no 2 no es "e ci0ido) P# # solucion# este " o0le!# se ecu e # un# t7cnic# ll#!#d# anida*ien#o, lo %ue *#ce es en si es !#ni"ul# -# i#s -# i#0les, 2 dec e!ent# l#s de +o !# %ue cu#ndo te !ine un# contin6e con l# ot #, !ejo %ue cu#ndo un# -# i#0le te !ine, dec e!ente l# ot # en un# unid#d, 2 -uel-# 2 se c# .ue de nue-o con un -#lo , lo %ue %uie e deci %ue sus c#ntid#des se !ulti"lic# /#n)
17
TEORIA Y PRACTICA
Ce#!os un eje!"lo8
-(,0-.
-(41D100 -(42D30 -(43D30 -(43 - 1D-(43
-(, -!(
Cu#ndo e.' se -# dec e!ent#ndo, ,lo si.ue *#ciendo *#st# %ue su -#lo est#0lecido lle.ue # ce o, 2 cu#ndo esto "#s#, dec e!ent# # l# si.uiente -# i#0le = e.2>, un# unid#d, 2 de nue-o se c# .# e.' con el -#lo est#0lecido, lo %ue %ui e deci %ue este #nid#!iento consu!i # #" o4i!#d#!ente S0=000 cic o" de inst ucion #" o4i!#d#!ente, o %uiA#s !uc*o !#s si es i!"le!ent#do en un "ic, "ues l#s inst ucciones #"lic#d#s "# # estos dec e!entos se.6n el c#so en un "ic, suelen consu!i 2 ciclos de inst uccion, "o lo %ue %uie e deci %ue si tene!os en cuent# estos eto nos 4e +o +er a 2n p2n#o de anida*ien#o7, "od i#n consu!i con estos -#lo es no :9)999 sino *#st# c#si 2;9)999 ciclos de inst uccion #" o4i!#d#!ente, #un%ue los #nid#!ientos se "ueden *#ce de !uc*#s +o !#s se.6n el " o. #!#do , "o lo %ue no e4iste un solo !etodo, sino !uc*os 2 c#d# cu#l se #co!od# # -# i#s
18
TEORIA Y PRACTICA
necesid#des, "e o en nuest # " #ctic# se i!"le!ent# 3 un# de l#s !#s sencill#s +o !#s, e incluso de l#s !#s us#d#s) El #nid#!iento tiene co!o +uncion !#s co!un l# de c e# et# dos en el " o. #!#, esto es "o %ue #l.un#s #cti-id#des %ue *#ce el "ic son !u2 #"id#s, 2 "# # %ue los *u!#nos l#s "od#!os "e ci0i , de0e!os dil#t# el tie!"o "# # "e ci0i lo %ue "#s#) P ecis#!ente , el "e ci0i o etene tie!"o,se 3 l# #"lic#ci1n en nuest # " #ctic#, "ues el o0jeti-o es el de encende 2 #"#.# el led, 2 ent e el encendido 2 #"#.#do, de0e!os dej# %ue du e un tie!"o encendido 2 un tie!"o #"#.#do) SET DE INSTR(CCIONES N(E"AS (TILI>ADAS EN LA PRO+RAMACION DECFS< f,d/ .(c-(1(!,0 (# -(4&%,(! $! ) %0#,0 %& (# -(%$#,0. '0# - # 0#10c(!0 (! (# -(4&%,- L (! (# -(4&%,- B (% c(- " (#
Eje!"lo8 Se c# .# l# +aria5 e nu!e o con P 2 se dese# decre*en#ar l# -# i#0le nu!e o en 1 *#st# %ue el re"2 #ado se# cero , si es #s/ s#lte # l# di ecci1n +in , si no continu7 dec e!ent#ndo *#st# %ue se# ce o BOCL5 BOC5F DECFSD GOTO GOTO DW9( NFBERO NFBERO,1 SIGFE FIN
SIGFE
19
TEORIA Y PRACTICA
LINPIAR PORTF
APA=AR EL LED
LLANAR RETARDO
20
TEORIA Y PRACTICA
21
TEORIA Y PRACTICA
RF0
22
TEORIA Y PRACTICA
EL RETARDO DE ANTIREBOTE Cu#ndo un "uls#do co!o el del eje!"lo, no se encuent # "uls#do=1>, no !#l!ente tend 3 un ni-el l1.ico est#0le =en el c#so se 3 de (C>, "e o i!#.in#ndo %ue "udi7 #!os "e ci0i el tie!"o en !ilise.undos, #"en#s "uls#!os este suic*e=2>, no -# # .ene # un 9C est#0le, !#s 0ien un# es"ecie de ond#, l# cu#l no "osee un ni-el l1.ico est#0le, "o lo %ue si no "usi7 #!os este et# do) El PIC inte " et# /# est# ond# co!o -# i#s "uls#ciones continu#s, situ#ci1n %ue en nuest # e#lid#d es +#ls#, "ues solo "uls#!os el suic*e un# -eA, "o ello el PIC solo lee 3 el " i!e est#do 0#jo %ue sens# =2A> Al c#0o de #l.unos !ilise.undos =#0# c# un #n.o de 19!S *#st# '99!S>) Este e0ote se est#0iliA# 2 el ni-el l1.ico 2# se est#0iliA# # 9C='>) Entonces este et# do se enc# .# de ocu"# #l PIC este tie!"o, "# # %ue no le# est#s +#ls#s lectu #s, 2 -uel-e # lee en este c#so RB9 2 2# tend 3 un ni-el l1.ico est#0le
&"
Si0u45i6n i:e4- :e -e50ur4 P4r4 e- PIC !" 719 72A9 EL DIAGRABA DE FLFYO PRACTICA NZ ' 729 7#9 0 7mS9
23
TEORIA Y PRACTICA
DIAGRAMA DE FLUJO
RETARDO ANTIREFOTE CONT1 DI +200 CONT2 DI +80 CONT3 DI +2
INICIO
CONFI=ERA PEERTOS
ANTIREFOTE
RF7 D 0K
APA=AR
CONT 3 D0K
RETERN
24
TEORIA Y PRACTICA
INICIO
START
;///////////////////////////////////
REANTIR
MOVL) MOV)F
.$ CONT$
25
NIVEL 1 PIC 16F628 MOVL) MOV)F MOVL) MOV)F DECFS0 GOTO MOVL) MOV)F DECFS0 GOTO MOVL) MOV)F DECFS0 GOTO RETURN END .180 CONT2 .200 CONT1 CONT1(F ! 1 .200 CONT1 CONT2(F ! " .180 CONT2 CONT$(F ! #
TEORIA Y PRACTICA
;DECREMENTE CONT1 1 SALTA CUANDO LLEGA A 0 ;! 1 SIGNIFICA QUE RETROCEDA UNA LINEA ANTES ;SE RECARGA CONT1 POR EL ANIDAMIENTO ;DECREMENTE CONT2 1 SALTA CUANDO LLEGA A . ;CERO ;! " RETROCEDE " LINEAS EN EL PROGRAMA ;SE RECARGA CONT2 POR EL ANIDAMIENTO ;RETROCEDE # LINEAS EN EL PROGRAMA ;CUANDO CONT$ SEA CERO RETORNA DE DONDE SE ;LLAM' .
26
TEORIA Y PRACTICA
ASPECTO FISICO DE AL+(NOS DIPS(IC'ES Estos di"suic*es "oseen inte n#!ente 8, ( ' o -# i#s c#ntid#des de inte u"to es "e%ue&os en un solo "#%uete line#l, # eso es su " e+ijo DIP =d2a in ine pac?a!e>, su -ent#j# es el "oco es"#cio %ue us#n en un ci cuito, 2 %ue el#ti-#!ente son econ1!icos, teniendo en cuent# l# c#ntid#d 2 es"#cio %ue ocu"#n) NUESTRO CIRCUITO E PR!CTIC! El o0jeti-o se 3 el de %ue se.6n est#do de los di"suic*es, nos encende 3 unos leds, un led "o c#d# di"suic*e, en l# " #ctic# se i!"le!ent#n dos di"suic*es, conect#dos "o RB; 2 RB6 2 los leds de es"uest# est# 3n conect#dos es"ecti-#!ente "o RB9 2 RB1 El PIC +uncion# # de +o !# %ue sie!" e est# 3 c*e%ue#ndo los est#dos de l#s ent #d#s co es"ondientes # l# cone4i1n con los di"suic*es, 2 #"en#s detect# un c#!0io, entonces e+ectu# 3 el encendido o #"#.#do, est#s o"e #ciones se *#cen t#n 3"ido %ue "# # nuest os ojos "# ece in!edi#to) Ce#!os el di#. #!# de +lujo "# # entende !ejo el co!o co e el " o. #!#
27
TEORIA Y PRACTICA
RF7D0 K
NO
SI
SI
0 DI RF0
NO
RF6D0 K
0 DI RF1
1 DI RF0
SI
1 DI RF1
RF6D0 K
NO
0 DI RF1
0 DI RF1
28
TEORIA Y PRACTICA
INICIO
;SELECCIONA BANCO1 ;RB7 + RB6 ENTRADAS POR DIPSUIC.E + RB0 + ;RB1 SALIDAS .ACIALOS LEDS ;AL BANCO0 ;BORRAR EL PUERTOB ;PREGUNTA POR EL ESTADO DEL DIPSUIC.E EN . ;RB7 ;APAGA EL LED DE RB0 DEL DIP DE RB7 ;PREGUNTA POR EL ESTADO DEL DIPSUIC.E EN . ;RB6 LED DE RB0 DEL DIP DE RB6
START .
GOTO RB1ON BCF PORTB(1 ;APAGA EL GOTO START ;///////////////////////////// RB0ON BSF PORTB(0 BTFSC PORTB(6 ;PREGUNTA ;RB6 GOTO RB1ON BCF PORTB(1 ;APAGA EL GOTO START ;VUELVE A ;///////////////////////////// RB1ON BSF PORTB(1 GOTO START END
POR EL ESTADO DEL DIPSUIC.E EN . LED DE RB0 DEL DIP DE RB6 LEER ESTADO DE LOS DIPSUIC.E
29
TEORIA Y PRACTICA
PRACTICA & MANEAO DE (NA TABLA DE DATOS PARA MANEAAR (N DISPLAD DE CATODO COM(N
El uso de l#s t#0l#s en los " o. #!#s con los PIC es !u2 us#do, "ues su " inci"#l +unci1n es l# de un d#to con-e ti lo en ot o, "# t# *#ce e%ui-#lenci#s o %ue un nu!e o es"eci#l nos lo e" esente con ot os -#lo es, %ue este -# # se nuest o c#so, "ues si conect#!os un dis"l#2, %ue son ; leds en un "#%uete, el cu#l tiene co!o +unci1n l# de e" esent# con ilu!in#ci1n los di+e entes n6!e os deci!#les 40 a S>, 2 #l.un#s let #s %ue se "ueden +o !# con este dis"l#2) Los dis"l#2s e4isten de dos ti"os, de cV#odo co*Wn 2 de Vnodo co*Wn, su di+e enci# #dic# en %ue los c3todos est3n todos unidos 2 en el ot o son los 3nodos es"ecti-#!ente+
DISPLAD CATODO ANODO Ejemplos de conexin de LEDS (ctodo comn y nodo comn)
A*o # teniendo en cuent# %ue los dis"l#2 son leds, entonces, si encende!os los leds #decu#dos, entonces +o !# e!os un nu!e o se.6n el encendido, "o lo %ue de0e!os conect# c#d# se.!ento # un "ue to del "ic, "# # "ode coo din# se.6n el encendido %ue nu!e o dese#!os -isu#liA# (ANEJO O FUNCION DE UNA TA9/A DE DATOS E!"eA#!os "o !encion# %ue en los e.ist os de 8 0its, el -#lo nu!7 ico de ( "o eje!"lo se i# en 0in# io B[99999191[ 2 en *e4#deci!#l 9$9(, si conect3 #!os los ; se.!entos #l "ue to B, inici#ndo el se.!ento A del dis"l#2 con el "in RB1 2 #s/ *#st# lle.# # se.!ento G con el "in RB;
30
TEORIA Y PRACTICA
0 1 > ; K P A L B S
9 9 1 1 1 1 1 9 1 1
1 9 9 9 1 1 1 9 1 1
1 9 1 9 9 9 1 9 1 9
1 1 1 1 9 1 1 9 1 1
1 1 9 1 1 1 1 1 1 1
1 9 1 1 1 9 9 1 1 1
1 9 1 1 9 1 1 1 1 1
9 9 9 9 9 9 9 9 9 9
P# # *#ce est# con-e si1n se i!"le!ent#n en este c#so un# t#0l#, "ues en ell# se est#0lece el +#cto de con-e si1n, el cu#l es +3cil de !#ni"ul# , eso si teniendo !uc*o cuid#do #l *#ce est#s su"uest#s con-e siones, #*o # -e#!os co!o +uncion#) A*o # !encion# e un# inst ucci1n %ue se enc# .# de eto n# de un# su0 utin#, 2 se ll#!# RET/W, est# es !u2 se!ej#nte en su +unci1n #l RETURN, solo %ue #de!3s se de-uel-e c# .#ndo #l e.ist o M con el -#lo %ue se le es"eci+ic1, -e#!os un eje!"lo8 RETL; BE!!!!!!!1E
DI+IT ELECTRONIC CRA 9 23 49 LOCAL 207 TEL 2 86 36 72
31
TEORIA Y PRACTICA
Cu#ndo el " o. #!# se encuent # con est# inst ucci1n, l# o den es %ue eto ne del ulti!o ll#!#do de un# "25r2#ina 4cu#ndo se us# un CALL>, c# .#ndo # 5 con el -#lo indic#do en este c#so, des"u7s de l# o den, M tiene #l!#cen#do el -#lo de B[99999991[ C#!os # utiliA# ot # nue-# inst ucci1n, ll#!#d# ADD5F, %ue en si es enc# .#d# de su!# el -#lo contenido en el e.ist o 5 !#s el e.ist o %ue se le indi%ue, 2 el esult#do "uede destin# se #l !is!o 5 o #l e.ist o con el %ue se e+ectu1 l# su!#) Qa!a*o" 2n eEe*p oF Di.#!os %ue en el e.ist o REG1, est# #l!#cen#do un -#lo de ( en deci!#l, 2 lue.o c# .#!os # 5 con un -#lo cu#l%uie # co!" endido ent e 9 2 2((, di.#!os %ue c# .#!os # 5 con ', 2 cu#ndo ejecut# l# inst ucci1n ADD5F REG,F, si.ni+ic# %ue el contenido de 5 se su!# # con el contenido del e.ist o REG1 2 %ue lo #l!#cene en el !is!o e.ist o REG1, lo %ue %uie e deci %ue des"u7s de l# su!#, el contenido de REG1 2# no es ( sino 8) NOVLW NOVWF NOVLW ADDWF +5 PSE CAR=A A W PARA LEE=O AL RE=ISTRO RE=1 RE=1 P AQORA RE=1 VALE 5 +3 PSE CAR=M A W CON 3 RE=1"F PSE SENA EL CONTENIDO DE RE=1 CON W Y SE P=EARDA EN EL RE=ISTO RE=1
Bien #*o # %ue s#0e!os co!o est# +uncion#ndo est# inst ucci1n, #*o # se co!ent# # de un e.ist o es"eci#l %ue i!"le!ent# el PIC 2 se ll#!# cont#do del " o. #!#, el cu#l const# de 2 e.ist os de 8 0its, "e o en tot#l solo se !#ni"ul#n 1' 0its 2 no 16 co!o "uede lle.# # "ens# se, el cu#l se ll#!#n l# "# te !eno PCL 2 l# "# te !#2o PCLATX o PCX, l# "# te !eno de 8 0its 2 l# "# te !#2o de ( 0its, un "oco !ejo eje!"li+ic#do en l# si.uiente +i.u #8
8CQ 1> B 8C/ 0
8C
8C/ATQ TKF0U B RESU/TADO DE /A A/U
8C/ATQ
8CQ 1> 11 10 8C/ 0
8C
11 DESDE E/ CODIHO O8 >
8C/ATQ
32
TEORIA Y PRACTICA
El nuest o c#so se !#ni"ul# # !#s %ue todo el e.ist o PCL, 2# %ue di eccion# l# "# te !eno de l# !e!o i# del " o. #!#, 2 es i!"o t#nte #cl# # %ue est#s t#0l#s sie!" e de0en u0ic# se #l co!ienAo de " o. #!# =ORG 9(>, "ues des"u7s de %ue el PCL su"e # # 2((, -uel-e # ce o, 2 nuest # t#0l# %ued# /# + #ccion#d# en dos "# tes 2 lo !#s se.u o es %ue no -# # +uncion# co!o de0e /#, #un%ue e4isten t7cnic#s "# # co!"ens# est# situ#ci1n, %ue tienen %ue -e #l !#ni"ul# el PCX o PCLATX, en nuest o c#so est3n +ue # del te!# # t #t# , %uiA3s "o %ue no -#!os # i!"le!ent# un# #a5 a t#n . #nde %ue #0# %ue >PP Gnea" del " o. #!#) )A*o # %ue !encion#!os el e.ist o es"eci#l PCL 2 co!ent#!os so0 e l# inst ucci1n de su!# ADD5F, t #t# e!os de deci cu#l es el t uco de l#s t#0l#s "# # %ue +uncionen 2 "od#!os -isu#liA# en el dis"l#2 el nu!e o %ue dese#!os) Di.#!os %ue el contenido del e.ist o #l %ue ll#!#!os CONTA, "osee co!o -#lo de contenido el nu!e o 9, 2 dese#!os -isu#liA# en el dis"l#2 el nu!e o ce o, %uie e deci %ue el -#lo 0in# io de ce o =0[99999999>, de0o "#s# lo # un -#lo %ue enciend# los es"ecti-os se.!entos, teniendo en cuent# %ue el se.!ento A del dis"l#2 est# conect#do #l "ue to RB1, el -#lo se i# #s/ =0[91111119[>, eco de!os %ue en el c#so el 0it 9 4R907 no se uso de0ido # %ue no est# conect#do con el dis"l#2, 2 lo coloc# e!os co!o -#lo de ce o 2 !o-e!os este -#lo #l "ue to B) A*o # -e#!os %ue *iAo en s/ el " o. #!# "# # est# con-e si1n8 I!#.ine!os %ue tene!os # CONTA con un -#lo de 9, NOVLW NOVWF +0 CONTA
A*o # -#!os # ll#!# l# su0 utin# #nte io ll#!#d# t#0l#8 CALL TAFLA
Entonces cu#ndo lle.#!os # l# su0 utin# ll#!#d# t#0l# tend 3 este #s"ecto
TAFLA ADDWF RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW PCL"F BF!111111!F BF!!!!11!!F BF1!11!11!F BF1!!1111!F BF11!!11!!F BF11!11!1!F BF11111!1!F BF!!!!111!F BF1111111!F BF11!1111!F PENCIENDE EN EL DISPLAY EL CERO PENCIENDE EL ENO PENCIENDE EL DOS PENCIENDE EL TRES PENCIENDE EL CEATRO PENCIENDE EL CINCO PENCIENDE EL SEIS PENCIENDE EL SIETE PENCIENDE EL OCQO PENCIENDE EL NEEVE
A*o # l# inst ucci1n %ue se encuent # + ente # l# eti%uet# de t#0l# es l# de su!# el contenido de M #l PCL o cont#do del " o. #!#, %ue "uede se cu#l%uie -#lo , no !#2o %ue 2<9, 2 le su!# # ce o, en consecuenci#, ejecut# 3 l# si.uiente l/ne# de inst ucci1n, de0ido # %ue l# su!# no #+ecto el contenido de PCL 2 se encont # # con est# inst ucci1n8
RETLW FR01111110R PENCIENDE EN EL DISPLAY EL CERO
33
TEORIA Y PRACTICA
TRecue d#n %ue -#lo se necesit#0# "# # ilu!in# en el dis"l#2 el ce oU Si o0se -#n 0ien M se c# .# # con este -#lo , 2 eto n# # de est# su0 utin# 2 #*o # %ue tene!os el -#lo "# # encende los led %ue co es"onden #l ce o, se *# 3 esto8 NOVLW NOVWF CALL NOVWF +0 CONTA TAFLA PORTF
E #s/ en-i#ndo esto se encende 3 el dis"l#2 con el s/!0olo de ce o, "e o T%ue "#s# si -#le "o eje!"lo ;U X#.3!oslo nue-#!ente NOVLW NOVWF CALL +7 CONTA TAFLA
Bien, #*o # %ue tene!os el -#lo de siete 2 se su!# con el PCL, este #"unt# # ; l/ne#s #0#jo, !#s e4#ct#!ente #8 RETLW FR00001110R ;ENCIENDE EL SIETE
E "o consecuenci# de l# inst ucci1n, -ol-e 3 del ll#!#do, "e o est# -eA con l# in+o !#ci1n "# # encende el dis"l#2 2 %ue se -isu#lice el nu!e o ; NOVWF PORTF N(ESTRO PRIMER CIRC(ITO DE PR(EBA Est# -eA -#!os # *#ce un ci cuito %ue nos !uest e los n6!e os del 9 #l : co!o si +ue # un cont#do #scendente, 2 cu#ndo lle.ue # : , -uel-# # ce o) Est# +unci1n se lle-# # # c#0o !edi#nte ot # inst ucci1n %ue se 3 nue-# est# -eA "e o no di+/cil de entende , "ues su !isi1n es l# de su!# G1 un e.ist o o !#s 0ien inc e!ent# lo en un# unid#d, 2 su esult#do se "od 3 .u# d# se# en el !is!o e.ist o %ue inc e!ent#!os =lo !#s co!6n> o dej# lo en el e.ist o 5) Est# es l# inst ucci1nF INCF= )ea*o" 2n eEe*p oF si dese#!os e!"eA# # cont# desde ce o 2 %ue -#2# !ost #ndo los n6!e os, -#!os enc# .# el t #0#jo de %ue lle-e este cont ol un e.ist o #l %ue ll#!# e!os "o eje!"lo CONTA, eco de!os %ue e!"ieA# de ce o, 2 des"u7s de l# inst ucci1n -# # %ued# en su contenido 1 CLRF CONTA INCF CONTA"F PDESANOS CONTA EN CERO PINCRENENTA EN ENO EL RE=ISTRO CONTA
34
TEORIA Y PRACTICA
Ot # co!#ndo # i!"le!ent# , tiene co!o +unci1n !o-e el contenido de un e.ist o #l e.ist o 5 o #l !is!o =est# +unci1n de !o-e lo #l !is!o e.ist o se *#ce "# # %ue con este ?!o-i!iento@ #+ecte l#s 0#nde #s de ce o =D> c# 2 o #c# eo =C>, 2 l#s ot #s 0#nde #s i!"le!ent#d#s en el e.ist o st#tus)>, 2 est# se ll#!# BOCF, lo %ue %uie e deci !o-e #l e.ist o, 2 seleccion#!os el destino, 2# co!ent#do, %uie e deci M o el !is!o e.ist o, "e o *#.#!os ot o eje!"lo8 CLRF INCF NOVF CONTA CONTA"F CONTA"W PCONTA D0 PCONTA A1 Y LO =EARDA EL RESELTADO EN CONTA PEL CONTENIDO DE CONTA SE COPIO EN W
Bien *#st# #*o # se *# e4"lic#do co!o t #0#j#, "e o si dese#!os !o-e el contenido, "o eje!"lo del e.ist o CONTA # PORTB, se *# /# esto8 NOVF NOVWF CONTA"W PORTF PCONTENIDO DE CONTA A W PEL CONTENIDO DE W SE COPIO EN EL PORTF
O0se -#!os %ue ent 1 ot # inst ucci1n, ll#!#d# BOC5F, ell# *#ce %ue el contenido #ctu#l de 5, se# destin#do # un e.ist o cu#l%uie # %ue "e !it# esc i0i se o los e.ist os %ue c#d# uno de nosot os #si.ne!os en l# !e!o i# RAB) A*o # con estos ?!o-i!ientos? de d#tos, -e#!os en %ue #2ud#n # nuest o cont#do 8 INCF NOVF CALL NOVWF CONTA"F CONTA"W TAFLA PORTF PINCRENENTA A CONTA A1 Y LO =EARDA EN CONTA PCOPIA EL CONTENIDO DE CONTA EN W PNEESTRA TAFLA DE DATOS PEL DATO CONVERTIDO EN LA TAFLA ESTA EN W Y ES PLLEVADO AL PEERTOF
35
TEORIA Y PRACTICA
TAFLA
PCLD PCL A W RETORNE FT01111110T RETORNE FT00000110T RETORNE FT10110110T RETORNE FT10011110T RETORNE FT11001100T RETORNE FT11011010T
INICIO
CONFI=ERAC+ DEL PIC
FORRAR PORTF
FORRAR CONTA
NO
W DI PORTF
CONTA D 10K
CONTA DCONTAA1
SI
FORRAR CONTA
36
TEORIA Y PRACTICA
INICIO
;SELECCIONA BANCO1 ;DE RB7 A RB1 SALIDAS + RB0 ENTRADA ;AL BANCO0 ;BORRAR EL PUERTOB ;BORRAMOS EL REGISTRRO DEL CONTEO ;ENVIAMOS EL CONTENIDO A ) ;LLAMA LA TABLA PARA TRAER LOS DATOS PARA ;ENCENDER LOS LED DEL DISPLA+ ;LO DE LA TABLA VA AL PUERTO DONDE ESTA ;EL DISPLA+ DE CATODO COMUN ;SUMAMOS 1 A CONTA ;MIRAMOS SI CONTA ES IGUAL A 10( SI LO ES ;LA RESTA SERA IGUAL A CERO + AFECTARA EL ;FLAG 0 ;PREGUNTAMOS SI LA OPERACION DIO CERO ;SI NO VUELVA A START
START
BTFSS STATUS(0 GOTO START CLRF CONTA GOTO START ;///////////////////////////////////////////////////////////////////// RETARDO MOVL) .6 MOV)F CONT$ MOVL) .2"0 MOV)F CONT2 MOVL) .2"0 MOV)F CONT1 DI+IT ELECTRONIC CRA 9 23 49 LOCAL 207 TEL 2 86 36 72
37
NIVEL 1 PIC 16F628 DECFS0 GOTO MOVL) MOV)F DECFS0 GOTO MOVL) MOV)F DECFS0 GOTO RETURN END CONT1(F ! 1 .2"0 CONT1 CONT2(F ! " .2"0 CONT2 CONT$(F ! #
TEORIA Y PRACTICA ;DECREMENTE LA VARIABLE CONT1 1 SALTA ;CUANDO LLEGA A 0 ;! 1 SIGNIFICA QUE RETROCEDA UNA LINEA ;ANTES ;SE RECARGA NUEVAMENTE EL REGISTRO POR ; E1 ANIDAMINETO ;DECREMENTE LA VARIABLE CONT2 1 SALTA ;CUANDO LLEGA A CERO ;! " RETROCEDE " LINEAS EN EL PROGRAMA ;SE RECARGA CONT2 POR EL ANIDAMIENTO ;RETROCEDE # LINEAS EN EL PROGRAMA ;CUANDO CONT$ SEA CERO RETORNA DE DONDE ; SE LLAM'
Es de !encion# %ue t#nto el #nte io eje!"lo co!o en este se dio un et# do ent e conteo 2 conteo, esto con el +in de %ue se "ued#n -isu#liA# los et# dos 2 -e los n6!e os , 2# %ue si no se *#ce esto, los n6!e os no se -e /#n de lo 3"ido %ue i /# el conteo
38
TEORIA Y PRACTICA
DIA+RAMA DE FL(AO INICIO CONFI=ERAC PIC FORRAR PORTF FORRAR CONTA CONTA DI W TAFLA W DI PORTF
CONTADCONTAA1
NO RETARDO
NO SI CONTA D 10K
CONTADCONTA-1
39
NIVEL 1 PIC 16F628 CONTA CONT1 CONT2 CONT$ EQU EQU EQU EQU ORG GOTO ORG TABLA ADD)F RETL) RETL) RETL) RETL) RETL) RETL) RETL) RETL) RETL) RETL) BSF MOVL) MOV)F BCF CLRF CLRF CALL MOVF CALL MOV)F INCF MOVL) SUB)F BTFSS GOTO MOVL) MOV)F CALL MOVF CALL MOV)F DECFS0 GOTO GOTO 20 21 22 2$ 00 INICIO 0" PCL(F B*01111110* B*00001100* B*10110110* B*10011110* B*11001100* B*11011010* B*11111010* B*00001110* B*11111110* B*11011110* ;ENCIENDE ;ENCIENDE ;ENCIENDE ;ENCIENDE ;ENCIENDE ;ENCIENDE ;ENCIENDE ;ENCIENDE ;ENCIENDE ;ENCIENDE EN EL EL EL EL EL EL EL EL EL
TEORIA Y PRACTICA
EL DISPLA+ EL CERO UNO DOS TRES CUATRO CINCO SEIS SIETE OC.O NUEVE
INICIO
STATUS,RP0 ;SELECCIONA BANCO1 B*00000001* TRISB ;DE RB7 A RB1 SALIDAS + RB0 ENTRADA STATUS,RP0 PORTB CONTA RETARDO CONTA() TABLA PORTB CONTA(F .10 CONTA() STATUS(0 ARRIBA .# CONTA RETARDO CONTA() TABLA PORTB CONTA(F ABA2O ARRIBA ;AL BANCO0 ;BORRAR EL PUERTOB ;BORRAMOS EL REGISTRRO DEL CONTEO ;ENVIAMOS EL CONTENIDO A ) ;LLAMA LA TABLA PARA TRAER LOS DATOS PARA ;ENCENDER LOS LED DEL DISPLA+ ;LO DE LA TABLA VA AL PUERTO DONDE ESTA EL ;DISPLA+ DE CATODO COMUN ;SUMAMOS 1 A CONTA ;MIRAMOS SI CONTA ES IGUAL A 10( SI LO ES LA ;RESTA SERA IGUAL A CERO + AFECTARA EL FLAG 0 ;PREGUNTAMOS SI LA OPERACION DIO CERO ;SI NO VUELVA A START ;SE CARGA CON NUEVE PARA DESCENSO ;.ACIA CONTA ;RETARDO PARA VER NUMERO A NUMERO ;MOVEMOS EL CONTENIDO DE CONTA A ) ;PARA LLAMAR LA TABLA ;.ACIA EL DISPLA+ ;RESTA 1 A CONTA SI ES CERO SALTA
ARRIBA
ABA2O
40
NIVEL 1 PIC 16F628 MOVL) MOV)F MOVL) MOV)F DECFS0 GOTO MOVL) MOV)F DECFS0 GOTO MOVL) MOV)F DECFS0 GOTO RETURN END .2"0 CONT2 .2"0 CONT1 CONT1(F ! 1 .2"0 CONT1 CONT2(F ! " .2"0 CONT2 CONT$(F ! #
TEORIA Y PRACTICA
;DECREMENTE LA VARIABLE CONT1 1 SALTA CUANDO ;LLEGA A 0 ;! 1 SIGNIFICA QUE RETROCEDA UNA LINEA ANTES ;SE RECARGA NUEVAMENTE EL REGISTRO POR EL ;ANIDAMINETO ;DECREMENTE LA VARIABLE CONT2 1 SALTA CUANDO ;LLEGA A CERO ;! " RETROCEDE " LINEAS EN EL PROGRAMA ;SE RECARGA CONT2 POR EL ANIDAMIENTO ;RETROCEDE # LINEAS EN EL PROGRAMA ;CUANDO CONT$ SEA CERO RETORNA DE DONDE SE ;LLAM'
PRACTICA 6 666
DI+IT ELECTRONIC CRA 9 23 49 LOCAL 207 TEL 2 86 36 72
41
TEORIA Y PRACTICA
DISPLAD
CATODO COM(N
ANODO COM(N
En los dis"l#2 de ti"o c3todoHco!6n, todos los c3todos de leds son conect#dos # 9C) Los se.!entos indi-idu#les son #"lic#dos # (C "o 3nodo de c#d# led) P# # los dis"l#2 3nodoHco!6n, todos los 3nodos son li.#dos # Ccc en .ene #l de (C) C#d# se.!ento indi-idu#l "uede conect# se de 9C "o c3todo de led de se.!ento seleccion#do)
42
TEORIA Y PRACTICA
L#s cu#t o ent #d#s 0in# i#s del ci cuito inte. #do ;<LS<; "e !iten 16 co!0in#ciones di+e entes de ent #d#)
ANODO CONEN
Pines del decodi+ic#do ;<<;, se ilust # en let #s !#26scul#s A,B,C,D, con e+e enci# # l#s ent #d#s 0in# i#s 2 l#s let #s !in6scul#s # l# s#lid# # los es"ecti-os se.!entos del dis"l#2 de 3nodo co!6n
8ORTA
9 9 9 9 1 1 1 1 9 9 9 9 1 1 1 1 9 9 1 1 9 9 1 1 9 9 1 1 9 9 1 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 9 9 9 9 9 9 9 1 1
9=C=D
9 9 9 9 1 1 1 1 9 9 9 9 1 1 9 9 1 1 9 9 9 1 9 1 9 1 9 1 9 1
Es i!"o t#nte #cl# # %ue si se dese# # conect# el PIC di ect#!ente con el dis"l#2 de 3nodo co!6n, si!"le!ente de0e!os c#!0i# los -#lo es de l# t#0l# 2 c#!0i# los unos "o ce os 2 -ice-e s#, "e o se s#le del te!# de est# " #ctic#, "ues se i# co!o e"eti te!#)
DI+IT ELECTRONIC CRA 9 23 49 LOCAL 207 TEL 2 86 36 72
43
TEORIA Y PRACTICA
N(ESTRA PRACTICA Est# -eA # di+e enci# de l# " #ctic# No (, se e+ectu# # un cont#do #scendente 2 descendente, solo %ue l# s#lid# -# "o el "ue to A, "e o en l# l1.ic# si.ue siendo l# !is!#, # di+e enci# es %ue est# -eA no se i!"le!ent# # un# t#0l# de d#tos, sino %ue el d#to se en-i# # t#l co!o est# #l "ue to A, eso si teniendo en cuent# %ue el LKKL "o o *aneEa K 5i#", "o lo %ue los ot os cu#t o 0its !#s si.ni+ic#ti-os, no se "od 3n lee ) Pe o es i!"o t#nte dest#c# , #un%ue no es el o0jeti-o del !odulo, de %ue "# # !#ni"ul# el "ue to A del PIC 16+628, se le de0e deci #l PIC %ue este "ue to -# # t #0#j# co!o "ue tos de ent #d#s 2 s#lid#s di.it#les, "ues e 8IC po"ee incorporado 2n *od2 o de *aneEo de o" co*paradore", el cu#l !#nej# el "ue to A co!o "ue to #n3lo.os, ,2 si no es"eci+ic#!os " i!e o %ue dese#!os %ue estos "ue tos se#n di.it#les, e4isti 3n con+lictos 2 el " o. #!# no se ejecut# # co!o dese#!os) Se encont # # en el " o. #!# # inici# l# si.uiente sentenci#8 INICIO (O)/W (O)WF =L C(CON
Esto %uie e deci %ue el e.ist o enc# .#do de !#ni"ul# estos co!"# #do es es el e.ist o CBCON, 2 se c# .# con el -#lo de ;, el cu#l identi+ic# este -#lo co!o dej# el "ue to A co!o ent #d#s L s#lid#s di.it#les) B#s in+o !#ci1n est# 3 dis"oni0le en ot # " #ctic#) El " o. #!# -# # ejecut# un cont#do #scendente 2 descendente, !u2 se!ej#nte # l# " #ctic# #nte io )
44
TEORIA Y PRACTICA
FORRAR PORTA
FORRAR CONTA
CONTA DI W W DI PORTA CONTA A 1 NO CONTA D 10K SI W D +9 NO W DI CONTA CONTA DI W W DI PORTA CONTADCONTA-1 CONTA D 10K SI RETARDO
45
TEORIA Y PRACTICA
INICIO
ARRIBA
46
TEORIA Y PRACTICA
MOVL) .# ;SE CARGA CON NUEVE PARA DESCENSO MOV)F CONTA ;.ACIA CONTA ABA2O CALL RETARDO ;RETARDO PARA VER NUMERO A NUMERO MOVF CONTA() ;MOVEMOS EL CONTENIDO DE CONTA A ) MOV)F PORTA ;.ACIA EL DISPLA+ DECFS0 CONTA(F ;RESTA 1 A CONTA SI ES CERO SALTA GOTO ABA2O GOTO ARRIBA ;///////////////////////////////////////////////////////////////////// RETARDO MOVL) .6 MOV)F CONT$ MOVL) .2"0 MOV)F CONT2 MOVL) .2"0 MOV)F CONT1 DECFS0 CONT1(F ;DECREMENTE CONT1 1 SALTA CUANDO ;LLEGA A 0 GOTO MOVL) MOV)F DECFS0 GOTO MOVL) MOV)F DECFS0 GOTO RETURN END ! 1 .2"0 CONT1 CONT2(F ! " .2"0 CONT2 CONT$(F ! # ;! 1 SIGNIFICA QUE RETROCEDA UNA LINEA ANTES ;SE RECARGA NUEVAMENTE EL REGISTRO POR EL ;ANIDAMINETO ;DECREMENTE LA VARIABLE CONT2 1 SALTA CUANDO ;LLEGA A CERO ;! " RETROCEDE " LINEAS EN EL PROGRAMA ;SE RECARGA CONT2 POR EL ANIDAMIENTO ;RETROCEDE # LINEAS EN EL PROGRAMA ;CUANDO CONT$ SEA CERO RETORNA DE DONDE SE ;LLAM'
47
TEORIA Y PRACTICA
As/ +uncion# i# nuest os dis"l#2s, " i!e o ent # /#!os # !#ni"ul# el pin co*Wn %ue "osee estos dis"l#2s en este c#so de cV#odo co*Wn, lo %ue se *# /# es est# encendiendo 2 #"#.#ndo secuenci#l!ente los dis"l#2s de est# +o !#8 i!#.ine!os %ue tene!os un# su0 utin#, en l# %ue "osee!os 2 dis"l#2s Ll#!#dos A 2 B) Al co!ienAo est3n #"#.#dos co!o !uest # l# i!#.en8 En ese !o!ento RA1 2 RA9 est3n en 1, "o lo %ue no " enden "o %ue el co!6n "# # los de c3todo co!6n, de0e se "ol# iA#do con un ce o )
DI+IT ELECTRONIC CRA 9 23 49 LOCAL 207 TEL 2 86 36 72
48
TEORIA Y PRACTICA
A*o # el si.uiente "#so se i# en-i# el d#to "# # -isu#liA# el nu!e o '(, "# # ello se de0e *#ce " i!e o es en-i# el " i!e d#to ,se# el ' o el (, "# # nuest o eje!"lo e!"eA# e!os # en-i# el d#to "# # el encendido del nu!e o (, "o el "ue to B, "e o # "es# %ue #!0os dis"l#2s tienen este d#to, "o #*o # nin.uno est# encendido, "o %ue el co!6n no est# *#0ilit#do "o nin.uno de los "ines de RA9 2 RA1) Di.#!os %ue # "# ti de #*o # *#0ilit# e!os RA1 coloc#ndo un ce o "# # %ue se #li!enten los leds, 2 #*o # si se encende 3n los se.!entos co es"ondientes #l \ ()
Des"u7s de %ue se !#ndo l# o den de encende este dis"l#2, se de0e d# un tie!"o de et# do =del o den de !ilise.undos>, "# # %ue los leds se #lc#ncen # encende lo su+iciente "# # ilu!in# , des"u7s de este tie!"o, se en-i# # un 1 "o RA1 "# # #"#.# este dis"l#2, 2 nos #list# e!os "# # en-i# el d#to "# # encende el nu!e o ' en el dis"l#2, 2 "# # ello de nue-o se ll#!# 3 # l# t#0l# "# # %ue se ten.# el d#to "# # encende los se.!entos %ue +o !#n el nu!e o ' 2 se en-i# #n #l "ue to B, "e o en este !o!ento t#!"oco se encende 3 nin.6n dis"l#2, solo *#st# %ue se *#0ilite el "in %ue cont ol# el dis"l#2 =RA9>) A "# ti %ue se *# desc# .#do el -#lo en el "ue to 0, " ocede!os # #cti-# con ce o # RA9, 2 encende 3 el dis"l#2 de est# +o !#)
49
TEORIA Y PRACTICA
Bien, des"u7s de este #conteci!iento, se d# 3 un et# do i.u#l #l #nte io "# # %ue se enciend#n 0ien los leds 2 se #"#.# # cu#ndo este et# do te !ine) Lo desc ito #nte io !ente +ue "o deci lo #s/ en c3!# # lent# "o %ue si "usi7 #!os # t #0#j# est# su0 utin#, se -e /# #s/8
P# # %ue nos !uest e est#s c#ntid#des, no !#l!ente c#d# di.ito se #l!#cen# en un e.ist o de l# !e!o i#, en l# " #ctic# uno se ll#!# FNID denot#ndo l#s unid#des, 2 DEC *#ce !enci1n # l#s decen#s) FUNCIONA(IENTO DE/ CONTADOR Si #n#liA#!os 2 eco d#!os 0ien, nuest # t#0l# !#ni"ul#d# #nte io !ente en ot #s " #ctic#s solo !#ni"ul#0# del ce o #l nue-e, entonces Tco!o *#ce!os "# # %ue nos lle-e el conteo desde 99 *#st# ::, !#s e4#ct#!ente cu#ndo "#s# de : # 19, etc)U L# es"uest# es de est# +o !#) Cu#ndo ten/#!os un e.ist o desde ce o =en este c#so FNID>, lo /0#!os inc e!ent#ndo, "e o cu#ndo lle.# # 19, en deci!#l se e%uie e de ot o di.ito "# # e" esent# el 19, esto %uie e deci %ue cu#ndo inc e!ent30#!os 2 lle.#!os # 19, se " e.unt#0# en el " o. #!# %ue si 2# *#0/# lle.#do FNID # 19, si no, continu# # inc e!ent#ndo, "e o en c#so cont # io, sencill#!ente 0o 30#!os FNID, 2 el e.ist o DEC lo inc e!ent30#!os en un# unid#d, #s/ se solucion# el " o0le!#, 2 "ode!os #!"li+ic# este !7todo cu#ntos e.ist os necesite!os) P# # ilust # lo !#s cl# o, se o0se -# 3 !ejo en el di#. #!# de +lujo N(ESTRO CIRC(ITO DE PRACTICA Est# -eA nuest o cont#do se enc# .# # de e+ectu# un conteo de 99 # :: 2 -ol-e # e"eti este ciclo, 2 c#d# inc e!ento lo *# 3 c#d# se.undo !#s o !enos) El o0jeti-o de est# " #ctic# e # l# de #"lic# el !ulti"le4#do de los dis"l#2s, 2 entende su t7cnic#) Es de #cl# # %ue e4isten !uc*#s +o !#s de lo. # el !ulti"le4#do, "e o tod#s "# ten del !is!o " inci"io "o lo %ue est# t7cnic# no es l# 6nic# 2 #0solut#) B#ni"ul# 3 ' su0 utin#s8 un# l# 2# conocid# t#0l# de con-e si1n, ot # su0 utin# un et# do %ue se -i 3 co!o tie!"o de -isu#liA#ci1n ent e d#to 2 d#to 2 t#!0i7n ent e inc e!ento e
50
TEORIA Y PRACTICA
inc e!ento, ot o et# do tend 3 l# !isi1n del tie!"o de e+ esco ent e dis"l#2 2 dis"l#2, 2 es !eno %ue el #nte io et# do en cu#nto # tie!"o) Co!o c#so es"eci#l en el " o. #!# del et# do de -isu#liA#ci1n, -e!os %ue se encuent # l# utin# de !ost # ent e l# del et# do, esto es "o %ue si se *#cen utin#s indi-idu#les, el e+ecto se i# el de -e un 0 e-e tie!"o los n6!e os en el dis"l#2 2 !#s o !enos 1 se.undo #"#.#do, de0ido # %ue el PIC no "uede *#ce 2 #cti-id#des # l# -eA, entonces lo %ue se *#ce es "o c#d# dec e!ento del et# do de -isu#liA#ci1n, se e"ite l# su0 utin# de !ost # , "# # %ue sie!" e est7n ilu!in#dos) T#!0i7n es de !encion# %ue "o est# !#ni"ul#ndo e p2er#o A, de0e!os esc i0i en el C(CON e da#o de L, "# # dej# los "ines del "ue to A co!o "ue tos di.it#les) DIAHRA(A DE F/UJO DE/ 8ROHRA(A INICIO
CONFI= DE FANCOS FORRAR PORTF FORRAR PORTA FORRAR ENID FORRAR DEC
RETARDO
CONT1DI +250 CONT2 DI +250
NOSTRAR
CONT1 D CONT1A1
RETARDO
ENIDD ENIDA1
NO NO
CONT1 D 10K
ENID D 10K
SI
SI
ENID D 0 DECD DECA1
CONT1 DI+250
CONT2 D CONT2A1
NO NO SI RETERN
CONT1 D 10K
DEC D 10K
SI DEC D 0
51
TEORIA Y PRACTICA
1DI RA0
1DI RA1
RETERN
52
TEORIA Y PRACTICA
PI16F628 NP16F628)INCO
20 21 22 2$ 24 2" 26 00 INICIO 0" PCL(F B*01111110* B*00001100* B*10110110* B*10011110* B*11001100* B*11011010* B*11111010* B*00001110* B*11111110* B*11011110* .7 CMCON STATUS,RP0 B*00000000* TRISB B*00000000* TRISA STATUS,RP0 PORTB PORTA UNID DEC RETARDO UNID(F .10 UNID() STATUS(0 ARRIBA UNID DEC(F .10 UNID() STATUS(0 ARRIBA DEC UNID ARRIBA
TABLA
;ENCIENDE ;ENCIENDE ;ENCIENDE ;ENCIENDE ;ENCIENDE ;ENCIENDE ;ENCIENDE ;ENCIENDE ;ENCIENDE ;ENCIENDE
EN EL EL EL EL EL EL EL EL EL
EL DISPLA+ EL CERO UNO DOS TRES CUATRO CINCO SEIS SIETE OC.O NUEVE
INICIO
;PARA DES.ABILITAR LOS COMPARADORES + ;DE2AR DIGITAL EL PUERTO A ;SELECCIONA BANCO1 ;DE RB7 A RB0 SALIDAS ;DE RA0 A RA4 COMO SALIDAS ;AL BANCO0 ;BORRAR EL PUERTOB
ARRIBA
;EN EL RETARDO SE INCLU+E LA VISUALI0ACION ;MULTIPLE5ADA ;SUMAMOS 1 A UNID COMO UNIDADES ;MIRAMOS SI CONTA ES IGUAL A 10( SI LO ES LA ;RESTA SERA IGUAL A CERO + AFECTARA 0 ;PREGUNTAMOS SI LA OPERACION DIO CERO ;SI NO VUELVA A START ;DE2AMOS A UNID EN CERO ;INCREMENTO EN 61 A DEC COMO DECENAS ;MIRAMOS SI EL CONTENIDO DE DEC ES IGUAL A 10 ;BORRA A DEC + EL CONTEO VUELVE A CERO ;BORRA TAMBIEN UNID
53
TEORIA Y PRACTICA
;SUBRUTINA ENCARGADA DE VISUALI0AR LOS DATOS ;EN LOS DISPLA+S ;DECREMENTE LA VARIABLE CONT1 1 SALTA CUANDO ;LLEGA A 0 ;! 2 SIGNIFICA QUE RETROCEDA DOS LINEA ANTES ;SE RECARGA NUEVAMENTE EL REGISTRO POR EL ;ANIDAMINETO ;DECREMENTE LA VARIABLE CONT2 1 SALTA CUANDO ;LLEGA A CERO ;! 7 RETROCEDE 7 LINEAS EN EL PROGRAMA ;SE RECARGA CONT2 POR EL ANIDAMIENTO
;RETROCEDE 11 LINEAS EN EL PROGRAMA( EL ;PUNTO ES PARA DECIRLE QUE EL DATO ES EN ;DECIMAL RETURN ;CUANDO CONT$ SEA CERO RETORNA DE DONDE SE ;LLAM' ;///////////////////////////////////////////////////// MOSTRAR CLRF PORTA MOVF UNID() ;SE MUEVE EL CONTENIDO DE UNID A ) CALL TABLA ;SE LLAMA LA TABLA MOV)F PORTB BSF PORTA(1 ;SE ACTIVA EL DISPLA+ DE UNIDADES CALL RETVER ;RETARDO DE VISUALI0ACION + REFRESCO BCF PORTA(1 ;SE APAGA DISPLA+ DE UNIDADES MOVF DEC() ;DE DEC A ) CALL TABLA ;TABLA PARA EL ENCENDIDO DE LOS DISPLA+S MOV)F PORTB BSF PORTA(0 ;SE ENCIENDE DISPLA+ DE DECENAS CALL RETVER ;RETARDO DE VISUALI0ACION BCF PORTA(0 RETURN ;////////////////////////////////////// RETVER ;RETARDO DE VISUALI0ACION DE LOS DISPLA+S MOVL) .100 MOV)F CONT4 MOVL) .10 MOV)F CONT" DECFSZ CONT4,F GOTO ! 1 MOVL) .100 MOV)F CONT4 DECFSZ CONT5,F GOTO ! " RETURN END
PRACTICA 8
54
TEORIA Y PRACTICA
RB;
RB6
RB(
RB<
RB'
RB2
RB1
RB9
0
CARRD
EEe*p o de a ro#acinF
(O)/W (O)WF 9CF R/F 9Y10000000Y REH1 STATUS,C REH1,F PSE CARGARA A REG1 CON ESTE CALOR PASEGFRABOS QFE EL CARRE ESTE EN CERO PSE ROT] EL REGISTRO REG1 A LA IDQFIERDA
DESPF^S DE LA INTRFCCION REG1 I B[99999999[, E EL CARRE CALE 1) XAGABOS OTRA ROTACI]N A LA IDQFIERDA8 R/F REH1,F PSE ROT] DE NFECO FNA POSICIO A LA DERECXA
ROTACION A /A DERECQA
DI+IT ELECTRONIC CRA 9 23 49 LOCAL 207 TEL 2 86 36 72
55
TEORIA Y PRACTICA
E4iste l# inst ucci1n co!"le!ent# i# ll#!#d# RRF, l# cu#l si.ni+ic# ot# # l# de ec*# el -#lo e.ist o en un# "osici1n, lo %ue %uie e deci %ue el d#to se co e 3 # l# de ec*# un# "osici1n) Est# inst ucci1n est# #co!"#&#d# con el 0it del c# 2, lo %ue %uie e deci %ue co!o todo el d#to se co e un# "osici1n # l# de ec*#, el 0it9 co e #l c# 2, 2 el contenido del c# 2 co i1 #l 0it ; del e.ist o %ue se !o-i1) El esult#do de est# o"e #ci1n "uede se .u# d#do en M o en el !is!o e.ist o %ue se solicito ot# )
RB;
RB6
RB(
RB<
RB'
RB2
RB1
RB9
0
CARRD
EEe*p o de a ro#acinF
(O)/W (O)WF 9CF RRF 9Y00000001Y REH1 STATUS,C REH1,F PSE CARGARA A REG1 CON ESTE CALOR PASEGFRABOS QFE EL CARRE ESTE EN CERO PSE ROT] EL REGISTRO REG1 A LA DERECXA
DESPF^S DE LA INTRFCCION REG1 I B[91999999[, E EL CARRE CALE 1= XAGABOS OTRA ROTACI]N A LA IDQFIERDA8 RRF REH1,F PSE ROT] DE NFECO FNA POSICIO A LA DERECXA
N(ESTRO CIRC(ITO DE PRACTICA Co!o se *#0/# co!ent#do #ntes, se *# 3 un#s luces secuenci#les, us#ndo el "ue to B "# # este o0jeti-o) El ci cuito t #0#j# # !#s o !enos #s/8 Inici# # encendido el led del "in RB9, es"e # 3 !#s o !enos 1 se.undo 2 ot# 3 # l# iA%uie d#, %ued#ndo encendido el "in RB1, 2 se *# 3 est# secuenci# *#st# %ue lle.ue #l "in de RB;) Cu#ndo esto ocu e, es"e # un se.undo 2 ot# 3 "e o # l# de ec*#, ose# # RB6 2 es"e # # un se.undo, este ciclo se e"ite *#st# %ue el led encendido se# el de RB9, 2 de nue-o se e"eti 3 est# secuenci#)
DI+IT ELECTRONIC CRA 9 23 49 LOCAL 207 TEL 2 86 36 72
56
TEORIA Y PRACTICA
FORRAR PORTF
FORRAR CARRY
1DI RF0
ROTAR IUV PORTF
NO RF7 D 1K SI
RETARDO 1SE= RETARDO 1SE=
NO RF0 D 1K SI
RETARDO 1SE= ROTAR DER PORTF
57
TEORIA Y PRACTICA
INICIO
;SELECCIONA BANCO1 ;PUERTO RB COMO SALIDA ;AL BANCO0 ;BORRAR EL PUERTOB ;SE PONE A CERO EL BIT DEL CARR+ PARA ;ASEGURAR QUE SEA CERO ;SE PONE ESTE ESTADO DEL BIT A ROTAR
;///////////////////////////////
58
TEORIA Y PRACTICA
ROTADER
;//////////////////////////////// ROTAI0 CALL RETARDO ;TIEMPO PARA VISUALI0AR CADA POSICION ;DE ROTACION RLF PORTB(F ;ROTA A LA I0QUIERDA EL CONTENIDO DE . . ; PORTB GOTO STARTI ;/////////////////////////////////// RETARDO MOVL) .6 MOV)F CONT$ MOVL) .2"0 MOV)F CONT2 MOVL) .2"0 MOV)F CONT1 DECFSZ GOTO MOVL) MOV)F DECFSZ GOTO MOVL) MOV)F DECFSZ GOTO RETURN END CONT1(F ! 1 .2"0 CONT1 CONT2(F ! " .2"0 CONT2 CONT$(F ! # ;DECREMENTE LA VARIABLE CONT1 1 SALTA ;CUANDO LLEGA A 0 ;! 1 SIGNIFICA QUE RETROCEDA UNA LINEA ;ANTES ;SE RECARGA NUEVAMENTE EL REGISTRO POR ; EL ANIDAMINETO ;DECREMENTE LA VARIABLE CONT2 1 SALTA ;CUANDO LLEGA A CERO ;! " RETROCEDE " LINEAS EN EL PROGRAMA ;SE RECARGA CONT2 POR EL ANIDAMIENTO ;RETROCEDE # LINEAS EN EL PROGRAMA ;CUANDO CONT$ SEA CERO RETORNA DE DONDE ; SE LLAM'
59
TEORIA Y PRACTICA
PRACTICA 8
RE+ISTRO OPTION
60
TEORIA Y PRACTICA
(edida de #ie*po en 2n *icro, e"#V "2Ee#a a #re" #e*a"F Oscil#do e4te no Re.ist o TBR9 Di-iso de F ecuenci# El oscil#do e4te no c eo %ue 2# s#0en "e o *#.o eco d# , es el %ue !e de+ine l# -elocid#d del ciclo de inst ucci1n, 2 cu#ndo us#!os un oscil#do de c ist#l de cu# Ao =$T> de <B*A, tene!os 1 !ic ose.undo de ciclo de inst ucci1n) El e.ist o TBR9 de 8 0its se con+i.u # co!o te!"o iA#do "# # dete !in# inte -#los conc etos de tie!"o o co!o cont#do de i!"ulsos e4te nos ) EL di-iso de F ecuenci#, co!o su no!0 e lo dice di-ide l# + ecuenci# de eloj, %ue es lo !is!o deci %ue #u!ent# l# du #ci1n de los i!"ulsos de eloj) L# co!0in#ci1n 0in# i# de los 0its PS9, PS1 2 PS2, del e.ist o OPTION !e de+inen el #n.o del di-iso de + ecuenci#s) El -#lo c# .#do en el TBR9, es #%uel -#lo %ue le +#lt# # este e.ist o "# # %ue lle.ue # 2(( =-#lo !34i!o "# # un e.ist o de 8 0its>) EJE(8/O8 Si "o so+tM# e c# .o un -#lo de 12( en el e.ist o TBR9, entonces el -#lo %ue inte -iene en l# +1 !ul# es 1'9, -#lo %ue +#lt# "# # %ue se# des0o de =lle.ue # 2((> el e.ist o TBR9 =2((H12(I1'9>)
61
TEORIA Y PRACTICA
Re!i"#ro de Con#ro de In#err2pcione" INTCON Este e.ist o ocu"# l# di ecci1n 9BX del 0#nco 9 2 0#nco 1
DES9ORDA(IENTO DE/ T(R0 Cu#ndo el TBR9 se des0o d# 2 "#s# del -#lo de FFX # 99X, el se&#liA#do o 0#nde # TOIF se "one #uto!3tic#!ente en 1)Cu#ndo se c# .# el TBR9 con un -#lo n en deci!#l, cuent# =2(6Hn> i!"ulsos, el tie!"o se cuent# !edi#nte l# si.uiente +o !ul#8 Te*pori0acion = 1U" & 4 >PA.n7 & Ran!o de di+i"or de frec2encia)
62
TEORIA Y PRACTICA
SET DE INSTRUCCIONES UTI/I<ADAS EN /A 8ROHRA(ACION 1= 9SF f, 5 F Con est# inst ucci1n se "one en 1 el 0it 5 del e.ist o f
EEe*p o8 Si se tiene en el "ue to A = PTOA > I 1919 2 se %uie e coloc# en FNO el te ce 0it, l# inst ucci1n es l# si.uiente8 9SF 8ORTA , ;= >= 9TFSS s#lt# ) f, 5 F = BIT TEST FILE SKIP IF SET > E4"lo # un 0it del e.ist o f 2 si -#le uno)
EEe*p o 8 E4"lo # si el 0it 9 del e.ist o STATFS -#le uno) si es #s/ s#lt# # l# di ecci1n CONTINFAR si no s#lt# # l# di ecci1n SIGFE8 BTFSS GOTO GOTO STATFS,9 SIGFE CONTINFAR
TI
=TBR9>
=Di-iso de Fecuenci#>
=Cont#do >
1 1 "
EJEMPLO: Con#ador I 1 Se.undo I 1)999)999 uS TBR9& D)F) 2(6 & 2(6 Tie*po 4"e!7
Con#ador
1 1(
> '9
; <(
K 69
P ;(
63
TEORIA Y PRACTICA
N(ESTRO CIRC(ITO PROP(ESTO Se!ej#nte # l# " #ctic# nu!e o 2, "e o est# -eA se e!"le# # un et# do, "e o no en +o !# de #nid#!iento, sino est# -eA se e+ectu# # e!"le#ndo l#s c# #cte /stic#s del T(R0) Se e!"le# # el TBR9 # su !34i!o di-isi1n, %uie e deci %ue su " eesc#l# o " eesc#le est# 3 # un# " o"o ci1n de 1F>PA, 2 se es"e # 3 # %ue el +l#. o l# 0#nde # del e.ist o INTCON, T0IF, se "on.# # 1, indic#ndo %ue *# ocu ido un des0o d#!iento del TBR9, "o c#d# des0o d#!iento, dec e!ent# # l# -# i#0le REG1, el cu#l #l !ulti"lic# 1( des0o d#!ientos =-#lo del e.ist o REG1 I)1(> , se cu!"li 3 un se.undo #" o4i!#d#!ente) Cu#ndo REG1 lle.ue # ce o, entonces to!# # #cci1n so0 e si encende o #"#.# el led, de"endiendo de l# condici1n en %ue lo encuent e) El led est# 3 conect#do "o RB;, 2 se # inte !itente, "ues e!"le# # un et# do, lue.o enciendeP un et# do 2 lue.o se #"#.#) DIA+RAMA DE FL(AO DEL PRO+RAMA INICIO
CONFI= DEL PIC RE=ISTRO OPTIONWRE=
0 DI INTCON" T0IF
0 DI INTCON" T0IF RE=1 D +15 FORRAR TNR0 NO T0IFD1K SI RE=1 D RE=1-1 RF7 D 1 1 DI RF7 RE=1 D 0K
0 DI RF7
64
TEORIA Y PRACTICA
P=16F628 <P16F628.INC>
20 00 INICIO 0" STATUS(RP0 B*00000000* TRISB B*10000111* OPTION7REG STATUS(RP0 PORTB INTCON(T0IF .1" REG1
INICIO
;SELECCIONA BANCO1 ;PUERTO RB COMO SALIDA ;PARA PROGRAMAR EL TMR0( PREESCALER ;AL BANCO0 ;BORRAR EL PUERTOB ;SE PONE A CERO EL FLAG DE TMR0 PARA SABER ;SI SE DESBORDA( CUANDO SE PONE EN UNO ;SE CARGA CON 1"( PARA QUE LOS ;DESBORDAMIENTOS DEL TMR0 SUMEN APRO5 1 SEG ;BORRAMOS A TMR0 COMO UN RESET ;C.EQUEAMOS SI +A SE PUSO A UNO EL FLAG DE ;TMR0 POR DESBORDAMIENTO ;SI NO VUELVA + PREGUNTE ;BORRAMOS ESTE FLAG( PUES ES UN REQUISITO( ;PARA OTRO DESBORDAMIENTO ;POR CADA DESBORDAMIENTO SE DECREMENTA ;REG1 ,PARA QUE DURE 1 SEGUNDO;PREGUNTA ESTADO DE RB7( PARA ENCENDERLO O ;APAGARLO ;SI ESTABA ENCENDIDO QUE LO APAGUE ;VUELVE A CARGAR CON 1" REG1 PARA OTRO ; CICLO
CARGA
CLRF
START BTFSS GOTO BCF DECFS0 GOTO BTFSS GOTO BCF GOTO BSF GOTO END
TMR0
INTCON(T0IF ! 1 INTCON(T0IF REG1(F START PORTB(7 LEDON PORTB(7 CARGA PORTB(7 CARGA
LEDOFF . LEDON
65
TEORIA Y PRACTICA
PRACTICA 1!
66
TEORIA Y PRACTICA
FORRAR TNR0
NO
CONTA DI 0
TNR0"3 D 1K
CONTA DI W
SI
CONTAD CONTAA1
W DI PORTA
CONTA D 10K
NO SI
67
TEORIA Y PRACTICA
CONTA
INICIO
ENTRADA
START AAA
68
TEORIA Y PRACTICA
PRACTICA 11
El oscil#do e4te no c eo %ue 2# s#0en "e o *#.o eco d# , es el %ue !e de+ine l# -elocid#d del ciclo de inst ucci1n, 2 cu#ndo us#!os un oscil#do de c ist#l de cu# Ao =$T> de <B*A, tene!os 1 !ic ose.undo de ciclo de inst ucci1n) El e.ist o TBR9 de 8 0its se con+i.u # co!o te!"o iA#do "# # dete !in# inte -#los conc etos de tie!"o o co!o cont#do de i!"ulsos e4te nos )EL di-iso de F ecuenci#, co!o su no!0 e lo dice di-ide l# + ecuenci# de eloj, %ue es lo !is!o deci %ue #u!ent# l# du #ci1n de los i!"ulsos de eloj) L# co!0in#ci1n 0in# i# de los 0its PS9, PS1 2 PS2, del e.ist o OPTION !e de+inen el #n.o del di-iso de + ecuenci#s) El -#lo c# .#do en el T(R0, es #%uel -#lo %ue le +#lt# # este e.ist o "# # %ue lle.ue # 2(( =-#lo !34i!o "# # un e.ist o de 8 0its>)
69
TEORIA Y PRACTICA
EAEMPLO/ Si "o so+tM# e c# .o un -#lo de 12( en el e.ist o TBR9, entonces el -#lo %ue inte -iene en l# +1 !ul# es 1'9, -#lo %ue +#lt# "# # %ue se# des0o de =lle.ue # 2((> el e.ist o TBR9 =2((H12(I1'9>) DIA+RAMA DE BLOC(ES DE TIMER !
INTERRU8CIONES AL i.u#l %ue l# inst ucci1n c#ll, un# inte u"ci1n !e .ene # un des-i1 del +lujo no !#l del " o. #!#, "e o l# di+e enci# sust#nci#l es %ue #l .ene # se l# inte u"ci1n, el PC no -# # cu#l%uie di ecci1n de l# !e!o i# FLASX, sino # l# "osici1n 9<, %ue es l# "osici1n ese -#d# "# # l# ll#!#d# #l t #t#!iento de l# inte u"ci1n) Qu7 es lo %ue .ene # inte u"cionesU En este ti"o de !ic ocont ol#do tene!os ( +uentes de inte u"ci1n .ene #les "o deci lo, es deci son ( l#s #Aones "o l#s %ue "uede ocu i un# inte u"ci1n est#s #Aones son8
1)Des0o d#!iento del e.ist o T(R0= 2)C#!0io de est#do en los "ines R9K . R9L del "ue to B ')Fin de esc itu # de l# EE8RO( de d#tos <)Po c#us# de un# inte u"ci1n e4te n#, "in R90RINT () C#us#d# "o los perif,rico" del PIC =Co!"# #do es, Co!"# #ci1n L c#"tu #H"M!,
!odulo de co!unic#ciones us# t, etc)> Re!i"#ro de Con#ro de In#err2pcione" INTCON P i!e o tene!os %ue *#0ilit# el HIE "# # "ode *#ce cu#l%uie ti"o de inte u"ci1n, lue.o conside #!os l#s inte u"ciones "e tinentes # nuest # #"lic#ci1n con los co es"ondientes 0its de "e !iso) Los 0its de se&#liA#ci1n son los enc# .#dos de #-is# %ue e-ento de inte u"ci1n *# ocu ido "oni7ndose # 1)
70
TEORIA Y PRACTICA
P# # -ol-e # "one lo # 9 estos 0its de se&#liA#ci1n, de0e!os " o. #!# "o so+tM# e, "o %ue de no se #s/ no se "od 3 s#li de ellos) Du #nte el tie!"o %ue se est# ejecut#ndo l# inte u"ci1n, GIE se "one # ce o "# # e-it# tene en cuent# cu#l%uie ot o ti"o de inte u"ci1n)Si se %uie e eto n# de l# inte u"ci1n con el GIE nue-#!ente *#0ilit#do, se "one l# inst ucci1n RETFIE %ue "ond 3 # GIE #uto!3tic#!ente # 1) INTERRU8CION 8OR DES9ORDA(IENTO DE/ T(R0 Cu#ndo el TBR9 se des0o d# 2 "#s# del -#lo de FFX # 99X, el se&#liA#do o 0#nde # TOIF se "one #uto!3tic#!ente en 1) Cu#ndo se c# .# el TBR9 con un -#lo n en deci!#l, cuent# =2(6Hn> i!"ulsos) El tie!"o se cuent# !edi#nte l# si.uiente +o !ul# Te*pori0acion = < & Tosc & = 2(6Hn> & R#n.o del di-iso de + ecuenci#) SET DE INSTRUCCIONES UTI/I<ADAS EN /A 8ROHRA(ACION >= 9TFSS f, 5 F = BIT TEST FILE SKIP IF SET > E4"lo # un 0it =5> del e.ist o f 2
s#lt# si -#le uno) EEe*p o 8 E4"lo # si el 0it 9 del e.ist o STATFS -#le uno) si es #s/ s#lt# # l# di ecci1n CONTINFAR si no s#lt# # l# di ecci1n SIGFE8 BTFSS GOTO GOTO eZp icacion de pro!ra*a Al c# .# el e.ist o o"tion se #si.n# co!o di-iso de + ecuenci# 2(6) Al no #si.n# un -#lo #l TBR9 el #uto!#tic#!ente cuent# de 9 #2(6) Si.ni+ic# %ue con un c ist#l de <BXA l# te!"o iA#cion tiene un -#lo de8 STATFS,9 SIGFE CONTINFAR
71
TEORIA Y PRACTICA
NO
CONFI=ERACIMN DEL PIC -RE=ISTROS OPTIONWRE= Y INTCON
RETFIE
T0IF D 1K
SI
0 DI INTCON"T0IF CONTA -1
CONTA DI +15
NO
FORRAR TNR0
RETFIE CONTA D 0K
SI
INTCON"=IE DI 1
CONTA DI +15
NO
ESPERA
1 DI RF7 RF7 D 1K
SI
RETFIE 0 DI RF7
72
TEORIA Y PRACTICA
PRO+RAMA EN MPLAB PARA (N LED INTERMITENTE POR TMRO LIST P=16F628 INCLUDE <P16F628.INC>
EQU ORG GOTO ORG GOTO 20 00 INICIO 04 INTERR
CONTA
INICIO
ORG BSF MOVL) MOV)F MOVL) MOV)F MOVL) MOV)F BCF MOVL) MOV)F
0" STATUS(RP0 B*00000000* TRISB B*10000111* OPTION_REG B*00100000* INTCON STATUS(RP0 .1" CONTA
;CUANDO .A+ INTERRUPCION SE DIRIGE A LA ;ETIQUETA DEMARCADA AQUI ;SELECCIONA BANCO1 ;PUERTO RB COMO SALIDA ;PARA PROGRAMAR EL TMR0( CON CICLOS DE ;INTRUCCION + PREESCALER A 192"6 ;GIE OFF( INTERRUPCION POR DESBORDAMIENTO ;DEL TMR0( FLAGS OFF ;AL BANCO0
;SE CARGA CON 1"( PARA QUE LOS ;DESBORDAMIENTOS DEL TMR0 ,1" EN TOTAL-( ;SUMEN APRO5 1 SEG CLRF TMR0 ;SE BORRA EL TMR0 PARA QUE EMPIECE DE CERO BSF INTCON(GIE ;.ABILITAMOS APARTIR DE A.ORA LA ;INTERRUPCION POR TMR0 GOTO $ ;SE QUEDA EN ESPERA .ASTA QUE OCURRA ALGO9 ;UNA INTERRUPCION ;////////////////////////////////////////////////////// INTERR BTFSS INTCON(T0IF ;PREGUNTAMOS SI FUE INTERRUPCION POR TMR0 RETFIE ;ESTE TIPO DE RETORNO PONE AUTOMATICAMENTE ;EL GIE EN 1 BCF INTCON(T0IF ;BORRAMOS EL FLAG POR REQUISITO DECFS0 CONTA(F ;POR CADA INTERRUCION VA DECREMENTANDO EL ;CONTA RETFIE ;SALE + ESPERA DE NUEVO MOVL) .1" MOV)F CONTA ;RECARGAMOS CONTA PARA OTRO CICLO BTFSS PORTB(7 ;PREGUNTA ESTADO DE RB7 PARA ENCENDERLO O ;APAGARLO GOTO LEDON LEDOFF BCF PORTB(7 RETFIE LEDON BSF PORTB(7 RETFIE END
73
TEORIA Y PRACTICA
PRACTICA 12
El 0it GIE lo -#!os # "one en el 1 l1.ico "# # #cti-# el "e !iso .lo0#l "# # l# ejecuci1n de l#s inte u"ciones) El 0it INTE t#!0i7n *#2 %ue #cti-# lo en 1 "# # *#0ilit# l# inte u"ciones e4te n#s "o el "in RB9LINT de !ic ocont ol#do ) Es 0ueno t#!0i7n #se.u # se %ue el 0it de l# se&#liA#ci1n de inte u"ciones e4te n#s este 0o #do, #s/ #list3ndolo "# # l# inte u"ci1n e4te n# %ue -en.#) En el e.ist o OPTION t#!0i7n se -#n # " esent# le-es, "e o i!"o t#ntes c#!0ios) Re!i"#ro O8TIONF RPBF 1 INTEDG 9 TOCS 9 TOSE 1 PSA 9 PS2 9 PS1 9 PS9 9
74
TEORIA Y PRACTICA
I!%R!&!
E B'O(UES
E TI&ER )
N(ESTRO CIRC(ITO Co!o sie!" e lo " i!e o %ue -#!os # *#ce es con+i.u # los "ue tos, RB9 co!o ent #d# donde -#!os # conect# nuest o "uls#do de inte u"ciones 2 RB; co!o s#lid# donde conect#!os nuest o led) Des"ues con+i.u #!os el e.ist o O8TION donde el 0it INTEDG se "one en ce o "# # con+i.u # el +l#nco de 0#j#d# co!o inte u"cion) Lue.o #just#!os el GIE 2 0it INTE del e.ist o INTCON co!o 1 "# # #cti-# el "e !iso .lo0#l de l#s inte u"ciones, !#s e4#cto l#s inte u"cionese4te n#s "o R90RINT) Fn# -eA e#liA#d# l# con+i.u #cion nos #se.u #!os# #"#.# el led 2 se " ocede # es"e # l# inte u"cion e4te n#) Cu#ndo el " o. #!# detect# l# inte u"cion se "one # #-e i.u# el est#do del led s/ este est# #"#.#do se le enciende o -ice-e s# 2 se eto n# el " o. #!# # es"e # l# si.uiente inte u"cion)
75
INICIO
CONFI=ERACIMN DEL PIC" DEL RE=ISTRO OPTIONWRE= Y INTCON" PARA INTERREPCIMN POR RF0+
NO
RETFIE
INTCON "I NTF D 1K
SI
0 DI INTCON" INTF
1DI INTCON"=IE
0 DI RF7 ESPERA
NO
RF7 D 1K
SI
0 DI RF7
RETARDO ANTIRREFOTE
76
TEORIA Y PRACTICA
;CUANDO .A+ INTERRUPCION SE DIRIGE A LA AQUI ;SELECCIONA BANCO1 ;PUERTO RB0 COMO ENTRADA ;PARA PROGRAMAR FLACO DEL RB0( EN ESTE CASO ;POR FLANCO DE BA2ADA
INICIO
MOV)F OPTION7REG MOVL) B*00010000* ;GIE OFF( INTERRUPCION POR FLACO DE RB0 MOV)F INTCON BCF STATUS(RP0 ;AL BANCO0 BSF INTCON(GIE ;.ABILITAMOS APARTIR DE A.ORA LA INT3RB0 GOTO ! ;ESPERA .ASTA QUE OCURRA UNA INTERRUPCION ;////////////////////////////////////////////////////// INTERR BTFSS INTCON(INTF ;PREGUNTAMOS SI FUE INTERRUPCION POR RB0 RETFIE ;RETORNO PONE AUTOMATICAMENTE EL GIE EN 1 BCF INTCON(INTF ;BORRAMOS EL FLAG POR REQUISITO BTFSS PORTB(7 ;PREGUNTA POR RB7 PARA ENCENDERLO O APAGARLO GOTO LEDON LEDOFF BCF PORTB(7 CALL REANTIR RETFIE LEDON BSF PORTB(7 CALL REANTIR RETFIE ;/////////////////////////////////// REANTIR MOVL) .$ MOV)F CONT$ MOVL) .180 MOV)F CONT2 MOVL) .200 MOV)F CONT1 DECFS0 CONT1(F ;DECREMENTE CONT1 1 SALTA CUANDO LLEGA A 0 GOTO ! 1 ;SIGNIFICA QUE RETROCEDA UNA LINEA ANTES MOVL) .200 MOV)F CONT1 ;SE RECARGA NUEVAMENTE DECFS0 CONT2(F ;DECREMENTE CONT2 1 SALTA CUANDO LLEGA A CERO GOTO ! " ;! " RETROCEDE " LINEAS EN EL PROGRAMA MOVL) .180 MOV)F CONT2 ;SE RECARGA CONT2 POR EL ANIDAMIENTO DECFS0 CONT$(F GOTO ! # ;RETROCEDE # LINEAS EN EL PROGRAMA RETURN ;CUANDO CONT$ SEA CERO RETORNA DE DONDE SE END ;LLAM'
77
TEORIA Y PRACTICA
PRACTICA 1#
Aspecto comn de un buzzer visto desde arriba No !#l!ente estos 0uAAe tiene un# "ol# iA#ci1n , "o l# %ue de0e!os tene en cuent# #ntes de su cone4ion#do con el PIC o ci cuito # t #t# ) Su +uncion#!iento 03sico es sencillo8 el PIC o !ic ocont ol#do se enc# .# de .ene # est# se&#l o tono =de ;(9XA # (KXA #" o4i!#d#!ente>, 2 "o !edio de un t #nsisto "# # !#nej# l# c# .#, se conect# # #l 0uAAe ) Es de tene en cuent# %ue "o se un ele!ento elect o!ec3nico, .ene # 3 uido el7ct ico, "o lo %ue se eco!iend# us# +ilt os c#"#citi-os en el ci cuito, 2 " e+e i0le en "# #lelo con el 0uAAe ) N(ESTRO CIRC(ITO Nuest o ci cuito consisti 3 en %ue "o c#d# -eA %ue "ulse!os un inte u"to , inc e!ent# 3 un cont#do , !#nej#do "o un dis"l#2 de c3todo co!6n 2 un# t#0l# de d#tos, 2 t#!0i7n son# 3 el 0uAAe "o !edio de el "ue to RA', "# # !#s det#lles en el di#. #!# es%ue!3tico) El +uncion#!iento " inci"#l!ente del 0uAAe , se 0#s# en l# !#ni"ul#ci1n de un et# do =e 12e de#er*ina a frec2encia de #ra5aEo>, 2 un #nid#!iento de -# i#0les ,se!ej#nte en su est uctu # # un et# do , "# # el tie!"o en %ue du # 3 son#ndo el 0uAAe )
78
TEORIA Y PRACTICA
Al us# est# su0 utin# %ue *#ce son# el 0uAAe ocu e lo si.uiente8 Al ll#!#do de est# su0 utin#, se c# .#n unos e.ist os, enc# .#dos de dete !in# l# du #ci1n del sonido ="#"el %ue dese!"e&# CONT1 2 CONT2>) A "# ti de l# eti%uet# SOFND, -e!os %ue se #cti-# el "in de RA' =1>, lo cu#l #cti-# 3 el 0uAAe , "e o solo le en-i1 co iente, "o lo %ue solo #l 0uAAe solo *# oscil#do l# !it#d, des"u7s de l#!# un et# do, %ue en el c#so du # 1 !S, "o lo %ue #l c#lcul# l# + ecuenci#, se 3 de #" o4i!#d#!ente 1KXA) Des"u7s "# # co!"let# el ot o ciclo de oscil#ci1n, en-i#!os un ce o "o RA', 2 lue.o continu# el #nid#!iento, "o lo %ue # c#d# dec e!ento, -ol-e 3 # l# eti%uet# de sound 2 se e"eti 3 *#st# %ue CONT1 2 CONT2 se#n ce o, "o lo %ue su du #ci1n se 3 lo su+iciente "# # %ue "# eAc# de du #ci1n co!o l# "uls#ci1n) El ci cuito en .ene #l +uncion# #s/8 cu#ndo e4iste "uls#ci1n en el pin R90, ,en-/# un ce o #l PIC, cu#l #l detect# l# "uls#ci1n, ll#!# l# su0 utin# del 0uAAe , ,lue.o inc e!ent# el cont#do de 9 # : en un# unid#d) Es i!"o t#nte o0se -# %ue no e4iste et# do de #nti e0ote, esto es de0ido # %ue l# su0 utin# de 0uAAe consu!e el tie!"o su+iciente "# # ocu"# #l PIC !ient #s se disi"# el e0ote el7ct ico)
79
TEORIA Y PRACTICA
FEUUER
CONT1DI +40 CONT2DI +10 1 DI RA3 RETAR 1 1S
NO
RF0 D 0K
NO
CONT1 D 0K
SI SI
FEUUER
SI
CONTA D 10K FORRA CONTA CONT2 D 0K
NO
NO SI
CONTA DI W TAFLA W DI PORTF
RETERN
80
TEORIA Y PRACTICA
DISPLAD CBC
LIST INCLUDE
EQU EQU EQU EQU EQU ORG GOTO ORG ADD)F RETL) RETL) RETL) RETL) RETL) RETL) RETL) RETL) RETL) RETL) MOVL) MOV)F BSF MOVL) MOV)F BCF BCF CLRF
P=16F628 <P16F628.INC>
20 21 22 2$ 24 00 INICIO 0" PCL(F B*01111110* B*00001100* B*10110110* B*10011110* B*11001100* B*11011010* B*11111010* B*00001110* B*11111110* B*11011110* .7 CMCON STATUS(RP0 B*00000001* TRISB TRISA($ STATUS(RP0 PORTA
TABLA
;ENCIENDE ;ENCIENDE ;ENCIENDE ;ENCIENDE ;ENCIENDE ;ENCIENDE ;ENCIENDE ;ENCIENDE ;ENCIENDE ;ENCIENDE
EN EL EL EL EL EL EL EL EL EL
EL DISPLA+ EL CERO UNO DOS TRES CUATRO CINCO SEIS SIETE OC.O NUEVE
INICIO
;IN.ABILITAMOS LOS COMPARADORES ;SELECCIONA BANCO1 ;PUERTO RB0 COMO ENTRADA ;RA$ COMO SALIDA ;AL BANCO0
81
TEORIA Y PRACTICA
START
;ESTADO DEL PULSADOR ;VUELVA A PREGUNTAR POR ESTADO .ASTA QUE ;SEA CERO ;SUBRUTINA PARA .ACER SONAR EL BU00ER( ;SERVIRA COMO ANTIRREBOTE ;INCREMENTAMOS EL CONTADOR 61 ;PREGUNTAMOS SI +A ES 10( + EL RESULTADO ;SE DE2A EN )( PARA NO ALTERAR EL ;CONTENIDO DE CONTA ;FLAG DE CERO
BTFSC STATUS(0 CLRF CONTA MOVF CONTA() CALL TABLA MOV)F PORTB GOTO START ;//////////////////////////// BU00ER MOVL) .10 MOV)F CONT2 MOVL) .40 MOV)F CONT1 SOUND BSF PORTA($ CALL RET1MS BCF PORTA($ DECFS0 CONT1(F GOTO SOUND MOVL) .40 MOV)F CONT1 DECFS0 CONT2 GOTO SOUND RETURN ;////////////////////////// RET1MS MOVL) .$ MOV)F CONT$ MOVL) .111 MOV)F CONT4 LOOP DECFS0 CONT4(F GOTO LOOP MOVL) .111 MOV)F CONT4 DECFS0 CONT$(F GOTO LOOP RETURN END
82
TEORIA Y PRACTICA
PRACTICA 1$
6&, 7545No imp-emen04:o.5 S( #((! c 1 90: 6&, 35 ;RERR5 F#04 .( (-- - .( (%c-&,$-0 (! #0 EEPRON 1 D E# /- c(% .( #(c,$-0 %( Y0 /- .$c&. /-(10,$-01(!,( 7%( Y0 /- .$c&. $! R(%(, / - NCLR $! WDT .$-0!,( (# /- c(% 8 0 D S( Y0 /- .$c&. (# /- c(% .( (%c-&,$-0 c ! 2H&, 6&, 25 ;REN5 6&, .( Y06&#&,0c&3! .( (%c-&,$-0 1 D P(-1&,( &!&c&0#&?0- (# c&c# .( (%c-&,$-0 0 D I!Y&6( #0 (%c-&,$-0 6&, 15 ;R5 6&, .( &!&c& .( (%c-&,$-0 1 D C$0!. %( #( / !( 0 1 c 1&(!?0 (# c&c# .( (%c-&,$-0 .( #0 1(1 -&0 ! ' #B,&#+ 7E# 6&, %( / !( .( !$(' 0 c(- / - Y0-.L0-( c$0!. #0 (%c-&,$-0 %( c 1/#(,08+ 0 D T 10 (%,( '0# - c$0!. c 1/#(,0 (# c&c# .( (%c-&,$-0 .( #0 1(1 -&0 ! ' #B,&#+ 6&, 05 RD5 6&, .( &!&c& .( #(c,$-0 1 D C$0!. %( #( / !( 0 1 %( &!&c&0 $! c&c# .( #(c,$-0+ E# 6&, RD %( / !( 0 c(- / - Y0-.L0-(+ 0 D ! Y0 c 1(!?0. (# c&c# .( #(c,$-0 .( #0 1(1 -&0 ! ' #B,&#+
El e.ist o EECON2, no est3 i!"le!ent#do +/sic#!ente 2 s1lo se utiliA# "# # l# o"e #ci1n de lectu #, de i.u#l +o !# %ue se *#ce con el PIC 16F8<, es deci , #ntes de inici# l#
DI+IT ELECTRONIC CRA 9 23 49 LOCAL 207 TEL 2 86 36 72
83
TEORIA Y PRACTICA
esc itu # de un d#to en l# !e!o i#, se de0e esc i0i en el e.ist o EECON2 " i!e o el d#to ((* 2 "oste io !ente el d#to AA*) Se.uid#!ente se !uest #n un# se ie de su0 utin#s "# # l# esc itu # 2 lectu # de l# !e!o i# no -ol3til) SEFRETINA PARA LA ESCRITERA DE LA NENORIA EEPRON DE DATOS
WR EEPRON NOVF FSF NOVWF FCF NOVF FSF NOVWF FCF FSF NOVLW NOVWF NOVLW NOVWF FSF FTFSC FCF FCF DIR"W STATES" RP0 EEADR STATES"RP0 DATO"W STATES"RP0 EEDATA INTCON" =IE EECON1" WREN 55Y EECON2 AAYP EECON2 EECON1" WR EECON1"WR EECON1" WREN STATES"RP0 PE%c-&6( AAY (! EECON2 PS( .0 #0 -.(! .( (%c-&,$-0 PPRE=ENTA SI YA TERNINM DE WRITE PP- Y&6&- #0 (%c-&,$-0 .( !$(' % .0, % PFANCO0 PE%c-&6( 55Y (! EECON2 P1$('( #0 .&-(cc&3! .(%(0.0 (! #0 EEPRON PS(#(cc&3! .(# 60!c 1 .( 1(1 -&0 P.&-(cc&3! <$( %( <$&(-( 0cc(.(PFANCO0 PD0, <$( %( <$&(-( (%c-&6&PFANCO1 PDATO A ESCRIFIR PS( P- YG6(! #0% &!,(--$/c& !(%" OPCIONAL PQ06&#&,0 #0 (%c-&,$-0 (! #0 EEPRON
84
TEORIA Y PRACTICA
PD&-(cc&3! 0 #((- .( EEPRON PS(#(cc&3! .(# 60!c 0 .( 1(1 -&0 PSE ENVIA DIRECCIMN AL RE=ISTRO PS( .0 #0 -.(! .( (;(c,$0- #0 #(c,$-0
P# # e-it# esc itu #s indese#0les en l# EEPROB !oti-#d#s "o es"6 eos en l# inici#liA#ci1n del !ic ocont ol#do , se cont ol# el 0it WREN del e.ist o EECON1, " o*i0iendo cu#l%uie o"e #ci1n de esc itu # !ient #s du #n los ;2 !s %ue te!"o iA# el Ti!e PoMe Hu")
Le2end#8 4 I Indete !in#do, u I Pe !#nece In-# i#0le, I ese -#doP H I No i!"le!ent#do se lee co!o 9P No se us#n l#s c7lul#s so!0 e#d#s du #nte el #cceso # EEPROB) Not# 1)H S e# de !e!o i# ese -#d#P estos 0its se !#ntienen sie!" e # ce o
DI+IT ELECTRONIC CRA 9 23 49 LOCAL 207 TEL 2 86 36 72
85
TEORIA Y PRACTICA
NUESTRO CIRCUITO El ci cuito -# # +uncion# us#ndo l# !e!o i# ee" o! , de t#l +o !# %ue c#d# -eA %ue "uls#!os un inte u"to , se inc e!ent# 3 un e.ist o %ue -# de ce o # nue-e 2 si %uit#!os l# #li!ent#ci1n 2 lue.o l# -ol-e!os # coloc# , #"# ece 3 en un dis"l#2 !#nej#do "o el decodi+ic#do ;<<;, el ulti!o nu!e o %ue -isu#liA#!os #ntes de #"#.# lo) El ci cuito !#nej# dos "osiciones de l# !e!o i# ee" o!, l# de l# "osici1n 9499, se enc# .# # de deci le #l " o. #!# si *#2 un nu!e o en !e!o i#, 2 l# di ecci1n 9491, est# 3 el nu!e o deci!#l %ue se #l!#cen1 "o ulti!# -eA) L# " i!e # "osici1n de !e!o i# =9499>, se esc i0i 3 o est# 3 el d#to 94(( indic#ndo %ue si *#2 un d#to en l# !e!o i#, "ues no !#l!ente los "ics cu#ndo no se *# !#ni"ul#do est# !e!o i#, est# 3 en el -#lo de 94FF, 2 si el " o. #!# cu#ndo lee est# "osici1n 2 el -#lo es di+e ente de 94((, . #0# # co!o nu!e o de # #n%ue 9499, esto con el +in de #se.u # de %ue se -# # !ost # en el dis"l#2 un nu!e o deci!#l) El "#"el de l# ot # "# te de l# !e!o i# =di ecci1n 9491>, se 3 l# de c#d# -eA %ue "ulse!os el inte u"to , inc e!ent# 3 un e.ist o de cont ol, 2 lue.o este -#lo lo #l!#cen# 3 en l# !e!o i# ee" o!, 2 #s/ se e"eti 3 este ciclo) P# # l# esc itu # de d#tos en l# ee" o! del PIC, se *#ce uso de su0 utin#s, 2# %ue est# #cti-id#d l# *# e!os !u2 se.uido, 2 !#ni"ul# e!os dos e.ist os # los %ue se ll#!# on DIR "# # %ue #l!#cene l# di ecci1n de l# !e!o i# ee" o! # esc i0i 2 el e.ist o DATO #l!#cen# # el d#to # esc i0i ) Ojo eco de!os %ue estos e.ist os est3n en el 0#nco9, 2 los de !#nejo de l# ee" o! est3n en el 0#nco1, "o lo %ue en l# su0 utin# se *#ce este t #sl#do # EEADR E EEDATA es"ecti-#!ente, !#s det#lle en l# su0 utin#) P# # l# lectu #, en-i#!os l# di ecci1n # lee en el e.ist o #l %ue se ll#!1 DIR, 2 lue.o de ejecut#d# l# su0 utin#, el d#to %ue conten/# est# "osici1n lle.# # desde el e.ist o EEDATA #l e.ist o DATO, este !#nejo t#!0i7n se dio en l# !is!# su0 utin# #nte io !ente -ist#)
86
TEORIA Y PRACTICA
DATO D DATOA1 NO
DATO D 10 K
SI 4
FORRAR DATO
DIR DI 0*01
WR EEPRON
3 EECON2 DI+IT ELECTRONIC CRA 9 23 49 LOCAL 2070*AA TEL 2 DI 86 36 72 RETERN RD EEDATA DIR 1DI EECON1" DIEEPRON EEADR DI DATO RD
EECON1" WR D 0K
87
1 DI EECON1"WR
TEORIA Y PRACTICA
NO
SI 0 DI EECON1" WREN
RETERN
88
TEORIA Y PRACTICA
U$ "V U2 4 L S 4 7 14 6 A7 $ <
2A 2 1A 1 7A 0 = & > ? @ A 1" # 10 11 12 1$ COMUN
D E C G B A
DP
U1 1:
RA2 RA$ RA0 R A 7 3 OSC1 RA4 R A " 3 M CR LA R6 3 O S C 2 VSS VDD RB0 RB7 RB1 RB6 RB2 RB$ RB" RB4 RA1
$; & % ; " R B I R B O4
DP G F E D F C B A
PIC 16F628 S1 1:
89
TEORIA Y PRACTICA
INICIO
;IN.ABILITAMOS LOS COMPARADORES ;SELECCIONA BANCO1 ;PUERTO RB0 COMO ENTRADA ;PORTA COMO SALIDA ;AL BANCO0 ;SELECCIONANDO DIRECCION EEPROM ;SUBRUTINA PARA LEER LA EEPROM( RETORNA ;INFORMACION ;EN EL REGISTRO DATO ;COMPARA SI ES ""(REFERENCIA PARA SABER SI ;.ABIA GUARDADO ALGUN DATO
GRABAS1
;SE APUNTA A LA DIRECCION DEL ULTIMO DATO ;ESCRITO ;LEERD LA EEPROM PARA CARGAR EL ULTIMO ;VALOR ;CONTENIDO DE DATO A ) ;MUESTRA DATO EN DISPLA+ ;LEE ESTADO DEL PULSADOR( ESPERA QUE SEA ;CERO ;RETARDO DE ANTIREBOTE DEL PULSADOR ;INCREMENTA VALOR DE DATO 61 ;SI DATO ES IGUAL A 10 ;SI ES 10 BORRE + VUELVA A CERO ;DIRECCION DE LE EEPROM PARA SALVAR ESTE ;NUEVO VALOR ;SUBRUTINA PARA GUARDAR ACTUALI0ACION DE ;DATO ;VUELVA A CARGA PARA QUE ESPERE OTRA ;PULSACION
;//////////////////////////////
8!
NIVEL 1 PIC 16F628 FLAG MOVL) MOV)F MOVL) MOV)F CALL MOVL) MOV)F .0 DIR ."" DATO )REEPROM .1 DIR
TEORIA Y PRACTICA
MOVL) .0 MOV)F DATO CALL )REEPROM ;ESCRIBE EN LA EEPROM EL CONTENIDO DE DATO GOTO GRABAS1 ;/////////////////////////////////// REANTIR MOVL) .$ MOV)F CONT$ MOVL) .180 MOV)F CONT2 MOVL) .200 MOV)F CONT1 DECFS0 CONT1(F ;DECREMENTE LA VARIABLE CONT1 1 SALTA ;CUANDO LLEGA A 0 GOTO ! 1 ;! 1 SIGNIFICA QUE RETROCEDA UNA LINEA ;ANTES MOVL) .200 MOV)F CONT1 ;SE RECARGA NUEVAMENTE EL REGISTRO POR EL ;ANIDAMINETO DECFS0 CONT2(F ;DECREMENTE LA VARIABLE CONT2 1 SALTA ;CUANDO LLEGA A CERO GOTO ! " ;! " RETROCEDE " LINEAS EN EL PROGRAMA MOVL) .180 MOV)F CONT2 ;SE RECARGA CONT2 POR EL ANIDAMIENTO DECFS0 CONT$(F GOTO ! # ;RETROCEDE # LINEAS EN EL PROGRAMA RETURN ;CUANDO CONT$ SEA CERO RETORNA DE DONDE SE ;LLAM' ;////////////////////////////// RDEEPROM ;SUBRUTINA PARA LEER DATO DE LA EEPROM MOVF DIR() BSF STATUS(RP0 ;BANCO1 MOV)F EEADR ;DIRECCION AL REGISTRO DE DIRECCIONAMIENTO BSF EECON1(RD ;COMANDO DE QUE LEA LA POSICION ASIGNADA NOP NOP ;NOPS PARA ASEGURAR UNA CORRECTA LECTURA MOVF EEDATA() ;EL DATO LEIDO SE MUEVE A ) BCF STATUS(RP0 ;BANCO0 MOV)F DATO ;EL DATO LEIDO QUEDA EN EL REGISTRO DATO RETURN ;//////////////////////////////// )REEPROM MOVF DIR() ;MOVEMOS LA DIRECCION A ) BSF STATUS(RP0 ;BANCO1 MOV)F EEADR ;SE CARGO LA DIRECCION BCF STATUS(RP0 ;BANCO0 MOVF DATO() ;DATO A ESCRIBIR A E BSF STATUS(RP0 ;BANCO1 MOV)F EEDATA ;CARGO DATO A EEDATA
;DIRECCION DE LA EEPROM ;DATO DE REFERENCIA PARA SABER A.ORA ;QUE SI .A+ DATO ESCRITO ;DATO A ESCRIBIR EN LA EEPROM ;SUBRUTINA PARA ESCRIBIR EN LA EEPROM ;DIRECCION DE LA EEPROM ;POSICION EN DONDE SE ALMACENA EL ULTIMO ;DATO ESCRITO ;DATO DE ARRANQUE( SERA DE CERO
81
NIVEL 1 PIC 16F628 BSF MOVL) MOV)F MOVL) MOV)F BSF BTFSC GOTO BCF BCF RETURN END EECON1()REN 05"" EECON2 05AA EECON2 EECON1()R EECON1()R ! 1 EECON1()REN STATUS(RP0
TEORIA Y PRACTICA ;SE .ABILITA LA ESCRITURA ;CARGA A ) "" ;PASO REQUERIDO POR MICROC.IP PARA ;ESCRIBIR ;CARGA A ) CON AA ;PASO REQUERIDO POR MICROC.IP PARA ;ESCRIBIR ;COMANDO DE ESCRIBIR( PUEDE DEMORARSE ;.ASTA 10MS ;ESTE BIT SE PONE A CERO CUANDO +A TERMINA ;LA ESCRITURA ;ESPERE ;IN.ABILTA LA ESCRITURA ;BANCO CERO DESPUED DE FINALI0ADA LA ;ESCRITURA
82