0% encontró este documento útil (0 votos)
4 vistas21 páginas

Examenes Laboratorio 2014-19

Descargar como pdf o txt
Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1/ 21

DEPARTAMENTO DE TECNOLOGÍA ELECTRÓNICA

Sistemas electrónicos digitales – Escuela de Ingeniería de Bilbao


Examen práctico 14/01/2019 (adelanto de convocatoria)

Alumno ______________________________________________________________

Utiliza el entorno MPLAB de Microchip para desarrollar el ejercicio descrito más abajo.
Realiza la programación en lenguaje C y el compilador MPLAB XC16. Utiliza los
recursos del entorno de desarrollo para depurar y verificar el funcionamiento del sistema
a nivel de simulación

NOTA: Comenta todas y cada una de las líneas de código de tu programa,


indicando claramente la utilidad y función de cada una de ellas. No se dará por
válido el código que no esté debidamente comentado. No olvides incluir TODOS los
archivos necesarios para la compilación en la carpeta del proyecto. Finalmente, ¡no
olvides escribir tu nombre en los comentarios iniciales del fichero principal!

EJERCICIO
Utiliza el módulo de generación de pulsos (OC1) para generar una señal ajustable
PWM. Usa los botones de la tarjeta Explorer 16 para fijar los valores de frecuencia (f) y
ciclo de trabajo (DC) de la señal PWM. La configuración y el funcionamienot del
sistema deben cumplir:
1. Oscilador y señal de reloj de la CPU: Utiliza el oscilador de alta frecuencia
del PIC24F. Mediante el PLL, consigue que la frecuencia de la señal de
reloj que va a la CPU sea de 16 MHz.
2. El temporizador asociado al módulo OC1 será el TIMER2. Configura el
temporizador para utilizar la señal de reloj de la CPU y fija un factor de
escala 1:256 para reducir la frecuencia del contador TMR2

T2CON = 0x_____________

Frecuencia de TMR2:___________Hz

3. Escribe el valor del registro de configuración del módulo OC1. Justifica la


elección realizada.

OC1CON = 0x____________
DEPARTAMENTO DE TECNOLOGÍA ELECTRÓNICA

4. Funcionamiento del sistema:


Como se indica, usa en este sistema cuatro pulsadores de la tarjeta para control:
S3: Encender/apagar el módulo OC (señal PWM). Para indicar que el módulo
está activado se enciende el primer LED (el de la derecha) y cuando se desactiva
el módulo, el LED también debe apagarse. En el inicio del sistema, el módulo
OC debe estar desactivado.
S6: Para fijar la frecuencia de la señal PWM. Por cada pulsación, la frecuencia
variará entre 100Hz y 500Hz, con un incremento de 100Hz, es decir: 100Hz,
200Hz, 300Hz, 400Hz, 500Hz, 100Hz, 200Hz… En el inicio del sistema, la
frecuencia debe ser de 100Hz (si el módulo OC está activado, claro).
S5: Para fijar el ciclo de trabajo (DC) en el rango entre 0% y 100% con un
incremento del 10%. Es decir: 0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%,
80%, 90%, 100%, 0%, 10%... En el inicio del sistema, el ciclo de trabajo debe
ser DC=0% (si el módulo OC está activado, claro).
S4: Para realizar lecturas del DC y de la frecuencia del la señal PWM. Al
apretar el pulsador, el sistema guarda guarda estos dos valores en dos vectores
específicos de 20 elementos cada uno: en el de nombre frecuencia se guardan
los valores de frecuencia y en el de nombre ciclo_trabajo se guardan los valores
de DC. Esta lectura se debe realizar al final del ciclo (periodo) de la señal PWM;
para asegurarlo debes utilizar una INTERRUPCIÓN.
Sistemas Electrónicos Digitales 4 de julio 2018
Examen práctico. Evaluación final julio 2018
Nombre y apellidos_______________________________________________________
Utiliza el entorno MPLAB de Microchip para desarrollar el ejercicio descrito más abajo. Realiza la
programación en lenguaje C y el compilador MPLAB XC16. Utiliza los recursos del entorno de
desarrollo para depurar y verificar el funcionamiento del sistema a nivel de simulación
NOTA: Comenta todas y cada una de las líneas de código de tu programa, indicando claramente la
utilidad y función de cada una de ellas. No se dará por válido el código que no esté debidamente
comentado. No olvides incluir TODOS los archivos necesarios para la compilación en la carpeta del
proyecto. Finalmente, ¡no olvides escribir tu nombre en los comentarios iniciales del fichero
principal!

EJERCICIO
Se trata de utilizar un módulo de generación de pulsos (OC) para generar una señal
PWM de 200Hz. La resolución de la señal PWM debe estar en torno a 1:64 (6 bits).
1. Selecciona el temporizador que asociarás al módulo OC1, y escribe la configuración
del mismo: TyCON y PRy. Para ello también deberás especificar qué frecuencia de reloj
vas a utilizar en el sistema (FCY). Justifica esta configuración.
2. Escribe el valor del registro de configuración del módulo OC1: OC1CON. Justifica la
configuración elegida.
3. Escribe un programa que genere una señal PWM con el módulo OC1, tal que el ciclo
de trabajo de la señal pueda variar entre DC= 0% y DC=100% con las característicaS
arriba mencionadas. El sistema debe funcionar como sigue:
a. A su inicio, la salida PWM debe estar desactivada (DC = 0%).
b. Cuando apretamos el pulsador S5 de la tarjeta, el DC de la señal PWM debe
crecer a un ritmo de un 10% (con la precisión que permita la resolución seleccio-
nada) cada segundo.
c. Si no volvemos a pulsar S5 la señal, tras llegar a su valor máximo (DC =
100%), volverá a cero e iniciará su crecimiento al ritmo prefijado. Una nueva
pulsación en S5 nos lleva al estado inicial con DC = 0 %.
d. Queremos visualizar el valor que tiene el DC de la señal, mediante los LEDs de
la tarjeta. Utiliza el flag de interrupción del módulo OC para generar una interrup-
ción y pasar el valor de visualización a los LEDs de la siguiente forma:
• DC = 0% : todos apagados.
• DC = 10% : LED1
• DC = 20% : LED1 y LED2
•…
• DC = 80% : LED1, LED2, … , LED8
• DC = 90% : LED1, LED8
• DC = 100% : LED1, LED2, LED8

NOTA: Las especificaciones de la señal PWM (f=200HZ, res=1:64) no necesariamente pueden lo-
grarse de forma exacta. Ten en cuenta que tanto la frecuencia de reloj F CY como el preescalado del
temporizador no pueden ajustarse a cualquier valor. Se recomienda ajustar la frecuencia de la
señal PWM a 200 Hz y aproximar la resolución al valor especificado
Sistemas Electrónicos Digitales 6 de junio 2018
Examen práctico. Evaluación final mayo 2018

Nombre y apellidos_______________________________________________________

Utiliza el entorno MPLAB de Microchip para desarrollar el pequeño ejercicio que se


propone a continuación. Realiza la programación en lenguaje C y el compilador
MPLAB C30 o XC16. Puedes utilizar todos los recursos del entorno de desarrollo para
depurar y verificar el funcionamiento del sistema a nivel de simulación
NOTA: Comenta todas y cada una de las líneas de código de tu programa,
indicando claramente la utilidad y función de cada una de ellas. No se dará por
válido el código que no esté debidamente comentado. No olvides incluir TODOS los
archivos necesarios para la compilación en la carpeta del proyecto. Finalmente, ¡no
olvides escribir tu nombre en los comentarios iniciales del fichero principal!

EJERCICIO
Tenemos un motor eléctrico DC cuya velocidad queremos controlar en el intervalo de
1.000 rpm a 8.000 rpm. El motor lleva incluído un encoder incremental de efecto Hall,
el cual genera tres pulsos por cada vuelta del eje del motor. Queremos utilizar uno de
los módulos IC (Input Capture) del PIC24FJ128GA010 para realizar la medida de la
velocidad del motor. Para ello, hemos conectado la salida del encoder al canal 1 del
módulo IC. Deseamos obtener la máxima resolución y precisión en la medida de
velocidad, ya que usaremos los valores obtenidos en un algorimo de control.
1. Elige la fuente de reloj y su configuración más adecuada (usaremos la tarjeta
Explorer 16). Justifica la elección y configuración realizadas y escribe las
palabras de configuración adecuadas (y los SFR, si fueran necesarios). Es
conveniente tener en cuenta lo siguiente:
a. Queremos conseguir las mayores resolución y precisión.
b. Calcula los valores máximos y mínimos de frecuencia que
tendrás que medir:
Fmáx_________________Hz
Fmín_________________Hz
Configuración del reloj:

2. Elige qué temporizador utilizarás con el módulo IC y configúralo. Justifica la


configuración realizada y escribe el valor correspondiente en el registro de
configuración:

TxCON = 0x______________
3. Una vez decidida la frecuencia del reloj y la configuración del temporizador,
calcula cuáles será los valores máximos y mínimos de resolución en la medida
de frecuencia:
Rmáx______________________Hz
Rmín_______________________Hz

4. Decide cuál será el modo de operación más adecuado para el módulo IC en esta
aplicación. Argumenta tu decisión y escribe el valor correspondiente del registro
de configuración:
IC1CON = 0x____________

En función de la configuración elegida, calcula cuáles serán los tiempos mínimo


y máximo necesarios para realizar una medida de frecuencia:

Tmáx______________________ms
Tmín_______________________ms

5. Decide cómo podemos asegurar que el sistema realice un cálculo del valor de
frecuencia cada 100 ms (ya que ésta será la frecuencia de muestreo del sistema
de control)

6. Finalmente, escribe un programa en C para implementar esta aplicación. Escribe


en él todas las configuraciones elegidas y añade todas las demás configuraciones
necesarias (por ejemplo, para los puertos I/O). Incluye por lo menos una función
principal (bucle principal) y las ISR que puedan ser necesarias para conseguir las
siguientes especificaciones: el sistema realizará un cálculo de frecuencia cada
100 ms (asegura que es en tiempo real) y guardará los valores calculados en una
variable de nombre “frecuencia”.
Sistemas Electrónicos Digitales 6 de junio 2018
Examen final. Convocatoria ordinaria mayo 2018
Examen práctico (T3)

Nombre y apellidos_________________________________________________________________________

Utiliza el entorno MPLAB de Microchip para desarrollar el pequeño ejercicio que se propone a continuación.
Realiza la programación en lenguaje C y el compilador XC16. Puedes utilizar todos los recursos del entorno
de desarrollo para depurar y verificar el funcionamiento del sistema a nivel de simulación
NOTA: Comenta todas y cada una de las líneas de código de tu programa, indicando claramente la
utilidad y función de cada una de ellas. No se dará por válido el código que no esté debidamente
comentado. No olvides incluir TODOS los archivos necesarios para la compilación en la carpeta del proyecto.
Finalmente, ¡no olvides escribir tu nombre en los comentarios iniciales del fichero principal!

EJERCICIO
Utilizando la tarjeta de desarrollo Explorer 16, que contiene el PIC24FJ128GA010, queremos implementar
el control en tiempo real de los 8 LEDs de la tarjeta. Sigue las especificaciones siguientes para desarrollar el
sistema:
1. Configura la señal de reloj del sistema para usar el oscilador externo primario (Sin PLL).
2. Utiliza el temporizador Timer 1 para que genere una interrupción con un período de dos segundos.
Configura el temporizador para que tenga la máxima resolución en la medida de esos dos segundos.
Explica con claridad los cálculos realizados:

Cálculos:

T1CON = 0x____________;
Período del contador TMR1 = __________µs;

3. El funcionamiento del sistema debe ser el siguiente:


a. El sistema se inicia en estado de “espera”. Este modo de funcionamiento se visualiza encendiendo el
8º LED de la tarjeta (LED D10 o RA7).
b. Al apretar el pulsador S3 el sistema entrará en estado “activo”. En este modo de funcionamiento
inicialmente se apagarán todos los LEDs. Transcurridos 2s (para asegurar el tiempo real debes
utilizar una interrupción), los cuatro LEDs de menor peso (los de la derecha) se encenderán.
c. Después de dos segundos los LEDs de la derecha se apagarán y los cuatro de la izquierda se
encenderán.
d. El sistema seguirá indefinidamente este patrón de encendido/apagado de los LEDs hasta que se
apriete el pulsador S3, momento en el que pasará al estado de “espera”.
e. Desde el inicio del sistema hasta la detención de éste (es decir, entre dos pulsaciones de S3), debe
almacenarse en una variable de 16 bits cuenta el número de veces que se han encendido/apagado los
LEDs.
Sistemas Electrónicos Digitales 6 de junio 2018
Examen final. Convocatoria ordinaria mayo 2018
Examen práctico (T1/T2)

Nombre y apellidos________________________________________________________________________

Utiliza el entorno MPLAB de Microchip para desarrollar el pequeño ejercicio que se propone a continuación.
Realiza la programación en lenguaje C y el compilador XC16. Puedes utilizar todos los recursos del entorno
de desarrollo para depurar y verificar el funcionamiento del sistema a nivel de simulación
NOTA: Comenta todas y cada una de las líneas de código de tu programa, indicando claramente la
utilidad y función de cada una de ellas. No se dará por válido el código que no esté debidamente
comentado. No olvides incluir TODOS los archivos necesarios para la compilación en la carpeta del proyecto.
Finalmente, ¡no olvides escribir tu nombre en los comentarios iniciales del fichero principal!

EJERCICIO
Utilizando la tarjeta de desarrollo Explorer 16, que contiene el PIC24FJ128GA010, queremos implementar
un sistema que leerá el estado en tiempo real de tres pulsadores de la tarjeta. Sigue las especificaciones
siguientes para desarrollar el sistema:

1. Configura la señal de reloj del sistema para usar el oscilador rápido interno (FRC) con divisor de
frecuencia (postscaler). Asegura que la frecuencia de reloj de la CPU es de 125 kHz.
2. Utiliza el temporizador Timer 1 para que genere una interrupción con un periodo de dos segundos.
Configura el temporizador para que tenga la máxima resolución en la medida de esos dos segundos.
Explica con claridad los cálculos realizados:

Cálculos:

T1CON = 0x____________;
Período del contador TMR1 = __________µs;

3. El funcionamiento del sistema debe ser el siguiente:


a. El sistema se inicia en estado de “espera”, en este modo de funcionamiento no realiza ningún
muestreo de la señal de entrada (el estado de los pulsadores). Este modo de funcionamiento se
visualiza encendiendo el 7º LED de la tarjeta (LED D9 o RA6)
b. Al apretar el pulsador S5 el sistema entrará en estado de “muestreo”. En este modo de
funcionamiento, inicialmente se apagarán todos los LEDs. Transcurridos 2s (para asegurar el
tiempo real debes utilizar una interrupción), el sistema realizará un muestreo del estado de los
pulsadores S3, S6 y S4 y el resultado (el valor muestreado) se mostrará en los tres LEDs de la
derecha de la tarjeta (apretado->encendido, no apretado->apagado).
c. Los LEDs se mantendrán en este estado hasta que pasen otros cuatro segundos (asegura el
tiempo real también en este caso). En ese momento los cuatro LEDs se apagarán y el sistema
volverá al estado de “espera” (con el 7º LED encendido, por supuesto).
ESCUELA DE INGENIERÍA DE BILBAO DEPT. DE TECNOLOGÍA ELECTRÓNICA

Sistemas Electrónicos Digitales


Examen práctico. Adelanto de convocatoria: 22/01/2018

Nombre y apellidos

Utiliza el entorno MPLAB de Microchip para desarrollar el pequeño ejercicio que se


propone a continuación. Realiza la programación en lenguaje C y el compilador
MPLAB C30 o XC16. Puedes utilizar todos los recursos del entorno de desarrollo para
depurar y verificar el funcionamiento del sistema a nivel de simulación
NOTA:Comenta todas y cada una de las líneas de código de tu programa,
indicando claramente la utilidad y función de cada una de ellas. No se dará por
válido el código que no esté debidamente comentado. No olvides incluir TODOS los
archivos necesarios para la compilación en la carpeta del proyecto. Finalmente, ¡no
olvides escribir tu nombre en los comentarios iniciales del fichero principal!

EJERCICIO
Utiliza el módulo de generación de pulsos (OC) para generar una señal PWM de 200 Hz
de frecuencia. La resolución de la señal PWM generada deberá ser aproximadamente
(no menor) 1:64 (6 bit). Sigue los siguientes pasos para la programación:
1. Elige el temporizador que asignarás al módulo OC1 y escribe su configuración.
Anteriormente, tendrás que realizar la configuración del reloj y elegir la
frecuencia de la CPU (Fcy). Justifica mediante cálculos las elecciones y
configuraciones realizadas.

_CONFIG2(0x____________);
FCy = ____________;
TyCON = 0x______________;
PRy = _____________;
ESCUELA DE INGENIERÍA DE BILBAO DEPT. DE TECNOLOGÍA ELECTRÓNICA

2. Escribe el valor del registro de configuración del módulo OC1. Justifica la


elección realizada.

OC1CON = 0x____________

3. Escribe la programación de un sistema que genera una señal PWM de las


características indicadas. El ciclo de trabajo de la señal variará entre los valores
DC= 0% y DC=100% según el siguiente esquema de funcionamiento:
a. Inicialmente la señal PWM está desactivada (DC = 0%).
b. Apretando el pulsador S5 de la tarjeta, el ciclo de trabajo de la señal
aumenta, +10% por cada segundo que se mantiene apretado.
c. Si no volvemos a pulsar el botón S5, el ciclo de trabajo de la señal
aumentará hasta llegar al 100% y entonces de nuevo empezará a
aumentar desde el 0% al mismo ritmo de aumento. Por el contrario, si
volvemos a pulsar el botón S5, el ciclo de trabajo de la señal se reinicia
inmediatamente en el 0% (e iniciará el crecimiento al mismo ritmo). Al
mismo tiempo (cuando aprietes el pulsador), el valor DC de la señal se
escribirá en una variable vectorial (array), para la cual debes reservar 20
posiciones de memoria
d. Simultáneamente, el valor del ciclo de trabajo se mostrará en los LED de
la tarjeta a tiempo real, es decir, la actualización de la información se
realizará exactamente cada segundo. Para ello, utilizarás una interrupción
y escribir una rutina de interrupción para el encendido de los LEDs
siguiendo el patrón:
• DC = 0% : todos los LED apagados.
• DC = 10% : LED1
• DC = 20% : LED1 y LED2
• …
• DC = 80% : LED1, LED2, … , LED8
• DC = 90% : LED1, LED8
• DC = 100% : LED1, LED2, LED8
ESCUELA DE INGENIERÍA DE BILBAO DEP. TECNOLOGÍA ELECTRÓNICA

Sistemas Electrónicos Digitales


Prueba práctica de programación. Convocatoria ordinaria.
(29/05/2017)

NOMBRE________________________________________________________________

Utiliza el entorno MPLAB de Microchip para desarrollar el pequeño ejercicio que se


propone a continuación. Realiza la programación utilizando lenguaje C y el compilador
MPLAB C30. Puedes utilizar todos los recursos del entorno de desarrollo para depurar
y verificar el funcionamiento del sistema a nivel de simulación.
NOTA1: Comenta todas y cada una de las líneas de código de tu programa,
indicando claramente la utilidad y función de cada una de ellas. No se dará por válido el
código que no esté debidamente comentado. No olvides incluir TODOS los archivos
necesarios para la compilación en la carpeta del proyecto. Finalmente, no olvides
escribir tu nombre en los comentarios iniciales del fichero principal.
NOTA2: Las interrupciones se tratarán exclusivamente por medio de ISR y se actuará
sobre los leds de manera individualizada.

EJERCICIO
Tenemos el PIC24F conectado en la tarjeta Explorer 16, y queremos programar un
prototipo que cumpla con las siguientes características:
1. Configura la fuente del reloj de sistema utilizando el oscilador RC interno de
alta frecuencia, y selecciona la opción con “PLL”.
F y (CPU) = __________

2. Selecciona el Timer-y y configúralo en modo de temporizador de 16 bits. Utiliza


el divisor de frecuencia de este periférico para reducir la frecuencia de cuenta del
temporizador al valor necesario exigido por el ejercicio ¿Con qué periodo
realizará la cuenta este temporizador?

TyCON = 0x____________;
Period timer = ____________

3. Manteniendo esta configuración, escribe un programa que realice las siguientes


funciones de forma ininterrumpida:
a. En el inicio, el sistema se mantiene a la “espera” de que se pulse el pulsador
S3 de la tarjeta. Un led nos indicará que está en modo de espera.
b. Cuando se pulsa S3 debe desencadenarse la siguiente secuencia:
i. Transcurridos 4s. debe activarse un led.
ii. Transcurridos otros 4s. se desactivará el led y así sucesivamente
c. Cuando se pulsa S3 durante el proceso anterior
i. El sistema volverá al estado inicial, reiniciándose la secuencia.
ESCUELA DE INGENIERÍA DE BILBAO DEP. TECNOLOGÍA ELECTRÓNICA

Sistemas Electrónicos Digitales


Prueba práctica de programación. Convocatoria extraordinaria.
(23/05/2016)

NOMBRE________________________________________________________________

Utiliza el entorno MPLAB de Microchip para desarrollar el pequeño ejercicio que se


propone a continuación. Realiza la programación utilizando lenguaje C y el compilador
MPLAB C30. Puedes utilizar todos los recursos del entorno de desarrollo para depurar
y verificar el funcionamiento del sistema a nivel de simulación.
NOTA: Comenta todas y cada una de las líneas de código de tu programa,
indicando claramente la utilidad y función de cada una de ellas. No se dará por válido el
código que no esté debidamente comentado. No olvides incluir TODOS los archivos
necesarios para la compilación en la carpeta del proyecto. Finalmente, no olvides
escribir tu nombre en los comentarios iniciales del fichero principal.

EJERCICIO
Tenemos el PIC24F conectado en la tarjeta Explorer 16, y queremos programar un
prototipo que cumpla con las siguientes características:
1. Configura la fuente del reloj de sistema utilizando el oscilador RC interno de
alta frecuencia, y selecciona la opción con “postscaler”.
2. Configura el divisor de frecuencia o “postscaler” para reducir al máximo la
frecuencia de reloj ¿Cuál será la frecuencia en la CPU?

Fy (CPU) = __________

3. Selecciona un timer y configúralo en modo de temporizador de 16 bits. Utiliza el


divisor de frecuencia de este periférico para reducir la frecuencia de conteo del
temporizador al máximo ¿Con qué periodo realizará el conteo este
temporizador?

TyCON = 0x____________;
Period timer = ____________

4. Manteniendo esta configuración, escribe un programa que realice las siguientes


funciones de forma ininterrumpida:
a. En el inicio, el sistema se mantiene a la “espera” de que se pulse el pulsador
S3 de la tarjeta.
b. Cuando se pulsa S3 deben ocurrir dos cosas:
ESCUELA DE INGENIERÍA DE BILBAO DEP. TECNOLOGÍA ELECTRÓNICA

i. Se inicia un contador que debe llevar la cuenta del número de veces


que se ejecuta el bucle principal del programa. Para ello utiliza una
variable de 64 bits de nombre count.
ii. Al mismo tiempo, se debe encender el primer LED de la tarjeta (el de
menos peso). Luego, tras un segundo, se encenderá también el
segundo LED y, finalmente, tras otro segundo, se encenderá también
el tercer LED (debes garantizar el tiempo real mediante interrupciones
y sus correspondientes rutinas de servicio). En este momento se debe
almacenar el valor del contador count y, tras otro segundo de espera,
se deben apagar todos los LEDs, al mismo tiempo que se reinicia el
contador (contador a cero).
c. El sistema volverá al estado de “espera”.
¿Qué valor de count se ha almacenado tras la ejecución del programa?

count = 0x______________
ESCUELA DE INGENIERÍA DE BILBAO DEP. TECNOLOGÍA ELECTRÓNICA

Sistemas Electrónicos Digitales


Prueba práctica de programación. Conv. ordinaria (23/05/2016)

NOMBRE________________________________________________________________

Utiliza el entorno MPLAB de Microchip para desarrollar el pequeño ejercicio que se


propone a continuación. Realiza la programación utilizando lenguaje C y el compilador
MPLAB C30. Puedes utilizar todos los recursos del entorno de desarrollo para depurar
y verificar el funcionamiento del sistema a nivel de simulación.
NOTA: Comenta todas y cada una de las líneas de código de tu programa,
indicando claramente la utilidad y función de cada una de ellas. No se dará por válido el
código que no esté debidamente comentado. No olvides incluir TODOS los archivos
necesarios para la compilación en la carpeta del proyecto. Finalmente, no olvides
escribir tu nombre en los comentarios iniciales del fichero principal.

EJERCICIO
Tenemos el PIC24F conectado en la tarjeta Explorer 16, y queremos programar un
sistema que muestre un segundero en los LEDs de la tarjeta. El sistema debe funcionar
de la siguiente manera: los 8 LEDs de la tarjeta deben encenderse y apagarse a
intervalos de 1 segundo. Sin embargo, cuando pulsemos el pulsador S3 de la tarjeta, los
LEDs deben permanecer en el mismo estado en el que se encontraban en ese momento
(encendidos o apagados), y deben permanecer así hasta que dejemos de presionar el
mismo, momento en el cual los LEDs deben seguir parpadeando a intervalos de un
segundo. Para la programación de este sistema debes seguir las siguientes indicaciones:
1. Configura el reloj de sistema utilizando el oscilador interno de bajo consumo
¿Cuál será la frecuencia de reloj en la CPU?

2. Selecciona un temporizador y configúralo adecuadamente para obtener una


temporización de un segundo con la máxima resolución posible. El temporizador
deberá utilizar la señal de reloj de sistema para la temporización. Realiza los
cálculos necesarios para obtener dicha configuración de máxima resolución, e
indica cuál es la resolución conseguida (en milisegundos).

TyCON = 0x______________;
Resolución (ms) =

3. El tiempo de encendido y apagado de los LEDs debe ser preciso, por lo que se
exige que este se realice utilizando una interrupción.
SISTEMAS ELECTRÓNICOS DIGITALES DEP. TECNOLOGÍA ELECTRÓNICA

Sistemas Electrónicos Digitales – Escuela de Ingeniería de Bilbao


Examen Final 2016-01-15
Adelanto de Convocatoria.
Prueba Práctica

NOMBRE________________________________________________________________

Utiliza el entorno MPLAB de Microchip para desarrollar el ejercicio que se propone a


continuación. Realiza la programación utilizando lenguaje C y el compilador MPLAB
C30. Puedes utilizar todos los recursos del entorno de desarrollo para depurar y verificar
el funcionamiento del sistema a nivel de simulación, y la tarjeta Explorer 16 para
verificar el sistema implementado.

NOTA: Comenta todas y cada una de las sentencias de tu programa, indicando


claramente la utilidad y función de cada una de ellas. No se dará por válido el código
que no esté debidamente comentado. Finalmente, no olvides escribir tu nombre en los
comentarios iniciales del fichero principal.

EJERCICIO
Se trata de utilizar un módulo de generación de pulsos (OC) para generar una señal
PWM de 200Hz. La resolución de la señal PWM debe estar en torno a 1:64 (6 bits).

1. Selecciona el temporizador que asociarás al módulo OC1, y escribe la


configuración del mismo: TyCON y PRy. Para ello también deberás especificar
qué frecuencia de reloj vas a utilizar en el sistema (Fcy). Justifica esta
configuración.
2. Escribe el valor del registro de configuración del módulo OC1: OC1CON.
Justifica la configuración elegida.
3. Escribe un programa que genere una señal PWM con el módulo OC1, tal que el
ciclo de trabajo de la señal pueda variar entre DC= 0% y DC=100% con las
característica arriba mencionadas. El sistema debe funcionar como sigue:
a. A su inicio, la salida PWM debe estar desactivada (DC = 0%).
b. Cuando apretamos el pulsador S5 de la tarjeta, el DC del la señal PWM
debe crecer a un ritmo de un 10% de su periodo total (aproximadamente ,
con la precisión que permita la resolución seleccionada) cada segundo.
c. Si no volvemos a pulsar S5 la señal, tras llegar a su valor máximo (DC =
100%), volverá a cero e iniciará su crecimiento a ritmo de un 10% / seg
SISTEMAS ELECTRÓNICOS DIGITALES DEP. TECNOLOGÍA ELECTRÓNICA

otra vez. En el momento en que pulsemos S5 de nuevo, el sistema


volverá a poner la señal de salida a cero.
d. Al mismo tiempo queremos visualizar el valor que tiene el DC de la
señal, para lo que utilizaremos los LEDs de la tarjeta. Utiliza el flag de
interrupción del módulo OC para generar una interrupción y pasar el
valor de visualización a los LEDs de la siguiente forma:
• DC = 0% : todos apagados.
• DC = 10% : LED1
• DC = 20% : LED1 y LED2
• …
• DC = 80% : LED1, LED2, … , LED8
• DC = 90% : LED1, LED8
• DC = 100% : LED1, LED2, LED8

NOTA: Las especificaciones de diseño de la señal PWM (f=200HZ, res=1:64) no


necesariamente pueden lograrse de forma exacta. Ten en cuenta que tanto la
frecuencia de reloj Fcy como el preescalado del temporizador no pueden ajustarse
a cualquier valor. Se recomienda ajustar la frecuencia de la PWM a 200HZ y
tratar de aproximar la resolución al valor especificado.

a. ¿Entre qué dos posiciones de memoria se ha almacenado el programa?

b. Entonces ¿qué cantidad de memoria ocupa la función principal?

c. ¿Cuál es el tamaño total de memoria RAM ocupada?


01 de Junio del 2015

ESCUELA UNIVERSITARIA DE INGENIERÍA TÉCNICA INDUSTRIAL DE BILBAO


Grado en Ingeniería Electrónica Industrial y Automática

Examen de Laboratorio de Sistemas Electrónicos Digitales (3º)

Laboratorio de μP

La funcionalidad requerida del programa será la siguiente:

1. Se escogerá como reloj de sistema el reloj primario (POSC) en modo PLL y XT (XTPLL)
2. Se espera la activación de un pulsador (a elegir).
3. Una vez reconocida la pulsación se activa un led durante 3s.
4. Finalizada la temporización se desactiva este led.
5. Otra pulsación arranca nuevamente el proceso.

Nota 1: Debe garantizarse el tiempo real mediante interrupción.


Nota 2: El trabajo de verificación se realizará bajo simulación.
Nota 3: Comentar todas y cada una de las líneas de código.

Nota Final: Toda la información generada estará en una carpeta, en el escritorio, con vuestro
nombre y apellidos. El programa debe estar comentado.

TIEMPO: 55'.
02 de Junio del 2014

ESCUELA UNIVERSITARIA DE INGENIERÍA TÉCNICA INDUSTRIAL


Grado en Ingeniería Electrónica y Automática

Examen de Laboratorio de Sistemas Electrónicos Digitales (3º)

Laboratorio de μP

La funcionalidad requerida del programa será la siguiente:

1. Se espera la activación de un pulsador.


2. Una vez reconocida la pulsación:
• Se activan los leds 1, 3, 5 y 7.
• Se pone en marcha un temporizador durante 2 s.
• Se habilitan las interrupciones.
3. Cuando, transcurridos 2 s., se produzca la interrupción (servicio ISR),
se desactivarán los leds anteriores.
4. El programa vuelve a su estado inicial.

Nota 1: Durante la temporización no se atiende al pulsador.


Nota 2: Los leds se activarán de manera independiente y no como puerto completo.
Nota 3: Indicad qué pulsador se escoge, no siendo el S5.
Nota 4: La interrupción se realizará por servicio ISR y no por escrutación de flag (xxIF)
Nota 5: Indicad qué oscilador se escoge y con qué frecuencia.
Nota 6: El trabajo se realizará bajo simulación.

Nota Final: Toda la información generada estará en una carpeta, en el escritorio, con vuestro
nombre y apellidos. El programa debe estar comentado.

TIEMPO: 55'.
21 de Mayo del 2014

ESCUELA UNIVERSITARIA DE INGENIERÍA TÉCNICA INDUSTRIAL


Grado en Ingeniería Electrónica y Automática

Examen de Laboratorio de Sistemas Electrónicos Digitales (3º)

Laboratorio de μP

La funcionalidad requerida del programa es la siguiente:

1. Cuando arranca el programa, se pone en marcha un contador software de 6 bits que


presentará su estado sobre 6 leds (los menos significativos).
2. El contador trabajará con una cadencia de 2 s.
3. La cuenta de 2 s. se atenderá por medio de una interrupción (contador hardware e
interrupciones habilitadas).
4. Cuando el contador software llegue al fondo de escala, volverá a comenzar la cuenta.
5. Si durante la funcionalidad del contador software, se activara un pulsador, el contador
software continuará la cuenta en sentido descendente.
6. La pulsación se reflejará sobre el led más significativo.
7. Si estando contando en sentido descendente, se activara un pulsador, cambiará el sentido de
cuenta.
8. El led asociado a la pulsación, permanecerá en un estado hasta la siguiente pulsación, que
cambiará su estado (de encendido a apagado o viceversa).

Nota 1: Indicad qué pulsador se escoge, no siendo el S5.


Nota 2: Indicad qué oscilador se escoge y con qué frecuencia.
Nota 3: El trabajo se realizará bajo simulación.

Nota Final: Toda la información generada estará en una carpeta, en el escritorio, con vuestro
nombre y apellidos. El programa debe estar comentado.

TIEMPO: 55'.
03 de Abril del 2014

ESCUELA UNIVERSITARIA DE INGENIERÍA TÉCNICA INDUSTRIAL


Grado en Ingeniería Electrónica y Automática

Examen Eliminatorio de Laboratorio de Sistemas Electrónicos Digitales (3º)

Laboratorio de μP

La funcionalidad requerida del programa será la siguiente:

1. Se espera la activación de un pulsador.


2. Una vez reconocida la pulsación:
• Se activa un led.
• Se pone en marcha un temporizador durante 3 s.
• Se habilitan las interrupciones.
3. Cuando, transcurridos 3 s., se produzca la interrupción (servicio ISR),
se desactivará el led.
4. El programa vuelve a su estado inicial.

Nota 1: Durante la temporización no se atiende al pulsador.


Nota 2: Indicad qué led se escoge, no siendo el D3.
Nota 3: Indicad qué pulsador se escoge, no siendo el S5.
Nota 4: Indicad qué oscilador se escoge y con qué frecuencia.
Nota 5: El trabajo se realizará bajo simulación.

Nota Final: Toda la información generada estará en una carpeta, en el escritorio, con vuestro
nombre y apellidos. El programa debe estar comentado.

TIEMPO: 55'.

También podría gustarte