Download - Examen Final Domiciliario de PIC en C
-
8/13/2019 Examen Final Domiciliario de PIC en C
1/4
CURSO DE MICROCONTROLADORES PIC16F877A EN C Examen Final
Profesor: Mishell Sanchez Pgina 1
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.
-
8/13/2019 Examen Final Domiciliario de PIC en C
2/4
CURSO DE MICROCONTROLADORES PIC16F877A EN C Examen Final
Profesor: Mishell Sanchez Pgina 2
3- Hacer un programa, tal que al ingresar una trama serialpor 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:
-
8/13/2019 Examen Final Domiciliario de PIC en C
3/4
CURSO DE MICROCONTROLADORES PIC16F877A EN C Examen Final
Profesor: Mishell Sanchez Pgina 3
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 OKy 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 contcomenzara 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.
-
8/13/2019 Examen Final Domiciliario de PIC en C
4/4
CURSO DE MICROCONTROLADORES PIC16F877A EN C Examen Final
Profesor: Mishell Sanchez Pgina 4