Este documento presenta los objetivos de un laboratorio sobre el entorno de programación y depuración AVR-Studio de microcontroladores ATMEL. Se describen tres programas a desarrollar: 1) Calcular la media de una tabla de datos almacenada en la RAM, 2) Manejar los puertos de entrada/salida para encender LEDs al pulsar interruptores, y 3) Contar pulsaciones de un interruptor y mostrar el número en un display de 7 segmentos. Se proporcionan plantillas de código y especificaciones técnicas para completar cada programa.
0 calificaciones0% encontró este documento útil (0 votos)
74 vistas14 páginas
Este documento presenta los objetivos de un laboratorio sobre el entorno de programación y depuración AVR-Studio de microcontroladores ATMEL. Se describen tres programas a desarrollar: 1) Calcular la media de una tabla de datos almacenada en la RAM, 2) Manejar los puertos de entrada/salida para encender LEDs al pulsar interruptores, y 3) Contar pulsaciones de un interruptor y mostrar el número en un display de 7 segmentos. Se proporcionan plantillas de código y especificaciones técnicas para completar cada programa.
Este documento presenta los objetivos de un laboratorio sobre el entorno de programación y depuración AVR-Studio de microcontroladores ATMEL. Se describen tres programas a desarrollar: 1) Calcular la media de una tabla de datos almacenada en la RAM, 2) Manejar los puertos de entrada/salida para encender LEDs al pulsar interruptores, y 3) Contar pulsaciones de un interruptor y mostrar el número en un display de 7 segmentos. Se proporcionan plantillas de código y especificaciones técnicas para completar cada programa.
Este documento presenta los objetivos de un laboratorio sobre el entorno de programación y depuración AVR-Studio de microcontroladores ATMEL. Se describen tres programas a desarrollar: 1) Calcular la media de una tabla de datos almacenada en la RAM, 2) Manejar los puertos de entrada/salida para encender LEDs al pulsar interruptores, y 3) Contar pulsaciones de un interruptor y mostrar el número en un display de 7 segmentos. Se proporcionan plantillas de código y especificaciones técnicas para completar cada programa.
Descargue como PDF, TXT o lea en línea desde Scribd
Descargar como pdf o txt
Está en la página 1de 14
DEPARTAMENTO DE TECNOLOG A ELECTRNI CA
ESCUELA TCNICA SUPERIOR DE INGENIER A INFORMTICA
Introduccin a AVR-STUDIO Microprocesadores 1.Introduccin y objetivos Los objetivos de la sesin de laboratorio son los siguientes: Introducir el entorno de programacin y depuracin de microcontroladores de ATMEL 1 llamado AVR!T"#I$% Reali&ar la simulaciones de programas escritos en lenguaje ensamblador para el microcontrolador ATME'A()*+% #epuracin de programas con el AVR !imulator% Estudiar los procesos para la programacin del microcontrolador del Arduino #uemilanove usando la plata,orma AVR#RA'$-% Reali&ar la programacin. depuracin de programas y control del microcontrolador desde AVR!T"#I$% AVR!T"#I$ puede descargarse gratuitamente de desde las p/ginas del ,abricante de ATMEL en 0ttp:11222%atmel%com% 2.Estudio terico !e deben reali&ar tres programas en lenguaje ensamblador% En el primero se pide desarrollar un programa 3ue permita el c/lculo sobre un conjunto de elementos almacenados en la !RAM% Los dos restantes re3uieren el manejo de la entradasalida y se detallar/n a continuacin% 1%+rograma ME#IA-A: Reali&ar un programa en ensamblador 3ue permita calcular la ME#IA-A a una tabla de bytes con signo 3ue se ubica a partir de la direccin tabla de la !RAM% El resultado se guarda en la !RAM a continuacin de la tabla% +ara la reali&acin de este programa el alumno deber/. primero. desarrollar una subrutina 3ue permita ordenar la tabla siguiendo el algoritmo 3ue se muestra a continuacin% 1 Fabricante de micrcntr!adre"# m$" in%rmaci&n en 'tt()**+++,atme!,cm Estructura de Computadores 2
Cdigo 1. Pseudocdigo del programa ordena La mediana se calcula busca el elemento central de la tabla ordenada% !i el n4mero de elementos de la tabla es impar. la mediana es el valor 3ue se encuentra en la mitad de la tabla. pero si el n4mero de elementos es par. la mediana se obtiene como el valor medio de los dos valores centrales de la tabla% 5omplete la plantilla 3ue se muestra a continuacin% %include 6m17*de,%inc6
%e3u TAMTA8LA9%%%%% 11Tama:o de la tabla% %de, Temp9r17 %cseg %org ; call IniciaTabla 11Esta llamada carga la tabla de la EE+R$M a la !RAM call Mediana ,in: jmp ,in 11+ara terminar Mediana: call $rdena 1< A3u= va el programa Mediana <1 $rdena: 1<A3u= va el programa de ordenacin <1 %%%%%%%% IniciaTabla: pus0 r; pus0 temp pus0 yl pus0 y0 pus0 &l pus0 &0 ldi &l. lo2>)<TablaEeprom? -um@Rep ATamTabla Repetir B A #ireccinTabla C A #ireccinTablaD1 -um@Rep A -um@Rep 1 5ont A -um@Rep $rdenado A ; Repetir a A >B? b A >C? si >a E b? >B? A b >C? A a $rdenado A 1 ,si B A B D1 C A C D1 5ont A 5ont 1 Mientras > 5ont F ;? Mientras >$rdenado 99 1? Estructura de Computadores 3 ldi &0. 0ig0>)<TablaEeprom? ldi yl. lo2>Tabla? ldi y0. 0ig0>Tabla? ldi temp.TAMTA8LA loop: lpm r;.GD st CD.r; subi temp.1 brne loop pop &0 pop &l pop y0 pop yl pop temp pop r; ret TablaEeprom: %db 1;. H. 1. ; . ;. 7. (. 1;. 1;;. 1;;. )H. )(. I7. H. 1I. 17 JModi,i3ue los datos %dseg %org K1;; Tabla: %byte TamTabla 11Reservamos 1; bytes para los datos% % 5digo )% 5digo del programa Mediana% )% 5onmutadores% !e pretende reali&ar un programa 3ue permita manejar los puertos de entrada salida% En concreto. se trata de activar los leds cuando se pulsa un conmutador% En el es3uema de la ,igura L aparecen dos leds y dos conmutadores 3ue debe operar de la siguiente ,orma: cuando se pulse el conmutador conectado a +5I debe encenderse el led conectado a +5) y mantenerse encendido 0asta 3ue se vuelva a pulsar el conmutador% Adem/s. al pulsar el conmutador conectado a +5H se encender/ el led conectado a +5( y permanecer/ encendido 0asta 3ue se pulse nuevamente el conmutador% La tabla 1 muestra los puertos y los bits asociados a los componentes as= como la con,iguracin necesaria para 3ue operen correctamente% uerto !it "o#$onente "on%i&uracin 'unciona#iento +$RT5 ) Led 5omo salida ##R5)91 +5)9; apagado +5)91 encendido +$RT5 ( Led 5omo salida ##R5(91 +5(9; apagado +5(91 encendido +$RT5 H 5onmutador 5omo entrada ##R5H9; +5H91 no pulsado +5H9; pulsado +$RT5 I 5onmutador 5omo entrada ##R5I9; +5I91 no pulsado +5I9; pulsado Tabla 1. Configuracin de los puertos e/s de los leds y conmutadores "tili&ando el la plantilla de cdigo >,ic0ero conmutadores.asm? debe reali&ar la siguientes tareas: 1%5ree un nuevo proyecto utili&ando el cdigo suministrado en el ,ic0ero conmutadores.asm y complete el programa% )%"tilice el simulador para comprobar 3ue ,unciona correctamente% #ebe conmutar manualmente los pines +5H y +5I Estructura de Computadores 4 desde el simulador% Esto se consigue desplegando el puerto 5 en /rbol de dispositivos 3ue muestra el AVR!T"#I$ en la parte derec0a durante la simulacin y pulsando el botn del ratn sobre el cuadro 3ue representa el bit correspondiente% 5uando el cuadro est/ relleno de color negro signi,icara 3ue el bit est/ a 1. si est/ en blanco es ;% (%"na ve& comprobado en el simulador el correcto ,uncionamiento. repita los pasos reali&ados en la seccin 11 para programar el microcontrolador con este nuevo programa% 5ompruebe 3ue ,unciona correctamente pulsando los conmutadores% (% +rograma contador de pulsaciones% El nuevo programa a completar debe contar el n4mero de pulsaciones de un conmutador y mostrarlo en el display M segmentos% Nabr/ 3ue completar tres ,ragmentos de cdigoJ el primero es la iniciali&acin correcta de los puertos. el segundo es una subrutina 3ue crea una tabla en memoria con el cdigo M segmentos y. el tercero es el programa principal% La tabla ) muestra la in,ormacin de los componentes de entrada1salida 3ue se usar/n% !e incluyen los puertos. los bits asociados a los componentes as= como la con,iguracin necesaria para 3ue operen correctamente% uerto !it "o#$onente "on%i&uracin 'unciona#iento +$RT# ;M !egmentos de los displays 5omo salida ##R#9;OPPJ +$RT#B9; apagado +$RT#B91 encendido +$RT8 ; #isplay ; 5omo salida ##R8;91 +$RT8;91 apagado +$RT8;9; encendido +$RT8 1 #isplay 1 5omo salida ##R8191 +$RT8191 apagado +$RT819; encendido Tabla 2. Configuracin de los puertos e/s de los displays 7 segmentos. "tili&ando el ,ic0ero contador_bcd.asm mostrado en el listado de cdigo ( debe reali&ar las siguientes tareas: 1%5ompletar la subrutina de iniciali&acin de puertos llamada inicializa_puertos. +uede utili&ar como ejemplo de iniciali&acin la utili&ada en el programa de la seccin anterior >listado de cdigo ?% #ebe iniciali&ar los puertos con la siguiente con,iguracin: 1%1%En el puerto 5 los pines ( y ) deben ser salidas. el resto deben ser entradas 1%)%El puerto # est/ conectado a los segmentos del display. deben ser todos salida% 1%(%El puerto 8 controla el encendido o apagado completo de cada uno de los dos displays% #ebe con,igurarlo como salida. as=. poniendo un 1 en +$RT8; se activar/ el display ; y poniendo un 1 en +$RT81 se activar/ el display 1% )%5ompletar la subrutina 3ue crea una tabla para el convertidor de M segmentos llamada inicializa_tabla7seg. Esta tabla contiene los cdigos M segmentos de los d=gitos ; Q L% Al escribir un elemento de esta tabla en el puerto # aparecer/ un n4mero 85# en los displays% 5omo ejemplo se muestran ) n4meros. donde se puede observar la correspondencia de los bits a uno con la activacin de los segmentos mostrados en la ,igura 1)% 5omplete los n4meros 3ue ,altan. del ) al L% (%El bucle principal del programa comien&a a partir de la eti3ueta bucle% A3u= debe escribir el programa 3ue cuente las pulsaciones detectadas en un conmutador% El programa se puede reali&ar siguiendo estos pasos: (%1%Escribir un bucle 3ue espere 0asta detectar 3ue el conmutador se 0a pulsado% "n valor 1 en el p correspondiente al conmutador indica 3ue se 0a pulsado% (%)%Tras detectar la pulsacin 0ay 3ue incrementar el contador en 1 (%(%5omprobar si el contador 0a llegado a 1; para ponerlo de nuevo a cero% Estructura de Computadores 5 (%H%Esperar en un bucle 0asta 3ue se suelte en botn. ,=jese 3ue este ,ragmento de cdigo ya est/ 0ec0o y corresponde a la eti3ueta espera. H%5onstruya el programa y programe el microcontrolador para comprobar si ,unciona% !i no opera correctamente puede utili&ar el simulador para detectar los errores% Tenga en cuenta 3ue a veces eOisten problemas de rebotes en los conmutadores. esto signi,ica 3ue. al pulsar una ve& el conmutador se detectan varias pulsaciones y el valor mostrado en el display se incrementa en m/s de una unidad% %include 6m()*pde,%inc6 %de, temp 9 r17 1< #e,ine un registro para uso temporal se 0a utili&ado el r17 para poder emplear los modos con direccionamiento indirecto%<1 %de, contador 9 r1M 11 5uenta el n4mero de pulsaciones %de, cero9 r1* %dseg %org K1;; TA!(A)SE*+ %byte 1; 11 !e reservan 1; bytes para una tabla de valores del convertidor binMseg %cseg %org K; rcall iniciali&a@puertos 11 Rutina 3ue iniciali&a los puertos rcall iniciali&a@tablaMseg 11 Rutina 3ue iniciali&a la tabla del convertidor buc,e+ 11 +rograma principal rcall display 11 Representamos el valor de contador en el display 1< A3u= debe escribir el programa 3ue 0aga lo siguiente: 1% Esperar 0asta 3ue se pulse un pulsador )% !i se pulsa el pulsador incrementar el contador (% !i el contador llega a 1; 0ay 3ue ponerlo a cero <1
inicia,i-a.$uertos+ 11 A3u= debe con,igurar portcR(:)S como salidas y el resto como entradas
%%%
11 A3u= debe con,igurar puerto # y el puerto 8 completo como salida
out portc.temp 11 !e Activan las resistencias de pullup del portcR1:;S y apaga leds ldi temp.K,, ret 1< La siguiente rutina iniciali&a la tabla de M segmentos% Esta rutina ser=a innecesaria si se 0ubiera utili&ado la memoria de programa para almacenarla <1 inicia,i-a.tab,a)se&+ ldi &0.0ig0>TA8LAM!E'? 11 "tili&amos G para apuntar a la tabla ldi &l.lo2>TA8LAM!E'? 11 lo2>? 0ig0>? son directivas 3ue devuelven el byte bajo o 11 el byte alto de la direccin 3ue se le pasa como 11 argumento respectivamente ldi temp.;b;111111; 115digo M segmentos del ; st &D.temp ldi temp.;b;;11;;;; 115digo M segmentos del 1 st &D.temp 1< A3u= debe completar los cdigos de los d=gitos 3ue ,altan: del ) al L <1 %%% ret 1< La siguiente rutina permite representar un n4mero en el display de M segmentos% "tili&a para ello el registro G. 3ue inicialmente apunta a la tabla de M segmentos% A este registro se le suma 5ont 3ue es una variable entre ; y L y. despuTs. mediante acceso indirecto se carga el cdigo M segmentos correspondiente en el puerto%<1 dis$,ay+ Estructura de Computadores 6 ldi &0.0ig0>TA8LAM!E'? ldi &l.lo2>TA8LAM!E'? add &l.contador 11 El registro G es de 17 bits. mientras 3ue contador es de * adc &0.cero 11 -o olvidar sumar el acarreo 3ue se genera del byte bajo a GN ld temp.& out portd.temp sbi portb.1 11 Apaga el display 1 cbi portb.; 11 Activa el display ; ret Cdigo . !ic"ero contador_bcd.asm# plantilla de cdigo para el contador $C%. /.Estudio e0$eri#enta, En el estudio eOperimental deber/ probar y mostrar el ,uncionamiento de todos los programas solicitados en el estudio terico% +ara ello deber/ utili&ar el AVR!T"#I$ cuyo tutorial se muestra a continuacin% 3.1.Introduccin a AVR-STUDIO !e utili&ar/n los programas reali&ados en el estudio terico en el entorno de desarrollo AVR!T"#I$% Los pasos para crear un proyecto nuevo y poder escribir el cdigo del programa se detalla a continuacin en esta seccin% "na ve& iniciado AVR !T"#I$ aparece un asistente para creacin o apertura de un nuevo proyecto tal y como se muestra en la ,igura 1% !i no apareciera el asistente 0ay 3ue acceder al men4 +roject y seleccionar la opcin +roject Ui&ard% !igura 1. &sistente para creacin o apertura de un proyecto. !e debe seleccionar un nuevo proyecto >botn 'e( Pro)ect? y aparecer/ el siguiente di/logo del asistente >,igura (? donde. 0abr/ 3ue indicar el nombre del proyecto. el directorio y seleccionar la opcin &tmel &*+ &ssembler. Antes de pulsar el botn 'e,t seleccione adecuadamente la opcin Create initial file. tiene dos opciones. seleccionar o no seleccionar dic0a opcin >observe la marca roja en la ,igura )?: 1,!i no selecciona esta opcin. el proyecto se crear/ sin ning4n arc0ivo de teOto asociado% Esto le permite posteriormente utili&ar un ,ic0ero de teOto 3ue tenga en si disco con el programa ya escrito% #e esta ,orma evita tener 3ue teclear el programa de nuevo -,!i lo selecciona. se crear/ un nuevo ,ic0ero vac=o en el 3ue deber/ teclear el programa% !i ya trae el programa escrito en otro ,ic0ero tendr/ 3ue copiar y pegar el cdigo desde el bloc de notas a AVR!T"#I$% Estructura de Computadores 7 !igura 2. -eleccin de tipo y nombre de proyecto. Tras escoger la opcin 3ue le interese en cada caso. tras pulsar el botn 'e,t aparecer/ la 4ltima ventana de asistente% A3u= debe seleccionar las opciones &*+ -imulator y &TMega2.P tal y como se muestra en la ,igura (% !igura . -eleccin de tipo y nombre de proyecto. En caso de no 0aber seleccionado la opcin Create initial file tendr/ un proyecto vac=o al 3ue 0ay 3ue a:adir un programa previamente escrito en un ,ic0ero% +ara reali&ar esto. 0ay 3ue utili&ar el botn derec0o del ratn en la ra=& del /rbol de proyecto y aparecer/ un men4 ,lotante como el mostrado en la ,igura H% 5on la opcin Add ,iles to project podemos seleccionar del disco el ,ic0ero con el programa en ensamblador 3ue se desee% Figura 4. Aadir ficheros al proyecto. Tras estos pasos aparece en el /rbol de proyecto el nombre del ,ic0ero ensamblador sobre el 3ue trabajar% +ulsando con el ratn dos veces sobre este nombre del ,ic0ero aparece una ventana en la 3ue puede editar el cdigo ensam blador del programa% "na ve& se 0a terminado de escribir el programa 0ay 3ue reali&ar el ensamblado del cdigo% Este paso se reali&a en Estructura de Computadores 8 men4 8uild opcin 8uild tambiTn puede utili&ar el icono de la barra de 0erramientas% !i todo es correcto debe aparecer en la parte in,erior in,ormacin re,erente al programa compilado: AVRA!M: AVR macro assembler )%1%H) >build 1ML7 !ep 1I );;L 1;:H*:(7? 5opyrig0t >5? 1LLI);;L ATMEL 5orporation P:VEd5VtemaHVpracticasVsolsuma%asm>)?: Including ,ile W5:VArc0ivos de programaVAtmelVAVR ToolsVAvrAssembler)VAppnotesVm17*de,%incW P:VEd5VtemaHVpracticasVsolsuma%asm>**?: -o EE+R$M data. deleting 5:V#ocuments and !ettingsVpdiVMis documentosVedcVedc%eep ATmega17* memory use summary RbytesS: !egment 8egin End 5ode #ata "sed !i&e "seX
R%csegS ;O;;;;;; ;O;;;;Ie M* 17 LH 17(*H ;%7X
R%dsegS ;O;;;1;; ;O;;;11; ; 17 17 1;)H 1%7X R%esegS ;O;;;;;; ;O;;;;;; ; ; ; I1) ;%;X Assembly complete. ; errors% ; 2arnings Cdigo /. -alida de la construccin del programa suma. En caso de producirse errores. en la ventana in,erior aparecer/ el n4mero de l=nea del programa donde est/ el error% /.1.1.Ejecucin en e, si#u,ador de, $ro&ra#a AVR!T"#I$ incluye un simulador con el cual se puede visuali&ar el estado del microcontrolador durante la ejecucin de un programa% Entre las diversas opciones 3ue o,rece el simulador nos centraremos en la posibilidad de ejecutar instruccin a instruccin un programa y la posibilidad de ejecutar un programa 0asta 3ue llegue a una instruccin determinada% +ara comen&ar la simulacin del programa 0ay 3ue acceder al men4 #ebug y utili&ar la opcin !tart #ebugging% Tras esto aparecen di,erentes ventanas >ver ,igura I? 3ue componen el simulador: Ventana del +rocesador: !ituada en la parte i&3uierda. muestra el estado interno de procesador >Precuencia. contador de ciclos del reloj? y el contenido de los registros: +5. !+. B. C. G. !RE' y los () registros internos% Ventana de dispositivos de E1!: !ituada en la parte superior derec0a. muestra en ,orma de /rbol todos los dispositivos 3ue tiene el microcontrolador seleccionado% Ventana de visuali&acin de Memoria: !ituada en la parte in,erior derec0a. permite ver en tiempo real el contenido de la memoria del microcontrolador% !e puede seleccionar entre memoria de programa. memoria !RAM y EE+R$M% +rincipalmente interesar/ ver el contenido de la memoria !RAM a partir de la direccin K1;;% !e debe recordar 3ue 0asta la direccin KLL est/n mapeados los peri,Tricos. por lo 3ue no se debe usar como espacio de almacenamiento para los programas Estructura de Computadores PPigura I% Visin global del modo de depuracin de AVR!T"#I$% El simulador permite la ejecucin instruccin a instruccin del programa% El indicador situado en la parte i&3uierda indica la siguiente instruccin 3ue se ejecutar/% En el men4 #ebug >,igura 7? se pueden encontrar diversas acciones 4tiles durante la simulacin% En la ejecucin paso a paso las ,unciones m/s utili&adas son: !tep $ver: >icono ? Ejecuta instrucciones 0asta la siguiente l=nea. en caso de ser una llamada a una subrutina. la ejecuta completamente para avan&ar a la siguiente l=nea de cdigo% !tep Into: >icono ? Ejecuta una instruccin. en caso se eOistir una llamada a subrutina. reali&a la llamada y se sit4a en la primera instruccin de la subrutina% !tep $ut: >icono ? Ejecuta instrucciones 0asta encontrar una instruccin de retorno de subrutina% Reset: >icono ? Reinicia la simulacin y sit4a la ejecucin en la primera instruccin del programa% Toogle 8reaYpoint: >icono ? Establece un punto de ruptura de ejecucin% 5uando se ejecute el comando +un >icono ?. el programa se ejecutar/ 0asta encontrar alg4n punto de ruptura% Run to 5ursor: >icono ? Ejecuta instrucciones 0asta la instruccin en la 3ue est/ el cursor% Figura 6. !e"# de depuraci$". Estructura de Computadores %& /.1.2.Ejecucin en e, si#u,ador de, $ro&ra#a !e recuerda 3ue AVR!T"#I$ incluye un simulador con el cual se puede visuali&ar el estado del microcontrolador durante la ejecucin de un programa% +ara comen&ar la simulacin del programa 0ay 3ue acceder al men4 #ebug y utili&ar la opcin !tart #ebugging% Tras esto aparecen di,erentes ventanas >ver ,igura M? 3ue componen el simulador: Ventana del +rocesador: !ituada en la parte i&3uierda. muestra el estado interno de procesador >Precuencia. contador de ciclos del reloj? y el contenido de los registros: +5. !+. B. C. G. !RE' y los () registros internos% Ventana de dispositivos de E1!: !ituada en la parte superior derec0a. muestra en ,orma de /rbol todos los dispositivos 3ue tiene el microcontrolador seleccionado% En esta primera pr/ctica de debe seleccionar el puerto 5. de igual modo 3ue se 0a seleccionado la en la ,igura M% #e esta ,orma se visuali&an los tres registros 3ue ,orman el puerto% Ventana de visuali&acin de Memoria: !ituada en la parte in,erior derec0a. permite ver en tiempo real el contenido de la memoria del microcontrolador% !e puede seleccionar entre memoria de programa. memoria !RAM y EE+R$M% +rincipalmente interesar/ ver el contenido de la memoria !RAM a partir de la direccin K1;;% +ara comprobar el ,uncionamiento del programa se debe reali&ar la ejecucin paso a paso observando como cambian los valores de los registros y puertos% Nay 3ue desplegar los registros en la ventana del procesador y puertos en la ventana de E1! para visuali&ar los registros del puerto% !igura 7. *isin global del modo de depuracin de &*+0-T1%23. A continuacin inicie la simulacin con !tart #ebugging y ejecute paso a paso el programa del estudio terico% +uede utili&ar la tecla P1; para no tener 3ue utili&ar los men4s% 5ompruebe 3ue su programa opera correctamente% Estructura de Computadores %% /.1./.ro&ra#acin de, #icrocontro,ador El siguiente paso consiste en la programacin con el programador AVR#RA'$- >,igura *a? de un microcontrolador ATME'A()*+ en una placa Arduino >,igura *b?% El entorno de pruebas utili&ado en esta sesin de laboratorio est/ ,ormada por tres componentes: programador AVR#RA'$-. placa de prototipo Arduino #uemilanove y placa de eOpansin para Arduino con componentes E1!% La placa de eOpansin mostrada en la ,igura L est/ conectada a la placa Arduino. 3uedando ocultos todos los componentes del Arduino% En la placa de eOpansin est/n disponibles todos los puertos del microcontrolador en los laterales de la placa. adem/s. estos puertos tambiTn est/n conectados a diversos componentes como son. leds. displays. conmutadores. etc% Estos componentes se utili&ar/n posteriormente para reali&ar programas 3ue controlen la entrada1salida% En primer lugar se deben conectar ambas placas a los conectores "!8% -o es necesaria ninguna alimentacin adicional ya utili&an los IV suministrados por el 8us "!8% Tras la coneOin "!8 puede aparecer en el ordenador alg4n cuadro de di/logo indicando 3ue se 0a encontrado nuevo 0ard2are% !i esto ocurriera. debe instalar los controladores. no cancele la instalacin o tendr/ problemas de programacin del microcontrolador% La placa AVR#RA'$- dispone de dos leds. inicialmente se iluminan uno en verde y otro en rojo% El led de color rojo cambiar/ de color indicando el estado de la comunicacin con AVR!T"#I$% La tabla ( muestra el signi,icado de los di,erentes colores de dic0o led. debemos observarlo durante los siguientes pasos para detectar posibles problemas en la programacin del microcontrolador% "o,or Descri$cin Rojo En reposo. no 0ay coneOin con AVR !tudio Apagado En reposo. conectado a AVR !tudio Verde Trans,iriendo datos Amarillo Iniciali&acin o actuali&acin del ,irm2are Tabla . 2ndicaciones del led de &*+0%+&43'. Antes de reali&ar la programacin se debe veri,icar la correcta con,iguracin de AVR!T"#I$ reali&ando una prueba de coneOin con el microcontrolador% Accediendo al men4 Tools 0ay 3ue usar el submen4 +rogram AVR y. opcin 5onnect% Aparecer/ el di/logo mostrado en la ,igura 1;% Alternativamente. dic0o di/logo se puede obtener de manera directa utili&ando el botn de la barra de 0erramientas% Estructura de Computadores %2
.a/ .b/ Figura 8. a' (laca de desarrollo Ardui"o )' (rogramador*+epurador A,-.+-A/01. .a/ .b/ Figura . a' (laca de e2pa"si$" E*3 para Ardui"o. )' +etalle de co"e2i$" de los segme"tos a los puertos. PD0 PD1 PD2 PD3 PD4 PD5 PD- PD1 GND P61 AREF P63 P64 P65 P6- P61 PC4 PC5 PC- PC1 PC1 PC3 Led cnectad A P63 Estructura de Computadores %3 En este di/logo 0ay 3ue establecer la con,iguracin indicada en la ,igura 1;: plata,orma AVR#RA'$- y puerto "!8% Tras pulsar el botn Connect. si la coneOin es correcta. debe aparecer autom/ticamente el di/logo mostrado en la ,igura 11 y el led rojo de AVR#RA'$- se apagar/% !igura 15. -eleccin del programador y el puerto En caso de no aparecer autom/ticamente el dialogo de la ,igura 11 se puede utili&ar el botn de la barra de 0erramien tas o. la opcin de men4 Tools submen4 +rogram AVR% Tras esto ,inalmente aparecer/ la ventana mostrada en la ,igura 11% #e las m4ltiples pesta:as 3ue contiene slo utili&aremos la primera y segunda: Main y Program% En primer lugar se reali&ar/ una prueba de comunicacin siguiendo estos pasos: 1%!eleccionar la pesta:a Main% -,!eleccionar el microcontrolador correcto del cuadro desplegable indicado con %e6ice and -ignature $ytes. En estas placas disponemos del microcontrolador ATMega()*+% 5,+ulsar el botn +ead -ignature% El programa debe responder con el teOto -ignature matc"es selected de6ice% !i respondiera con un error. se debe volver a desplegar el cuadro selector de microcontrolador. seleccionar el correcto. y volver a reali&ar el test de comunicacin% !igura 11. Pesta7a principal de la 6entana de programacin del microcontrolador. El siguiente paso consiste en reali&ar la programacin del microcontrolador con el cdigo 3ue se 0a ensamblado. para ello. seleccione la pesta:a Program% !i el ensamblado se reali& con TOito 0abr/ generado un ,ic0ero con eOtensin Estructura de Computadores %4 ."e, dentro del directorio del proyecto y con el nombre del proyecto% En la ,igura 1) se muestra el di/logo de programacin donde 0ay 3ue seleccionar el ,ic0ero ."e,. Este di/logo tiene tres cuadros donde se puede seleccionar un ,ic0ero: !las"# 88P+3M y 89!% Nay 3ue utili&ar la seccin seccin !las" y el botn de seleccin de ,ic0ero >indicado con la ,lec0a roja en la ,igura 1)?% Tras esto basta con pulsar el botn Program para reali&ar la programacin del microcontrolador% !igura 12. Pesta7a de programacin de la 6entana de programacin del microcontrolador. 1. Ejercicio eva,uab,e +ara optar a evaluacin alternativa. los alumnos deber/n obtener una cali,icacin de A+T$ en la parte obligatoria de esta pr/ctica y demostrar en el laboratorio 3ue se 0a desarrollado el ejercicio 3ue se detalla a continuacin: -e desea desarrollar un programa :ue permita contar segundos y mostrarlos en un display de 7 segmentos. Para ello el alumno deber; utilizar el Timer1 en modo CTC para :ue <ste genere interrupciones de forma peridica. 8l contenido del TC'T1 como la seleccin del prescaler deber; escogerse de tal forma :ue se minimice el error cometido en la cuenta de los segundos. 9a frecuencia del oscilador del &TM84&2.P es de 1M"z.