Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DE
TECNOLOGA ELECTRNICA
Introduccin a AVR-STUDIO
Enunciados de Prcticas de Laboratorio Estructura de Computadores
1 Introduccin ! o"#$ti%o&
Los objetivos de la sesi ! de labo"ato"io so! los si#$ie!tes% I!t"od$&i" el e!to"!o de '"o#"a(a&i ! ) de'$"a&i ! de (i&"o&o!t"olado"es de ATMEL * lla(ado A+R,STUDIO Reali.a" la si($la&io!es de '"o#"a(as es&"itos e! le!#$aje e!sa(blado" 'a"a el (i&"o&o!t"olado" ATMEGA/01P Reali.a" la '"o#"a(a&i ! de $! (i&"o&o!t"olado" (edia!te A+R,STUDIO (edia!te la 'lata2o"(a A+R,DRAGON Reali.a" la '"o#"a(a&i !3 de'$"a&i ! de '"o#"a(as ) &o!t"ol del (i&"o&o!t"olado" desde A+R, STUDIOE! esta sesi ! de labo"ato"io se $tili.a"4 el e!to"!o de desa""ollo A+R,STUDIO 'a"a '"o#"a(a(a" el (i&"o&o!t"olado" ATMEGA/01P 5$e se e!&$e!t"a e! $!a 'la&a de desa""ollo lla(ada A"d$i!o0 D$e(ila!ove- La '"o#"a(a&i ! se "eali.a (edia!te la 'lata2o"(a de de'$"a&i !6'"o#"a(a&i ! A+R, DRAGON ta(bi7! del 2ab"i&a!te ATMELA+R,STUDIO '$ede des&a"#a"se #"at$ita(e!te de desde las '4#i!as del 2ab"i&a!te de ATMEL e! 8tt'%66999-at(el-&o(- Res'e&to a los A"d$i!os3 7stos est4! dise:ados 'a"a se" '"o#"a(ados e! $! le!#$aje de '"o#"a(a&i ! '"o'io3 t"a!s2i"i7!dose los '"o#"a(as a t"av7s de s$ '$e"to US;- E! esta sesi ! de labo"ato"io !o se $tili.a"4! estas &a"a&te"<sti&as3 es de&i"3 se '"o#"a(a"4! di"e&ta(e!te e! e!sa(blado"- Po" ello3 se 8a! "eali.ado (odi2i&a&io!es e! di&8as 'la&as- A$!5$e !o es "eleva!te 'a"a esta sesi ! de labo"ato"io3 se '$ede &o!s$lta" toda la i!2o"(a&i ! adi&io!al sob"e esta 'la&as e! 8tt'%66999-a"d$i!o-&&
* 0 Fab"i&a!te de (i&"o&o!t"olado"es3 (4s i!2o"(a&i ! e! 8tt'%66999-at(el-&o( Plata2o"(a o'e!so$"&e de '"ototi'ado ele&t" !i&o3 (as i!2o"(a&i ! e! 8tt'%66999-a"d$i!o-&&
Rev- /
Estructura de Computadores
D$"a!te la sesi ! de labo"ato"io se debe dis'o!e" de los 2i&8e"os i!di&ados e! la tabla *- Al#$!os de los 2i&8e"os debe! se" &o('letados e! el est$dio te "i&o ) ot"os se &o('leta"4! d$"a!te la sesi ! de labo"ato"io-
Cont$nido P"o#"a(a &o!tado" de > a *> P"o#"a(a &o!tado" de > a *>>> P"o#"a(a de &o!t"ol de &o!($tado"es ) leds P"o#"a(a &o!tado" de '$lsa&io!es e! ;CD
D$&cri+cin Debe &o('leta"lo el al$(!o a!tes de asisti" a la sesi ! de labo"ato"ioDebe &o('leta"lo el al$(!o a!tes de asisti" a la sesi ! de labo"ato"ioDebe &o('leta"lo d$"a!te la sesi ! de labo"ato"ioDebe &o('leta"lo d$"a!te la sesi ! de labo"ato"io-
Es o"(i,atorio t"ae" los '"o#"a(as del est$dio te "i&o '"e'a"ados 'a"a $tili.a"los d$"a!te el desa""ollo de la sesi ! de labo"ato"io-
- E&tudio t$rico
Se debe! "eali.a" dos '"o#"a(as e! le!#$aje e!sa(blado" 5$e i!&"e(e!te! $! valo" al(a&e!ado desde > 8asta $! valo" dete"(i!ado- Di&8os '"o#"a(as &$a!do te"(i!e! la &$e!ta volve"4! a e('e.a" de !$evo la &$e!ta desde >A &o!ti!$a&i ! se detalla! los '"o#"a(as% *- P"o#"a(a &o!tado" > a *>% Reali.a" $! '"o#"a(a e! e!sa(blado" 5$e &$e!te de > a *> $tili.a!do $! "e#ist"o del (i&"o&o!t"olado"- C$a!do te"(i!e la &$e!ta el '"o#"a(a debe i!ve"ti" el valo" del PINC> ) volve" a e('e.a"3 es de&i"3 volve"4 a &o!ta" de > a *> e i!ve"ti"4 el PINC>- As< i!de2i!ida, (e!tePa"a "eali.a" el '"o#"a(a &o""e&ta(e!te se debe &o!2i#$"a" el '$e"to C &o(o salida3 'a"a ello se '"o'o!e &o(e!.a" el '"o#"a(a $tili.a!do el si#$ie!te 2"a#(e!to de & di#o ?fichero contador_0_10.asm@%
; Programa contador de 0 a 10 ; Cada vez que se pase por 10 se debe invertir el PINC0 .INCLUD !m"#$pde%.inc! .D & '(P)*1+ LDI .U' '(P,-&& DD*C,'(P ; Con%igura el puerto C completo como salida
Cdi o 1. Fichero contador_0_10.asm! plantilla de cdi o para el pro rama contador 0 a 10.
0- P"o#"a(a &o!tado" > a *>>>% Reali.a" $! se#$!do '"o#"a(a si(ila" al a!te"io" do!de a8o"a la
Estructura de Computadores
"
&$e!ta debe se" desde > a *>>>- Te!#a e! &$e!ta 5$e los "e#ist"os del (i&"o&o!t"olado" so! de 1 bits ) solo '$ede! &o!ta" de > a 0AAEl 2i&8e"o debe lla(a"se contador_0_100.asm ) '$ede $tili.a" la 'la!tilla de & di#o s$(i!ist"ada-
. E&tudio $/+$ri'$nta(
El est$dio eB'e"i(e!tal se divide e! dos blo5$es3 el '"i(e"o &o!siste e! $tili.a" el '"o#"a(a "eali.ado e! el est$dio te "i&o 'a"a 2a(ilia"i.a"se &o! el e!to"!o de desa""ollo A+R,STUDIO- El se#$!do &o!sisti"4 e! &o('leta" 2"a#(e!tos de & di#o de al#$!os '"o#"a(as do!de se &o!t"ola"4 la e!t"ada ) salida del (i&"o&o!t"olado"A!tes de &o(e!.a" el est$dio eB'e"i(e!tal ase#C"ese de dis'o!e" de todos los 2i&8e"os i!di&ados e! la tabla *-
Se debe sele&&io!a" $! !$evo '"o)e&to ?bot ! %e& Pro'ect@ ) a'a"e&e"4 el si#$ie!te di4lo#o del asiste!te ?2i#$"a /@ do!de3 8ab"4 5$e i!di&a" el !o(b"e del '"o)e&to3 el di"e&to"io ) sele&&io!a" la o'&i ! #tmel #() #ssembler. A!tes de '$lsa" el bot ! %e*t sele&&io!e ade&$ada(e!te la o'&i ! Create initial file3 tie!e dos o'&io!es3 sele&&io!a" o !o sele&&io!a" di&8a o'&i ! ?obse"ve la (a"&a "oja e! la 2i#$"a 0@% *- Si !o sele&&io!a esta o'&i !3 el '"o)e&to se &"ea"4 si! !i!#C! a"&8ivo de teBto aso&iado- Esto le 'e"(ite 'oste"io"(e!te $tili.a" $! 2i&8e"o de teBto 5$e te!#a e! si dis&o &o! el '"o#"a(a )a es&"ito- De esta 2o"(a evita te!e" 5$e te&lea" el '"o#"a(a de !$evo 0- Si lo sele&&io!a3 se &"ea"4 $! !$evo 2i&8e"o va&<o e! el 5$e debe"4 te&lea" el '"o#"a(a- Si )a t"ae
Estructura de Computadores
el '"o#"a(a es&"ito e! ot"o 2i&8e"o te!d"4 5$e &o'ia" ) 'e#a" el & di#o desde el blo& de !otas a A+R,STUDIO-
T"as es&o#e" la o'&i ! 5$e le i!te"ese e! &ada &aso3 t"as '$lsa" el bot ! %e*t a'a"e&e"4 la Clti(a ve!ta!a de asiste!te- A5$< debe sele&&io!a" las o'&io!es #() ,imulator ) #T-e a"2.P tal ) &o(o se ($est"a e! la 2i#$"a /-
E! &aso de !o 8abe" sele&&io!ado la o'&i ! Create initial file te!d"4 $! '"o)e&to va&<o al 5$e 8a) 5$e a:adi" $! '"o#"a(a '"evia(e!te es&"ito e! $! 2i&8e"o- Pa"a "eali.a" esto3 8a) 5$e $tili.a" el bot ! de"e&8o del "at ! e! la "a<. del 4"bol de '"o)e&to ) a'a"e&e"4 $! (e!C 2lota!te &o(o el (ost"ado e! la 2i#$"a E- Co! la o'&i ! Add 2iles to '"oje&t 'ode(os sele&&io!a" del dis&o el 2i&8e"o &o! el '"o#"a(a e! e!sa(blado" 5$e se desee-
Estructura de Computadores
T"as estos 'asos a'a"e&e e! el 4"bol de '"o)e&to el !o(b"e del 2i&8e"o e!sa(blado" sob"e el 5$e t"abaja"- P$lsa!do &o! el "at ! dos ve&es sob"e este !o(b"e del 2i&8e"o a'a"e&e $!a ve!ta!a e! la 5$e '$ede edita" el & di#o e!sa(blado" del '"o#"a(aU!a ve. se 8a te"(i!ado de es&"ibi" el '"o#"a(a 8a) 5$e "eali.a" el e!sa(blado del & di#o- Este 'aso se "eali.a e! (e!C ;$ild3 o'&i ! ;$ild- Ta(bi7! '$ede $tili.a" el i&o!o de la ba""a de 8e""a(ie!tas-
Si el & di#o es &o""e&to debe a'a"e&e" e! la 'a"te i!2e"io" i!2o"(a&i ! "e2e"e!te al '"o#"a(a e!sa(blado%
C/0Users0paulino0Documents0edc10edc1.asm123/ Including %ile 4C/0Program &iles 15$6307tmel078* 'ools07vr7ssembler#07ppnotes0m16$D &.INC4 C/0Users0paulino0Documents0edc10edc1.asm1#"3/ No C/0Users0paulino0Documents0edc10edc1.eep P*.( data, deleting
7'mega16$ memor9 use summar9 :b9tes;/ <egment =egin nd Code Data Used <ize Use> ??????????????????????????????????????????????????????????????? :.cseg; 05000000 050000## "2 0 "2 16"$2 0.#> :.dseg; 05000100 05000100 0 0 0 10#2 0.0> :.eseg; 05000000 05000000 0 0 0 @1# 0.0> 7ssembl9 complete, 0 errors. 0 Aarnings
E! &aso de '"od$&i"se e""o"es3 e! la ve!ta!a i!2e"io" a'a"e&e"4 el !C(e"o de l<!ea del '"o#"a(a do!de est4 el e""o"-
Estructura de Computadores
SRAM a 'a"ti" de la di"e&&i ! I*>>- Se debe "e&o"da" 5$e 8asta la di"e&&i ! IJJ est4! (a'eados los 'e"i27"i&os3 'o" lo 5$e !o se debe $sa" &o(o es'a&io de al(a&e!a(ie!to 'a"a los '"o#"a(asPa"a &o('"oba" el 2$!&io!a(ie!to del '"o#"a(a se debe "eali.a" la eje&$&i ! 'aso a 'aso obse"va!do &o(o &a(bia! los valo"es de los "e#ist"os ) el PINC>- Ka) 5$e des'le#a" los "e#ist"os e! la ve!ta!a del '"o&esado" ) el '$e"to C e! la ve!ta!a de E6S 'a"a vis$ali.a" los "e#ist"os del '$e"to-
sit$ado e!
la 'a"te i.5$ie"da i!di&a la si#$ie!te i!st"$&&i ! 5$e se eje&$ta"4- E! el (e!C Deb$# ?2i#$"a L@ se '$ede! e!&o!t"a" dive"sas a&&io!es Ctiles d$"a!te la si($la&i !- E! la eje&$&i ! 'aso a 'aso las 2$!, &io!es (4s $tili.adas so!% Ste' Ove"% ?i&o!o @ Eje&$ta i!st"$&&io!es 8asta la si#$ie!te l<!ea3 e! &aso de se" $!a lla(ada a
$!a s$b"$ti!a3 la eje&$ta &o('leta(e!te 'a"a ava!.a" a la si#$ie!te l<!ea de & di#o Ste' I!to% ?i&o!o @ Eje&$ta $!a i!st"$&&i !3 e! &aso se eBisti" $!a lla(ada a s$b"$ti!a3 "eali.a
la lla(ada ) se sitCa e! la '"i(e"a i!st"$&&i ! de la s$b"$ti!a Ste' O$t% ?i&o!o s$b"$ti!a Reset% ?i&o!o '"o#"a(a Too#le ;"eaM'oi!t% ?i&o!o &o(a!do )un ?i&o!o @ Estable&e $! '$!to de "$'t$"a de eje&$&i !- C$a!do se eje&$te el @ Rei!i&ia la si($la&i ! ) sitCa la eje&$&i ! e! la '"i(e"a i!st"$&&i ! del @ Eje&$ta i!st"$&&io!es 8asta e!&o!t"a" $!a i!st"$&&i ! de "eto"!o de
Estructura de Computadores R$! to C$"so"% ?i&o!o @ Eje&$ta i!st"$&&io!es 8asta la i!st"$&&i ! e! la 5$e est4 el &$"so"-
A &o!ti!$a&i ! i!i&ie la si($la&i ! &o! Sta"t Deb$##i! ) eje&$te 'aso a 'aso el '"o#"a(a del est$dio te "i&o- P$ede $tili.a" la te&la F*> 'a"a !o te!e" 5$e $tili.a" los (e!Cs- Co('"$ebe 5$e s$ '"o#"a(a o'e"a &o""e&ta(e!te des'le#a!do el '$e"to C e! la ve!ta!a E6S ) "eali&e las si#$ie!tes ta"eas% *- E!sa(ble ) si($le el '"i(e" '"o#"a(a del est$dio te "i&o ?contador_0_10.asm@ '"o#"a(a ) obte!#a el !C(e"o de &i&los 5$e ta"da el s$ '"o#"a(a e! &o!($ta" de valo" el PINC>0- Cal&$le la 2"e&$e!&ia del se:al &$ad"ada 5$e se #e!e"a"4 sabie!do 5$e el '"o&esado" 2$!&io!a a $!a 2"e&$e!&ia de *M8.A 'a"ti" de la 2"e&$e!&ia ) el !C(e"o de &i&los 5$e ta"da s$ '"o#"a(a e! &o!($ta" el PINC> '$ede "eali.a" este &4l&$lo/- Utili&e la o'&i ! A$toSte' ?i&o!o @ ) &o('"$ebe la eje&$&i !
Fi ura 1. -en8 de depuracin.
Estructura de Computadores
AREF GND P;A P;E P;/ P;0 P;* P;> PC> PC* PC0 PC/ PCE PCA PDN PDL PDA PDE PD/ PD0 PD* PD>
?a@
?b@
PC0 PC/
PCE PCA GND GND +IN PC> PC* PC0 PC/ PCE PCA ?a@ P;* P;>
AREF GND P;A P;E P;/ P;0 P;* P;> PDN PDL PDA PDE PD/ PD0 PD* PD>
?b@
Fi ura .. a9 Placa de e*pansin E:, para #rduino. b9 4etalle de cone*in de los se mentos a los puertos.
Estructura de Computadores
<
La 'la&a A+R,DRAGON dis'o!e de dos leds3 i!i&ial(e!te se il$(i!a! $!o e! ve"de ) ot"o e! "ojo- El led de &olo" "ojo &a(bia"4 de &olo" i!di&a!do el estado de la &o($!i&a&i ! &o! A+R,STUDIO- La tabla 0 ($est"a el si#!i2i&ado de los di2e"e!tes &olo"es de di&8o led3 debe(os obse"va"lo d$"a!te los si#$ie!tes 'asos 'a"a dete&ta" 'osibles '"oble(as e! la '"o#"a(a&i ! del (i&"o&o!t"olado"-
D$&cri+cin E! "e'oso3 !o 8a) &o!eBi ! &o! A+R St$dio E! "e'oso3 &o!e&tado a A+R St$dio T"a!s2i"ie!do datos I!i&iali.a&i ! o a&t$ali.a&i ! del 2i"(9a"e
A!tes de "eali.a" la '"o#"a(a&i ! se debe ve"i2i&a" la &o""e&ta &o!2i#$"a&i ! de A+R,STUDIO "eali.a!do $!a '"$eba de &o!eBi ! &o! el (i&"o&o!t"olado"- A&&edie!do al (e!C Tools 8a) 5$e $sa" el s$b(e!C P"o#"a( A+R )3 o'&i ! Co!!e&t- A'a"e&e"4 el di4lo#o (ost"ado e! la 2i#$"a J- Alte"!ativa(e!te3 di&8o di4lo#o se '$ede obte!e" de (a!e"a di"e&ta $tili.a!do el bot ! de la ba""a de 8e""a(ie!tas-
E! este di4lo#o 8a) 5$e estable&e" la &o!2i#$"a&i ! i!di&ada e! la 2i#$"a J% 'lata2o"(a A+R,DRAGON ) '$e"to US;- T"as '$lsa" el bot ! Connect3 si la &o!eBi ! es &o""e&ta3 debe a'a"e&e" a$to(4ti&a(e!te el di4lo#o (ost"ado e! la 2i#$"a *> ) el led "ojo de A+R,DRAGON se a'a#a"4-
E! &aso de !o a'a"e&e" a$to(4ti&a(e!te el dialo#o de la 2i#$"a *> se '$ede $tili.a" el bot ! de la ba""a de 8e""a(ie!tas o3 la o'&i ! de (e!C Tools s$b(e!C P"o#"a( A+R- T"as esto 2i!al(e!te a'a"e&e"4
la ve!ta!a (ost"ada e! la 2i#$"a *>De las (Clti'les 'esta:as 5$e &o!tie!e s lo $tili.a"e(os la '"i(e"a ) se#$!da% -ain ) Pro ram- E! '"i(e" l$#a" se "eali.a"4 $!a '"$eba de &o($!i&a&i ! si#$ie!do estos 'asos% *- Sele&&io!a" la 'esta:a -ain0- Sele&&io!a" el (i&"o&o!t"olado" &o""e&to del &$ad"o des'le#able i!di&ado &o! 4e=ice and ,i nature >$tes. E! estas 'la&as dis'o!e(os del (i&"o&o!t"olado" ATMe#a/01P-
Estructura de Computadores
10
/- P$lsa" el bot ! )ead ,i nature- El '"o#"a(a debe "es'o!de" &o! el teBto ,i nature matches selected de=ice- Si "es'o!die"a &o! $! e""o"3 se debe volve" a des'le#a" el &$ad"o sele&to" de (i&"o&o!t"olado"3 sele&&io!a" el &o""e&to3 ) volve" a "eali.a" el test de &o($!i&a&i !-
Fi ura 11. Pesta/a de pro ramacin de la =entana de pro ramacin del microcontrolador.
El si#$ie!te 'aso &o!siste e! "eali.a" la '"o#"a(a&i ! del (i&"o&o!t"olado" &o! el & di#o 5$e se 8a e!sa(blado3 'a"a ello3 sele&&io!e la 'esta:a Pro ram- Si el e!sa(blado se "eali. &o! 7Bito 8ab"4 #e!e"ado $! 2i&8e"o &o! eBte!si ! .he* de!t"o del di"e&to"io del '"o)e&to ) &o! el !o(b"e del '"o)e&toE! la 2i#$"a ** se ($est"a el di4lo#o de '"o#"a(a&i ! do!de 8a) 5$e sele&&io!a" el 2i&8e"o .he*. Este di4lo#o tie!e t"es &$ad"os do!de se '$ede sele&&io!a" $! 2i&8e"o% Flash! EEP)6- ) ELF- Ka) 5$e $tili.a" la se&&i ! se&&i ! Flash ) el bot ! de sele&&i ! de 2i&8e"o ?i!di&ado &o! la 2le&8a "oja e! la
Estructura de Computadores
11
2i#$"a **@- T"as esto basta &o! '$lsa" el bot ! Pro ram 'a"a "eali.a" la '"o#"a(a&i ! del (i&"o&o!t"olado"U!a ve. "eali.ada la '"o#"a(a&i ! 8a) 5$e &o('"oba" si el '"o#"a(a se est4 eje&$ta!do &o""e&ta(e!tePa"a ello3 debe &o!e&ta" $! &a!al del os&ilos&o'io e! el PINC> ) &o('"oba" si se vis$ali.a $!a se:al &$ad"ada e!t"e > ) A voltios ?!o olvide &o!e&ta" la tie""a del os&ilos&o'io@- Utili&e el es5$e(a de la 2i#$"a 1 'a"a "eali.a" las &o!eBio!es ) "eali&e las si#$ie!tes ta"eas% *- P"o#"a(e e! el (i&"o&o!t"olado" &o! el '"i(e" '"o#"a(a ?contador 0_10.asm@ ) &o('"$ebe &o! el os&ilos&o'io la 2"e&$e!&ia de la se:al &$ad"ada #e!e"ada e! el PINC>0- Utili.a!do el se#$!do '"o#"a(a del est$dio te "i&o ?contador_0_1000.asm@3 &o('"$ebe &o! el os&ilos&o'io la 2"e&$e!&ia de la se:al &$ad"ada #e!e"ada e! el PINC>/- De 2o"(a eB'e"i(e!tal ) a)$dado 'o" el "es$ltado a!te"io"3 (odi2i5$e el valo" de 2i!al de &$e!ta del '"o#"a(a 8asta &o!se#$i" 5$e la 2"e&$e!&ia de di&8a se:al sea a'"oBi(ada(e!te AKHP"o#"a(e el (i&"o&o!t"olado" se#C! (odi2i5$e el '"o#"a(a 8asta &o!se#$i" vis$ali.a" la 2"e&$e!&ia de AK. e! el os&ilos&o'ioE- Modi2i5$e el '"o#"a(a de 2o"(a 5$e el PIN 5$e &o!($te sea el PIN C03 de esta 2o"(a debe obse"va" el LED a(a"illo 'a"'adea" A ve&es 'o" se#$!do-
Pu$rto PORTC
0it 0
Co'+on$nt$ Led
PORTC
Led
Estructura de Computadores Pu$rto PORTC 0it E Co'+on$nt$ Co!($tado" Con)i,uracin Co(o e!t"ada DDRCEO> 1unciona'i$nto PINCEO> '$lsado PINCEO* !o '$lsado PINCAO> '$lsado PINCAO* !o '$lsado
12
PORTC
Co!($tado"
Tabla ". Confi uracin de los puertos e:s de los leds $ conmutadores
Utili.a!do el la 'la!tilla de & di#o / ?2i&8e"o conmutadores.asm@ debe "eali.a" la si#$ie!tes ta"eas% *- C"ee $! !$evo '"o)e&to $tili.a!do el & di#o s$(i!ist"ado e! el 2i&8e"o conmutadores.asm ) &o('lete el '"o#"a(a0- Utili&e el si($lado" 'a"a &o('"oba" 5$e 2$!&io!a &o""e&ta(e!te- Debe &o!($ta" (a!$al(e!te los 'i!es PCE ) PCA desde el si($lado"- Esto se &o!si#$e des'le#a!do el '$e"to C e! 4"bol de dis'ositivos 5$e ($est"a el A+R,STUDIO e! la 'a"te de"e&8a d$"a!te la si($la&i ! ) '$lsa!do el bot ! del "at ! sob"e el &$ad"o 5$e "e'"ese!ta el bit &o""es'o!die!te- C$a!do el &$ad"o est4 "elle!o de &olo" !e#"o si#!i2i&a"a 5$e el bit est4 a *3 si est4 e! bla!&o es >/- U!a ve. &o('"obado e! el si($lado" el &o""e&to 2$!&io!a(ie!to3 "e'ita los 'asos "eali.ados e! la se&&i ! /-*-0- 'a"a '"o#"a(a" el (i&"o&o!t"olado" &o! este !$evo '"o#"a(a- Co('"$ebe 5$e 2$!&io!a &o""e&ta(e!te '$lsa!do los &o!($tado"es-
.include !m"#$pde%.inc! .de% temp ) r16 BC De%ine un registro para uso temporal se Da utilizado el r16 para poder emplear los modos con direccionamiento indirecto. CB ldi out ldi out temp,-c ddrc,temp temp,-"0 portc,temp BB Con%igura portc:"/#; como salidas 9 el resto como entradas BB 7ctiva las resistencias de pull?up del portc:1/0;
bucle: ...
BB Debe completar un bucle que lea continuamente PC@ 9 PC2. BB Cuando cambie el pin PC@ a 1 debe invertir el valor del pin PC2 BB Cuando cambie el pin PC2 a 1 debe invertir el valor del pin PC" BB l bucle debe ser in%inito BB scriba el cEdigo a partir de aquF
Cdi o ". Fichero conmutadores.asm! plantilla de cdi o para el controlador de pulsadores $ leds.
Estructura de Computadores Pu$rto PORTD 0it >,N Co'+on$nt$ Se#(e!tos de los dis'la)s Dis'la) > Con)i,uracin Co(o salida DDRDO>BFFP 1unciona'i$nto PORTDFO> a'a#ado PORTDFO* e!&e!dido PORT;>O> e!&e!dido PORT;>O* a'a#ado PORT;*O> e!&e!dido PORT;*O* a'a#ado
1"
PORT;
>
PORT;
Dis'la) *
Utili.a!do el 2i&8e"o contador_bcd.asm (ost"ado e! el listado de & di#o E debe "eali.a" las si#$ie!tes ta"eas% *- Co('leta" la s$b"$ti!a de i!i&iali.a&i ! de '$e"tos lla(ada iniciali?a_puertos. P$ede $tili.a" &o(o eje('lo de i!i&iali.a&i ! la $tili.ada e! el '"o#"a(a de la se&&i ! a!te"io" ?listado de & di#o /@Debe i!i&iali.a" los '$e"tos &o! la si#$ie!te &o!2i#$"a&i !% *-*- E! el '$e"to C los 'i!es / ) 0 debe! se" salidas3 el "esto debe! se" e!t"adas*-0- El '$e"to D est4 &o!e&tado a los se#(e!tos del dis'la)3 debe! se" todos salida*-/- El '$e"to ; &o!t"ola e! e!&e!dido o a'a#ado &o('leto de &ada $!o de los dos dis'la)s- Debe &o!2i#$"a"lo &o(o salida3 as<3 'o!ie!do $! > e! PORT;> se a&tiva"4 el dis'la) > ) 'o!ie!do $! > e! PORT;* se a&tiva"4 el dis'la) *0- Co('leta" la s$b"$ti!a 5$e &"ea $!a tabla 'a"a el &o!ve"tido" de N se#(e!tos lla(ada iniciali?a_tabla7se . Esta tabla &o!tie!e los & di#os N se#(e!tos de los d<#itos > Q J- Al es&"ibi" $! ele(e!to de esta tabla e! el '$e"to D a'a"e&e"4 $! !C(e"o ;DC e! los dis'la)s- Co(o eje('lo se ($est"a! 0 !C(e"os3 do!de se '$ede obse"va" la &o""es'o!de!&ia de los bits a $!o &o! la a&tiva&i ! de los se#(e!tos (ost"ados e! la 2i#$"a 1- Co('lete los !C(e"os 5$e 2alta!3 del 0 al J/- El b$&le '"i!&i'al del '"o#"a(a &o(ie!.a a 'a"ti" de la eti5$eta bucle- A5$< debe es&"ibi" el '"o#"a(a 5$e &$e!te las '$lsa&io!es dete&tada e! $! &o!($tado"- El '"o#"a(a se '$ede "eali.a" si#$ie!te estos 'asos% /-*- Es&"ibi" $! b$&le 5$e es'e"e 8asta dete&ta" 5$e el &o!($tado" se 8a '$lsado- U! valo" * e! el 'i! &o""es'o!die!te al &o!($tado" i!di&a 5$e se 8a '$lsado/-0- T"as dete&ta" la '$lsa&i ! 8a) 5$e i!&"e(e!ta" el &o!tado" e! */-/- Co('"oba" si el &o!tado" 8a lle#ado a *> 'a"a 'o!e"lo de !$evo a &e"o/-E- Es'e"a" e! $! b$&le 8asta 5$e se s$elte e! bot !3 2<jese 5$e este 2"a#(e!to de & di#o )a est4 8e&8o ) &o""es'o!de a la eti5$eta espera. E- Co!st"$)a el '"o#"a(a ) '"o#"a(e el (i&"o&o!t"olado" 'a"a &o('"oba" si 2$!&io!a- Si !o o'e"a &o""e&ta(e!te '$ede $tili.a" el si($lado" 'a"a dete&ta" los e""o"es- Te!#a e! &$e!ta 5$e a ve&es eBiste! '"oble(as de "ebotes e! los &o!($tado"es3 esto si#!i2i&a 5$e3 al '$lsa" $!a ve. el &o!($tado" se dete&ta! va"ias '$lsa&io!es ) el valo" (ost"ado e! el dis'la) se i!&"e(e!ta e! (4s de $!a $!idad-
Estructura de Computadores
1+
.include !m"#$pde%.inc! .de% temp ) r16 BC De%ine un registro para uso temporal se Da utilizado el r16 para poder emplear los modos con direccionamiento indirecto.CB .de% contador ) r1G BB Cuenta el nHmero de pulsaciones .de% cero) r1$ .dseg .org -100 TABLA7SEG: .b9te 10 BB <e reservan 10 b9tes para una tabla de valores del convertidor binGseg .cseg .org -0 rcall inicializaIpuertos rcall inicializaItablaGseg bucle: rcall displa9 BB *utina que inicializa los puertos BB *utina que inicializa la tabla del convertidor BB Programa principal BB *epresentamos el valor de contador en el displa9
BC 7quF debe escribir el programa que Daga lo siguiente/ 1. sperar Dasta que se pulse un pulsador #. <i se pulsa el pulsador incrementar el contador ". <i el contador llega a 10 Da9 que ponerlo a cero CB ... espera: sbis rJmp rJmp pinc,2 espera bucle BB ste %ragmento de cEdigo esperamos a que se suelte sA1 BB si no se pone se incrementarFa mucDas veces el contador BB en el momento que se pulse
inicializa_puertos: BB 7quF debe con%igurar portc:"/#; como salidas 9 el resto como entradas ... BB 7quF debe con%igurar puerto D 9 el puerto = completo como salida out ldi ret portc,temp temp,-%% BB <e 7ctivan las resistencias de pull?up del portc:1/0; 9 apaga leds
BC La siguiente rutina inicializa la tabla de G segmentos. sta rutina serFa innecesaria si se Dubiera utilizado la memoria de programa para almacenarla CB inicializa_tabla7seg: ldi zD,DigD1'7=L7G< K3 ldi zl,loA1'7=L7G< K3 ldi st ldi st temp,0b01111110 zM,temp temp,0b00110000 zM,temp BB BB BB BB Utilizamos L para apuntar a la tabla loA13 DigD13 son directivas que devuelven el b9te baJo o el b9te alto de la direcciEn que se le pasa como argumento respectivamente BBCEdigo G segmentos del 0 BBCEdigo G segmentos del 1
BC 7quF debe completar los cEdigos de los dFgitos que %altan/ del # al + CB ... ret BC La siguiente rutina permite representar un nHmero en el displa9 de G segmentos. Utiliza para ello el registro L, que inicialmente apunta a la tabla de G segmentos. 7 este registro se le suma Cont que es una variable entre 0 9 + 9, despuNs, mediate acceso indirecto se carga el cEdigo G segmentos correspondiente en el puerto.CB display: ldi ldi add adc zD,DigD1'7=L7G< K3 zl,loA1'7=L7G< K3 zl,contador BB l registro L es de 16 bits, mientras que contador es de $ zD,cero BB No olvidar sumar el acarreo que se genera del b9te baJo a LO
Estructura de Computadores
10