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 (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
3. 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
;************************************************************
4. 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
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)