Download - Curso de Micro
-
8/17/2019 Curso de Micro
1/51
CURSO DE MICROCONTROLADORES
Por Aureliano Juan Mancha García
DESARROLLADOS NUEVOS PROYECTOS, más abajo, QUE ELAUTOR SEGUIRÁ AMPLIANDO.
Estas p!inas "an #iri!i#as tanto a estu#iantes co$o a los apasiona#os por estete$a% &ue sa'e$os &ue son $uchos( So're to#o ahora &ue estn tan #e $o#a estos)circuitillos* &ue an#an por la re#( Nosotros #es#e a&uí &uere$os ense+ar unasnociones so're los $icrocontrola#ores con a,u#a #e unas prcticas $u, sencillas ,&ue "osotros po#r-is a$pliar( Po#r-is auto$ati.ar al!unas acti"i#a#es $e#iantesensores a#ecua#os% co$o por e/e$plo el rie!o #e una huerta% el llena#o #e unestan&ue( Ta$'i-n po#r-is construiros pro!ra$a#ores #e luces para #iscotecas% , to#olo &ue se os ocurra(
El autor presenta a&uí su nue"a inter0a. #e estu#io( Pulsa so're ACCESO ALCURSO , po#rs su$er!irte en el $un#o #e los $icrocontrola#ores( Se trata #ein0or$aci1n recopila#a #e Internet( Al 0inal #e la p!ina he$os inclui#o una serie #ePRO2ECTOS &ue se irn a$plian#o(
• El pro!ra$a MPLA3 #e Microchip te lo 0acilita$os #es#e a&uí4 MPLA3 5"ersi1n6% 78M'9( Instrucciones en #ocu$ento :or# 5DOC9(
Ahora ,a ests prepara#o para co$en.ar a #esarrollar las prcticas( Po#rsenten#er los pro!ra$as , $o#i0icarlos para estu#iar sus e0ectos( Ca#a prctica trata#e e;plicar las #istintas posi'ili#a#es &ue o0recen los $icrocontrola#ores( A&u-llasirn au$entan#o !ra#ual$ente su co$ple/i#a# para sacar el $;i$o parti#o a estosco$ponentes(
• PR• PR
-
8/17/2019 Curso de Micro
2/51
F Control so're la potencia lu$ínica #e la l$para incan#escentea acti"ar(
F Control so're el tie$po &ue est encen#i#a o apa!a#a4 @% >%7 o ? $inutos(
En resu$en% si es #e #ía la l$para nunca se encen#er pero si es#e noche la l$para pue#e estar acti"a#a o apa!a#a una $is$acanti#a# #e tie$po , a la "e.% cuan#o est- encen#i#a% po#e$oscontrolar la canti#a# #e lu. &ue irra#ie(
PRO2ECTO N=74 INSOLADORA DE CIRCUITOS IMPRESOS CONTEMPORIACIHN ELECTRHNICA
PRO2ECTO N=84 CERRADURA ELECTRHNICA
PRO2ECTO N=?4 TERMHMETRO DIGITAL
PRO2ECTO N=@4 TERMHMETRO DIGITAL MEJORADO
PRO2ECTO N=64 RELOJ ELECTRHNICO
PRO2ECTO N=4 MINICARTEL LUMINOSO DE TEMPERATURA 2 RELOJ
PRO2ECTO N=B4 CINCO OLTMETROS
PRO2ECTO N=4 COMPRO3ADOR DE SEROS
PRO2ECTO N=>4 RODADOR DE MOTORES
PRO2ECTO N=>>4 CONTROL DE MOTOR PASO A PASO MEDIANTE PC
PRO2ECTO N=>74 IMPLEMENTACIHN DE UN RELOJ MEDIANTE UN 3US I7C
PRO2ECTO N=>84 RELOJ CON ALARMA MEDIANTE UN 3US I7C
PRO2ECTO N=>?4 RELOJ CON ALARMA MEDIANTE UN 3US I7C con K4M4S ,acti"aci1n #e 'u..er
PRO2ECTO N=>@4 RELOJ CALENDARIO
PRO2ECTO N=>64 PROGRAMADOR DE RIEGO POR GOTEO
PRO2ECTO N=>4 REGULADOR DE POTENCIA
PRO2ECTO N=>B4 CONTROL DE SEMILLERO
PRO2ECTO N=>4 CALCULADORA CONERSORA DE CHDIGOS
PRO2ECTO N=74 TEMPORIADOR
http://platea.pntic.mec.es/~lmarti2/revela/index.htmhttp://platea.pntic.mec.es/~lmarti2/revela/index.htmhttp://platea.pntic.mec.es/~lmarti2/cerra/index.htmhttp://platea.pntic.mec.es/~lmarti2/cerra/index.htmhttp://platea.pntic.mec.es/~lmarti2/termo/index.htmhttp://platea.pntic.mec.es/~lmarti2/termo2/index.htmhttp://platea.pntic.mec.es/~lmarti2/proreloj/index.htmhttp://platea.pntic.mec.es/~lmarti2/protereloj/index.htmhttp://platea.pntic.mec.es/~lmarti2/5v/index.htmhttp://platea.pntic.mec.es/~lmarti2/5v/index.htmhttp://platea.pntic.mec.es/~lmarti2/proyectotestservo/index.htmhttp://platea.pntic.mec.es/~lmarti2/proyectotestservo/index.htmhttp://platea.pntic.mec.es/~lmarti2/proyrodarmotor/index.htmhttp://platea.pntic.mec.es/~lmarti2/proyrodarmotor/index.htmhttp://platea.pntic.mec.es/~lmarti2/proyseisenuno/index.htmhttp://platea.pntic.mec.es/~lmarti2/reloji2c8583/index.htmhttp://platea.pntic.mec.es/~lmarti2/relojalarma/index.htmhttp://platea.pntic.mec.es/~lmarti2/proyreloji2/index.htmhttp://platea.pntic.mec.es/~lmarti2/proyreloji2/index.htmhttp://platea.pntic.mec.es/~lmarti2/relojcalen/index.htmhttp://platea.pntic.mec.es/~lmarti2/relojcalen/index.htmhttp://platea.pntic.mec.es/~lmarti2/proycrono/index.htmhttp://platea.pntic.mec.es/~lmarti2/recortafase/index.htmhttp://platea.pntic.mec.es/~lmarti2/proysemillero/index.htmhttp://platea.pntic.mec.es/~lmarti2/proycalcula/index.htmhttp://platea.pntic.mec.es/~lmarti2/proytemp/index.htmhttp://platea.pntic.mec.es/~lmarti2/revela/index.htmhttp://platea.pntic.mec.es/~lmarti2/revela/index.htmhttp://platea.pntic.mec.es/~lmarti2/cerra/index.htmhttp://platea.pntic.mec.es/~lmarti2/termo/index.htmhttp://platea.pntic.mec.es/~lmarti2/termo2/index.htmhttp://platea.pntic.mec.es/~lmarti2/proreloj/index.htmhttp://platea.pntic.mec.es/~lmarti2/protereloj/index.htmhttp://platea.pntic.mec.es/~lmarti2/5v/index.htmhttp://platea.pntic.mec.es/~lmarti2/proyectotestservo/index.htmhttp://platea.pntic.mec.es/~lmarti2/proyrodarmotor/index.htmhttp://platea.pntic.mec.es/~lmarti2/proyseisenuno/index.htmhttp://platea.pntic.mec.es/~lmarti2/reloji2c8583/index.htmhttp://platea.pntic.mec.es/~lmarti2/relojalarma/index.htmhttp://platea.pntic.mec.es/~lmarti2/proyreloji2/index.htmhttp://platea.pntic.mec.es/~lmarti2/proyreloji2/index.htmhttp://platea.pntic.mec.es/~lmarti2/relojcalen/index.htmhttp://platea.pntic.mec.es/~lmarti2/proycrono/index.htmhttp://platea.pntic.mec.es/~lmarti2/recortafase/index.htmhttp://platea.pntic.mec.es/~lmarti2/proysemillero/index.htmhttp://platea.pntic.mec.es/~lmarti2/proycalcula/index.htmhttp://platea.pntic.mec.es/~lmarti2/proytemp/index.htm
-
8/17/2019 Curso de Micro
3/51
PRO2ECTO N=7>4 CONTROL REMOTO CON MANDO A DISTANCIA POR IR
PRO2ECTO N=774 NUEO DISEO DE MICRORASTREADOR
PRO2ECTO N=784 TERMOSTATO PARA INCU3ADORA DE GALLINAS 5NUEO9
PRO2ECTO N=7?4 TEMPORIADOR DO3LE CON MEMORIA 5NUEO9
PRO2ECTO N=7@4 CONTROLADORES DE SEROS DE ROTACIHN CONTINUAIDO 2 DCKO 5NUEO9
Autor4 Aureliano Juan Mancha García
PR? prcticas% por su sencille.% intro#ucen al alu$no% en el 0ascinante $un#o #elos $icrocontrola#ores , han ser"i#o #e apo,o en cursos so're este te$a( Para0acilitar su 'a/a#a% estn en PD(
• PR• PR
-
8/17/2019 Curso de Micro
4/51
DESARROLLO DEL PRO2ECTO ELORATHN%VIDEO FINAL DEL PROYECTO 5archi"o :$"% 7M39
PRMi!oo"#!o$a%o! PIC&'F()A.
Obj*#i+o
E"*"%*! - aa/a! a%a s*/0"%o $os $*%s o"*#a%os a$ 0*!#o1. Es20*ma *$3#!io
P!o/!ama4555555555555555555555555555555555555555555555555555555
http://platea.pntic.mec.es/~lmarti2/veloraton/index.htmhttp://platea.pntic.mec.es/~lmarti2/veloraton/veloraton%20baja.wmvhttp://platea.pntic.mec.es/~lmarti2/veloraton/veloraton%20baja.wmvhttp://platea.pntic.mec.es/~lmarti2/veloraton/index.htmhttp://platea.pntic.mec.es/~lmarti2/veloraton/veloraton%20baja.wmv
-
8/17/2019 Curso de Micro
5/51
4PROGRAMA PORT1.ASM4Aa/a! - *"*"%*! *$ 0*!#o 1 a%a s*/0"%o45555555555555555555555555555555555555555555555555555555
$is# 6&'7()A4 i%*"#i7ia! *$ mi!o 0sa%o. i"$0%* 8&'F()A.i"84 a!9i+o o" $os !*/is#!os%*7i"i%os.
o!/ ::94 osii;" %* m*mo!ia %* omi*".!*s*#4 *#i20*#a 6 osii;" %* m*mo!ia.
/o#o i"iio4 sa$#o a osii;" %* m*mo!ia %o"%*omi*"5
4
-
8/17/2019 Curso de Micro
6/51
mo+$@ ::94 a!/o @ o" *$ %a#o ::9 mo+@7 PORT14 a!/o *$ !*/is#!o PORT1 o" @4 aa/a"%o $os $*%s.
a$$ s/&4 s0b!0#i"a %* !*#a!%o %* & s*/.
mo+$@ :7794 a!/o @ o" *$ %a#o 779. mo+@7 PORT14 a!/o *$ !*/is#!o PORT1 o" @4 *"*"%i*"%o $os $*%s.
a$$ s/&4 s0b!0#i"a %*$ !*#a!%o %* & s*/.
/o#o !o/!ama4 sa$#a a$ omi*"
-
8/17/2019 Curso de Micro
7/51
%*7s< :%9,&4 %*!*m*"#o *$ !*/is#!o :%9 - sa$#osi *s4 *!o %*osi#a"%o *$ !*s0$#a%o *":%9.
/o#o sa$#o&4 sa$#o a sa$#o&.
%*7s< :*9,&4 %*!*m*"#o *$ !*/is#!o :*9 - sa$#osi *s4 *!o %*osi#a"%o *$ !*s0$#a%o *":*9.
/o#o sa$#o&4 sa$#o a sa$#o&.
!*#0!"4 !*/!*so %*s0b!0#i"a.
*"%4 7i" %*$ !o/!ama PORT1.
PR
-
8/17/2019 Curso de Micro
8/51
La i"s#!0i;" s@a7 7,% i"#*!ambia $os ) bi#s %* ma-o! *soo! $os 0a#!os %* m*"o! *so - +i*+*!sa %*$ %a#o o"#*"i%o *" *$!*/is#!o 0sa%o. Ej*m$o
s@a7 :9,&
Si #0+i3!amos *" *$ !*/is#!o :9 *$ %a#o :79, a$ a$ia! $a i"s#!0i;"*$ o"#*"i%o s* #!a"s7o!ma!a *" 7:9 - $o /0a!%a!amos *" :9 o!s*! %6 &.
Si 70*s* %6 : $o /0a!%a!amos *" *$ a0m0$a%o! @.
La i"s#!0i;" !$7 7,% %*s$a
-
8/17/2019 Curso de Micro
9/51
La i"s#!0i;" !!7 7, % %*s$a
-
8/17/2019 Curso de Micro
10/51
EL PROGRAMA SALTA A LA PRIMERA COM1INACION Y SE
REPITEN TODAS, ACIENDO
Es20*ma *$3#!io
-
8/17/2019 Curso de Micro
11/51
P!o/!ama
455555555555555555555555555555555555555555555555555555555
4PROGRAMA LED.ASM
4Aa/a! - *"*"%*! *$ 0*!#o 1 a%a s*/0"%o
455555555555555555555555555555555555555555555555555555555
$is# 6&'7()A
-
8/17/2019 Curso de Micro
12/51
i"$0%* 8&'F()A.i"8
o!/ ::9
!*s*#
/o#o i"iio
o!/ &:9
i"iio
45555555555555555555555555555555555555555555
4Co"7i/0!a! *$ 0*!#o 1 omo sa$i%a
455555555555555555555555555555555555555555555
4R*/is#!o TRIS16::9 a!a sa$i%as.
bs7 STATUS,?4 o"/o a & *$ bi# ? %*$ !*/is#!oSTATUS
4 a!a *"#!a! *" *$ ba"o&.
mo+$@ ::94 a!/o @ o" *$ %a#o::9.
mo+@7 TRIS14 a!/o *$ !*/is#!o TRIS1 o" *$ @
a!a4 9a*! *$ 0*!#o1 omo sa$i%a.
b7 STATUS,?4 o"/o a *!o *$ bi# ? %*$ !*/is#!o
4 STATUS a!a *"#!a! *" *$ ba"o:.
-
8/17/2019 Curso de Micro
13/51
455555555555555555555555555555555555
4PROGRAMA PRINCIPAL
455555555555555555555555555555555555
!o/!ama
mo+$@ ::94 a!/o @ o" *$ %a#o ::9.
mo+@7 PORT14 a!/o *$ !*/is#!o PORT1 o" *$ @.
a$$ s/&4 s0b!0#i"a %* !*#a!%o %* & s*/. a$$ s/&
mo+$@ :794 a!/o @ o" *$ %a#o :79.
mo+@7 PORT14 a!/o *$ !*/is#!o PORT1 o" *$ @.
a$$ s/&
a$$ s/&
s@a7 PORT1,&4 a$io $a i"#!0i;" a$
4 o"#*"i%o %*$ !*/is#!o PORT1
4 - $o %*osi#o *" *$ mismo -a
4 20* %6 &.
a$$ s/&
a$$ s/&
-
8/17/2019 Curso de Micro
14/51
mo+$@ :7794 a!/o *$ @ o" *$ %a#o 779.
mo+@7 PORT14 a!/o PORT1 o" *$ @.
a$$ s/&
a$$ s/&
a$$ !o#aio"4 s0b!0#i"a %* !o#a! 0" so$o
4 $*% %* %*!*9a a i
-
8/17/2019 Curso de Micro
15/51
-
8/17/2019 Curso de Micro
16/51
4 si +a$* *!o %*osi#a"%o *$o"#*"i5
4 %o *" *$ mismo -a %6&.
/o#o i
-
8/17/2019 Curso de Micro
17/51
!$7 &:9,:4 !o#o a $a i
-
8/17/2019 Curso de Micro
18/51
mo+$@ :&9
mo+@7 :*9
sa$#o&
%*7s< :9,&
/o#o sa$#o&
%*7s< :%9,& /o#o sa$#o&
%*7s< :*9,&
/o#o sa$#o&
!*#0!"
*"%
PRACTICA NH
Mi!oo"#!o$a%o! PIC&'F()A.
-
8/17/2019 Curso de Micro
19/51
Obj*#i+o
Com!oba! omo 70"io"a $a i"#*!!0i;" *B#*!"a, JINT, i"
"H'.
A$ a#0a! sob!* *$ i" "H' m*%ia"#* 0" 0$sa%o! !o+oa!*mos 20* *$0*!#o A, a$ 0a$, 9*mos o"*#a%os 0"os $*%s, s* aa/*" -*"i*"%a" *" 0" b0$* !**#i#i+o.
K C;mo s* o"7i/0!a" $os !*/is#!os 20* i"#*!+i*"*" *" 0"a
i"#*!!0i;" *B#*!"a
Pasos
&H aso
Como $as i"#*!!0io"*s %* *s#* mi!oo"#!o$a%o! *s#á"
+*#o!i, 20* o"%0i!á a$ mi!oo"#!o$a%o! a$!o/!ama %* #!a#ami*"#o %* $a
i"#*!!0i;".
H aso
-
8/17/2019 Curso de Micro
20/51
S* o"7i/0!a *$ !*/is#!o OPTIONREG - *" o"!*#o s* *$i/i!á *$
#io %* 7$a"o as*"%*"#* o %*s*"%*"#*.
E$ bi# ' %* *s#* !*/is#!o, $$ama%o INTEDG, s* a!/a!á o" & a!a*$*/i! 7$a"o as*"%*"#* - : a!a 7$a"o %*s*"%*"#*.
Yo 9* *$*/i%o 7$a"o %*s*"%*"#*.
Haso
S* o"7i/0!a *$ !*/is#!o !*$aio"a%o o" *$ so7#@a!* %* $ai"#*!!0i;" JI"#.
E$ !*/is#!o - $os bi#s so"
INTCON bi# =GIE>6 A#i+ai;" /$oba$ %* i"#*!!0io"*s 6 &6
*!miso o"*%i%o.
bi# ) =INTE>6 A#i+ai;" %* $a i"#*!!0i;" *B#*!"a 6 &6a#i+a%a.
K C;mo sab!*mos si s* 9a !o%0i%o 0"a i"#*!!0i;" *B#*!"a, JI"#
To%a i"#*!!0i;", si *s#á a#i+a%a, a$ !o%0i!s* !o+oa!á $a
a#i+ai;" %* $as $$ama%as ba"%*!as o bi#s, 20* a$ s*! *Bami"a%os "os%*s0b!i!á" si s*a !o%0i%o 0"a i"#*!!0i;".
-
8/17/2019 Curso de Micro
21/51
La ba"%*!a o bi# %* $a i"#*!!0i;" JI"#, *s#á *" *$ !*/is#!o
INTCON, - *s *$ bi# &, $$ama%o INTF. U" & *" 3$ "os i"%ia 20* s*a
!o%0i%o 0"a interrupción.
Es#a ba"%*!a 9a- 20* baja!$a, o s*a, o"*!$a a *!o o!so7#@a!* a!a sab*! si s* 9a !o%0i%o 0"a *#ii;" %* i"#*!!0i;"os#*!io!.
Es20*ma *$3#!io
-
8/17/2019 Curso de Micro
22/51
P!o/!ama
;---------------------------------------------------------;PROGRAMA inter.ASM
;Cómo funciona la interrupción externa /Int.
;---------------------------------------------------------
list p=!f"#A
inclu$e %p!&"#A.inc%
-
8/17/2019 Curso de Micro
23/51
;---------------------------------------------------
;R'S'(
;---------------------------------------------------
or) **+
reset
)oto inicio
;------------------------------
;I,('RRPCIO,
;------------------------------
or) *#+
)oto int
;--------------------------------
;P,('RO ' I,ICIO
;--------------------------------
or) *+
inicio
;-----------------------------------------------------------
;Confi)urar el puerto A como sali$a.
;-----------------------------------------------------------
;Re)istro (RIS=**+ para sali$as.
0sf S(A(S1RP*; 0anco
mo2l3 **+;
mo23f (RISA; puertoA como sali$a
0cf S(A(S1RP*; 0anco*
;-----------------------
;PuertoA apa)a$o.
;-----------------------
mo2l3 **+
mo23f POR(A
-
8/17/2019 Curso de Micro
24/51
;------------------------------------------------
;Confi)urar el re)istro OP(IO,4R'G.
;&lanco $e 0a5a$a.
;------------------------------------------------
;Re)istro OP(IO,4R'G
;0it!=I,('G= *= flanco $escen$ente
0sf S(A(S1RP*; 0anco
0cf OP(IO,4R'G1I,('G; flanco $escen$ente
0cf S(A(S1RP*; 0anco*
;--------------------------------------------------------------------------------;Confi)urar el re)istro I,(CO,.
;6a0ilitar permisos $e interrupciones )eneral 7 particular $e /Int.
;--------------------------------------------------------------------------------
;6a0ilitar permiso $e interrupción )lo0al.
0sf I,(CO,1GI'; = acti2ación permiso )eneral.
;6a0ilitar permiso int.
0sf I,(CO,1I,('; = acti2ación permiso /int.
;---------------------------------------------------------------------
;'speran$o la interrupción.
;Cuan$o pulse el 0otón pro2oco un flanco $e 0a5a$a 7 sal)o $el
;0ucle $e espera. 8a 0an$era pasa a 7 salto al pro)rama $e la in-
;terrupción 7 lue)o al pro)rama principal1 +acien$o infinitos 0ucles.
;8a /Int la uso como autori9ación :pulsar el 0otón para e5ecutar ;el pro)rama principal.
;---------------------------------------------------------------------
espera
-
8/17/2019 Curso de Micro
25/51
0tfss I,(CO,1I,(&; salta si es uno
)oto espera; salto a %espera% +asta s interrupciones.
int
0cf I,(CO,1GI'; * para no m>s interrupciones
; $e nin)?n tipo.
0cf I,(CO,1I,('; * para no m>s interrupción
; /Int.
-
8/17/2019 Curso de Micro
26/51
;Poner a cero el fla) $e la /Int.1 necesario si +u0iera m>s interrupciones $e /Int.
;'ste pro)rama solo 2a +a0er una %unica% llama$a a la /Int. 7 se e5ecutar> el
;pro)rama principal in$efini$amente $es+a0ilitan$o para siempre la /Int.
0cf I,(CO,1I,(&; * por soft3are.
retfie; retorno $e su0rutina $e interrupción.
;-------------------------------------------------------------------------
;Retar$os.
;--------------------------------------------------------------------------
;c+=@ )oto=B use). $ecfs9= use).: salta si * .;:@ x B @ = DE@ use)
;:DE@ x DE@ = DB# use).
;:DB# x = **DEB use).
;*c+1 *$+ 7 *e+ re)istros RAM $el GPR
;----------------------------------------
s); **DEB use).
mo2l3 *c+
mo23f *c+
mo23f *$+
mo2l3 *+
mo23f *e+
salto
$ecfs9 *c+1 )oto salto
$ecfs9 *$+1
)oto salto
$ecfs9 *e+1
-
8/17/2019 Curso de Micro
27/51
)oto salto
return
;-------------------------
s)D**; #@E*BD use).
mo2l3 *e!+; e!+= BD
mo23f *c+
mo23f *$+
saltoB $ecfs9 *c+1
)oto saltoB
$ecfs9 *$+1
)oto saltoB
return
;--------------------------
s)BD*; BD** use).
mo2l3 *aE+; aE+= !E
mo23f *c+
mo23f *$+
salto
$ecfs9 *c+1
)oto salto
$ecfs9 *$+1
)oto salto
return
;---------------------------
s)BD; BD! use).
mo2l3 E!+; E!+= "
-
8/17/2019 Curso de Micro
28/51
mo23f *c+
mo23f *$+
salto#
$ecfs9 *c+1
)oto salto#
$ecfs9 *$+1
)oto salto#
return
;----------------------------------
en$
PR
-
8/17/2019 Curso de Micro
29/51
S* o"7i/0!a!á *$ !*/is#!o OPTIONREG - *" o"!*#o $os bi#si/#*s
E$ bi# ), $$ama%o TOSE, "os %a $a *$*i;" %* *$*/i! *$ #io %*7$a"o as*"%*"#* o %*s*"%*"#*. U" &6 7$a"o %*s*"%*"#* - 0" :67$a"o as*"%*"#*. Yo 9* *$*/i%o 7$a"o %*s*"%*"#*.
E$ bi# ?, $$ama%o TOCS, "os %a $a oi;" %* *$*/i! *$ #io %*!*$oj.
U" &6 0$sos i"#!o%0i%os o! *$ pin nº 3 (T0cki) - 0" :6 0$sos %*!*$oj i"#*!"o %* 7!*0*"ia 0" 0a!#o %* $a 7!*0*"ia %*$ !is#a$0sa%o.
E" *s#* aso s*!á 0$so *B#*!io!.
H aso o"7i/0!a! *$ so7#@a!*.
S* o"7i/0!a *$ !*/is#!o INTCON - *" o"!*#o $os bi#s si/#*s
E$ bi# =GIE> s* o"%!á a & a!a 9abi$i#a! *$ *!miso /*"*!a$ %*
i"#*!!0io"*s.
E$ bi# ? =T:IE> s* a!/a!á o" & a!a 9abi$i#a! *$ *!misoa!#i0$a! %* $a i"#*!!0i;" o! %*sbo!%ami*"#o %*$ o"#a%o!.
-
8/17/2019 Curso de Micro
30/51
C1$o sa're$os si se ha pro#uci#o una interrupci1n #e'i#o al #es'or#a$iento
#el conta#orQ
Es#a i"#*!!0i;" #i*"* asoia%a 0"a ba"%*!a o 7$a/, *$ bi# =T:IF> %*$ !*/is#!o INTCON.
Esta 'an#era ha, &ue 'orrarla por so0t:are(
Es20*ma *$3#!io
-
8/17/2019 Curso de Micro
31/51
P!o/!ama
;----------------------------------------------
;PROGRAMA CO,(AOR.ASM
;Pro0ar el conta$or 7 su interrupción.;----------------------------------------------
list p=!f"#A
inclu$e %p!&"#A.inc%
;------------------------------
-
8/17/2019 Curso de Micro
32/51
;R'S'(
;------------------------------
or) **+
reset
)oto inicio
;------------------------------
;I,('RRPCIO,
;------------------------------
or) *#+
)oto int
;------------------------------;P,('RO ' I,ICIO
;------------------------------
or) *+
inicio
;-----------------------------------------------------
;Confi)urar el puerto A como sali$a
;-----------------------------------------------------
;Re)istro (RISA= **+ para sali$as.
0sf S(A(S1RP*; 0anco
mo2l3 **+;
mo23f (RISA; puertoA como sali$a
0cf S(A(S1RP*; 0anco*
;PuertoA apa)a$o
mo2l3 **+
mo23f POR(A
;------------------------------------------------------
;Confi)urar el conta$or (MR*
-
8/17/2019 Curso de Micro
33/51
;------------------------------------------------------
;(MR* = conta$or $escentente car)a$o con el $ato ff+.
;Re)istro OP(IO,4R'G
;Conta$or= 0itD=(*CS= = pulsos exteriores.
;escentente= 0it#=(*S'=
0sf S(A(S1RP*; 0anco
0sf OP(IO,4R'G1(*S'
0sf OP(IO,4R'G1(*CS
0cf S(A(S1RP*; 0anco*
;Car)ar el (MR* con ff+.
mo2l3 *ff+ mo23f (MR*; car)o (MR* con el $ato ff+
; para
-
8/17/2019 Curso de Micro
34/51
; se pone a 7 salto a la interrup-
; ción 7 lue)o al pro)rama principal.
; 'l puerto A se encen$er> 7 apa)ar>
; en un 0ucle in$efini$o.
)oto espera
;-----------------------------------
;PROGRAMA PRI,CIPA8
;-----------------------------------
pro)rama
mo2l3 **+
mo23f POR(A; apa)o el puertoA
call s)
mo2l3 *ff+; encien$o el puertoA
mo23f POR(A
call s)
)oto pro)rama
;-------------------------------------------
;I,('RRPCIO, '8 (MR*
;-------------------------------------------
int
;es+a0iltar permiso $e int. )lo0al
0cf I,(CO,1GI'
;es+a0ilitar permiso $e int. $el conta$or
0cf I,(CO,1(*I'
;Poner a cero el fla)
-
8/17/2019 Curso de Micro
35/51
0cf I,(CO,1(*I&
retfie; retorno su0rutina $e interrup-
; ción.
;------------------------------------------------------------------
;Retar$os.
;------------------------------------------------------------------
;c+=@ )oto=B use). $ecfs9= use).: sFip if * .
;:@ x B @ = DE@ use)
;:DE@ x DE@ = DB# use).
;:DB# x = **DEB use).
;*c+1 *$+ 7 *e+ re)istros RAM $el GPR
;----------------------------------------------------
s); **DEB use).
mo2l3 *c+
mo23f *c+
mo23f *$+
mo2l3 *+
mo23f *e+
salto
$ecfs9 *c+1
)oto salto
$ecfs9 *$+1
)oto salto
$ecfs9 *e+1
)oto salto
return
;-------------------------
-
8/17/2019 Curso de Micro
36/51
s)D**; #@E*BD use).
mo2l3 *e!+; e!+= BD
mo23f *c+
mo23f *$+
saltoB
$ecfs9 *c+1
)oto saltoB
$ecfs9 *$+1
)oto saltoB
return
;--------------------------
s)BD*; BD** use).
mo2l3 *aE+; aE+= !E
mo23f *c+
mo23f *$+
salto
$ecfs9 *c+1
)oto salto
$ecfs9 *$+1
)oto salto
return
;------------------------------------------------
s)BD; BD! use).
mo2l3 E!+; E!+= "
mo23f *c+
mo23f *$+
-
8/17/2019 Curso de Micro
37/51
salto#
$ecfs9 *c+1
)oto salto#
$ecfs9 *$+1
)oto salto#
return
;----------------------------------
en$
PR
-
8/17/2019 Curso de Micro
38/51
P!o/!ama;-----------------------------------------------
;PROGRAMA (IM'R*.ASM
;(empori9a$or con el timer*
;+acien$o on-off un le$ se). alternos.
;-----------------------------------------------
list p=!&"#A inclu$e %p!&"#A.inc%
;------------------
;R'S'(
;------------------
-
8/17/2019 Curso de Micro
39/51
or) **+
reset
)oto inicio
;---------------------------
I,('RRPCIO,'S
;---------------------------
or) *#+
)oto int
;-------------------------------
;Comien9o $el pro)rama;-------------------------------
or) *+
inicio
;-----------------------------------------------
;Confi)urar el puertoA como entra$a
;excepto el PAB sali$a.
;-----------------------------------------------
;= entra$as1 *= sali$as
;PA1#= ; PAB= *; PA1*=
;Re)istro (RISA= --- *0= 0+
0sf S(A(S1RP*; 0anco
mo2l3 0+
mo23f (RISA
0cf S(A(S1RP*
;apa)ar le$
0cf POR(A1B; poner * en la puerta B.
;------------------------------------------
;Confi)urar el (MR* :conta$or.
-
8/17/2019 Curso de Micro
40/51
;------------------------------------------
0sf S(A(S1RP*; 0anco
mo2l3 "E+; i2i$o la frecuencia entre BD! po-
; nien$o PS*1PS 7 PSB= ; PSA= *
; asi)no el $i2isor $e frecuencia a
; (MR*; (*S'= * flanco ascen$ente;
; (*CS= * pulsos $e relo5 interno $e
; f= fosc./#; I,('G= * flanco $es-
; cen$ente :no usa$a la /int;
; /RP*= $esacti2a$as :no usa$as las
; resistencias pull-up puerta .
mo23f OP(IO,4R'G
0cf S(A(S1RP*; 0anco*
;--------------------------------------
;Confi)urar las interrupciones
;--------------------------------------
0sf I,(CO,1GI'; acti2o permiso interrupción )eneral.
0sf I,(CO,1(*I'; acti2o interrupción $el (MR*.
;--------------------------------------
;Confi)urar re)istros )enerales.
;--------------------------------------
mo2l3 !#+; !#+= ** $ecimal
mo23f *e+
;--------------------------------------;Pro)rama principal
;--------------------------------------
pro)rama
0sf POR(A1B; poner en el PAB1 encien$o el
; le$.
-
8/17/2019 Curso de Micro
41/51
lcall cuenta; retar$o s).
0cf POR(A1B; poner * en el PAB1 apa)o el le$.
lcall cuenta
)oto pro)rama; salto a pro)rama
;---------------------------------------------
;Su0rutina $e tempori9ar se)un$o.
;---------------------------------------------
;&recuencia $el cristal es #M+9.
;8a seHal $e entra$a al (MR* es fosc./#1 o sea1 M+9 :(= use)..
;'l $i2isor $e frecuencia $i2i$e por BD!1 con lo
-
8/17/2019 Curso de Micro
42/51
mo23f *e+
return
;---------------------------------------
;(ratamiento $e la interrupción.
;---------------------------------------
int
0cf I,(CO,1(*I'; $esacti2ación $e la int. $el timer*.
0cf I,(CO,1(*I&; 0orro el fla)
retfie; retorno su0rutina interrupción.
en$
PR
-
8/17/2019 Curso de Micro
43/51
Al pasar esta corriente el-ctrica por la l$para hare$os &ue se ilu$ine al > (
Si nos las in!enia$os para &ue la se+al aplica#a a la l$para se recorte co$o se "een la 0i!ura si!uiente% o'ten#re$os "alores #e ilu$inaci1n entre un , un >(
-
8/17/2019 Curso de Micro
44/51
C1$o conse!ui$os esos recortes en la se+alQ
>=4 Necesita$os una se+al #e re0erencia &ue este situa#a en los cero "oltios #e la se+alsenoi#al(
Si a la sali#a #el trans0or$a#or #e to$a inter$e#ia coloca$os un recti0ica#or #e
on#a co$pleta 5 #os #io#os >N?>?B 9 o'tene$os una se+al #e i!ual no$'re( Esta se+al laatenua$os con un potenci1$etro #e ? , la intro#uci$os en un circuito #ispara#or paratrans0or$arla en una se+al cua#ra#a positi"a #e @"oltios #e a$plitu#(
7=4 Con los 0lancos #e 'a/a#a #e esos i$pulsos situa#os alrre#e#or #e los cero "oltiosacti"are$os la interrupci1n e;terna INT , su'ire$os la 'an#era INT(
A partir #e ese instante pro!ra$are$os pulsos #e tie$po "aria'le &ue nunca lle!arn atener $s #uraci1n $s all #el si!uiente i$pulso #e re0erencia , &ue una "e. a!ota#o#are$os un i$pulso pe&ue+o #e #isparo #el triac(
-
8/17/2019 Curso de Micro
45/51
uente #e ali$entaci1n , circuitos para o'tener la se+al #e re0erencia #e T > $se!(
-
8/17/2019 Curso de Micro
46/51
Circuito #e 'otones UP , DOVN(
Circuito $icrocontrola#or PIC >6B?A(
-
8/17/2019 Curso de Micro
47/51
Circuito #e control #el Triac(
PR
-
8/17/2019 Curso de Micro
48/51
Ta'la #e #eco#i0icaci1n he;a#eci$al se!$entos(
-
8/17/2019 Curso de Micro
49/51
XXPROGRAMA COMPRO3ADO4XMane/o #e la instrucci1n RETLVXReali.are$os un conta#or #e e"entosXcon TMR 5#e h a h9(XXPIC >6B?AY ? MK.YX3its #e con0i!uraci1n para el pro!ra$a#or4XCP5protecci1n #e la $e$oria #e c1#i!o94((((((((((((((((((((((((((((((NoXPVRTE5acti"aci1n #el te$pori.a#or ZPo:erupZ94((((((((((((((NoXVDTE5acti"aci1n #el Zperro !uar#inZ94(((((((((((((((((((((((((((((((NoXOSC>OSC5tipo #e oscila#or94((((((((((((((((((((((((((((((((((((((((([talXXPROGRAMA LIST p>60B?A INCLUDE Zp>60B?A(incZ
ORG h !oto inicio
ORG >h ta'la $o"0 TMR% an#l: 0h a##:0 PCL%>
-
8/17/2019 Curso de Micro
50/51
retl: 80h retl: 6h retl: @'h retl: ?0h retl: 66h retl: 6#h retl: #h retl: h retl: 0h retl: 6h retl: h retl: ch retl: 8h retl: @eh retl: h retl: >h inicio XCon0i!urar el puerto 3 sali#a
call 'anco>
$o"l: h $o":0 TRIS3 call 'anco
$o"l: h $o":0 PORT3 XCon0i!urar el TMR(
call 'anco> 's0 OPTION\REG%TSE
's0 OPTION\REG%TCS call 'anco
clr0 TMR
pro!ra$a
call ta'la $o":0 PORT3
!oto pro!ra$aXXSu'rutinas #e ca$'ios #e 'ancos(X'anco 'c0 STATUS%RP return'anco> 's0 STATUS%RP
-
8/17/2019 Curso de Micro
51/51
return
END