Examen micros t1_06_solucion

6

Click here to load reader

description

ESPOL

Transcript of Examen micros t1_06_solucion

Page 1: Examen micros t1_06_solucion

ESPOL – FIECMICROCONTROLADORES: Parcial sobre 50 puntos.Fecha: Julio 8 del 2006.

Nombre: _________________________________Paralelo: ____________

Por favor en los temas de respuesta múltiple marque con un círculo la alternativa correcta. En los demás temas escriba su respuesta en los espacios señalados.No usar celulares y calculadoras. Prohibido levantar su hoja de trabajo o permitir que otra persona la mire.

Tema 1 (2 PUNTOS)Si ejecutó la siguiente línea de código: SUBLW 8, dado que w= 3, cual de las alternativas es la correcta.

a) Resto 3-8 y el resultado se guarda en W.b) Las banderas C= 0 y Z= 0.c) Resto 8-3 y la bandera C= 0 y Z=0.d) Resto 8-3 y y el resultado se guarda en W.

Tema 2 (2 PUNTOS)De las siguientes líneas de código que afirmación es correcta:

clrf PORTBbsf STATUS,5movlw b'11111101'movwf TRISBmovlw b'01000000'movwf OPTION_REG bcf STATUS,5clrf cntmovlw b'10010000'movwf INTCON

lazo1 sleepgoto lazo1

a) El pic se pone en estado de bajo consumo y solamente despierta por transiciones en el puerto B y el temporizador no cuenta.

b) El pic se pone en estado de bajo consumo y mientras el TMR0 incrementa.c) El pic se pone en estado de bajo consumo y solamente despierta por activación en

RB0 con flanco negativo mientras el temporizador no cuenta.d) El pic se pone en estado de bajo consumo y solamente despierta por activación

en RB0 con flanco positivo mientras el temporizador no cuenta.

Page 2: Examen micros t1_06_solucion

Tema 3 (2 PUNTOS)Dadas las siguientes líneas de código que ocurre:

bsf STATUS, 5movlw 3movwf TRISAmovlw 6movwf TRISBmovwf PORTAclrf INTCON

a) TRISA=3, TRISB=3b) TRISA=5, TRISB=9c) TRISA=6, TRISB=6 d) NINGUNA DE LAS ANTERIORES.

Tema 4 (2 PUNTOS)El registro TMR0 puede ser incrementado y producir un desbordamiento del TMR0 por:

a) Transiciones de bajo a alto o alto a bajo en el pin RA4. b) Transiciones con flanco negativo en el pin RBO.c) Transiciones de bajo a alto o alto a bajo en el pin RB4 y por el ciclo de instrucción

del reloj.d) Cambios en el puerto B <RB4:RB7>.

Tema 5 (2 PUNTOS)Al final de las siguientes líneas de código que afirmación es verdadera:

; Declaración en la memoria de datosCNT_1 equ 22hCNT_2 equ 23h

org 0movlw d’15’movwf CNT_1movlw d’10’movwf CNT_2movlw 0x23 movwf FSR movf INDF,0subwf cnt1,0

a) Borran la memoria de programa desde la dirección 22 hasta la 23.b) El registro CNT_ 2 = CNT_1=W.c) El registro W=5. d) Ninguna de las anteriores

Page 3: Examen micros t1_06_solucion

Tema 6 (8 PUNTOS)El siguiente programa implementa un contador BCD de un dígito (0 - 9), que avanza cada vez que generamos una interrupción externa en la patita RB0 mediante un pushbutton. Complete el diseño del contador.

CNT EQU 0CH ; CONTADORTEMP EQU 0DH ; VARIABLE TEMPORALCF EQU 01H ; BANDERA DE ACARREO

ORG 0GOTO INICIOORG __04 _ ____

ISR MOVWF TEMP ; GUARDA REGISTRO WINCF CNT, FMOVLW 0X0ASUBWF CNT, WBTFSS STATUS, CFGOTO __CFOFF___GOTO __CLEAR___

CFOFF BCF INTCON, INTFMOVF TEMP, W ; RECUPERA W_ RETFIE _

CLEAR CLRF CNTBCF INTCON, INTFRETFIE

;**********************************************************

; PROGRAMA PRINCIPALINICIO BSF INTCON, __7____

BSF INTCON, __4___BCF INTCON, __1_____BSF_ _STATUS,RP0_ ; configurar puertosMOVLW 0X01MOVWF TRISBMOVLW 0X10MOVWF TRISA__BCF_ _STATUS,RP0_ ; termina config de puertos

LAZO MOVF CNT, WMOVWF PORTAGOTO LAZOEND

;************************************************************

Page 4: Examen micros t1_06_solucion

Tema 7 (8 PUNTOS)El siguiente programa escribe datos en la memoria RAM de propósito general. Llene el cuadro dado con el contenido HEXADECIMAL de las localidades de memoria RAM de propósito general (File Registers) afectadas por el programa.

; VARIABLESVAR1 EQU 0CH

CBLOCK 0X0DContador_RAMENDC

; CONSTANTESnumero_loc_RAM EQU 20H

; ZONA DE CODIGOSORG 0

INICIO CLRF VAR1MOVLW numero_loc_RAMMOVWF Contador_RAMMOVLW Contador_RAM+1MOVWF FSR

Escribir_var1 INCF VAR1, FMOVF VAR1, WMOVWF INDFINCF FSR,FDECFSZ Contador_RAMGOTO Escribir_var1

dormir SLEEPGOTO dormirEND; Fin del programa fuente.

Dirección 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F0000 X X X X X X X X X X X X 20 0 1 20010 3 4 5 6 7 8 9 A B C D E F 10 11 120020 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 200030

0040

Tema 8 (8 PUNTOS)Asuma el Preescalor 1:256 para el TMR0 previamente almacenado en el OPTION_REG. Para un reloj de 10 MHz, implemente una semilla de 20 mseg. Verificando el desborde del TMR0 mediante su bandera TOIF. Tomando como base la semilla defina el contenido de la variable DELAY que debe cargarse al inicio de DELAY2 (rutina de dos segundos) para lograr un retardo total de 2 segundos.

DELAY EQU 0x0D

DELAY2 _MOVLW_ _.100__ ; defina retardo de 2 seg

Page 5: Examen micros t1_06_solucion

MOVWF DELAYLOOP0 _MOVLW_ __.61___ ; defina semilla de 20 mseg

MOVWF TMR0BCF INTCON, T0IF

LOOP1 __BTFSS_ _INTCON,TOIF_ ; Se ha desbordado el TMR0?GOTO LOOP1 ; Han transcurrido los 20 mseg?DECFSZ DELAY, F ; SiGOTO LOOP0 ; Ha transcurrido los 2 segRETURN ; Si

**********************************************************************

Tema 9 (8 PUNTOS)

Al ingresar al lazo infinito fin el valor de la variable VAR1 es:a) 40H b) C3H c) 49H d) C1H

**********************************************************************Tema 10 (8 PUNTOS)Considere el siguiente programa:

INICIO BSF STATUS, RP0CLRF TRISBMOVLW 0x1FMOVWF TRISABCF STATUS, RP0MOVF PORTA, WANDLW 0x07,WADDLW 0x02,WCALL TABLAMOVWF PORTB

AQUI GOTO AQUITABLA ADDWF PCL, F

DT 0x0A, 0x09, 0x23, 0x0F, 0x20, 0x07, 0x17, 0x3FEND

Si RA2 RA1 RA0 = 010 el contenido del latch PORTB es:

a) 0x23 b) 0x20 c) 0x3F d) 0x07

***********************************************************************FORMULA TEMPORIZACION=4TOSC(256-VALOR)(PREESCALADOR)

TABLA ADDWF PCL, 1NOPGOTO SUB1GOTO SUB2

SUB2 RRF VAR1, 1RRF VAR1, 1RETLW 1

SUB1 RLF VAR1, 1RETURN

Considere el siguiente segmento de programa:

MOVLW 0x80MOVWF VAR1BSF STATUS, 0MOVLW 2CALL TABLABSF STATUS,0CALL TABLA

FIN GOTO FIN

Page 6: Examen micros t1_06_solucion

MOVWF DELAYLOOP0 _MOVLW_ __.61___ ; defina semilla de 20 mseg

MOVWF TMR0BCF INTCON, T0IF

LOOP1 __BTFSS_ _INTCON,TOIF_ ; Se ha desbordado el TMR0?GOTO LOOP1 ; Han transcurrido los 20 mseg?DECFSZ DELAY, F ; SiGOTO LOOP0 ; Ha transcurrido los 2 segRETURN ; Si

**********************************************************************

Tema 9 (8 PUNTOS)

Al ingresar al lazo infinito fin el valor de la variable VAR1 es:a) 40H b) C3H c) 49H d) C1H

**********************************************************************Tema 10 (8 PUNTOS)Considere el siguiente programa:

INICIO BSF STATUS, RP0CLRF TRISBMOVLW 0x1FMOVWF TRISABCF STATUS, RP0MOVF PORTA, WANDLW 0x07,WADDLW 0x02,WCALL TABLAMOVWF PORTB

AQUI GOTO AQUITABLA ADDWF PCL, F

DT 0x0A, 0x09, 0x23, 0x0F, 0x20, 0x07, 0x17, 0x3FEND

Si RA2 RA1 RA0 = 010 el contenido del latch PORTB es:

a) 0x23 b) 0x20 c) 0x3F d) 0x07

***********************************************************************FORMULA TEMPORIZACION=4TOSC(256-VALOR)(PREESCALADOR)

TABLA ADDWF PCL, 1NOPGOTO SUB1GOTO SUB2

SUB2 RRF VAR1, 1RRF VAR1, 1RETLW 1

SUB1 RLF VAR1, 1RETURN

Considere el siguiente segmento de programa:

MOVLW 0x80MOVWF VAR1BSF STATUS, 0MOVLW 2CALL TABLABSF STATUS,0CALL TABLA

FIN GOTO FIN