Boletín 3 - Estructura Estructura de computadores computadores – Microcontrolador AVR AVR
1
Considere la siguiente situación inicial, donde se indica en hexadecimal el contenido de ciertos registros y direcciones de memoria
Problema 1.-
Dirección Contenido
Registro Contenido
$200
$08
R0
$00
$201
$03
R1
$FF
$202
$01
YH
$02
$203
$00
Y
$01
!ndi"ue el #alor "ue tendr el registro R0 des%u&s de e'ecutar la instrucción indicada en cada uno de estos casos( )a* +- R0,R1 ).* +-/ R0,Y )c* R0,Y )d* R0,Y )e* R0,Y3 ara cada una de las siguientes instrucciones descri.a la o%eración "ue reali4a e indi"ue los registros internos y %ala.ras de memoria "ue inter#ienen5 ro%onga %ara ellos unos #alores iniciales concretos y determine "u& #alores alcan4arn 6inalmente5
Problema 2.-
)a* 77 $100,R19
)d* + R1<,;
).* 7 :,R2
)e* != R>,?1
)c* 7 ;10,R19
)6*
@ ?2,R0
ara cada una de las siguientes instrucciones descri.a la o%eración "ue reali4a e indi"ue los registros internos y %ala.ras de memoria "ue inter#ienen5 ro%onga %ara ellos unos #alores iniciales concretos y determine "u& #alores alcan4arn 6inalmente5
Problema 3.-
)a* @7H R>
)d* 7 R1<,$202
).* 7+
)e* +
)c* R3
)6*
Problema 4.-
+-/ :,Y
escri.a las siguientes instrucciones del A+ega328
)a* 7?C! Rd,B
)6*
R Rd
).* !=C Rd
)g* =
)c* C Rd,Rr
)h* 7
)d* RCA eti"ueta
)i*
/R
)e* ?RD eti"ueta
)'*
C7 Rd,Rr
7e desea mo#er una %ala.ra de 32.its desde la dirección $100 de la memoria 7RA+ a la direcc dirección ión $200 $200 de la mem memori oria a 7RA+5 7RA+5 !ndi"u !ndi"ue e las disti distinta ntass 6ormas 6ormas de hac hacerl erlo o es%ec es%eci6i i6ican cando do las instrucciones necesarias5
Problema 5.-
7e desea mo#er una %ala.ra de 32.its de la dirección $100 de la memoria de %rograma a la direcc dirección ión $200 $200 de la mem memori oria a 7RA+5 7RA+5 !ndi"u !ndi"ue e las distin distintas tas 6ormas 6ormas de hacerl hacerlo o es%eci es%eci6ic 6icand ando o las instrucciones necesarias5
Problema 6.-
Con las instru instrucci ccione oness del microc microcron rontro trolad lador or A+eg A+ega32 a328 8 escri escri.a .a el %rogra %rograma ma "ue im%lemete la instrucción de alto ni#el(
Problema 7.-
Re#5 3
Boletín 3 - Estructura de computadores – Microcontrolador AVR
2
FR iE#alorGinicial #alorG6inal clculo1 siguienteGinstrucciónGtrasGelG.ucle onde cálculo1 es una secuencia de o%eraciones "ue no es necesario %rograma y valor_inicial y valor_final son dos #aria.les con los lImites del .ucle FR !ndi"ue los #alores "ue tomarIan los %ines del microcontrolador A+ega398 tras la e'ecución de cada una de las siguientes instrucciones5 l contenido de la %osición de memoria 7RA+ $1J0 es $0A Problema 8.-
5F ! @ R @ 7 @ 7?! C?! !=
+ER19 +,$FF R?,+ +,+ RC,+ +,$202 !=?,R1 !=?,9 !=?,2 R0,!=C
l %rocesador A+ega328 tiene el relo' 6uncionando a una 6recuencia de 1+h45 7e dis%one de un dis%ositi#o "ue en#Ia 1000 #alores de tamaKo .yte a cierta 6recuencia5 l %rocesador atiende los datos mediante interru%ciones, siendo la rutina de interru%ción la siguiente( Problema 9.-
RC!?G?Y( @7H 7 7 R!
R0 R0,@R0 Y,R0 R0
!ndi"ue cada cuantos microsegundos %uede en#iar el dis%ositi#o un .yte sin "ue se %ierda ninguno5 n una %osición de memoria $A existe un nLmero .inario entero %ositi#o =5 7e %retende o.tener el #alor 7@+E=)=1*)=2* 555 21 y almacenarlo a %artir de la %ala.ra de memoria $7@+A5 Problema 10.-
)a* .tenga una su.rutina en ensam.lador "ue calcule $7@+A siendo tanto los datos como el resultado de tamKo .yte5 7u%onga "ue no existe des.ordamiento5 ).* Re%ita el a%artado anterior si los datos son de tamaKo /ord )c* !ndi"ue las modi6icaciones a reali4ar en los a%artados anteriores si se "uiere contem%lar el des.ordamiento5 Realice una su.rutina %ara sumar dos #ectores de 10 nLmeros enteros de 32 .its "ue se almacenan en %osiciones consecuti#as de memoria5 a dirección de memoria en "ue se encuentra el %rimero de ellos es el contenido del registro de direcciones : y, la del segundo est en Y5 Almacene el resultado a %artir de ;, su%oniendo "ue no existen %ro.lemas de des.ordamiento5 Problema 11.-
Realice un %rograma "ue %ermita tras%oner una matri4 cuadrada de dimensión J5 7us com%onentes son tamaKo %ala.ra )/* y la 6orma de almacenamiento es la mostrada en la 6igura5 Problema 12.-
Boletín 3 - Estructura de computadores – Microcontrolador AVR
a11 a12 a13 a1> a1J a21 a22 a23 a2> a2J a31 a32 a33 a3> a3J a>1 a>2 a>3 a>> a>J
3
a11 E M+)$A*N a12 E M+)$A 2*N a13 E M+)$A >*N a1> E M+)$A 9*N a1J E M+)$A 8*N O 555
aJ1 aJ2 aJ3 aJ> aJJ Problema 13.- A
%artir de la dirección de memoria $!R de un sistema .asado en un microcontrolador A+ega328 se dis%one de una ta.la de 20 elementos con signo de tamaKo %ala.ra5 7e desea diseKar una su.rutina "ue %ermita calcular el #alor medio del a.soluto de los elementos, es decir( res =
∣tabla [0 ]∣∣tabla [1 ]∣..∣tabla [ 19 ]∣ 20
donde PxP E x si xE0 o x si x05 Problema 14.- A
%artir de la dirección de memoria $!R de un sistema .asado en un microcontrolador A+ega328 se dis%one de una ta.la de 20 elementos con signo de tamaKo %ala.ra5 7e desea diseKar una su.rutina "ue %ermita o.tener el Indice asociado al %rimer #alor ms re%etido, y, en el caso de "ue no exista ninguno, la su.rutina de#ol#er 15 Problema 15.- A
%artir de la dirección $90 de la memoria de datos del A+ega328 se dis%one de una ta.la de 20 .ytes sin signo5 7e desea desarrollar un %rograma "ue %ermita almacenar en R0 el #alor "ue ms se re%ite en dicha ta.la y 0 en el registro R15 n caso de "ue no se re%ita ninguno, el %rograma de.er %oner a 1 el contenido del registro R15 n los %ines ?Q0 de un microcontrolador A+ega328 se han conectado diodos luminosos cuyos ctodos estn a tierra y en el %in > se ha conectado el extremo de un %ulsador mecnico )cuyo otro extremo se encuentra conectado a tierra* 'unto con una resistencia de %ullu%5 7e desea reali4ar un %rograma "ue %ermita mostrar a tra#&s de los diodos el nLmero de %ulsaciones "ue se generan en el %ulsador5 l conta'e de las %ulsaciones se de.er lle#ar a ca.o %or el registro C=0 con6igurado adecuadamente en modo contador %ara "ue se incremente cada #e4 "ue exista un 6lanco de .a'ada )6alling edge* en su entrada externa )>*5 Problema 16.-
rograme una rutina "ue %ermita con#ertir un nLmero ?C de ocho dIgitos, el cual est almacenado a %artir de la dirección =@+G?C, a .inario5 l nLmero con#ertido en .inario se almacenar a %artir de la dirección =@+G?!=5 Re%resente el diagrama de 6lu'o asociado y d& una .re#e ex%licación de las #aria.les "ue usa el %rograma5 Problema 17.-
n los %ines del %uerto ? del microcontrolador A+ega328 se han colocado leds hasta un total de ocho )uno %or cada %in del %uerto*, de modo "ue un 1 lógico en el %in, enciende el y un 0 lógico, lo a%aga5 n el %in 2 se ha conectado un %ulsador mecanico de modo "ue si &ste est %resionado, introduce un 0 lógico en el %in, y un 1 cuando est en re%oso5 Al inicio, todos los leds estarn a%agados y el microcontrolador es%erando "ue la tecla se %ulse5 Cuando el microcontrolador conta.ilice dos %ulsaciones, todos los leds se %ondrn en intermitencia con %eriodo de 1 segundo )05J segundos encendidos y 05J segundos a%agados*5 Problema 18.-
)a* iseKe el %rograma sin usar iterru%ciones su%oniendo "ue la 6recuencia del relo' en de >+h4 )%eriodo de 2J0x10 +h4 )%eriodo de 2J0x10
Boletín 3 - Estructura de computadores – Microcontrolador AVR
n la siguiente 6igura se muestra un registro de des%la4amiento de 19 .its cuya salida serie, 1J , seKal de relo', cl, y entrada de carga, , se han conectado a los %ines ?0,?1 y ?2 de un microcontrolador A+ega con cristal de 1+h45 7e desea desarrollar un %rograma "ue %ermita la lectura del dato almacenado en el registro externo y su almacenamiento en los registros R0 y R1 del microcontrolador5 n concreto, el registro R0 contendr el .yte ms signi6icati#o y el R1 el menos signi6icati#o5 ara %oder acceder al dato del registro externo R el microcontrolador de.e seguir la siguiente secuencia( Problema 19.-
15 e 6orma externa, la seKal %asar de 0 a 1, lo "ue im%lica la carga de un dato en el registro R externo5 l microcontrolador escuchar est lInea y no tomar ninguna acción hasta "ue #uel#a a #aler 05 25 ranscurrido el %ulso en , el microcontrolador de.er generar 19 %ulsos de relo', tal y como muestra la 6igura5 35 n el ni#el alto del %ulso de relo', se de.er leer el .it "ue a%arece %or la salida 1J y almacenarlo en la %osición "ue corres%onda de los registros R0 o R15 >5 @na #e4 6inali4ada la lectura de los diecis&is .its, el microcontrolador es%erar la acti#ación de un nue#o %ulso en %ara re%etir el %roceso5
@n conocedor del 6uncionamiento del A+ega328 "uiere construir un molinillo es%anta%'aros %ara e#itar las molestas suciedades "ue &stos %ro#ocan en el .alcón de su casa5 l molinillo dis%one de un motor de corriente contInua "ue se %retende controlar con la salida ?0 del microcontrolador, de 6orma "ue, si ?0 es 1 el motor se acti#a y si es 0, se desacti#a5 or otro lado, se dis%one de una R "ue %ermite determinar si es de dIa o es de noche5 a electrónica de ada%tación hace "ue la R %onga un 1 en la entrada ?1 del microcontrolador si es de dIa y 0, si es de noche5 odo el con'unto se alimenta mediante una .aterIa, %or lo "ue es recomenda.le economi4ar su consumo5 n concreto el sistema de.e o%erar del siguiente modo( Problema 20.-
15 e.er estar en modo SdormidoT la mayor %arte del tiem%o5 25 e.er Sdes%ertarseT %or una interru%ción del timer0 cada minuto teniendo en cuenta "ue la seKal de relo' es de 1h4 )automticamente el microcontrolador e'ecuta la rutina y continLa la e'ecución de la instrucción situada detrs de 7*5 35 7i es de dIa, cada 10minutos, se de.er acti#ar el molinillo durante un 1 minuto5 7i es de noche, no se %roceder a ninguna acción5 7e desea simular la %ulsación de la tecla =R de un teclado de un C usando un Lnico %ulsador externo "ue se conectar, mediante un microcontrolador A+ega328, al %uerto 72 de dicho C5 or sencille4, consideraremos "ue la comunicación sólo se reali4ar de 6orma unidireccional desde el microcontrolador al C5 n ese sentido, el inter6a4 72 consta de dos lIneas( AA y CCB5 =ormalmente esas lIneas estn a 1 lógico %ara re%resentar "ue la transmisión se encuentra en estado de re%oso5 a siguiente 6igura re%resenta el %rotocolo de comunicación a seguir, 6ormado %or 1 .it de start, 8 .its de datos, un .it de %aridad im%ar y un .it de sto% "ue siem%re est a 15 Problema 21.-
Boletín 3 - Estructura de computadores – Microcontrolador AVR
!
l microcontrolador de.e generar la seKal de relo' cuya duración mxima del ni#el mximo o mInimo es de >0us5 l C ca%turar el .it reci.ido %or la lInea AA en el 6lanco de .a'ada5 Cuando el usuario %ulse el %ulsador externo, el microcontrolador en#iar el código $JA al inter6a4 72 y cuando li.ere dicho %ulsador, el microcontrolador de.er en#iar el código $F0 seguido del $JA55 a seKal de relo' es de 2+h4, los terminales ?3 y ?> se usarn %ara generar CCB y AA res%ecti#amente y el %ulsador externo se ha conectado al %uerto 0, de 6orma "ue cuando est %ulsado se introduce un 0 y cuando no, un 15 )a* iseKe una rutina "ue %ermita con6igurar los %uertos y el timer0 %ara "ue "ue %ueda generar des.ordamientos cada >0us5 =o use interru%ciones %ara el tem%ori4ador5 ).* iseKe una rutina "ue %ermita generar una ciclo de la seKal de relo'5 sto es, usando el timero0, la rutina %ondr el %in de CCB a 1 durante >0us y des%u&s a 0 durante el mismo tiem%o5 )c* iseKe una rutina "ue %ermita calcular el .it de %aridad asociado a un .yte almacenado en la dirección de memoria A )$90 de la 7RA+*5 )d* iseKe una rutina "ue %ermita transmitir la trama 72 a %artir de las rutinas anteriores y el dato almacenado en la dirección A5 )e* iseKe el %rograma "ue %ermita conectar las rutinas anteriores con los %rocesos a seguir con la %ulsación y li.eración de la tecla =R externa5