ESPOL – FIEC 
MICROCONTROLADORES: 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 PORTB 
bsf STATUS,5 
movlw b'11111101' 
movwf TRISB 
movlw b'01000000' 
movwf OPTION_REG 
bcf STATUS,5 
clrf cnt 
movlw b'10010000' 
movwf INTCON 
lazo1 sleep 
goto 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.
Tema 3 (2 PUNTOS) 
Dadas las siguientes líneas de código que ocurre: 
bsf STATUS, 5 
movlw 3 
movwf TRISA 
movlw 6 
movwf TRISB 
movwf PORTA 
clrf INTCON 
a) TRISA=3, TRISB=3 
b) TRISA=5, TRISB=9 
c) 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 datos 
CNT_1 equ 22h 
CNT_2 equ 23h 
org 0 
movlw d’15’ 
movwf CNT_1 
movlw d’10’ 
movwf CNT_2 
movlw 0x23 
movwf FSR 
movf INDF,0 
subwf 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
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 ; CONTADOR 
TEMP EQU 0DH ; VARIABLE TEMPORAL 
CF EQU 01H ; BANDERA DE ACARREO 
ORG 0 
GOTO INICIO 
ORG __ 04 _ ____ 
ISR MOVWF TEMP ; GUARDA REGISTRO W 
INCF CNT, F 
MOVLW 0X0A 
SUBWF CNT, W 
BTFSS STATUS, CF 
GOTO __CFOFF___ 
GOTO __CLEAR___ 
CFOFF BCF INTCON, INTF 
MOVF TEMP, W ; RECUPERA W 
_ RETFIE _ 
CLEAR CLRF CNT 
BCF INTCON, INTF 
RETFIE 
;********************************************************** 
; PROGRAMA PRINCIPAL 
INICIO BSF INTCON, __7____ 
BSF INTCON, __4___ 
BCF INTCON, __1___ 
__BSF_ _STATUS,RP0_ ; configurar puertos 
MOVLW 0X01 
MOVWF TRISB 
MOVLW 0X10 
MOVWF TRISA 
__BCF_ _STATUS,RP0_ ; termina config de puertos 
LAZO MOVF CNT, W 
MOVWF PORTA 
GOTO LAZO 
END 
;************************************************************
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. 
; VARIABLES 
VAR1 EQU 0CH 
CBLOCK 0X0D 
Contador_RAM 
ENDC 
; CONSTANTES 
numero_loc_RAM EQU 20H 
; ZONA DE CODIGOS 
ORG 0 
INICIO CLRF VAR1 
MOVLW numero_loc_RAM 
MOVWF Contador_RAM 
MOVLW Contador_RAM+1 
MOVWF FSR 
Escribir_var1 INCF VAR1, F 
MOVF VAR1, W 
MOVWF INDF 
INCF FSR,F 
DECFSZ Contador_RAM 
GOTO Escribir_var1 
dormir SLEEP 
GOTO dormir 
END 
; Fin del programa fuente. 
Dirección 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 
0000 X X X X X X X X X X X X 20 0 1 2 
0010 3 4 5 6 7 8 9 A B C D E F 10 11 12 
0020 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 
0030 
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
MOVWF DELAY 
LOOP0 _MOVLW_ __.61___ ; defina semilla de 20 mseg 
MOVWF TMR0 
BCF INTCON, T0IF 
LOOP1 __BTFSS_ _INTCON,TOIF_ ; Se ha desbordado el TMR0? 
GOTO LOOP1 ; Han transcurrido los 20 mseg? 
DECFSZ DELAY, F ; Si 
GOTO LOOP0 ; Ha transcurrido los 2 seg 
RETURN ; Si 
********************************************************************** 
Tema 9 (8 PUNTOS) 
TABLA ADDWF PCL, 1 
NOP 
GOTO SUB1 
GOTO SUB2 
SUB2 RRF VAR1, 1 
RRF VAR1, 1 
RETLW 1 
SUB1 RLF VAR1, 1 
RETURN 
Al ingresar al lazo infinito fin el valor 
Considere el siguiente segmento de 
programa:M 
OVLW 0x80 
MOVWF VAR1 
BSF STATUS, 0 
MOVLW 2 
CALL TABLA 
BSF STATUS,0 
CALL TABLA 
FIN GOTO FIN 
de la variable VAR1 es: 
a) 40H b) C3H c) 49H d) C1H 
********************************************************************** 
Tema 10 (8 PUNTOS) 
Considere el siguiente programa: 
INICIO BSF STATUS, RP0 
CLRF TRISB 
MOVLW 0x1F 
MOVWF TRISA 
BCF STATUS, RP0 
MOVF PORTA, W 
ANDLW 0x07,W 
ADDLW 0x02,W 
CALL TABLA 
MOVWF PORTB 
AQUI GOTO AQUI 
TABLA ADDWF PCL, F 
DT 0x0A, 0x09, 0x23, 0x0F, 0x20, 0x07, 0x17, 0x3F 
END 
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)
MOVWF DELAY 
LOOP0 _MOVLW_ __.61___ ; defina semilla de 20 mseg 
MOVWF TMR0 
BCF INTCON, T0IF 
LOOP1 __BTFSS_ _INTCON,TOIF_ ; Se ha desbordado el TMR0? 
GOTO LOOP1 ; Han transcurrido los 20 mseg? 
DECFSZ DELAY, F ; Si 
GOTO LOOP0 ; Ha transcurrido los 2 seg 
RETURN ; Si 
********************************************************************** 
Tema 9 (8 PUNTOS) 
TABLA ADDWF PCL, 1 
NOP 
GOTO SUB1 
GOTO SUB2 
SUB2 RRF VAR1, 1 
RRF VAR1, 1 
RETLW 1 
SUB1 RLF VAR1, 1 
RETURN 
Al ingresar al lazo infinito fin el valor 
Considere el siguiente segmento de 
programa:M 
OVLW 0x80 
MOVWF VAR1 
BSF STATUS, 0 
MOVLW 2 
CALL TABLA 
BSF STATUS,0 
CALL TABLA 
FIN GOTO FIN 
de la variable VAR1 es: 
a) 40H b) C3H c) 49H d) C1H 
********************************************************************** 
Tema 10 (8 PUNTOS) 
Considere el siguiente programa: 
INICIO BSF STATUS, RP0 
CLRF TRISB 
MOVLW 0x1F 
MOVWF TRISA 
BCF STATUS, RP0 
MOVF PORTA, W 
ANDLW 0x07,W 
ADDLW 0x02,W 
CALL TABLA 
MOVWF PORTB 
AQUI GOTO AQUI 
TABLA ADDWF PCL, F 
DT 0x0A, 0x09, 0x23, 0x0F, 0x20, 0x07, 0x17, 0x3F 
END 
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)

Examen micros t1_06_solucion

  • 1.
    ESPOL – FIEC MICROCONTROLADORES: 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 PORTB bsf STATUS,5 movlw b'11111101' movwf TRISB movlw b'01000000' movwf OPTION_REG bcf STATUS,5 clrf cnt movlw b'10010000' movwf INTCON lazo1 sleep goto 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.
  • 2.
    Tema 3 (2PUNTOS) Dadas las siguientes líneas de código que ocurre: bsf STATUS, 5 movlw 3 movwf TRISA movlw 6 movwf TRISB movwf PORTA clrf INTCON a) TRISA=3, TRISB=3 b) TRISA=5, TRISB=9 c) 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 datos CNT_1 equ 22h CNT_2 equ 23h org 0 movlw d’15’ movwf CNT_1 movlw d’10’ movwf CNT_2 movlw 0x23 movwf FSR movf INDF,0 subwf 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
  • 3.
    Tema 6 (8PUNTOS) 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 ; CONTADOR TEMP EQU 0DH ; VARIABLE TEMPORAL CF EQU 01H ; BANDERA DE ACARREO ORG 0 GOTO INICIO ORG __ 04 _ ____ ISR MOVWF TEMP ; GUARDA REGISTRO W INCF CNT, F MOVLW 0X0A SUBWF CNT, W BTFSS STATUS, CF GOTO __CFOFF___ GOTO __CLEAR___ CFOFF BCF INTCON, INTF MOVF TEMP, W ; RECUPERA W _ RETFIE _ CLEAR CLRF CNT BCF INTCON, INTF RETFIE ;********************************************************** ; PROGRAMA PRINCIPAL INICIO BSF INTCON, __7____ BSF INTCON, __4___ BCF INTCON, __1___ __BSF_ _STATUS,RP0_ ; configurar puertos MOVLW 0X01 MOVWF TRISB MOVLW 0X10 MOVWF TRISA __BCF_ _STATUS,RP0_ ; termina config de puertos LAZO MOVF CNT, W MOVWF PORTA GOTO LAZO END ;************************************************************
  • 4.
    Tema 7 (8PUNTOS) 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. ; VARIABLES VAR1 EQU 0CH CBLOCK 0X0D Contador_RAM ENDC ; CONSTANTES numero_loc_RAM EQU 20H ; ZONA DE CODIGOS ORG 0 INICIO CLRF VAR1 MOVLW numero_loc_RAM MOVWF Contador_RAM MOVLW Contador_RAM+1 MOVWF FSR Escribir_var1 INCF VAR1, F MOVF VAR1, W MOVWF INDF INCF FSR,F DECFSZ Contador_RAM GOTO Escribir_var1 dormir SLEEP GOTO dormir END ; Fin del programa fuente. Dirección 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 0000 X X X X X X X X X X X X 20 0 1 2 0010 3 4 5 6 7 8 9 A B C D E F 10 11 12 0020 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 0030 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
  • 5.
    MOVWF DELAY LOOP0_MOVLW_ __.61___ ; defina semilla de 20 mseg MOVWF TMR0 BCF INTCON, T0IF LOOP1 __BTFSS_ _INTCON,TOIF_ ; Se ha desbordado el TMR0? GOTO LOOP1 ; Han transcurrido los 20 mseg? DECFSZ DELAY, F ; Si GOTO LOOP0 ; Ha transcurrido los 2 seg RETURN ; Si ********************************************************************** Tema 9 (8 PUNTOS) TABLA ADDWF PCL, 1 NOP GOTO SUB1 GOTO SUB2 SUB2 RRF VAR1, 1 RRF VAR1, 1 RETLW 1 SUB1 RLF VAR1, 1 RETURN Al ingresar al lazo infinito fin el valor Considere el siguiente segmento de programa:M OVLW 0x80 MOVWF VAR1 BSF STATUS, 0 MOVLW 2 CALL TABLA BSF STATUS,0 CALL TABLA FIN GOTO FIN de la variable VAR1 es: a) 40H b) C3H c) 49H d) C1H ********************************************************************** Tema 10 (8 PUNTOS) Considere el siguiente programa: INICIO BSF STATUS, RP0 CLRF TRISB MOVLW 0x1F MOVWF TRISA BCF STATUS, RP0 MOVF PORTA, W ANDLW 0x07,W ADDLW 0x02,W CALL TABLA MOVWF PORTB AQUI GOTO AQUI TABLA ADDWF PCL, F DT 0x0A, 0x09, 0x23, 0x0F, 0x20, 0x07, 0x17, 0x3F END 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)
  • 6.
    MOVWF DELAY LOOP0_MOVLW_ __.61___ ; defina semilla de 20 mseg MOVWF TMR0 BCF INTCON, T0IF LOOP1 __BTFSS_ _INTCON,TOIF_ ; Se ha desbordado el TMR0? GOTO LOOP1 ; Han transcurrido los 20 mseg? DECFSZ DELAY, F ; Si GOTO LOOP0 ; Ha transcurrido los 2 seg RETURN ; Si ********************************************************************** Tema 9 (8 PUNTOS) TABLA ADDWF PCL, 1 NOP GOTO SUB1 GOTO SUB2 SUB2 RRF VAR1, 1 RRF VAR1, 1 RETLW 1 SUB1 RLF VAR1, 1 RETURN Al ingresar al lazo infinito fin el valor Considere el siguiente segmento de programa:M OVLW 0x80 MOVWF VAR1 BSF STATUS, 0 MOVLW 2 CALL TABLA BSF STATUS,0 CALL TABLA FIN GOTO FIN de la variable VAR1 es: a) 40H b) C3H c) 49H d) C1H ********************************************************************** Tema 10 (8 PUNTOS) Considere el siguiente programa: INICIO BSF STATUS, RP0 CLRF TRISB MOVLW 0x1F MOVWF TRISA BCF STATUS, RP0 MOVF PORTA, W ANDLW 0x07,W ADDLW 0x02,W CALL TABLA MOVWF PORTB AQUI GOTO AQUI TABLA ADDWF PCL, F DT 0x0A, 0x09, 0x23, 0x0F, 0x20, 0x07, 0x17, 0x3F END 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)