DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
Micc final sept05 2009 soluc
1. MICROCONTROLADORES: Final sobre 60 puntos.
TIEMPO: UNA HORA
FECHA: Septiembre 05 del 2009.
Nombre: ______________________________________________________Paralelo: ___________
· LLENE LA TABLA DE RESPUESTAS. CADA EJERCICIO VALE TRES PUNTOS
1. Para el convertidor ADC del PIC16F877 el tiempo mínimo de conversión por bit es de:
a) 6 mseg
b) 6 μseg
c) 1.6 μseg
d) 1.6 mseg.
2. Para que el convertidor ADC del PIC16F877 pueda generar interrupciones al término de cada
conversión es necesario:
a) borrar ADIF, poner a uno los bits ADIE, GIE y PEIE.
b) borrar ADIE, poner a uno los bits ADIF, GIE y PEIE.
c) borrar PEIE, poner a uno los bits ADIE, GIE y ADIF.
d) ninguna de las anteriores.
3. Para grabar datos en la memoria FLASH se requiere:
a) Del registro EECON1 solamente.
b) Del registro EECON2 solamente
c) De los registros EECON1 y EECON2.
d) No es posible grabar datos en la memoria FLASH.
4. Su pantalla es un LCD 2x16 de 16 caracteres por línea. Asuma que el tiempo de espera entre
caracteres es igual a cero. El tiempo requerido para llenar la pantalla con caracteres ASCII transmitidos a
9600 bps (asuma 8 bits datos + un bit de inicio + un bit de parada) es:
a) 26.66 mseg b) 3.333 mseg c) 33.33 mseg d) Ninguna anteriores.
5. El convertidor ADC de 10 bits del PIC16F877 se configura con un voltaje de referencia de 5
voltios. El equivalente hexadecimal de una entrada de 3.4 voltios y la resolución son respectivamente:
a) 16DH, 10 mv b) 2B8H, 4.88 mv c) 15EH, 7.81 mv d) Ninguna anteriores
6. El ADC del PIC16F877 exige esperar 2TAD (TAD=tiempo de conversión por bit) para reiniciar una
nueva conversión.
FALSO ( ) VERDADERO ( )
7. La técnica de comunicación serial de datos más eficiente es:
a) Comunicación serial sincrónica con USART.
b) Comunicación serial asincrónica con USART.
c) Comunicación serial sincrónica sin USART.
d) Comunicación serial asincrónica sin USART.
8. Si se lleva el PIC16F877 a modo reposo (ejecutar instrucción SLEEP) su convertidor ADC
puede seguir funcionando si:
a) se configura para que opere a la frecuencia Fosc/32.
b) se configura para que opere a la frecuencia FRC.
c) se configura para que opere a la frecuencia Fosc/8
d) ninguna de las anteriores.
9. El PIC16F877 esta operando con un cristal de 10 MHz. El registro SPBRG del generador de
baudios del USART se carga con 6410 y el bit BRGH del registro TXSTA<2> se fija en 1(alta velocidad).
La frecuencia en bps del transmisor es:
a) 9600 bps b) 8960 bps c) 9615 bps d) ninguna anteriores
2. 10. Considere el USART. La bandera TXIF=1 del registro PIR1 indica que:
a) el registro TXREG o buffer de datos del transmisor se encuentra lleno.
b) el registro TXREG o buffer de datos del transmisor se encuentra vacío.
c) el registro TSR se encuentra vacío.
d) ninguna de las anteriores.
11. El bit TRMT=1 del registro de control del transmisor TXSTA del USART indica que:
a) hay error en la generación del bit de parada.
b) el transmisor está listo para transmitir.
c) el registro de desplazamiento del transmisor TSR está lleno.
d) el registro de desplazamiento del transmisor TSR está vacío.
12. Para configurar el USART para transmisión serial Asíncrona es necesario que:
a) SYNC=0 en registro TXSTA , SPEN=1 en registro RCSTA, RC6 salida y RC7 entrada.
b) SYNC=1 en registro TXSTA, SPEN=0 en registro RCSTA, RC6 salida y RC7 entrada
c) SYNC=0 en registro TXSTA, SPEN=0 en registro RCSTA, RC6 entrada y RC7 salida.
d) ninguna de las anteriores.
13. Considere el USART. La bandera RCIF=1 del registro PIR1 indica que:
a) el registro RCREG o buffer de datos del receptor se encuentra lleno.
b) el registro RCREG o buffer de datos del receptor se encuentra vacío.
c) el registro RSR se encuentra vacío.
d) ninguna de las anteriores.
14. Considere el siguiente segmento de programa donde TIMER2 interrumpe cada vez que desborda,
trabajando con un PIC16F877 a 4MHz. El TIMER 2 esta programado con un preescalador de 16, un
postescalador tambien de 16 y PR2=255.
int x=0;
#int_TIMER2
void TIMER2_isr (void)
{
printf ("Interrupcion exitosar");
x++;
}
void main()
{ setup_timer_2 (T2_DIV_BY_16, 255, 16);
enable_interrupts (INT_TIMER2);
enable_interrupts (GLOBAL);
while(x!=5); //espera por una interrupcion
disable_interrupts (global);
printf ("FIN");
while (1); }
a) TMR2 interrumpe cada 65.5 milisegundos.
b) TMR2 interrumpe cada 4.0 milisegundos.
c) TMR2 interrumpe cada 56.2 milisegundos
d) TMR2 interrumpe cada 16.3 milisegundos
15. Con referencia al ejercicio anterior (#6), la subrutina de servicio se ejecuta
a) 4 veces.
b) 6 veces.
c) 5 veces.
d) 65 veces
16. La frecuencia FPWM máxima posible en un PIC16F877 operando con un cristal de 20 MHz y
Peescalador=1 es:
a) 1 MHz.
b) 1 KHz.
c) 250 KHz.
d) 5.0 MHz.
3. 17. El segmento de código siguiente:
char c;
if (!ADFM) c=ADRESH;
else
{ c=ADRESH;
c=c<<6;
c=c | (ADRESL >>2);
}
a) Coloca en la variable c los 8 bits menos significativos del resultado de la conversión ADC.
b) Coloca en la variable c los 6 bits más significativos del resultado de la conversión ADC.
c) Coloca en la variable c los 8 bits más significativos del resultado de la conversión ADC.
d) Ninguna de las anteriores.
18. Considere el siguiente segmento de programa:
int suma (int a, int b) //esta funcion suma a+b.
{ int resultado;
resultado =a+b;
// return resultado;
}
void main (void)
{ int valor=0;
//printf ("Imprime la suma de dos numeros nr");
valor=suma(6,120); // se llama a la función suma
printf("La suma es: %dnr", valor);
while(1); }
El programa imprime en pantalla:
a) La suma es: 126
b) La suma es: 0
c) La suma es: %126
d) La suma es: %nr
19. El módulo PWM del PIC16F877 ha sido configurado con PR2=120, y CCPR1L=60:
a) Como CCPR1L < PR2 la salida RC2 se mantiene siempre en alto.
b) Como CCPR1L < PR2 la salida RC2 se mantiene siempre en bajo.
c) Como CCPR1L < PR2 la salida RC2 cambia de alto a nivel bajo.
d) Ninguna de las anteriores.
20. Para el 16F877, el BIT EEIE de los registros de funciones especiales se encuentra en:
a) INTCON
b) PIE2
c) PIR1
d) PIE1
*************************************************************************************
FORMULAS DE AYUDA:
1) BPS=FOSC / 16(X+1) Velocidad alta; BPS= FOSC/64(X+1) Velocidad baja
2) PERIODO = (X+1) * (FACTOR DIVISOR FREC) * 4 * TOSC
4. MICROCONTROLADORES: Final sobre 60 puntos
FECHA: Septiembre 05 del 2009.
TABLA DE RESPUESTAS
Marque con una X la alternativa correcta.
Cada pregunta vale tres puntos.
#
Pregunta
a b c d
1 X
2 X
3 X
4 X
5 X
6 F( ) V ( X )
7 X
8 X
9 X
10 X
11 X
12 X
13 X
14 X
15 X
16 X
17 X
18 X
19 X
20 X