DEPARTAMENTO
ELECTRÓNICA DE TECNOLOGÍA E
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA INFORMÁTICA
Introducción a AVR-STUDIO Enunciados de Prácticas de Laboratorio Estructura de Computadores
1 Introd Introducc ucción ión ! o"#$ti% o"#$ti%o& 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 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 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 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, STUDIO-
E! esta sesi! de labo"ato" labo"ato"io io se $tili.a"4 $tili.a"4 el e!to"!o e!to"!o de desa""ollo desa""ollo A+R,STUDIO +R,STUDIO 'a"a '"o#"a(a(a '"o#"a(a(a"" el (i&"o& (i&"o&o!t o!t"ol "olado ado"" ATMEGA TMEGA/01 /01P P 5$e se e!&$e! e!&$e!t"a t"a e! $!a 'la&a 'la&a de desa"" desa""oll ollo o lla(ad lla(ada a A"d$i! A"d$i!o o0 D$e(ila!ov D$e(ila!ovee- La '"o#"a(a&i '"o#"a(a&i! ! se "eali.a "eali.a (edia!te (edia!te la 'lata2o"( 'lata2o"(a a de de'$"a&i! de'$"a&i!6'"o# 6'"o#"a(a "a(a&i! &i! A+R, DRAGON ta(bi7! del 2ab"i&a!te ATMEL A+R,STUDIO A+R,STUDIO '$ede des&a"#a"se #"at$ita(e!te #"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 8tt'%66999-at(el-&o( Res'e&to a los A"d$i!os3 A"d$i!os3 7stos 7stos est4! dise:ados dise:ados 'a"a se" '"o#"a(ado '"o#"a(adoss e! $! le!#$aje le!#$aje de '"o#"a(a&i '"o#"a(a&i! ! '"o'io3 '"o'io3 t"a!s2i"i7 t"a!s2i"i7!dose !dose los '"o#"a(as '"o#"a(as a t"av7s de s$ '$e"to '$e"to US;- E! esta sesi! de labo"ato"io !o se $tili.a"4! estas &a"a&te"
Fab"i&a ab"i&a!te !te de (i&"o&o (i&"o&o!t" !t"ola olado" do"es3 es3 (4s i!2o"( i!2o"(a&i a&i! ! e! 8tt'%66999-at(el-&o( Plata2o"(a Plata2o"(a o'e!so$"&e o'e!so$"&e de '"ototi'ado '"ototi'ado ele&t"!i ele&t"!i&o3 &o3 (as (as i!2o"(a&i i!2o"(a&i! ! e! 8tt'%66999-a"d$i!o-&&
Rev- /
Estructura de Computadores
2
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-
No'"r$ d$( )ic*$ro
Cont$nido
D$&cri+ción
P"o#"a(a &o!tado" de > a *>
Debe &o('leta"lo el al$(!o a!tes de asisti" a la sesi! de labo"ato"io-
P"o#"a(a &o!tado" de > a *>>>
Debe &o('leta"lo el al$(!o a!tes de asisti" a la sesi! de labo"ato"io-
&o!($tado"es-as(
P"o#"a(a de &o!t"ol de &o!($tado"es ) leds
Debe &o('leta"lo d$"a!te la sesi! de labo"ato"io-
&o!tado"=b&d-as(
P"o#"a(a &o!tado" de '$lsa&io!es e! ;CD
Debe &o('leta"lo d$"a!te la sesi! de labo"ato"io-
&o!tado"=>=*>-as( &o!tado"=>=*>>>-as(
Tabla 1. Ficheros necesarios durante la sesión de laboratorio.
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
Códio 1. Fichero contador_0_10.asm! plantilla de códio para el prorama 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 0- El 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#"ese de dis'o!e" de todos los 2i&8e"os i!di&ados e! la tabla *-
3.1. Introducción a AVR-STUDIO Se $tili.a"4! los '"o#"a(as "eali.ados e! el est$dio te"i&o e! el e!to"!o de desa""ollo A+R,STUDIOLos 'asos 'a"a &"ea" $! '"o)e&to !$evo ) 'ode" es&"ibi" el &di#o del '"o#"a(a se detalla a &o!ti!$a, &i! e! esta se&&i!U!a ve. i!i&iado A+R STUDIO a'a"e&e $! asiste!te 'a"a &"ea&i! o a'e"t$"a de $! !$evo '"o)e&to tal ) &o(o se ($est"a e! la 2i#$"a *- Si !o a'a"e&ie"a el asiste!te 8a) 5$e a&&ede" al (e! P"oje&t ) sele&&io!a" la o'&i! P"oje&t i.a"d-
Fiura 1. #sistente para creación o apertura de un pro$ecto.
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!#! 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&
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-
Fiura 2. ,elección de tipo $ nombre de pro$ecto.
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 lti(a ve!ta!a de asiste!te- A5$< debe sele&&io!a" las o'&io!es #() ,imulator ) #T-ea"2P tal ) &o(o se ($est"a e! la 2i#$"a /-
Fiura ". ,elección de tipo $ nombre de pro$ecto.
E! &aso de !o 8abe" sele&&io!ado la o'&i! Create initial file te!d"4 $! '"o)e&to va&
Fiura +. #/adir ficheros al pro$ecto.
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! ;$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/UserspaulinoDocumentsedc1edc1.asm23/ Including %ile 4C/Program &iles 5$637tmel78* 'ools7vr7ssembler#7ppnotesm16$D&.INC4 C/UserspaulinoDocumentsedc1edc1.asm#"3/ No P*( data, deleting C/UserspaulinoDocumentsedc1edc1.eep 7'mega16$ memor9 use summar9 :b9tes/ ??????????????????????????????????????????????????????????????? :.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
Códio 2. ,alida de la construcción del prorama contador.
E! &aso de '"od$&i"se e""o"es3 e! la ve!ta!a i!2e"io" a'a"e&e"4 el !(e"o de l
.11 E#$cución $n $( &i'u(ador d$( +ro,ra'a A+R,STUDIO i!&l$)e $! si($lado" &o! el &$al se '$ede vis$ali.a" el estado del (i&"o&o!t"olado" d$"a!te la eje&$&i! de $! '"o#"a(a- E!t"e las dive"sas o'&io!es 5$e o2"e&e el si($lado" !os &e!t"a"e(os e! la 'osibilidad de eje&$ta" i!st"$&&i! a i!st"$&&i! $! '"o#"a(a ) la 'osibilidad de eje&$ta" $! '"o#"a(a 8asta 5$e lle#$e a $!a i!st"$&&i! dete"(i!adaPa"a &o(e!.a" la si($la&i! del '"o#"a(a 8a) 5$e a&&ede" al (e! Deb$# ) $tili.a" la o'&i! Sta"t Deb$##i!#- T"as esto a'a"e&e! di2e"e!tes ve!ta!as ?ve" 2i#$"a @ 5$e &o('o!e! el si($lado"% ▪
+e!ta!a del P"o&esado"% Sit$ada e! la 'a"te i.5$ie"da3 ($est"a el estado i!te"!o de '"o&esado" ?F"e&$e!&ia3 &o!tado" de &i&los del "eloj@ ) el &o!te!ido de los "e#ist"os% PC3 SP3 3 3 H3 SREG ) los /0 "e#ist"os i!te"!os-
▪
+e!ta!a de dis'ositivos de E6S% Sit$ada e! la 'a"te s$'e"io" de"e&8a3 ($est"a e! 2o"(a de 4"bol todos los dis'ositivos 5$e tie!e el (i&"o&o!t"olado" sele&&io!ado- E! esta '"i(e"a '"4&ti&a de debe sele&&io!a" el '$e"to C3 de i#$al (odo 5$e se 8a sele&&io!ado la e! la 2i#$"a - De esta 2o"(a se vis$ali.a! los t"es "e#ist"os 5$e 2o"(a! el '$e"to-
▪
+e!ta!a de vis$ali.a&i! de Me(o"ia% Sit$ada e! la 'a"te i!2e"io" de"e&8a3 'e"(ite ve" e! tie('o "eal el &o!te!ido de la (e(o"ia del (i&"o&o!t"olado"- Se '$ede sele&&io!a" e!t"e (e(o"ia de '"o#"a(a3 (e(o"ia SRAM ) EEPROM- P"i!&i'al(e!te i!te"esa"4 ve" el &o!te!ido de la (e(o"ia
Estructura de Computadores
SRAM a 'a"ti" de la di"e&&i! *>>- Se debe "e&o"da" 5$e 8asta la di"e&&i! JJ 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-
Fiura . (isión lobal del modo de depuración de #(),T3456.
El si($lado" 'e"(ite la eje&$&i! i!st"$&&i! a i!st"$&&i! del '"o#"a(a- El i!di&ado" 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! Deb$# ?2i#$"a @ se '$ede! e!&o!t"a" dive"sas a&&io!es tiles 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
$!a s$b"$ti!a3 la eje&$ta &o('leta(e!te 'a"a ava!.a" a la si#$ie!te l
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 sita e! la '"i(e"a i!st"$&&i! de la s$b"$ti!a▪
Ste' O$t% ?i&o!o
@ Eje&$ta i!st"$&&io!es 8asta e!&o!t"a" $!a i!st"$&&i! de "eto"!o de
s$b"$ti!a▪
Reset% ?i&o!o
@ Rei!i&ia la si($la&i! ) sita la eje&$&i! e! la '"i(e"a i!st"$&&i! del
'"o#"a(a▪
Too#le ;"ea'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
@3 el '"o#"a(a se eje&$ta"4 8asta e!&o!t"a" al#! '$!to de "$'t$"a-
Estructura de Computadores ▪
R$! to C$"so"% ?i&o!o
7
@ 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!s- 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 !(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 !(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!
a!i(ada 5$e "eali.a el si($lado" del '"o#"a(a Fiura . -en8 de depuración.
.1 Pro,ra'ación d$( 'icrocontro(ador El si#$ie!te 'aso &o!siste e! la '"o#"a(a&i! &o! el '"o#"a(ado" A+R,DRAGON ?2i#$"a a@ de $! (i&"o&o!t"olado" ATMEGA/01P e! $!a 'la&a A"d$i!o ?2i#$"a b@- El e!to"!o de '"$ebas $tili.ado e! esta sesi! de labo"ato"io est4 2o"(ada 'o" t"es &o('o!e!tes% '"o#"a(ado" A+R,DRAGON3 'la&a de '"ototi'o A"d$i!o D$e(ila!ove ) 'la&a de eB'a!si! 'a"a A"d$i!o &o! &o('o!e!tes E6SLa 'la&a de eB'a!si! (ost"ada e! la 2i#$"a 1 est4 &o!e&tada a la 'la&a A"d$i!o3 5$eda!do o&$ltos todos los &o('o!e!tes del A"d$i!o- E! la 'la&a de eB'a!si! est4! dis'o!ibles todos los '$e"tos del (i&"o&o!t"olado" e! los late"ales de la 'la&a3 ade(4s3 estos '$e"tos ta(bi7! est4! &o!e&tados a dive"sos &o('o!e!tes &o(o so!3 leds3 dis'la)s3 &o!($tado"es3 et&- Estos &o('o!e!tes se $tili.a"4! 'oste"io"(e!te 'a"a "eali.a" '"o#"a(as 5$e &o!t"ole! la e!t"ada6salidaE! '"i(e" l$#a" se debe! &o!e&ta" a(bas 'la&as a los &o!e&to"es US;- No es !e&esa"ia !i!#$!a ali(e!ta&i! adi&io!al )a $tili.a! los + s$(i!ist"ados 'o" el ;$s US;- T"as la &o!eBi! US; '$ede a'a"e&e" e! el o"de!ado" al#! &$ad"o de di4lo#o i!di&a!do 5$e se 8a e!&o!t"ado !$evo 8a"d9a"e- Si esto o&$""ie"a3 debe i!stala" los &o!t"olado"es3 !o &a!&ele la i!stala&i! o te!d"4 '"oble(as de '"o#"a(a&i! del (i&"o&o!t"olado"-
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"-
Co(or
D$&cri+ción
Rojo
E! "e'oso3 !o 8a) &o!eBi! &o! A+R St$dio
A'a#ado +e"de A(a"illo
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
Tabla 2. 5ndicaciones del led de #()4)#;6%.
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! Tools 8a) 5$e $sa" el s$b(e! 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-
Fiura <. ,elección del proramador $ el puerto
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! Tools s$b(e! 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 (lti'les 'esta:as 5$e &o!tie!e slo $tili.a"e(os la '"i(e"a ) se#$!da% -ain ) Proram- 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 ,inature >$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 ,inature- El '"o#"a(a debe "es'o!de" &o! el teBto ,inature 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!-
Fiura 10. Pesta/a principal de la =entana de proramación del microcontrolador.
Fiura 11. Pesta/a de proramación de la =entana de proramación 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 Proram- 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! Proram '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 > ) 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 KHP"o#"a(e el (i&"o&o!t"olado" se#! (odi2i5$e el '"o#"a(a 8asta &o!se#$i" vis$ali.a" la 2"e&$e!&ia de K. e! el os&ilos&o'io- Modi2i5$e el '"o#"a(a de 2o"(a 5$e el PIN 5$e &o!($te sea el PINC03 de esta 2o"(a debe obse"va" el LED a(a"illo 'a"'adea" ve&es 'o" se#$!do-
3.2. Realización de diversos prora!as de control "#S E! esta se&&i! se va! "eali.a" $!a se"ie de '"o#"a(as 'a"a &o!t"ola" los &o('o!e!tes de e!t"ada salida de la 'la&a de desa""ollo% &o!($tado"es3 leds ) dis'la)s se#(e!tosDebe $tili.a" las 'la!tillas de &di#o '"e'a"adas 'a"a &ada '"o#"a(a ) es&"ibi" el 2"a#(e!to de &di#o i!di&ado e! &ada $!o de ellos-
.1 Pro,ra'a +ara contro(ar (o& con'utador$& Se '"ete!de "eali.a" $! '"o#"a(a 5$e 'e"(ita (a!eja" los '$e"tos de e!t"ada salida- E! &o!&"eto3 se t"ata de a&tiva" los leds &$a!do se '$lsa $! &o!($tado"E! el es5$e(a de la 2i#$"a 1 a'a"e&e! dos leds ) dos &o!($tado"es 5$e debe o'e"a" de la si#$ie!te 2o"(a% &$a!do se '$lse el &o!($tado" &o!e&tado a PC debe e!&e!de"se el led &o!e&tado a PC0 ) (a!te!e"se e!&e!dido 8asta 5$e se v$elva a '$lsa" el &o!($tado"- Ade(4s3 al '$lsa" el &o!($tado" &o!e&tado a PC se e!&e!de"4 el led &o!e&tado a PC/ ) 'e"(a!e&e"4 e!&e!dido 8asta 5$e se '$lse !$eva(e!te el &o!($tado"- La tabla / ($est"a los '$e"tos ) los bits aso&iados a los &o('o!e!tes as< &o(o la &o!2i#$"a&i! !e&esa"ia 'a"a 5$e o'e"e! &o""e&ta(e!te-
Pu$rto
0it
Co'+on$nt$
Con)i,uración
unciona'i$nto
PORTC
0
Led
Co(o salida DDRC0*
PINC0> PINC0*
PORTC
/
Led
Co(o salida DDRC/*
PINC/> PINC/*
a'a#ado e!&e!dido
⇒ ⇒
a'a#ado e!&e!dido
⇒ ⇒
Estructura de Computadores
12
Pu$rto
0it
Co'+on$nt$
Con)i,uración
unciona'i$nto
PORTC
Co!($tado"
Co(o e!t"ada DDRC>
PINC> PINC*
PORTC
Co!($tado"
Co(o e!t"ada DDRC>
PINC> PINC*
'$lsado !o '$lsado
⇒ ⇒
'$lsado !o '$lsado
⇒ ⇒
Tabla ". Confiuración 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 PC ) PC 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 B De%ine un registro para uso temporal se a utilizado el r16 para poder emplear los modos con direccionamiento indirecto. B ldi out
temp,-c ddrc,temp
BB Con%igura portc:"/# como salidas 9 el resto como entradas
ldi out
temp,-"0 portc,temp
BB 7ctiva las resistencias de pull?up del portc:1/0
bucle:
BB BB BB BB BB
Debe completar un bucle que lea continuamente PC@ 9 PC2. Cuando cambie el pin PC@ a 1 debe invertir el valor del pin PC2 Cuando cambie el pin PC2 a 1 debe invertir el valor del pin PC" l bucle debe ser in%inito scriba el cEdigo a partir de aquF
...
Códio ". Fichero conmutadores.asm! plantilla de códio para el controlador de pulsadores $ leds.
/-0-0- P"o#"a(a &o!tado" de '$lsa&io!es El !$evo '"o#"a(a a &o('leta" debe &o!ta" el !(e"o de '$lsa&io!es de $! &o!($tado" ) (ost"a"lo e! el dis'la) se#(e!tos- Kab"4 5$e &o('leta" t"es 2"a#(e!tos de &di#o el '"i(e"o es la i!i.iali.a&i! &o""e&ta de los '$e"tos3 el se#$!do es $!a s$b"$ti!a 5$e &"ea $!a tabla e! (e(o"ia &o! el &di#o se#(e!tos )3 el te"&e"o es el '"o#"a(a '"i!&i'alLa tabla ($est"a la i!2o"(a&i! de los &o('o!e!tes de e!t"ada6salida 5$e se $sa"4!- Se i!&l$)e! los '$e"tos3 los bits aso&iados a los &o('o!e!tes as< &o(o la &o!2i#$"a&i! !e&esa"ia 'a"a 5$e o'e"e! &o""e&ta(e!te-
Estructura de Computadores
1"
Pu$rto
0it
Co'+on$nt$
Con)i,uración
unciona'i$nto
PORTD
>,
Se#(e!tos de los dis'la)s
Co(o salida DDRD>BFF
PORTD> a'a#ado PORTD* e!&e!dido
PORT;
>
Dis'la) >
Co(o salida DDR;>*
PORT;>> PORT;>*
PORT;
*
Dis'la) *
Co(o salida DDR;**
PORT;*> PORT;**
⇒ ⇒
e!&e!dido a'a#ado
⇒ ⇒
e!&e!dido a'a#ado
⇒ ⇒
Tabla +. Confiuración de los puertos e:s de los displa$s 7 sementos.
Utili.a!do el 2i&8e"o contador_bcd.asm (ost"ado e! el listado de &di#o 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 se#(e!tos lla(ada iniciali?a_tabla7se. Esta tabla &o!tie!e los &di#os 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 $! !(e"o ;DC e! los dis'la)s- Co(o eje('lo se ($est"a! 0 !(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 !(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/-- Es'e"a" e! $! b$&le 8asta 5$e se s$elte e! bot!3 2
Estructura de Computadores
1+
.include !m"#$pde%.inc! .de% temp ) r16 B De%ine un registro para uso temporal se a utilizado el r16 para poder emplear los modos con direccionamiento indirecto.B .de% contador ) r1G BB Cuenta el nHmero de pulsaciones .de% cero) r1$ .dseg .org -100
TABLA7SEG: .b9te 10 BB
bucle: rcall
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
displa9
B 7quF debe escribir el programa que aga lo siguiente/ 1. sperar asta que se pulse un pulsador #.
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 mucas 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
B La siguiente rutina inicializa la tabla de G segmentos. sta rutina serFa innecesaria si se ubiera utilizado la memoria de programa para almacenarla B
inicializa_tabla7seg: ldi z,ig'7=L7G<K3 ldi zl,loA'7=L7G<K3 ldi st ldi st
temp,0b01111110 zM,temp temp,0b00110000 zM,temp
BB BB BB BB
Utilizamos para apuntar a la tabla loA3 ig3 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
B 7quF debe completar los cEdigos de los dFgitos que %altan/ del # al + B ... ret B La siguiente rutina permite representar un nHmero en el displa9 de G segmentos. Utiliza para ello el registro , que inicialmente apunta a la tabla de G segmentos. 7 este registro se le suma Cont que es una variable entre 0 9 + 9, despus, mediate acceso indirecto se carga el cEdigo G segmentos correspondiente en el puerto.B
display: ldi ldi add adc
z,ig'7=L7G<K3 zl,loA'7=L7G<K3 zl,contador BB l registro es de 16 bits, mientras que contador es de $ z,cero BB No olvidar sumar el acarreo que se genera del b9te baJo a O
Estructura de Computadores
ld out sbi cbi ret
temp,z portd,temp portb,1 portb,0
1
BB 7paga el displa9 1 BB 7ctiva el displa9 0
Códio +. Fichero contador_bcd.asm! plantilla de códio para el contador >C4.
/-0-/- O'&io!al% Mejo"as e! el '"o#"a(a &o!tado" de '$lsa&io!es O'&io!al(e!te se '"o'o!e! 8a&e" al#$!as (ejo"as e! el '"o#"a(a &o!tado"3 estas so!% $tili.a" los dos &o!($tado"es 'a"a i!&"e(e!te6de&"e(e!ta" ) "eali.a" $! &o!t"ol de "ebote de l &o!($tado" Se '"o'o!e "eali.a" las si#$ie!tes ta"eas do!de debe 'a"ti" del '"o#"a(a "eali.ado e! la se&&i! a!te"io"% *- Modi2i5$e el b$&le '"i!&i'al del '"o#"a(a 'a"a 5$e se &o('"$ebe! las '$lsa&io!es de los dos &o!($tado"es- Si se '$lsa el '"i(e"o3 el &o!tado" debe i!&"e(e!ta"se3 si se '$lsa el se#$!do3 el &o!tado" debe de&"e(e!ta"se- No olvide &o('"oba" a!tes el de&"e(e!to si es &e"o 'a"a estable&e"lo a J3 si !o el de&"e(e!to 2alla"40- Pa"a "eali.a" el &o!t"ol de "ebotes se '"o'o!e 'a"ali.a" la eje&$&i! del '"o#"a(a e!t"e ,*>(se#Pa"a ello "eali&e las si#$ie!tes (odi2i&a&io!es e! el '"o#"a(a% 0-*- C"ee $!a s$b"$ti!a lla(ada no_rebote 5$e &o!sista e! $! b$&le 5$e es'e"e $! tie('o dete"(i!ado- Sabie!do 5$e el '"o&esado" 2$!&io!a a *M8. $tili&e $! &o!tado" 5$e (a!te!#a $! b$&le &o!ta!do d$"a!te $!os *>(s a'"oBi(ada(e!te- Esta s$b"$ti!a es si(ila" al '"o#"a(a "eali.ado e! el est$dio te"i&o0-0- Modi2i5$e el '"o#"a(a '"i!&i'al i!&l$)e!do $!a lla(ada a esta !$eva s$b"$ti!a &$a!do dete&te 5$e el &o!($tado" se 8a '$lsado- Ade(4s3 debe lla(a" de !$evo a esta s$b"$ti!a &$a!do dete&te 5$e el &o!($tado" se 8a soltado3 )a 5$e los "ebotes '$ede! o&$""i" ta!to e! al '$lsa" &o(o al solta" el &o!($tado"0-/- P"$ebe s$ !$evo '"o#"a(a e! la 'la&a de desa""ollo-