Está en la página 1de 4
Escola de Enxeñería Industrial Grado en Ingeniería en Electrónica Industrial y Automática Prácticas de Electrónica

Escola de Enxeñería Industrial

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

Prácticas de Electrónica Digital y Microcontroladores

PRÁCTICA 2.2 PERIFERICOS DE ENTRADA/SALIDA DIGITAL

1. INTRODUCCIÓN

Para que un microcontrolador pueda interactuar con un proceso debe disponer de periféricos de entrada/salida digital. Para que un diseñador de aplicaciones pueda utilizar un microcontrolador debe conocer las características eléctricas y funcionales de dichos periféricos así como los recursos de programación disponibles. En esta práctica se analizarán y utilizarán 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 parámetros eléctricos que definen el comportamiento de un periférico de Entrada / Salida digital.

Comprender los conceptos ligados a operaciones de entrada y salida digital.

Identificar la problemática de la sincronización de las operaciones.

de

Conocer

y

gestionar

los

recursos

de

programación

de

operaciones

Entrada/Salida.

3. TAREAS PREVIAS A LA REALIZACIÓN DE LA PRÁCTICA

Para una preparación adecuada de la práctica, 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 características eléctricas 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 evaluación.

4. DESARROLLO DE LA PRÁTICA

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

PRÁCTICA 2.2: Periféricos de Entr ada/Salida digital.

2

Realizar la detección del esta do del pulsador por consulta periódica.

El programa debe responder

al siguiente diagrama de flujo:

El programa debe responder al siguiente diagrama de flujo: F igura 1. Diagrama de flujo de

F igura 1. Diagrama de flujo de la tarea 2.2.1

Tarea 2.2.2

:

Esta tarea está destinada pon er de manifiesto la necesidad de sincron izar dos dispositivos

cuya velocidad de operación

velocidad de ejecución de in strucciones del microcontrolador respec to a la velocidad de

un programa que

activación de un pulsador.

es muy diferente. En este caso vam os a comprobar la

Para ello vamos a diseñar y depurar

incremente el valor de una va riable cada vez que se active el pulsado r conectado a RB0 y

presentar el valor de la variab le en los LEDs conectados al PORTD.

Tarea 2.2.2.1: Escribir un prog grama que responda al siguiente diagram a de flujo:

un prog grama que responda al siguiente diagram a de flujo: Figura 2. Diagrama de flujo

Figura 2. Diagrama de flujo de la tarea 2.2.2.1

Justificar el valor presentado

en los LEDs para cada pulsación

PRÁCTICA 2.2: Periféricos de Entr ada/Salida digital.

3

Tarea 2.2.2.2: Escribir un pro grama que detecte flancos de activació responda al siguiente diagram a de flujo:

de activació responda al siguiente diagram a de flujo: Figura 3. Diagrama de flujo de la

Figura 3. Diagrama de flujo de la tarea 2.2.2.2

del pulsador y que

¿Se observa la presencia de

rebotes?

Tarea 2.2.2.3: Escribir un pr ograma que responda al siguiente dia grama de flujo para detectar flancos de activación en el pulsador con eliminación de rebote s:

de activación en el pulsador con eliminación de rebote s: Figura 4. Diagrama de flujo de

Figura 4. Diagrama de flujo de la tar ea 2.2.2.3

rebote s: Figura 4. Diagrama de flujo de la tar ea 2.2.2.3 Figura 5. Diagrama de

Figura 5. Diagrama de flujo de rutina de temporización

de programa que

responda al diagrama de flujo

de la rutina hasta el

final depende del tiempo de e jecución de las instrucciones y del núm ero de veces que se repitan cada uno de los bucl es. La variable Bucle1 determina las ve ces que se repite el

bucles anidados en los que e l tiempo T transcurrido desde el inicio

de la Figura 5. Como puede comproba rse, se trata de dos

La temporización de 5 m s debe realizarse con una subrutina

bucle interno y la variable Buc le2 determina las veces que se repite el bucle externo.

PRÁCTICA 2.2: Periféricos de Entrada/Salida digital.

4

Para calcular el valor de las variables bucle1 y bucle2 se puede utilizar la expresión genérica mostrada a continuación, pero su validez depende de la estructura del programa

T =

4

×

Bucle

2

×

F OSC

(

N CM

_

2

+

Bucle N CM

1

×

_

1)

En donde:

T -> es la temporización total Fosc -> es la frecuencia del oscilador utilizado. Si se usa el oscilador interno del microcontrolador en su programación por defecto (reset) la frecuencia de oscilación (Fosc) es de 1MHz. N_CM -> Es el número de Ciclos Máquina equivalente a las instrucciones utilizadas para implementar los bucles del programa. En el tema del Juego de Instrucciones se puede localizar esta información para cada instrucción. Si se tiene en cuenta que, en tiempo, un CM equivale a 4/Fosc y se usa Fosc=1MHz, entonces CM=4µs.

Antes de incorporar al programa completo la rutina de temporización, comprobar con el Analizador Lógico del MPLAB los CM de cada bucle, justificar su valor e indicar la expresión para calcular la temporización 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 temporización debe realizarse por programa. La secuencia de encendido (rotación) debe cambiar cada vez que se active el pulsador conectado al terminal 0 del PORTB. La detección del estado del pulsador debe realizarse por consulta periódica.

Indicar

funcionamiento.

y comprobar su correcto

el

diagrama

de

flujo

del

programa

diseñado

Justificar el comportamiento si se utiliza una temporización de 3ms