Escolar Documentos
Profissional Documentos
Cultura Documentos
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
12
'.
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
Armar el cable con el conector ,-#. a la placa de control de por lo menos 1 m desde el puerto
12
..
(. 1.
;.
/acer un pro%rama en la PC que controle la secuencia del MPP que permita: ... . Modi"icar la velocidad de la secuencia. ...#. $le%ir paso completo o medio paso ...'. $leccin del sentido de %iro. ...0. !ndicacin en pantalla de la secuencia que esta realizando. ,eterminar los %rados por paso del MPP. /acer %irar el MPP con la si%uiente secuencia: &,2derec3a 4 !2!zquierda 4 P2 pausa #se%5 62%iros completos '()*+ .1. . # , 7 # !7 ' , 7 ! .1.#. ' ,7 P7 # ,7 P7 . !. .1.'. ' ,7 # ! 8 pasos7 P7 0 , 8 paso. .1.0. . !7 ' , ,O-9$ :$9OC!,A,7 P7 # !7 P7 ' , M$,!A :$9OC!,A,. CO<C9=>!O<$>
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
12
-obinas
,esde la vista "rontal la placa de la placa las cone?iones de izquierda a derec3a son:
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
12
Interfase
La interfase posee un adaptador de seales (78hc245) tanto para entrada como para salida. Adems de un conector de salidas l icas posee un !uffer ("L# 28$%) para salida de potencia con led testi os de las mismas. &am!i'n incorpora un re ulador de tensin (78$5) para alimentar la parte de control( en cam!io las salidas potenciadas son alimentadas con la tensin directa.
'
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
12
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
breaF; 6 oup/0(:H/K;#p); (leep(t); 6 6 else $ for(i1:;i>P*(8(;i!!) $c!!; if(c<1) c1N; switch(c) $case 1 ?p110; breaF; case 0 ?p1O; breaF; case / ?p1/; breaF; default? p1L; breaF; 6 oup/0(:H/K;#p); (leep(t); 6 6 6 else secuencia de 1 0 paso $ t1O0J rpm; c1:; oup/0(:H/K;#1); correccion de la posicion para empeGer a medir (leep(0::); system(2cls2); printf(2Botor listo para comenGar la medicion5n5n5n2); system(2pause2); system(2cls2); printf(2-os "alores in<resados son?5n5n7iro? Cc5n)ipo de paso? Cc5nIelocidad? Cd>PB5n+antidad de pasos? Cd5n5nDesea modificar al<uno de estos "aloresEs n5n2#<iro#tipo#rpm#pasos); if(P*(8(>:) $ for(i1:;i<P*(8(;iMM) $cMM; if(c>;) c11; switch(c) $case 1 ?p1;; breaF; case 0 ?p110; breaF; case / ?p1N; breaF; case N? p1O; breaF; case J? p10; breaF; case O? p1/; +
12
default? 91:; system(2cls2); printf(2-a opcion in<resada no eHiste5nIuel"a a in<resar la opcion5n2); breaF; 6 6 while(911:); fin del menu
muestra de datos printf(2-os "alores in<resados son?5n5n7iro? Cc5n)ipo de paso? Cc5nIelocidad? Cd>PB5n+antidad de pasos? Cd5n5nDesea modificar al<uno de estos "aloresEs n5n2#<iro#tipo#rpm#pasos); do >1<etch(); while(>@1=s=AA>@1=n=); if(>11=s=) 91:; else 911; system(2cls2); 6 while(911:); if(<iro11=d=) P*(8(1pasos*1; else P*(8(1pasos*(!1); if(tipo11=e=)
$ t110J: rpm; c1:; oup/0(:H/K;#L); (leep(0::); system(2cls2); printf(2Botor listo para comenGar la medicion5n5n5n2); system(2pause2); system(2cls2); printf(2-os "alores in<resados son?5n5n7iro? Cc5n)ipo de paso? Cc5nIelocidad? Cd>PB5n+antidad de pasos? Cd5n5nDesea modificar al<uno de estos "aloresEs n5n2#<iro#tipo#rpm#pasos); if(P*(8(>:) $ for(i1:;i<P*(8(;iMM) $cMM; if(c>N) c11; switch(c) $case 1 ?p110; breaF; case 0 ?p1O; breaF; case / ?p1/; breaF; default? p1L;
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
12
else $ for(i1:;i>P*(8(;i!!) $c!!; if(c<1) c1;; switch(c) $case 1 ?p1;; breaF; case 0 ?p110; breaF; case / ?p1N; breaF; case N? p1O; breaF; case J? p10; breaF; case O? p1/; breaF; case K? p11; breaF; default? p1L; breaF; 6 oup/0(:H/K;#p); (leep(t); 6 6 6 fin secuencia
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
12
O.1),ro rama
#include<stdio.h> #include<conio.h> #include<dos.h> #include<windows.h> typedef short _stdcall (*inpfuncPtr)(short portaddr); funcion de in! out del puerto fuera del main. typedef "oid _stdcall (*oupfuncPtr)(short portaddr# short datum);
breaF; case / ?p1/; breaF; default? p1L; breaF; 6 oup/0(:H/K;#p); (leep(t); (leep(J:);
6 for(i1:;i<(N;*/);iMM) $cMM;
main() $ %&'()*'+, h-ib; re.uerimientos de la funcion de in!out del puerto dentro del main. inpfuncPtr inp/0; oupfuncPtr oup/0; h-ib1-oad-ibrary(2inpout/0.dll2); if (h-ib 11 '3--) $printf(2-oad-ibrary 4ailed.5n2); return !1; 6 inp/0 1 (inpfuncPtr) 7etProc*ddress(h-ib# 2&np/02); if (inp/0 11 '3--) $printf(27etProc*ddress for &np/0 4ailed.5n2); return !1; 6 oup/0 1 (oupfuncPtr) 7etProc*ddress(h-ib# 28ut/02); if (oup/0 11 '3--) $printf(27etProc*ddress for 8up/0 4ailed.5n2); return !1; 6 fin funcion habilitadora del puerto int i#p#c1:#t11J; oup/0(:H/K;#L); printf(2tp 1.K.12); system(2pause2); for(i1:;i<(N;*0);iMM) $cMM; if(c>N) c11; switch(c) $case 1 ?p110; breaF; case 0 ?p1O; breaF; case / ?p1/; breaF; default? p1L; breaF; 6 oup/0(:H/K;#p); (leep(t); 6 (leep(J:); for(i1:;i>(!N;*0);i!!) $c!!; if(c<1) c1N; switch(c) $case 1 ?p110; breaF; case 0 ?p1O;
if(c>N) c11; switch(c) $case 1 ?p110; breaF; case 0 ?p1O; breaF; case / ?p1/; breaF; default? p1L; breaF; 6 oup/0(:H/K;#p); (leep(t); 6 (leep(J:); for(i1:;i>(!N;*1);i!!) $c!!; if(c<1) c1N; switch(c) $case 1 ?p110; breaF; case 0 ?p1O; breaF; case / ?p1/; breaF; default? p1L; breaF; 6 oup/0(:H/K;#p); (leep(t); 6 oup/0(:H/K;#:); printf(25nbyebye2); (leep(0:::); return :; 6 O.0)Pro<rama O./)Pro<rama O.N)Pro<rama
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
12
O.0),ro rama
#include<stdio.h> #include<conio.h> #include<dos.h> #include<windows.h> typedef short _stdcall (*inpfuncPtr)(short portaddr); funcion de in! out del puerto fuera del main. typedef "oid _stdcall (*oupfuncPtr)(short portaddr# short datum); 6 for(i1:;i>(!N;*J);i!!) $c!!;
breaF; case / ?p1/; breaF; default? p1L; breaF; 6 oup/0(:H/K;#p); (leep(t); (leep(0:::);
main() $ %&'()*'+, h-ib; re.uerimientos de la funcion de in!out del puerto dentro del main. inpfuncPtr inp/0; oupfuncPtr oup/0; h-ib1-oad-ibrary(2inpout/0.dll2); if (h-ib 11 '3--) $printf(2-oad-ibrary 4ailed.5n2); return !1; 6 inp/0 1 (inpfuncPtr) 7etProc*ddress(h-ib# 2&np/02); if (inp/0 11 '3--) $printf(27etProc*ddress for &np/0 4ailed.5n2); return !1; 6 oup/0 1 (oupfuncPtr) 7etProc*ddress(h-ib# 28ut/02); if (oup/0 11 '3--) $printf(27etProc*ddress for 8up/0 4ailed.5n2); return !1; 6 fin funcion habilitadora del puerto int i#p#c1:#t11J; oup/0(:H/K;#L); printf(2tp 1.K.02); system(2pause2); for(i1:;i<(N;*/);iMM) $cMM; if(c>N) c11; switch(c) $case 1 ?p110; breaF; case 0 ?p1O; breaF; case / ?p1/; breaF; default? p1L; breaF; 6 oup/0(:H/K;#p); (leep(t); 6 (leep(0:::); for(i1:;i<(N;*0);iMM) $cMM; if(c>N) c11; switch(c) $case 1 ?p110; breaF; case 0 ?p1O;
if(c<1) c1N; switch(c) $case 1 ?p110; breaF; case 0 ?p1O; breaF; case / ?p1/; breaF; default? p1L; breaF; 6 oup/0(:H/K;#p); (leep(t); 6 oup/0(:H/K;#:); printf(25nbyebye2); (leep(0:::); return :; 6
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
12
O./),ro rama
/include0stdio( 1 /include0conio( 1 /include0dos( 1 /include02indo2s( 1 t3#ede4 s ort 5stdcall 67in#4unc8tr96s ort #ortaddr9: "" 4uncion de in;out del #uerto 4uera del main( t3#ede4 <oid 5stdcall 67ou#4unc8tr96s ort #ortaddr= s ort datum9:
>case 1 :#B-:
main69 > ?I&%TA&C@ Li$: "" reAuerimientos de la 4uncion de in;out del #uerto dentro del main( in#4unc8tr in#)2: ou#4unc8tr ou#)2: Li$BLoadLi$rar36Cin#out)2(dllC9: i4 6 Li$ BB &DLL9 >#rint46CLoadLi$rar3 Failed(EnC9: return ;1: F in#)2 B 6in#4unc8tr9 Get8rocAddress6 Li$= CIn#)2C9: i4 6in#)2 BB &DLL9 >#rint46CGet8rocAddress 4or In#)2 Failed(EnC9: return ;1: F ou#)2 B 6ou#4unc8tr9 Get8rocAddress6 Li$= CHut)2C9: i4 6ou#)2 BB &DLL9 >#rint46CGet8rocAddress 4or Hu#)2 Failed(EnC9: return ;1: F "" 4in 4uncion a$ilitadora del #uerto int i=#=cB)=tB1*: ou#)26!I),-=+9: #rint46Ct# 1(,()EnEnC9: s3stem6C#auseC9: 4or6iB!:i06'-7)9:iJJ9 >cJJ:
F %lee#62!!!9:
$reaK: case 2 :#B12: $reaK: case ) :#B': $reaK: case ': #B+: $reaK: case *: #B2: $reaK: case +: #B): $reaK: case ,: #B1: $reaK: de4ault: #B.: $reaK: F ou#)26!I),-=#9: %lee#6t9:
>case 1 :#B.:
i46c1'9 cB1: s2itc 6c9 $reaK: case 2 :#B12: $reaK: case ) :#B+: $reaK: de4ault: #B): $reaK: F ou#)26!I),-=#9: %lee#6t9:
4or6iB!:i06.+7'9:iJJ9 >cJJ: i46c1-9 cB1: s2itc 6c9 >case 1 :#B-: $reaK: case 2 :#B12: $reaK: case ) :#B': $reaK: case ': #B+: $reaK: case *: #B2: $reaK: case +: #B): $reaK: case ,: #B1: $reaK: de4ault: #B.: $reaK: F ou#)26!I),-=#9: %lee#6t9: F ou#)26!I),-=!9: #rint46CEn$3e$3eC9: %lee#62!!!9: return !: F
F %lee#62!9: >c;;:
Mecatrnica II 104180
%I " &o Curso : Firma : i46c1'9 cB1: s2itc 6c9 $reaK: case 2 :#B12: $reaK: case ) :#B+: $reaK: de4ault: #B): $reaK: F ou#)26!I),-=#9: %lee#66t"299: ""#ausa "" 2
2M10
12
O./)Pro<rama
>case 1 :#B.: /include0stdio( 1 /include0conio( 1 /include0dos( 1 /include02indo2s( 1 t3#ede4 s ort 5stdcall 67in#4unc8tr96s ort #ortaddr9: "" 4uncion de in;out del #uerto 4uera del main( t3#ede4 <oid 5stdcall 67ou#4unc8tr96s ort #ortaddr= s ort datum9:
F %lee#62!!!9: main69 > ?I&%TA&C@ Li$: "" reAuerimientos de la 4uncion de in;out del #uerto dentro del main( in#4unc8tr in#)2: ou#4unc8tr ou#)2: Li$BLoadLi$rar36Cin#out)2(dllC9: i4 6 Li$ BB &DLL9 >#rint46CLoadLi$rar3 Failed(EnC9: return ;1: F in#)2 B 6in#4unc8tr9 Get8rocAddress6 Li$= CIn#)2C9: i4 6in#)2 BB &DLL9 >#rint46CGet8rocAddress 4or In#)2 Failed(EnC9: return ;1: F ou#)2 B 6ou#4unc8tr9 Get8rocAddress6 Li$= CHut)2C9: i4 6ou#)2 BB &DLL9 >#rint46CGet8rocAddress 4or Hu#)2 Failed(EnC9: return ;1: F "" 4in 4uncion a$ilitadora del #uerto int i=#=cB!=tB2+: ou#)26!I),-=.9: #rint46Ct# 1(,('EnEnC9: s3stem6C#auseC9: 4or6iB!:i16;'-7*9:i;;9 >c;;: "" * iLAuierda i46c019 cB': s2itc 6c9 $reaK: case 2 :#B12: $reaK: case ) :#B+: $reaK: de4ault: #B): $reaK: F ou#)26!I),-=#9: %lee#6t9: iLAuierda >c;;:
>case 1 :#B.:
$reaK: case 2 :#B12: $reaK: case ) :#B+: $reaK: de4ault: #B): $reaK: F ou#)26!I),-=#9: %lee#6t9: "" #ausa "" ) derec a 1"2 <elocidad i46c1'9 cB1: s2itc 6c9 $reaK: case 2 :#B12: $reaK: case ) :#B+: $reaK: de4ault: #B): $reaK: F ou#)26!I),-=#9: %lee#66t7299:
%lee#62!!!9:
4or6iB!:i06'-7)9:iJJ9 >cJJ:
>case 1 :#B.:
>case 1 :#B.:
F %lee#62!!9: s3stem6C#auseC9:
"") 11
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
12
+onclusiPn
,s muy interesante la eHperiencia ya .ue son motores de fQcil maneRo desde una plataforma informQtica o di<ital# y muy prQcticos para implementarlos en posicionamiento preciso ahorrando la necesidad de retroalimentaciPn de datos de posiciPn y con la posibilidad de blo.uearse en la ultimo paso dado. -as "entaRas son muchas en relaciPn a pocas complicaciones .ue presentan. (on una eHcelente herramienta para realiGar los mo"imientos de nuestro proyecto mecatrPnico.
Nota: todas las hoja de datos estn adjuntadas el la secciono anexos de esta carpeta
12
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
1.
!MPOABA<B$: 9os pro%ramas que se 3a%an7 ,$-$< indicar en pantalla los datos del proceso Fuente de alimentacin Multmetro Minilab Cable de Puerto paralelo y Plaqueta de pruebas. Motor corriente contnua. Bransistor <P< &de acuerdo al consumo del MCC+ &#+ Bransistor P<P &de acuerdo al consumo del MCC+ &#+ C! 9M... Aesistencia CD &#+ Potencimetro ))CD Capacitor electroltico de ) EF ? ( : Procedimiento: #. Bomar los si%uientes datos del Motor de CC . . !denti"icar terminales de motor de CC . . :oltaje de trabajo. Voltaje del motor: 12V .#. Conectar el MCC y medir su consumo & corriente+ Corriente: De vaco: 28.7 [mA] Enclavado: 520 [mA] '. $nsamble al eje del motor una a%uja o indicador que nos permita ver con claridad el movimiento.
1)
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
1.
1. Control de velocidad &PFM+. Armar en el M!<!9A- el si%uiente circuito para controlar la velocidad.
1'
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
1.
;+ Pro%ramas: 2.3
GincludeHstdio.3I GincludeHconio.3I GincludeHdos.3I GincludeHJindoJs.3I Ginclude HiostreamI typede" s3ort Kstdcall &Linp"uncPtr+&s3ort portaddr+M NN "uncion de in5out del puerto "uera del main. typede" void Kstdcall &Loup"uncPtr+&s3ort portaddr7 s3ort datum+M main&+ O /!<>BA<C$ 39ibM NN requerimientos de la "uncion de in5out del puerto dentro del main. inp"uncPtr inp'#M oup"uncPtr oup'#M 39ib29oad9ibrary&Pinpout'#.dllP+M i" &39ib 22 <=99+ Oprint"&P9oad9ibrary Failed.QnP+M return 5 M R inp'# 2 &inp"uncPtr+ 6etProcAddress&39ib7 P!np'#P+M i" &inp'# 22 <=99+ Oprint"&P6etProcAddress "or !np'# Failed.QnP+M return 5 M R oup'# 2 &oup"uncPtr+ 6etProcAddress&39ib7 POut'#P+M i" &oup'# 22 <=99+ Oprint"&P6etProcAddress "or Oup'# Failed.QnP+M return 5 M R c3ar AM oup'#&)?'1;7)+M print"&PQnd: derec3a Qni:!zquierdaP+M print"&PQns: Fin de pro%rama.QnP+M system&PpauseP+M doO 1* NN "in "uncion 3abilitadora del puerto
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
print"&PQn!n%rese la letra claveQnP+M A2%etc3&+M system&PclsP+M i"&A22SiS+ Ooup'#&)?'1;7)+M print"&P6iro izquierdoP+M R else Ooup'#&)?'1;7 +M print"&P6iro derec3oP+M R R J3ile&AT2SsS+M oup'#&)?'1;7)+M return )M R
inp"uncPtr inp'#M oup"uncPtr oup'#M 39ib29oad9ibrary&Pinpout'#.dllP+M i" &39ib 22 <=99+ Oprint"&P9oad9ibrary Failed.QnP+M return 5 M R inp'# 2 &inp"uncPtr+ 6etProcAddress&39ib7 P!np'#P+M i" &inp'# 22 <=99+ Oprint"&P6etProcAddress "or !np'# Failed.QnP+M return 5 M R oup'# 2 &oup"uncPtr+ 6etProcAddress&39ib7 POut'#P+M
1.
i" &oup'# 22 <=99+ Oprint"&P6etProcAddress "or Oup'# Failed.QnP+M return 5 M R int i2;M c3ar lM print"&PQna: $nciende M .Qnb: Apa%a M .P+M print"&PQnc: $nciendeM#Qnd: Apa%a M#.P+M print"&PQn>: Fin de pro%rama.QnP+M doO print"&PQn!n%rese la letra claveQnP+M l2%etc3&+M system&PclsP+M sJitc3&l+ Ocase SaS: i2iU#M NN "in "uncion 3abilitadora del puerto
2.
GincludeHstdio.3I GincludeHconio.3I GincludeHdos.3I GincludeHJindoJs.3I Ginclude HiostreamI typede" s3ort Kstdcall &Linp"uncPtr+&s3ort portaddr+M NN "uncion de in5out del puerto "uera del main. typede" void Kstdcall &Loup"uncPtr+&s3ort portaddr7 s3ort datum+M main&+ O /!<>BA<C$ 39ibM NN requerimientos de la "uncion de in5out del puerto dentro del main.
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
O /!<>BA<C$ 39ibM NN requerimientos de la "uncion de in5out del puerto dentro del main. inp"uncPtr inp'#M
1.
breaVM oup"uncPtr oup'#M de"ault: breaVM 39ib29oad9ibrary&Pinpout'#.dllP+M R oup'#&)?'1;7i+M i" &39ib 22 <=99+ sJitc3&i+ Oprint"&P9oad9ibrary Failed.QnP+M O case ):print"&PM encendidoQnM# apa%adoP+M return 5 M breaVM R case #:print"&PM apa%adoQnM# encendidoP+M i" &inp'# 22 <=99+ breaVM Oprint"&P6etProcAddress "or !np'# Failed.QnP+M case 0: print"&PM encendidoQnM# encendidoP+M breaVM de"ault: print"&PM apa%adoQnM# apa%adoP+M R RJ3ile&lT2SsS+M oup'#&)?'1;7)+M return )M R return 5 M R oup'# 2 &oup"uncPtr+ 6etProcAddress&39ib7 POut'#P+M inp'# 2 &inp"uncPtr+ 6etProcAddress&39ib7 P!np'#P+M
i" &oup'# 22 <=99+ Oprint"&P6etProcAddress "or Oup'# Failed.QnP+M return 5 M R int i20M c3ar lM doO system&PclsP+M NN "in "uncion 3abilitadora del puerto
2.5
GincludeHstdio.3I GincludeHconio.3I GincludeHdos.3I GincludeHJindoJs.3I Ginclude HiostreamI typede" s3ort Kstdcall &Linp"uncPtr+&s3ort portaddr+M NN "uncion de in5out del puerto "uera del main. typede" void Kstdcall &Loup"uncPtr+&s3ort portaddr7 s3ort datum+M main&+
print"&PQna: $nciende M .Qnb: Apa%a M .P+M print"&PQni: derec3aQnd: izquierda M#.P+M print"&PQns: Fin de pro%rama.QnQnP+M print"&P!n%rese la letra claveQnP+M sJitc3&i+ O encendidoQn6iro derec3oP+M breaVM case ):print"&PMotor encendidoQn6iro breaVM de"ault:print"&PMotor apa%adoP+M 1, case #:print"&PMotor
izquierdoP+M
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
1.
sJitc3&l+ Ocase SaS: i2iU;M breaVM case SbS: i2iW#01M breaVM case SdS: i2iU0M i2iW#.'M breaVM case SiS: i2iU#M i2iW#. M breaVM de"ault: breaVM oup'#&)?'1;7i+M R J3ile&lT2SsS+M R
oup'#&)?'1;7)+M R
1-
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
1.
CO<C9=>!O<$>:
$s una interesante e?periencia ya que con los elementos adecuados nos permite controlar motores de C.C. de importante potencia y con un control muy simple por parte de la lo%ica di%ital $s muy @til porque para potencias de mas de #) o ') Fatts es di"icil encontrar motores PaP de "orma econmica7 en cambio motores de C.C. son mas "aciles de conse%uir en estas potencias y mayores7 sobre todo en el rubro automotor& cale"acciones7 A.C. levanta cristales etc.+
1.
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
1.
2!
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
21
MAB$A!A9$>: Fuente de alimentacin Multmetro Minilab >ervomotor C! 9M... Aesistencia ) CD &#+ Aesistencia ##) CD Aesistencia . CD Potencimetro )CD Capacitor )) nF &#+ Bransistor <P< -C.0; Procedimiento: ;. Bomar los datos del >ervomotor .#. !denti"icar terminales !arr"n: !a#a $ojo: %V &aranja: #e'al
21
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
21
X. CO<C9=>!O<$>: E# intere#ante el )#o de e#to# di#*o#itivo# #i #e tiene +)e reali,ar al-.n *e+)e'o movimiento como )na ma+)eta o al-o *or el e#tilo. /am(i0n rem*la,ando el encoder anal"-ico 1*otenci"metro2 *or )no di-ital *)ede #er m)3 .til como *o#icionador de alta *reci#i"n 3 45cil cone6i"n con c)al+)ier medio de control in4orm5tico7 como )n 89C o )na 8C *or ejem*lo.
22
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
21
MAB$A!A9$>: Fuente de alimentacin Multmetro Minilab ). ,e acuerdo al termistor a usar y el 9M'.7 adosar la 3oja de datos al Brabajo PrYctico. .0. !denti"icar terminales &8/: :in *olaridad ;! 35:
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
&8/: De#conocido ;! 35: de 072 a 35V . Procedimiento: Armar en el M!<!9A- un circuito que represente el si%uiente sistema de control de temperatura.
VCC
21
<20
>I0
B8)8> 1
10I
31?* >I1
1:F / 1 0 11 N
>J
00:
S1
9+//K
1:F
-B/0N
>)1
!tc 1F
M;;.; M;;.;
Volts
M;;.;
Volts
Volts
2'
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
)!
PC
LPT1
SENSORES
ACTUADORES
Controlando # motores por medio de la PC a travZs del puerto paralelo de la si%uiente manera: . Para temperatura menor de #) %rados encender el motor del cale"actor #. Para temperatura mayores de ') %rados encender el motor del re"ri%erador '. !ndicar en pantalla y por una indicacin luminosa el motor que esta encendido.
3/
0
I83)
30?*
:.: / 1 -B/J N
>/
1:F
1 0 11
-B/0N
>0
00F
IM
J K O N ; L
>1
0.0F
B8D, I!
1: L ; K O J N / 0 1
1: 11 10 1/ 1N 1J 1O 1K 1; 1
>I1
1:F
31
-B/L1N
2*
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
0. CO<C9=>!O<$>:
)!
;o +)e e6*erimentamo# e# +)e el &/C 4)nciona como detector de )na tem*erat)ra *reviamente cali(rada7 #iendo m)3 .til como #i#tema de *roteccion termica *ero no como in#tr)mento de medici"n. En Cam(io el ;!35 #i e# *reci#o 3 m)3 )til como intr)mento de medici"n7 *or #er #) re#*)e#ta lineal 3 m)3 e#ta(le7 e#ta# c)alidade# de #) #e'al #im*li4ican enormemente la intre*retacion d la mi#ma7 3 en con#ec)encia la #im*li4icacion del circ)ito nece#ario *ara )tili,arlo.
2+
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
)!
Ane6o#
8ro-rama:
#include<stdio.h> #include<conio.h> #include<dos.h> #include<windows.h> #include <iostream> typedef short _stdcall (*inpfuncPtr)(short portaddr); // funcion de in-out del puerto fuera del main. typedef void _stdcall (*oupfuncPtr)(short portaddr, short datum); main() { HI !"# $% h&i'; // requerimientos de la funcion de in-out del puerto dentro del main. inpfuncPtr inp(); oupfuncPtr oup(); h&i'*&oad&i'rar+(,inpout().dll,); if (h&i' ** -&&) {printf(,&oad&i'rar+ .ailed./n,); return 01; 2 inp() * (inpfuncPtr) 3etProc#ddress(h&i', ,Inp(),); if (inp() ** -&&) {printf(,3etProc#ddress for Inp() .ailed./n,); return 01; 2 oup() * (oupfuncPtr) 3etProc#ddress(h&i', ,4ut(),); if (oup() ** -&&) {printf(,3etProc#ddress for 4up() .ailed./n,); return 01; 2 // fin funcion habilitadora del puerto int t,p; char s; printf(, Para salir presione s,); 5etch(); while(1) {s+stem(,cls,); if(6'hit()) { s*5etch(); if(s**7s7) break; 2 t*inp()(89(:;);
2,
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
)!
switch(t) { case 1)8 <{p*1; printf(,$alafaccion,); 2 break; case ;=< {p*1)>; printf(,#ire acondicionado,); 2 break; default<p*8; printf(,temperatura entre )8 + (8,); break; 2 oup()(89(:>,p); !leep(?8); 2 oup()(89(:>,8); 2
2-
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
)!
MAB$A!A9$>: Fuente de alimentacin Multmetro Minilab sensores .. Adosar la 3oja de datos al Brabajo PrYctico delos sensores usados .(. !denti"icar terminales .1. :oltaje de trabajo. $tc. (. Procedimiento: . Armar en el M!<!9A- un circuito cuentavueltas usando un OPBOACOP9A,OA ranurado. #. =tilizar el circuito y pro%rama de MPP para el control de velocidad.
VCC
>1
NK:> -,D
31 D1
1 0 N 8P)8+83P-,>!'P' O J
>0
NK:>
a+ !n%resar los datos a la PC b+ /acer un pro%rama que : i+ cuente la vueltas APM ii+ calcule la velocidad
2.
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
17.8ro-rama
#include<stdio.h> #include<conio.h> #include<dos.h> #include<windows.h> #include <iostream> typedef short _stdcall (*inpfuncPtr)(short portaddr); // funcion de in-out del puerto fuera del main. typedef void _stdcall (*oupfuncPtr)(short portaddr, short datum); double performancecounter@diff(&#A3%@I "%3%A *a, &#A3%@I "%3%A *') { &#A3%@I "%3%A freB; Cuer+Performance.reBuenc+(DfreB); return (double)(a0>CuadPart 0 '0>CuadPart) E (double)freB.CuadPart; 2 main() { HI !"# $% h&i'; // requerimientos de la funcion de in-out del puerto dentro del main. inpfuncPtr inp(); oupfuncPtr oup(); h&i'*&oad&i'rar+(,inpout().dll,); if (h&i' ** -&&) {printf(,&oad&i'rar+ .ailed./n,); return 01; 2 inp() * (inpfuncPtr) 3etProc#ddress(h&i', ,Inp(),); if (inp() ** -&&) {printf(,3etProc#ddress for Inp() .ailed./n,); return 01; 2 oup() * (oupfuncPtr) 3etProc#ddress(h&i', ,4ut(),); if (oup() ** -&&) {printf(,3etProc#ddress for 4up() .ailed./n,); return 01; 2 // fin funcion habilitadora del puerto char F; int d,c*8,G*8,; &#A3%@I "%3%A t@ini, t@fin; double secs; float f;
)!
printf(,Para in5resar al menu una GeH iniciado el conteo presione al5una tecla/n,); s+stem(,cls,); while(1) { cII; do {
)!
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
)!
//asigna
f*1E(performancecounter@diff(Dt@fin, Dt@ini))*=8;
printf(,Kueltas totales< Ld/nAPM< L5/n,,c,f); if(6'hit()) { s+stem(,cls,); printf(,/nPara terminar la aplicacion presione s/nPara resetear el contador presione r/n,); F*5etch(); if (F**7r7) c*8; if (F**7s7) break; 2 2 2
C<&C;=:9<&E::
$ste trabajo demostro que para la toma de datos por puerto en tiempo casi real la pc presenta di"icultades debido a que para obtener se%uridad en cuanto a los datos relevados se debe abocar todo el procesador en un bucle de repeticion para poder detectar con certeza la actividad del puerto imposibilitando as en uso en otras tareas. =na posible "orma de solucionar esto seria trabajar con interrupciones a nivel procesador7 lo cual implica conocimientos mas avanzados de pro%ramacion.
)1
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
)!
i9
CHDIGH
Se presenta un solo cdigo, ya que todos los tems son realizados por el mismo programa, variando solamente los valores de los retardos ( elaymS! Device 16F877A Declare Xtal * N "AI!$ * L88888888 While 1 P4A"$.8 * 1 Delay ! ?88 P4A"$.8 * 8 Delay ! 1888 Wend "nd
fin
(e presenta un solo dia<rama ya .ue todos los item se realiGaron con el mismo pro<rama# "ariando solo los tiempos de demora.(delayms).
$9 c9 d9 e9 29
un un un un
en en en en
intermitente durante 2*! ms intermitente durante 1!! ms( intermitente( Durante 1 segundo encendido 3 *!!ms a#agado( intermitente( Durante *!! ms encendido 3 1 s a#agado(
CH&CLD%IH&@%
" pesar de la simplicidad del prctico es muy #til para iniciarse en la programacin de $%&, en especial, al 'ormato de programacin y manejo de los registros de control de los puertos(
)2
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
)1
Device 16F877 Declare Xtal * N "AI!$ * L88888888 P4A"$ * 8 While 1 * 1 P4A"$.8 * 1 P4A"$.1 * 8 Delay ! 1888 P4A"$.8 * 8 P4A"$.1 * 1 Delay ! 1888 Wend "nd
fin
-os Wtems b y c son Wdem al Wtem a# solo "ariando el "alor de los retardos (delayms)
$9 c9 @ncienda los L@DO% en 4orma intermitente durante )!! ms( cada uno( @ncienda los L@DO% en 4orma intermitente durante 1!! ms( cada uno(
d9
@ncienda los L@DO% en 4orma intermitente durante 1 segundo encendido 3 *!!ms a#agado cada uno(
inicio
P8>)+.: 1 1 P8>)+.1 1 : DelayB( J:: P8>)+.1 1 1 DelayB( J:: P8>)+.: 1 : DelayB( J:: P8>)+.: 1 1 P8>)+.1 1 : DelayB( J:: P8>)+.1 1 1 DelayB( J:: P8>)+.: 1 : DelayB( J::
fin
Device 16F877 Declare Xtal * N "AI!$ * L88888888 P4A"$ * 8 While 1 * 1 P4A"$.8 * 1 P4A"$.1 * 8 Delay ! ?88 P4A"$.1 * 1 Delay ! ?88 P4A"$.8 * 8 Delay ! ?88 P4A"$.8 * 1 P4A"$.1 * 8 Delay ! ?88 P4A"$.1 * 1 Delay ! ?88 P4A"$.8 * 8 Delay ! ?88 Wend "nd
e9
@ncienda los L@DO% en 4orma intermitente durante *!! ms encendido 3 1 s a#agado cada uno(
-os Wtems d y e son Wdem al Wtem a# in"irtiendo solo el estado de salida de los puerto
)9 CH&CLD%IH&@%
" pesar de la simplicidad del prctico es muy #til para iniciarse en la programacin de $%&, en especial, al 'ormato de programacin y manejo de los registros de control de los puertos(
%i la #resentacin ocurre en 4orma errPtica 3 no re4leja en 4orma 4iel la consigna= el T8 no serP a#ro$ado(
))
Mecatrnica II
%I " &o Curso : Firma : )*
1. 3n sistema de (emQforos de una intersecciPn de dos calles de una sola mano. 1.1. (e toma como condiciPn .ue? el I,>D, se mantiene 10 s.# el *B*>&--8 N s.# el >8T8 1O s
Device * 16F877A Declare Xtal N Di# G As 1)888 Di# a As N888 Di# i As $yte "AI!F* L88888888 "AI!$* L88888888 P4A"$ * 8 P4A"F * 8 While 1 * 1 P4A"$* 1(= Delay ! )88 P4A"$* 1(8 Delay ! G P4A"$* 1() Delay ! a P4A"$* 1(= Delay ! )88 P4A"$* N8 Delay ! G P4A"$* :) Delay ! a Wend "nd
inicio
111
fin
0.
3n sistema de (emQforos de una intersecciPn de dos calles de una sola mano con indicaciPn peatonal en ambas calles. 0.1. -os semQforos deben ser maneRados por el puerto + (P8>)+) y puerto D (P8>)D)# los peatonales. 0.0. (e toma como condiciPn .ue? ,- I,>D, se mantiene 10 se<.# ,- *B*>&--8 N se<.# ,- >8T8 1O (,7.# ,- P,*)8'*- &'),>B&),'), D3>*), ,- *B*>&--8.
)'
Mecatrnica II
%I " &o Curso : Firma : )*
Device * 16F877A Declare Xtal N Di# G As 1)888 Di# i As $yte "AI!F* L88888888 "AI!$* L88888888 P4A"$ * 8 P4A"F * 8 While 1 * 1 P4A"$* 1(= P4A"F* 18 Delay ! )88 P4A"F* = P4A"$* 1(8 Delay ! G P4A"$* 1() For i*1 %o N P4A"F*) Delay ! ?88 P4A"F*= Delay ! ?88 &e't i P4A"$* 1(= P4A"F* 18 Delay ! )88 P4A"F* ; P4A"$* N8 Delay ! G P4A"$* :) For i*1 %o N P4A"F*> Delay ! ?88 P4A"F*; Delay ! ?88 &e't i Wend "nd /.
inicio
111
fin
for i11)oN
for i11)oN
3n sistema de (emQforos de una a"enida de dos sentidos .ue permita el <iro a la iG.uierda de los dos sentidos simultQneamente. /.1. -a secuencia de tiempos es similar al punto anterior. Delay ! )88 P4A"$* 1(: P4A"F* (> Delay ! 5i P4A"$* 1(8 Delay ! G P4A"$* 1() For i*1 %o N P4A"F*(N Delay ! ?88 P4A"F*(> Delay ! ?88
)*
Device * 16F877A Declare Xtal N Di# 5i As N888 Di# G As 1)888 Di# i As $yte "AI!F* L88818888 "AI!$* L88888888 P4A"$ * 8 P4A"F * 8 While 1 * 1 P4A"$* 1(= P4A"F* N)
Mecatrnica II
%I " &o Curso : Firma : )*
inicio
&e't i P4A"$* 1(= P4A"F* N) Delay ! )88 P4A"$* 1?) P4A"F* N1 Delay ! 5i P4A"$* N8 Delay ! G P4A"$* :) For i*1 %o N P4A"F*N8 Delay ! ?88 P4A"F*N1 Delay ! ?88 &e't i Wend "nd
111
fin
for i11)oN
for i11)oN
N. 3n sistema de (emQforos de una a"enida de dos sentidos .ue permita la interrupciPn con la presiPn de un pulsador el acceso peatonal trans"ersal de la a"enida. N.1. ,l tiempo de acceso es de 0J se< y J se< se alerta.
)+
Mecatrnica II
%I " &o Curso : Firma : )*
Device * 16F877A Declare Xtal N "AI!O*L81111111 "AI!F* L88818888 "AI!$*8 Di# i As $yte Di# cont As $yte cont * 8 While 1*1 P4A"$ * ) P4A"F*(N cont * cont I 1 While P4A"F.N * 1 P4A"$*N P4A"O.:*1 Delay ! )?8 P4A"O.:*8 Delay ! N:?8 P4A"$*> Delay ! )?8 P4A"F*(( For i * 1 %o ?8 Fre()ut P4A"O.:,188,>888 P4A"O.: *8 Delay ! N88 &e't i For i * 1 %o (( P4A"F*() Fre()ut P4A"O.:,?8,1(888 P4A"O.: *8 P4A"F*(( Delay ! 188 &e't i P4A"F*(N Delay ! )?8 Wend While cont > 188 Fre()ut P4A"O.:,)8,1N888 cont * 8 Wend Delay ! 18 Wend "nd
inicio
111
fin
portb.N11
for i11)oJ:
for i11)oJ:
cont>1::
J. +onclusiones )ue interesante poder aplicar lo aprendido hasta ac en un pro*lema muy cercano a la realidad, lo cual nos permiti ir acercndonos a los pro*lemas con los que nos encontraremos en nuestro 'uturo la*oral( 1. 0. /. +( Deben ser montados de tal manera .ue refleRen en forma correcta la funcionalidad de cada encendido y .ue un espectador .ue obser"e sin tener conocimiento de la rutina lo comprenda a simple "ista. (e "alorarQ la dedicaciPn en los montaRes. ,n todos los casos debe hacer dia<rama de fluRo# cPdi<o del pro<rama# simulaciPn# pro<ramaciPn de microcontrolador y armado de circuito. ,n el caso de que si la presentacin ocurre en 'orma errtica y-o no re'leje en 'orma 'iel la consigna, el .$ no ser apro*ado(
),
Mecatrnica II
%I " &o Curso : Firma : ).
*rriba
for
<oto arriba
fin
0. ,ncendido de -,Ds del P8>)+ en forma continua de &ZS a D,> con inter"alos de 0J: ms# y repetir indefinidamente.
Device 16F877 Declare Xtal * N "AI!$ * L88888888 P4A"$ * 8 Di# t As )?8 While 1 * 1 P4A"$.8 P4A"$.: Delay ! P4A"$.: P4A"$.= Delay ! P4A"$.= P4A"$.? Delay ! P4A"$.? P4A"$.N Delay ! P4A"$.N P4A"$.( Delay ! P4A"$.( P4A"$.) Delay ! P4A"$.) P4A"$.1 Delay ! P4A"$.1 P4A"$.8 Delay ! * * t * * t * * t * * t * * t * * t * * t * * t 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1
inicio
1 11
P8>)+.: 1 : P8>)+.K 1 1 DelayB( t P8>)+.K 1 : P8>)+.O 1 1 DelayB( t P8>)+.O 1 : P8>)+.J 1 1 DelayB( t P8>)+.J 1 : P8>)+.N 1 1 DelayB( t P8>)+.N 1 : P8>)+./ 1 1 DelayB( t P8>)+./ 1 : P8>)+.0 1 1 DelayB( t P8>)+.0 1 : P8>)+.1 1 1 DelayB( t P8>)+.1 1 : P8>)+.: 1 1 DelayB( t
fin
Wend "nd
)-
Mecatrnica II
%I " &o Curso : Firma : ).
/. ,ncendido de -,Ds del P8>)+ en forma continua de D,> a &ZS con inter"alos de /:: ms# y repetir indefinidamente.
Device 16F877 Declare Xtal * N "AI!$ * L88888888 P4A"$ * 8 Di# t As (88 While 1 * 1 P4A"$.8 P4A"$.1 Delay ! P4A"$.1 P4A"$.) Delay ! P4A"$.) P4A"$.( Delay ! P4A"$.( P4A"$.N Delay ! P4A"$.N P4A"$.? Delay ! P4A"$.? P4A"$.= Delay ! P4A"$.= P4A"$.: Delay ! P4A"$.: P4A"$.8 Delay ! Wend "nd * * t * * t * * t * * t * * t * * t * * t * * t 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1
fin
inicio
1 11
P8>)+.: 1 : P8>)+.K 1 1 DelayB( t P8>)+.K 1 : P8>)+.O 1 1 DelayB( t P8>)+.O 1 : P8>)+.J 1 1 DelayB( t P8>)+.J 1 : P8>)+.N 1 1 DelayB( t P8>)+.N 1 : P8>)+./ 1 1 DelayB( t P8>)+./ 1 : P8>)+.0 1 1 DelayB( t P8>)+.0 1 : P8>)+.1 1 1 DelayB( t P8>)+.1 1 : P8>)+.: 1 1 DelayB( t
).
Mecatrnica II
%I " &o Curso : Firma : ).
N. ,ncendido de -,Ds en forma continua de? N.1. &ZS a D,> con inter"alos de 0J: ms#y se repite indefinidadmente hasta .ue con 3' P3-(*D8> se cambia la direcciPn de desplaGamiento de D,> a &ZS con inter"alos de 0J: ms y se repite indefinidamente hasta .ue con 3' P3-(*D8> se cambia la direcciPn de desplaGamiento
Device * 16F877A Declare Xtal N "AI!F* L88888888 "AI!O* L88888881 "AI!$* L88888888 P4A"F* 8 Di# d As $yte Di# c As Word c * 1 d * 1 While 1 * 1 +f P4A"O.8 * 1 %hen d * Pd While P4A"O.8 * 1 Wend +f d < ) %hen +f c *8 %hen c*1 c * c I c +f c > 1)> %hen c*1 "lse c * c 0 (cE)) +f c<1 %hen c * 1)> "nd +f P4A"F * c +f c*1 And d>) %hen c * 8 Wend "nd Delay ! )?8
inicio
De"ice 1 1O4;KK* Declare Ytal N )>&(D1 C:::::::: )>&(91 C:::::::1 )>&(+1 C:::::::: P8>)D1 : Dim d *s 9yte Dim c *s Vord
111
portb 1 1 d 1 [d fin
portb 1 1
D<0
+1 : c 1c ! c 0 +1:
c 1c M c +< 1
c 1 10;
+ 1 10; c 1:
portd 1 +
delayms 0J:
'!
Mecatrnica II
%I " &o Curso : Firma : ).
J. ,ncendido de -,Ds en forma continua de &ZS a D,> con inter"alos de 0J: ms# una pausa de Js y cambio de direcciPn de encendido para desplaGarse de D,> a &ZS con otra pausa de Js al final para repetir indefinidamente.
Device * 16F877A Declare Xtal N "AI!F* L88888888 P4A"F* 8 "AI!O* L88888888 Di# d As $yte Di# c As Word c * 1 d * 1 While 1 * 1 +f d * 1 %hen c * c I c P4A"F * c +f c * 1)> %hen d * 8 Delay ! ?888 "nd +f "lse c * c 0 (cE)) P4A"F * c +f c*1 %hen d * 1 Delay ! ?888 "nd +f "nd +f Delay ! )?8 Wend "nd
inicio De"ice 1 1O4;KK* Declare Ytal N )>&(D1 C:::::::: )>&(91 C:::::::1 )>&(+1 C:::::::: P8>)D1 : Dim d *s 9yte Dim c *s Vord
111
D1 1
fin
c 1c Mc +< 1
c 1 10;
+ 1 10; c 1:
portd 1 +
delayms 0J:
O. +onclusiones J. Deben ser montados de tal manera .ue refleRen en forma correcta la funcionalidad de cada encendido y .ue un espectador .ue obser"e sin tener conocimiento de la rutina lo comprenda a simple "ista. O. (e "alorarQ la dedicaciPn en los montaRes. K. ,n todos los casos debe hacer dia<rama de fluRo# cPdi<o del pro<rama# simulaciPn# pro<ramaciPn de microcontrolador y armado de circuito. /( ,n el caso de que si la presentacin ocurre en 'orma errtica y-o no re'leje en 'orma 'iel la consigna, el .$ no ser apro*ado(
'1
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
'2
for
fin
for
for
Device * 16F877A Declare Xtal N "AI!$* L88888888 P4A"$* 8 Di# i As $yte While 1*1 For i*8 %o ? P4A"$.8*1 Delay ! 188 P4A"$.8*8 Delay ! (88 &e't i For i*8 %o 1 P4A"$.1*1 Delay ! 188 P4A"$.1*8 Delay ! 1888 &e't i For i*8 %o ) P4A"$.8*1 Delay ! 188 P4A"$.8*8 Delay ! 1?88 P4A"$.1*1 Delay ! 188 P4A"$.1*8 Delay ! 1?88 &e't i P4A"$ * 8 Wend "nd
'2
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
0. +on el control de / pulsadores # hacer .ue? 0.1. +uando pulse el P1 se inicie y se deten<a el proceso. 0.0. +uando se puse P0# la "elocidad de parpadeo del -,D I,>D, "aria en forma creciente. 0./. +uando pulse P/# la "elocidad de parpadeo del -,D I,>D, "aria en forma decreciente.
inicio declare 111 if while
'2
fin
while
for if
while
if if
if if
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
P4A"$* 8 Di# s As $it Di# m As $yte Di# t As Word Di# c As Word Di# i As $yte c*)8 s*1 While 1 * 1 inicio< +f P4A"F.8*8 %hen While P4A"F.8*8 s*1 Wend *o%o ciclo "nd +f While s*1 ciclo< P4A"$.8*1 Delay ! ?8 t*c P4A"$.8*8 For i * 8 %o t +f P4A"F.8*8 %hen
Wend "nd
s* Ps While P4A"F.8*8 Wend *o%o inicio "nd +f +f P4A"F.1*8 %hen +f c<)?? And m>18 %hen c*cI1 m*8 "nd +f "nd +f +f P4A"F.)*8 %hen +f c>) And m>18 %hen c*c01 m*8 "nd +f "nd +f m*mI1 Delay ! 18 &e't i Wend
'2
/. +on 0 pulsadores# P1 y P0# y un -,D# ? /.1. (i presionamos P1 y lue<o P0 el -,D debe parpadear una sola "eG# /.0. (i presionamos P1 / "eces y lue<o P0# el -,D parpadearQ / "eces /./. *sW sucesi"amente las "eces .ue se indi.ue con P1. P0 solo indica el arran.ue de encendido.
''
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
declare inicio?
111 if
while
if
if
-,D?
4or
Device * 16F877A Declare Xtal N "AI!F* L11111111 "AI!$* L88888888 P4A"$* 8 Di# cont As $yte Di# i As $yte inicio< P4A"$.:*1 Delay ! ?8 P4A"$.:*8 cont*8 While 1*1 +f P4A"F.1*8 %hen cont*cont I1 While P4A"F.1*8 Delay ! )? Wend "nd +f +f P4A"F.)*8 %hen cont*8 +f P4A"F.8 *8 %hen *o%o led Wend led< Delay ! ?88 For i*1 %o cont P4A"$.8*1 Delay ! )?8 P4A"$.8*8 Delay ! 1888 &e't i *o%o inicio "nd
'2
N. +onclusiones
Seria muy interesante aprender a usar interrupciones en estos casos donde se utilizan pulsadores, simplificara mucho la toma de datos externos
L. Deben ser montados de tal manera .ue refleRen en forma correcta la funcionalidad de cada encendido y .ue un espectador .ue obser"e sin tener conocimiento de la rutina lo comprenda a simple "ista. 1:. (e "alorarQ la dedicaciPn en los montaRes. 11. ,n todos los casos debe hacer dia<rama de fluRo# cPdi<o del pro<rama# simulaciPn# pro<ramaciPn de microcontrolador y armado de circuito. 01( ,n el caso de que si la presentacin ocurre en 'orma errtica y-o no re'leje en 'orma 'iel la consigna, el .$ no ser apro*ado(
'*
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
*!
declare
<osub acendente
0. ,l proyecto consiste en realiGar un contador decimal de L a : con inter"alos de :#J s .ue repita esta acciPn indefinidamente .
Device 16F877A Declare Xtal N "AI!$ * 8 Di# Q18R As $yte Q8R * =( Q1R * = Q)R * ;1 Q(R * :; QNR * 18) Q?R * 18; Q=R * 1)? Q:R * : Q>R * 1): Q;R * 18( Di# i As $yte While 1*1 *o!ub decendente Wend "nd decendente< For i*; %o 8 !tep 01 Delay ! ?88 P4A"$* QiR &e't i ,eturn
declare
<osub acendente
'+
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
*!
/. >ealiGar un contador decimal de : a L con inter"alos de :#J s .ue repita esta acciPn N "eces# lue<o una pausa de J se<undos con parpadeo del <uiPn (<) J "eces# para iniciar una cuenta en forma decreciente de L a : por otras N "eces con su correspondiente pausa al final de estos ciclos de otros J se<undos con parpadeo del <uiPn. )ras esta pausa el iniciar_ la secuencia nue"amente.
Device 16F877A Declare Xtal N "AI!$ * 8 Di# Q18R As $yte Q8R * =( Q1R * = Q)R * ;1 Q(R * :; QNR * 18) Q?R * 18; Q=R * 1)? Q:R * : Q>R * 1): Q;R * 18( Di# 5uion As =N Di# i As $yte While 1*1 For i*8 %o ( *o!ub acendente &e't i *o!ub pausa For i*8 %o ( *o!ub decendente &e't i *o!ub pausa Wend "nd acendente< For i*8 %o ; P4A"$* QiR Delay ! ?88 &e't i ,eturn decendente< For i*; %o 8 !tep 01 P4A"$* QiR Delay ! ?88 &e't i ,eturn
pausa< For i*8 %o ; P4A"$*5uion Delay ! )?8 P4A"$* 8 Delay ! )?8 &e't i ,eturn
declare
4or
<osub decendente
<osub decendente
',
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
*!
N. +ontar : ! L ` :# pausa de J se< y para finaliGar con parpadeo de letra 4 por J se<undos para indicar fin del )P . )odo debe .uedar apa<ado.
Device 16F877A Declare Xtal N "AI!$ * 8 Di# Q18R As $yte Q8R * =( Q1R * = Q)R * ;1 Q(R * :; QNR * 18) Q?R * 18; Q=R * 1)? Q:R * : Q>R * 1): Q;R * 18( Di# . As 11( Di# i As $yte *o!ub *o!ub *o!ub *o!ub *o!ub *o!ub "nd acendente< For i*8 %o ; Delay ! ?88 P4A"$* QiR &e't i ,eturn decendente< For i*; %o 8 !tep 01 Delay ! ?88 P4A"$* QiR &e't i ,eturn
<osub decendente <osub decendente <osub decendente <osub decendente fin? DelayB( 1KJ: 4or i1: )o L DelayB( 0J: P8>)+1 4 DelayB( 0J: P8>)+1 : 'eHt i >eturn
fin< Delay ! 1:?8 For i*8 %o ; Delay ! )?8 P4A"$* . Delay ! )?8 P4A"$* 8 &e't i ,eturn pausa< Delay ! N?88 ,eturn
declare
decendente 4or i1L )o : (tep !1 DelayB( J:: P8>)+1 ']i^ 'eHt i >eturn acendente? 4or i1: )o L P8>)+1 ']i^ DelayB( J:: 'eHt i >eturn pausa? DelayB( NJ:: >eturn
<osub decendente
J. 3tiliGando los dos display con entrada 9+D # hacer un contador como el del punto 1 pero con cuenta hasta LL.
Device 16F877A Declare Xtal N "AI!F * 8 Di# cont As $yte Di# resto As $yte Di# datoQNR As $yte
'-
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
Di# mu9QNR As $yte Di# i As $yte Di# S As $yte Di# 6 As $yte Di# port As $yte mu9Q8R* 11) mu9Q1R* 1:= mu9Q)R* )8> mu9Q(R* ))N While 1*1 *o!ub acendente Wend "nd acendente< For i*8 %o ;; cont * i datoQ8R * contE1888 resto * contEE1888 datoQ1R * restoE188 resto * contEE188 datoQ)R * restoE18 resto * restoEE18 datoQ(R * resto For 6*8 %o =8 For S*8 %o ( port * datoQSR I mu9 QSR P4A"F* port Delay ! ) &e't S &e't 6 &e't i ,eturn
*!
declare
*+,'D,'), 4or i1: )o LL cont 1 i dato]:^ 1 cont 1::: resto 1 cont 1::: dato]1^ 1 resto 1:: resto 1 cont 1:: dato]0^ 1 resto 1: resto 1 resto 1: dato]/^ 1 resto 4or F1: )o O: 4or R1: )o / port 1 dato]R^ M muH ]R^ P8>)D1 port DelayB( 0 'eHt R 'eHt F 'eHt i >eturn
'.
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
O. 3tiliGando los dos display con entrada 9+D # hacer un contador como el del punto 0 pero con cuenta hasta LL.
Device 16F877A Declare Xtal N "AI!F * 8 Di# cont As $yte Di# resto As $yte Di# datoQNR As $yte Di# mu9QNR As $yte Di# i As $yte Di# S As $yte Di# 6 As $yte Di# port As $yte mu9Q8R* 11) mu9Q1R* 1:= mu9Q)R* )8> mu9Q(R* ))N While 1*1 *o!ub decendente Wend "nd decendente< For i*;; %o 8 !tep 01 cont * i datoQ8R * contE1888 resto * contEE1888 datoQ1R * restoE188 resto * contEE188 datoQ)R * restoE18 resto * restoEE18 datoQ(R * resto For 6*8 %o =8 For S*8 %o ( port * datoQSR I mu9 QSR P4A"F* port Delay ! ) &e't S &e't 6 &e't i ,eturn
dec lare
*!
while 11 1 fin
7o(ub decendente Vend ,nd
D ,+,'D ,'), 4or i1LL )o : (tep ! 1 cont 1 i dato]:^ 1 cont 1::: r esto 1 cont 1::: dato]1^ 1 r esto 1:: r esto 1 cont 1:: dato]0^ 1 r esto 1: r esto 1 r esto 1: dato]/^ 1 r esto 4or F 1 : )o O: 4or R1: )o / port 1 dato]R^ M muH ]R^ P8>)D1 port D elay B( 0 ' eH tR ' eH tF ' eH ti > eturn
*!
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
K. 3tiliGando los dos display con entrada 9+D # hacer un contador contador decimal de : a LL con inter"alos de :#J s .ue repita esta acciPn . 3sando un P3-(*D8> ,' +3*-S3&,> B8B,')8 re<reso la cuenta en forma decreciente y se repite hasta tanto no acti"o el pusador .
Device 16F877A Declare Xtal N "AI!F * 8 "AI!O * L11111111 Di# cont As $yte Di# resto As $yte Di# datoQNR As $yte Di# mu9QNR As $yte Di# i As $yte Di# S As $yte Di# 6 As $yte Di# a As $yte Di# ' As $yte Di# port As $yte mu9Q8R* 11) mu9Q1R* 1:= mu9Q)R* )8> mu9Q(R* ))N a * 1 cont * 8 While 1*1 cont * cont I a +f cont < 8 %hen cont* ;; "nd +f +f cont > ;; %hen cont* 8 "nd +f datoQ8R * contE1888 resto * contEE1888 datoQ1R * restoE188 resto * contEE188 datoQ)R * restoE18 resto * restoEE18 datoQ(R * resto For 6*8 %o =8 +f P4A"O.8 *1 %hen a* a*(01) While P4A"O.8 *1 Wend For S*8 %o ( port * datoQSR I mu9 QSR P4A"F* port Delay ! ) P4A"F*)N8 &e't S &e't 6 Wend "nd
declare
*!
D,+,'D,'), 4or i1LL )o : (tep !1 cont 1 i dato]:^ 1 cont 1::: resto 1 cont 1::: dato]1^ 1 r esto 1:: resto 1 cont 1:: dato]0^ 1 r esto 1: resto 1 r esto 1: dato]/^ 1 r esto 4or F1: )o O: 4or R1: )o / port 1 d ato]R^ M muH ]R^ P8> )D1 port D elay B( 0 ' eH tR ' eH tF ' eH ti > eturn
*1
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
;. +ontador decimal de un di<ito y un pulsador con el +& NJ11. +ada pulsaciPn de un botPn incrementa en uno la cuenta. -ue<o de haber lle<ado al L pasa al : y continXa. Ierificar si necesita P no antirrobote.
Device 16F877A Declare Xtal N "AI!F * 8 "AI!O * L11111111 Di# cont As $yte cont * 8 P4A"F*))N While 1*1 +f P4A"O.: * 1 %hen cont * cont I 1 +f cont > ; %hen cont* 8 "nd +f P4A"F* cont I))N "nd +f While P4A"O.: * 1 Wend Delay ! 18 Wend "nd
*!
declare
*2
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
L. 3tiliGando un display de un di<ito mostrar letras fiRas y en mo"imiento por J s de la palabra ahectQreab# .ue se "erWa tomando instantQneas de la secuencia completa como esto? ahb aeb acb atb aab abrb aeb aaa con desplaGamientos a la &ZS3&,>D*.
Device 16F877A Declare Xtal N "AI!$ * 8 Di# t1 As ?88 Di# t) As 1888 Di# tp As 1888 Di# letra Q>R As $yte letraQ8R * 11= 'h letraQ1R * 1)( 'e letraQ)R * ?: 'c letraQ(R * 1)8 't letraQNR * ;? 'a letraQ?R * N; 'r letraQ=R * 1)( 'e letraQ:R * ;? 'a Di# i As $yte While 1*1 *o!ub hectarea@estatica *o!ub pausa Wend "nd hectarea@estatica< For i*8 %o : P4A"$*letraQiR Delay ! t1 &e't i ,eturn pausa< P4A"$*8 Delay ! tp ,eturn
declare
*!
1:. +onclusiones 2a sido interesante ya que es el primer prctico en el cual el $%& tiene alg#n tipo de inter'az gra'ica con el usuario, lo cual es muy #til en la vida cotidiana 1/. Deben ser montados de tal manera .ue refleRen en forma correcta la funcionalidad de cada encendido y .ue un espectador .ue obser"e sin tener conocimiento de la rutina lo comprenda a simple "ista. 1N. (e "alorarQ la dedicaciPn en los montaRes. 1J. ,n todos los casos debe hacer dia<rama de fluRo# cPdi<o del pro<rama# simulaciPn# pro<ramaciPn de microcontrolador y armado de circuito. 03( ,n el caso de que si la presentacin ocurre en 'orma errtica y-o no re'leje en 'orma 'iel la consigna, el .$ no ser apro*ado(
*)
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
,-
'. Armar la inter"az para el MPP de acuerdo al circuito su%erido para MPP unipolar o bipolar
*'
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
,-
0. ,eterminar los %rados por paso del MPP. 7,5 x paso entero 48 pasos x vuelta
.. /acer un pro%rama en el microcontrolador con las secuencias si%uientes &vueltas completas+ .. . :ec)encia 1 .5 .. . . # ,erec3a 5 # !zquierda 5 ' ,erec3a 5 !zquierda 4 Pausa . se%. Comienza la secuencia nuevamente. ..#. :ec)encia 2 .5 ..#. . ' ,erec3a 5 Pausa . se%. 5 # ,erec3a7 Pausa . se%. 5 . !zquierda. Comienza la secuencia nuevamente. ..'. :ec)encia 3 .5 ..'. . $nciende un led intermitente 0 veces con intermitencia de .)) mse%. ..'.#. ' ,erec3a ..'.'. $nciende un led intermitente ' veces con intermitencia de #.) mse%. ..'.0. # !zquierda con 8 pasos ..'... $nciende un led intermitente y buzzer 0 veces con intermitencia de .)) mse%. ..'.(. 0 ,erec3a con 8 pasos 5. . :ec)encia .> ..0. . . !zquierda ..0.#. ' ,erec3a a ,O-9$ :$9OC!,A, ..0.'. $nciende un display 1 se%mentos intermitente con la letra [P\ y buzzer 0 veces con intermitencia de .)) mse%. ..0.0. # !zquierda ..0... $nciende un display 1 se%mentos con las letras [P\ [a\ [u\ [s\ [a\ con intermitencia de se%. Cada una. ..0.(. ' ,erec3a a M$,!A :$9OC!,A,.
**
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
,De" i ce 1O4 ;KK* Declar e Ytal N Declar e -+ D _)y pe 1 al p ha 8n_%ar dw ar e_&nter r upt 7o)o B,' 3
s e c1 ? 7o ( u b eRe c ut a nd o e n1 1 " el 1" p as os 1 0 d ir1 de r st p 1f u ll 7o ( ub f or _c loc F p as os 1 0 d ir1 iG . st p 1f u ll 7o ( ub f or _c loc F p as os 1 / d ir1 de r st p 1f u ll 7o ( ub f or _c loc F p as os 1 1 d ir1 iG . st p 1f u ll 7o ( ub f or _c loc F 7o ( u b pa us aJ 7o ( u b bu G G er 7o )o s ec 1 s e c 0? 7o (ub eR ec utan do en 11 " e l1 " pa s o s 1/ dir 1d e r st p 1f ull 7o (ub f o r_ c lo c F 7o (ub pa u s a J pa s o s 10 dir 1d e r st p 1f ull 7o (ub f o r_ c lo c F 7o (ub pa u s a J pa s o s 1J dir 1i G . st p 1f ull 7o (ub f o r_ c lo c F 7o (ub bu G G e r 7o )o s ec 0 s e c /? 7o (ub e Rec u t an d o en 1 1 " e l1 " t le d1 J: : int_l ed1 N 7o (ub in t le d pa s os 1/ dir 1 de r st p 1f ull 7o (ub f o r_ c l oc F int_l ed1 / t le d1 0J : 7o (ub in t le d " e l1 d" pa s os 1N dir 1 iG . st p 1 ha lf 7o (ub f o r_ c l oc F pip 1 1 int_l ed1 N t le d1 J: : 7o (ub in t le d pa s os 1; dir 1 de r st p 1 ha lf 7o (ub f o r_ c l oc F 7o )o f in se cN ? 7o ( u b eRe c ut a n do e n 11 " e l1" p a s o s 1J d ir 1iG . st p 1f u ll 7o ( ub f or _ c lo c F " e l1d " p a s o s 1/ d ir 1d e r st p 1f u ll 7o ( ub f or _ c lo c F tle d1J : : i nt_le d1 N 7o ( u b pa u s a " e l1" p a s o s 10 d ir 1iG . st p 1f u ll 7o ( ub f or _ c lo c F i nt_le d1 J tle d11 : :: 7o ( u b pa u s a " e l1m" p a s o s 1/ d ir 1d e r st p 1f u ll 7o ( ub f or _ c lo c F 7o )o f in
111 fin
m ai n? en1: Vend
f in? f o r _c l o c F ? + ls + u rs or 1 # 1 Prin t 24i n s e c u en c ia2 7o )o ma in 4or i11 )o (p as o s *N ; ) c lo c F 1 : D e lay B( 1 c lo c F 1 1 D e lay B( " e l ' e Ht i >et urn pa u s a J ? De la y B( J: : : >e t u rn
bu G G e r? b u G e r 11 D e la y B( J : b u G e r 1: >et u rn
eRe c ut a nd o ? + ls + u rs or 1#1 Pri nt 2,Rec utan do s ec . 2 + u rs or 0#1 Pri nt 2' ro ? 2# De c op c ion >et u rn
Device 16F877A Declare Xtal N Declare -.D_%ype * alpha Declare -.D_D%/in P4A"F.N Declare -.D_"&/in P4A"F.8 Declare -.D_,!/in P4A"F.1 Declare -.D_-ines N Declare -.D_Data0s ?8 Declare -.D_.o##and0s ?88 Declare All_Di1ital * true I "$4 *8 !y#bol 3I% * I "$4 .: !y#bol int *I "$4 .1 !y#bol 'ac6 * P4A"F.) !y#bol cloc6* P4A"#.8 !y#bol dir* P4A"#.1 !y#bol stp*P4A"#.) !y#bol en*P4A"#.( !y#bol mG * (8 !y#bol G * )8 !y#bol dG * 18 !y#bol der * 1 !y#bol iHB * 8 !y#bol half * 1 !y#bol full * 8 !y#bol led * P4A"$.8 !y#bol 'uHer * P4A"$.: I "$4 .N*1 "AI!O * L11111111 "AI!#*8 "AI!$*8 P4A"O*8 Di# i As Word
Di# opcion As $yte Di# 'andera As $it Di# pasos As Word Di# tled As Word Di# int@led As $yte Di# pip As $it Di# Gel As $yte Delay ! 188 2i1h 'ac6 'andera*8 opcion*1 cloc6*1 int*8 pip*8 en*1 Delay ! 18 3I% *1 *o%o menu While 1*1 main< en*8 )n_2ardware_+nterrupt Wend "nd
*o%o menu
menu< 3I%*8 en*8 .ls 2i1h 'ac6 .ursor 1,1 /rint ,P=<!i5,P?<#nt,!,,Dec opcion .ursor ),1
*+
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
/rint ,P1<Menu,P><enter , While P4A"O.:*8 +f P4A"O.?*1 %hen opcion*opcionI1 'andera*1 "nd +f While P4A"O.?*1 Delay ! 18 Wend +f opcion>N %hen opcion*1 +f P4A"O.N*1 %hen opcion*opcion01 'andera*1 "nd +f While P4A"O.N*1 Delay ! 18 Wend +f opcion<1 %hen opcion*N +f 'andera*1 %hen .ls .ursor 1,1 /rint ,opcion ro<,,Dec opcion 'andera*8 "nd +f Wend int*8 3I%*1 !elect opcion .ase 1 *o%o sec1 .ase ) *o%o sec) .ase ( *o%o sec( .ase N *o%o secN "nd !elect fin< .ls .ursor 1,1 /rint ,.in secuencia, *o%o main sec1< *o!ub eSecutando en*1 Gel*G pasos*) dir*der stp*full *o!ub for@cloc6 pasos*) dir*iHB stp*full
*o!ub for@cloc6 pasos*( dir*der stp*full *o!ub for@cloc6 pasos*1 dir*iHB stp*full *o!ub for@cloc6 *o!ub pausa? *o!ub 'uHHer *o%o sec1 sec)< *o!ub eSecutando en*1 Gel*G pasos*( dir*der stp*full *o!ub for@cloc6 *o!ub pausa? pasos*) dir*der stp*full *o!ub for@cloc6 *o!ub pausa? pasos*? dir*iHB stp*full *o!ub for@cloc6 *o!ub 'uHHer *o%o sec) sec(< *o!ub eSecutando en*1 Gel*G tled*?88 int@led*N *o!ub intled pasos*( dir*der stp*full *o!ub for@cloc6 int@led*( tled*)?8 *o!ub intled Gel*dG pasos*N dir*iHB stp*half *o!ub for@cloc6 pip*1 int@led*N tled*?88
*,
,-
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
*o!ub intled pasos*> dir*der stp*half *o!ub for@cloc6 *o%o fin secN< *o!ub eSecutando en*1 Gel*G pasos*? dir*iHB stp*full *o!ub for@cloc6 Gel*dG pasos*( dir*der stp*full *o!ub for@cloc6 tled*?88 int@led*N *o!ub pausa Gel*G pasos*) dir*iHB stp*full *o!ub for@cloc6 int@led*? tled*1888 *o!ub pausa Gel*mG pasos*( dir*der stp*full *o!ub for@cloc6 *o%o fin for@cloc6< For i*1 %o (pasos*N>) cloc6*8 Delay ! 1 cloc6*1 Delay ! Gel
&e't i ,eturn pausa?< Delay ! ?888 ,eturn intled< For i*1 %o int@led Delay ! tled 2i1h led +f pip*1 %hen *o!ub 'uHHer Delay ! tled -ow led &e't i pip*8 ,eturn 'uHHer< 'uHer*1 Delay ! ?8 'uHer*8 ,eturn pausa< For i*1 %o int@led .ls .ursor 1,1 /rint ,Pausa, Delay ! tled .ls Delay ! tled &e't i *o!ub eSecutando ,eturn eSecutando< .ls .ursor 1,1 /rint ,%Secutando sec., .ursor ),1 /rint , ro<,, Dec opcion ,eturn
,-
*-
Mecatrnica II 104180
%I " &o Curso : Firma :
2M10
(. /acer un pro%rama en el microcontrolador que responda a los si%uientes comandos: ?.1.1. C)ando *re#ione )n *)l#ador 85 el motor enciende 3 *ara. ?.1.2. C)ando *re#ione )n *)l#ador 81 el motor cam(ia de direcci"n ?.1.3. C)ando *re#ione )n *)l#ador 82 el motor varia la velocidad a Do(le velocidad. ?.1. . C)ando *re#ione )n *)l#ador 83 el motor varia la velocidad a media velocidad. ?.1.5. C)ando *re#ione )n *)l#ador 8 el motor varia la velocidad a velocidad normal.
,-
De"ice 1O4;KK* Declare Ytal N Declare -+D_)ype 1 alpha 8n_%ardware_&nterrupt 7o)o B,'3
111 fin
main? en1: Vend
B,' 3? 7&,1: en1: + ls % i<h bac F + ursor 1#1 Pr int 2PO?(i<#PJ?*nt#(2#D ec opc ion + ursor 0#1 Pr int 2P1?Benu#P;?enter 2 V hile P8>)9.K1: &f P8>)9.J11 )hen opc ion1opc ionM1 bander a11 ,nd &f V hile P8>)9.J11 D elayB( 1: V end &f opcion>N )hen opc ion11 &f P8>)9.N11 )hen opc ion1opc ion!1 bander a11 ,nd &f V hile P8>)9.N11 D elayB( 1: V end &f opcion<1 )hen opc ion1N &f bandera11 )hen + ls + ursor 1#1 Pr int 2opc ion 'r o?2#D ec opc ion bander a1: ,nd &f V end int1: 7&,11 (elect opc ion + as e 1 7o)o s ec 1 + as e 0 7o)o s ec 0 + as e / 7o)o s ec / + as e N 7o)o s ec N ,nd (elec t
s ec 1? 7o(ub eRec utando en11 " el1" pas os10 dir1der s tp1full 7o(ub for_c locF pas os10 dir1iG. s tp1full 7o(ub for_c locF pas os1/ dir1der s tp1full 7o(ub for_c locF pas os11 dir1iG. s tp1full 7o(ub for_c locF 7o(ub paus aJ 7o(ub buG G er 7o)o s ec 1
s ec 0? 7o(ub eRec utando en11 " el1" pasos1/ dir 1der s tp1full 7o(ub for _c locF 7o(ub paus aJ pasos10 dir 1der s tp1full 7o(ub for _c locF 7o(ub paus aJ pasos1J dir 1iG. s tp1full 7o(ub for _c locF 7o(ub buGG er 7o)o s ec 0
sec /? 7o(ub eRecutando en11 " el1" tled1J:: int_led1N 7o(ub intled pas os 1/ dir1der s tp1full 7o(ub for_c loc F int_led1/ tled10J: 7o(ub intled " el1d" pas os 1N dir1iG . s tp1half 7o(ub for_c loc F pip11 int_led1N tled1J:: 7o(ub intled pas os 1; dir1der s tp1half 7o(ub for_c loc F 7o)o fin
s ec N? 7o(ub eRec utando en11 " el1" pas os 1J dir1iG . s tp1full 7o(ub for_c loc F " el1d" pas os 1/ dir1der s tp1full 7o(ub for_c loc F tled1J:: int_led1N 7o(ub paus a " el1" pas os 10 dir1iG . s tp1full 7o(ub for_c loc F int_led1J tled11::: 7o(ub paus a " el1m" pas os 1/ dir1der s tp1full 7o(ub for_c loc F 7o)o fin
fin? for_c locF ? + ls + urs or 1#1 Print 24in s ecuencia2 7o)o main 4or i11 )o (pas os*N;) c loc F 1: D elayB( 1 c loc F 11 D elayB( " el ' eH t i > eturn paus aJ? D elay B( J::: > eturn
intled? 4or i11 )o int_led Delay B( tled %i<h led &f pip11 )hen 7o(ub buGG er Delay B( tled -ow led 'eH t i pip1: >eturn
paus a? 4or i11 )o int_led + ls + ur sor 1#1 Print 2Paus a2 D elay B( tled + ls D elay B( tled ' eHt i 7o(ub eRec utando > eturn
eRec utando? +ls +ur s or 1#1 Print 2,Rec utando s ec.2 +ur s or 0#1 Print 2' ro?2# Dec opc ion >eturn
*.
Device 16F877A Declare Xtal N Declare -.D_%ype * alpha Declare -.D_D%/in P4A"F.N Declare -.D_"&/in P4A"F.8 Declare -.D_,!/in P4A"F.1 Declare -.D_-ines N Declare -.D_Data0s ?8 Declare -.D_.o##and0s ?88 Declare All_Di1ital * true Di# i As $yte Di# t As $yte Di# c As $yte Di# control As $it !y#bol 'ac6 * P4A"F.) !y#bol G * )8 !y#bol Gd * 18 !y#bol mG * N8 !y#bol cloc6* P4A"#.8 !y#bol dir* P4A"#.1 I "$4 *8 !y#bol 3I% * I "$4 .: !y#bol int *I "$4 .1 4P"I4 @A%3.=*8 I "$4 .N*1 I "$4 .(*1 "AI!O * L11111111 "AI!#*8 "AI!$*8 P4A"$*8 2i1h 'ac6 )n_2ardware_+nterrupt *o%o menu t*G control*8 c*8 .ls .ursor 1,1 /rint ,"p 1)@=, While 1*1 parar< Delay ! ?8 P4A"#.(*8 +f control*1 %hen *o%o motor 3I%*1 Wend motor< While 1*1 +f P4A"O.N*8 %hen 3I%*1 P4A"#.(*1 c*cI1 +f c>N %hen c*8 cloc6*8 Delay ! 1 cloc6*1 Delay ! t Wend menu<
3I%*8 I "$4 .8*8 I "$4 .1*8 +f P4A"O.N*1 %hen dir*Pdir Delay ! 18 "nd +f +f P4A"O.?*1 %hen t*Gd +f P4A"O.=*1 %hen t* mG +f P4A"O.:*1 %hen t*G +f P4A"O.8*8 %hen control*Pcontrol While P4A"O.8*8 Wend Delay ! )8 "nd +f +f control*8 %hen *o%o parar "lse *o%o motor "nd +f "nd
1. CO<C9=>!O<$>
Se aplico todo lo presentado en clase y lo investigado en solo trabajo, de esta forma se pudo alicar todo lo aprendido, lo cual ser la base para enfrentar los problemas cotidianos en un futuro laboral.
Anexos
%oRas de datos
KN%+0NJ
')+
@L MICMHCH&TMHLADHM 8IC1+F-,,
+aracterWsticas principales? ! +P3 tipo >&(++ de altas prestaciones. ! >epertorio de /J instrucciones de una palabra.
! )odas las instrucciones son de un Xnico ciclo# eHcepto las de salto# .ue lle"an dos. ! Ielocidad de trabaRo de 0: BhG# con un ciclo de instrucciPn de 0:: ns. ! Bemoria de pro<rama tipo flash de ; c palabras. ! Bemoria de datos de /O; bytes. ! Bemoria ,,P>8B de datos de 0JO bytes. ! PatillaRe compatible con P&+1O+K/9 KN9 KO KK. ! %asta 1N fuentes de interrupciPn. ! Pila por hardware de ; ni"eles. ! Bodos de direccionamiento directo# indirecto y relati"o. ! >eset de coneHiPn (P8>). ! )emporiGaciPn de coneHiPn y temporiGaciPn de inicio de oscilaciPn. ! +ircuito super"isor (watchdo<). ! +Pdi<o de protecciPn pro<ramable. ! )ecnolo<Wa de alta "elocidad y baRo consumo en la memoria +B8( ,,P>8B 4-*(%. ! Pro<ramaciPn in!situ "Wa serie con dos patillas. ! Posibilidad de pro<ramaciPn in!situ# "Wa serie# mediante tensiPn simple de J "oltios. ! *cceso para lectura o escritura a la memoria de pro<rama. ! 7ran mar<en de alimentaciPn entre 0 y J#J "oltios. ! +orriente de salida de 0J m*. ! 9aRo consumo? Benor de 0 m* a JI y N BhG. 0: * a /I y /0 chG. Benor de 1 * en reposo. Prestaciones de perif\ricos? ! )imer:? )emporiGador!+ontador de ; bits# con Predi"isor tambi\n de ; bits. ! )imer1? )emporiGador!+ontador de 1O bits con Predi"isor# .ue puede trabaRar con reloR eHterno en el modo reposo (sleep). ! )imer0? )emporiGador!+ontador de ; bits con re<istro de perWodo de la misma lon<itud# con Predi"isor y Postdi"isor. ! Dos mPdulos de +aptura y +omparaciPn y uno PVB (modulaciPn por ancho de impulso? -a captura es de 1O bits# con resoluciPn mQHima de 10#J ns. -a comparaciPn es de 1O bits# con resoluciPn mQHima de 0:: ns. ,l blo.ue PVB tiene una resoluciPn mQHima de 1: bits. ! +on"ertidor multicanal analP<ico di<ital de 1: bits. ! Puerto serie sWncrono (((P)# con modo Baestro ((P&) e &0+ (maestro ser"idor). ! )ransmisor >eceptor 3ni"ersal (Wncrono *sWncrono (3(*>) (+&) con detecciPn de L bits y de direcciPn. ! +ircuito de detecciPn de 9>8V'!83) (baRada de tensiPn).
PrQcticos "isados