Vous êtes sur la page 1sur 4

Escola de Enxeera Industrial

Grado en Ingeniera en Electrnica Industrial y Automtica


Prcticas de Electrnica Digital y Microcontroladores

PRCTICA 2.2
PERIFERICOS DE ENTRADA/SALIDA DIGITAL
1. INTRODUCCIN
Para que un microcontrolador pueda interactuar con un proceso debe disponer de
perifricos de entrada/salida digital. Para que un diseador de aplicaciones pueda utilizar
un microcontrolador debe conocer las caractersticas elctricas y funcionales de dichos
perifricos as como los recursos de programacin disponibles. En esta prctica se
analizarn y utilizarn los recursos del PIC18F45K20 disponibles en PICKit 44-pin Demo
Board (en adelante PICKit).
2. OBJETIVOS DE APRENDIZAJE
Para el microcontrolador PIC18F45K20:
Identificar e interpretar los parmetros elctricos que definen el comportamiento de
un perifrico de Entrada / Salida digital.
Comprender los conceptos ligados a operaciones de entrada y salida digital.
Identificar la problemtica de la sincronizacin de las operaciones.
Conocer y gestionar los recursos de programacin de operaciones de
Entrada/Salida.
3. TAREAS PREVIAS A LA REALIZACIN DE LA PRCTICA
Para una preparacin adecuada de la prctica, el alumno debe realizar las siguientes
tareas previas:
a) Leer y entender el tema correspondiente a los recursos del PIC18F45K20
destinados a operaciones de E/S digital.
b) Revisar las caractersticas elctricas de los terminales dedicados a E/S digital.
c) Identificar en el esquema de la tarjeta PICKit, los circuitos dedicados a E/S digital.
d) Realizar el cuestionario de evaluacin.

4. DESARROLLO DE LA PRTICA
Tarea 2.2.1 :
Escribir y depurar un programa capaz de activar el LED conectado al terminal 0 (LED0)
del PORTD cuando se active (PULSADOR_ON) el pulsador conectado al terminal 0 del
PORTB y de activar el LED conectado al terminal 1 (LED1) del PORTD cuando el
pulsador no se active (PULSADOR_OFF) el pulsador

PRCTICA 2.2: Perifricos de Entrada/Salida digital


digital.

Realizar la deteccin del estado del pulsador por consulta peridica.


El programa debe responder al siguiente diagrama de flujo:

Figura 1. Diagrama de flujo de la tarea 2.2.1

Tarea 2.2.2 :
Esta tarea est destinada poner de manifiesto la necesidad de sincronizar dos dispositivos
cuya velocidad de operacin es muy diferente. En este caso vamos a comprobar la
velocidad de ejecucin de instrucciones del microcontrolador respecto a la velocidad de
activacin de un pulsador. Para ello vamos a disear y depurar un programa que
incremente el valor de una variable cada vez que se active el pulsador conectado a RB0 y
presentar el valor de la variable en los LEDs conectados al PORTD.
Tarea 2.2.2.1: Escribir
cribir un programa que responda al siguiente diagrama de flujo:

Figura 2. Diagrama de flujo de la tarea 2.2.2.1

Justificar el valor presentado en los LEDs para cada pulsacin

PRCTICA 2.2: Perifricos de Entrada/Salida digital


digital.

Tarea 2.2.2.2: Escribir un programa que detecte flancos de activacin del pulsador y que
responda al siguiente diagrama de flujo:

Figura 3. Diagrama de flujo de la tarea 2.2.2.2

Se
e observa la presencia de rebotes?

Tarea 2.2.2.3: Escribir un programa que responda al siguiente diagrama de flujo para
detectar flancos de activacin en el pulsador con eliminacin de rebotes:
rebotes

Figura 4.. Diagrama de flujo de la tarea 2.2.2.3

Figura 5.. Diagrama de flujo de rutina de temporizacin

La temporizacin de 5 ms debe realizarse con una subrutina de programa que


responda al diagrama de flujo de la Figura 5.. Como puede comprobarse, se trata de dos
bucles anidados en los que el tiempo T transcurrido desde el inicio de la rutina hasta el
final depende del tiempo de ejecucin de las instrucciones y del nmero de veces que se
repitan cada uno de los bucles. La variable Bucle1 determina
termina las veces que se repite el
bucle interno y la variable Bucle
Bucle2 determina
termina las veces que se repite el bucle externo.

PRCTICA 2.2: Perifricos de Entrada/Salida digital.

Para calcular el valor de las variables bucle1 y bucle2 se puede utilizar la expresin
genrica mostrada a continuacin, pero su validez depende de la estructura del programa
4
T=
Bucle 2 ( N _ CM 2 + Bucle1 N _ CM 1)
FOSC
En donde:
T -> es la temporizacin total
Fosc -> es la frecuencia del oscilador utilizado. Si se usa el oscilador
interno del microcontrolador en su programacin por defecto (reset) la
frecuencia de oscilacin (Fosc) es de 1MHz.
N_CM -> Es el nmero de Ciclos Mquina equivalente a las instrucciones
utilizadas para implementar los bucles del programa. En el tema del Juego
de Instrucciones se puede localizar esta informacin para cada instruccin.
Si se tiene en cuenta que, en tiempo, un CM equivale a 4/Fosc y se usa
Fosc=1MHz, entonces CM=4s.
Antes de incorporar al programa completo la rutina de temporizacin, comprobar con el
Analizador Lgico del MPLAB los CM de cada bucle, justificar su valor e indicar la
expresin para calcular la temporizacin total.
Tarea 2.2.3: Escribir y depurar un programa capaz de activar de forma consecutiva,
durante 100ms, cada uno de los LEDs del conjunto de 8 conectados al PORTD. La
temporizacin debe realizarse por programa. La secuencia de encendido (rotacin) debe
cambiar cada vez que se active el pulsador conectado al terminal 0 del PORTB. La
deteccin del estado del pulsador debe realizarse por consulta peridica.
Indicar el diagrama de flujo del programa diseado y comprobar su correcto
funcionamiento.
Justificar el comportamiento si se utiliza una temporizacin de 3ms

Vous aimerez peut-être aussi