You are on page 1of 4

CURSO DE MICROCONTROLADORES PIC16F877A EN C

Examen Final

Examen Final Domiciliario


1- Realizar un programa que nos permita visualizar una seal analgica en una pantalla LCD Grfica. La seal analgica ingresara por el pin AN0 (RA0), esta seal ser una onda sinusoidal de Amplitud 2v y una frecuencia de 15 Hz. Para poder ingresarla por el pin AN0 se le agregar un voltaje DC, tal que la seal de ingreso ser Vi = 2.5v + Vsin. Ayuda: Muestrear la seal con el ADC a 10 bits, escalar la muestra de 0 a 63, luego imprimir en la glcd usando la funcin glcd_pixel (xa, ya, color). Por ejemplo: ya = 1 + K * muestra. Adems, usar la interrupcin de alguno de los timers para tomar la muestra en tiempos fijos, teniendo en consideracin el principio de Nyquist (Fm >= 2*Fs). No se permitir el uso del modulo CCP (comparador).

2- Realizar un programa que nos permita contar 250 pulsos por dos diferentes pines, estos son RA4(T0CKI) y RB0(INT). El programa contara los pulsos de cada pin en forma separada, esperando a que alguno llegue a contar los 250 pulsos. En una LCD se dar por ganador al primero que termine la cuenta, Tal como se muestra en la figura abajo. Nota: Para el conteo deber utilizar slo interrupciones, tanto para el TMR0, como para el pin RB0.

Profesor: Mishell Sanchez

Pgina 1

CURSO DE MICROCONTROLADORES PIC16F877A EN C

Examen Final

3- Hacer un programa, tal que al ingresar una trama serial por el hyperterminal modifique los anchos de pulso de 2 seales PWM que ofrecer el PIC por los pines RC2 (CCP1) y RC1 (CCP2). Las seales PWM tendrn una frecuencia de 2KHz. Los duty cicle sern ingresados por la hyperteminal, estos valores sern entre 000% y 100%. El programa deber escalar estos valores para usar la funcin set_pwmX_duty(valor), donde valor es una dato entre 0 y 1023. El programa deber imprimir INSTRUCCIONES DE USO al inicio, como lo muestra la imagen abajo. Tambin deber dar respuesta por los tramas que se reciban, estos son mensajes de error y mensaje de confirmacin OK. Mire el siguiente grafico:

Profesor: Mishell Sanchez

Pgina 2

CURSO DE MICROCONTROLADORES PIC16F877A EN C

Examen Final

Ntese que, para que la trama sea correcta deber empezar en $ y terminar en #. Adems los dutys son de 3 dgitos, sin pasar el valor de 100. Finalmente, estos dutys son separados por una , (coma), si hay algn error en este formato se enviara algn mensaje de error. Si el formato es correcto, se enviara un OK y se ejecutara los cambios de ancho de pulso en la seales.

4- Hacer un programa que haga un barrido ancho de seal PWM por el pin RD0. El periodo de la seal ser de 20ms. El barrido ser conforme la siguiente frmula: duty=500us + 100us*cont Donde la variable cont comenzara en 0 e ira aumentado hasta 20. Despus decrecer hasta tomar nuevamente el valor de 0. Este proceso lo repetir de manera cclica. En conclusin, el duty variara entre 500us y 2500us. Ayuda: Utilizar la interrupcin de algn timer para generar 100us y otro para el periodo de 20ms.

Profesor: Mishell Sanchez

Pgina 3

CURSO DE MICROCONTROLADORES PIC16F877A EN C

Examen Final

Profesor: Mishell Sanchez

Pgina 4

You might also like