examen final domiciliario de pic en c

Upload: mishell-sanchez-guevara

Post on 04-Jun-2018

252 views

Category:

Documents


0 download

TRANSCRIPT

  • 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