Curso de Micro

download Curso de Micro

of 51

Transcript of 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