ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

ENTRADAS Y SALIDAS DEL PIC16F84A


Enviado por   •  14 de Noviembre de 2013  •  2.605 Palabras (11 Páginas)  •  548 Visitas

Página 1 de 11

PUERTOS DE ENTRADA/SALIDA

Con el propósito de sincronizar el funcionamiento de los puertos de E/S con la organización interna del microcontrolador de 8 bits, ellos se agrupan, de manera similar a los registros, en cinco puertos denotados con A, B, C, D y E. Todos ellos tienen las siguientes características en común:

• Por las razones prácticas, muchos pines de E/S son multifuncionales. Si un pin re aliza una de estas funciones, puede ser utilizado como pin de E/S de propósito general.

• Cada puerto tiene su propio registro de control de flujo, o sea el registro TRIS correspondiente: TRISA, TRISB, TRISC etc. lo que determina el comportamiento de bits del puerto, pero no determina su contenido.

Al poner a cero un bit del registro TRIS (pin=0), el pin correspondiente del puerto se configurará como una salida. De manera similar, al poner a uno un bit del registro TRIS (bit=1), el pin correspondiente del puerto se configurará como una entrada. Esta regla es fácil de recordar: 0 = Entrada 1 = Salida.

Puerto PORTA y registro TRISA

El puerto PORTA es un puerto bidireccional, de 8 bits de anchura. Los bits de los registros TRISA y ANSEL controlan los pines del PORTA. Todos los pines del PORTA se comportan como entradas/salidas digitales. Cinco de ellos pueden ser entradas analógicas (denotadas por AN):

RA0 = AN0 (determinado por el bit ANS0 del registro ANSEL)

RA1 = AN1 (determinado por el bit ANS1 del registro ANSEL)

RA2 = AN2 (determinado por el bit ANS2 del registro ANSEL)

RA3 = AN3 (determinado por el bit ANS3 del registro ANSEL)

RA5 = AN4 (determinado por el bit ANS4 del registro ANSEL)

Similar a que los bits del registro TRISA determinan cuáles pines serán configurados como entradas y cuáles serán configurados como salidas, los bits apropiados del registro ANSEL determinan si los pines serán configurados como entradas analógicas o entradas/salidas digitales.

Cada bit de este puerto tiene una función adicional relacionada a algunas unidades periféricas integradas, que vamos a describir en los siguientes capítulos. Este capítulo cubre sólo la función adicional del pin RA0, puesto que está relacionado al puerto PORTA y a la unidad ULPWU.

Vamos a hacerlo en mikroC...

// El pin PORTA.2 se configura como una entrada digital. Todos los demás pines del puerto

// PORTA son salidas digitales

...

ANSEL = ANSELH = 0; // Todos los pines de E/S se configuran como digitales

PORTA = 0; // Todos los pines del puerto PORTA se ponen a cero

TRISA = 0b00000100; // Todos los pines del puerto PORTA excepto el

// PORTA.2 se configuran como salidas

...

UNIDAD ULPWU

El microcontrolador se utiliza generalmente en los dispositivos que funcionan periódicamente y completamente independiente utilizando una fuente de alimentación de batería. En tal caso, el consumo de corriente mínimo es una de las prioridades. Los ejemplos típicos de tales aplicaciones son: termómetros, sensores de detección del fuego y similar. Es conocido que al reducir frecuencia de reloj se reduce el consumo de corriente, pues una de las soluciones más convenientes a este problema es bajar la frecuencia de reloj, o sea utilizar el cristal de cuarzo de 32KHz en vez de el de 20MHz.

Al poner el microcontrolador en el modo de reposo es otro paso en la misma dirección. Aún ha quedado el problema de salir de este modo y poner el microcontrolador en modo normal de funcionamiento. Es obviamente necesario tener una señal externa en alguno de los pines. Esta señal debe ser generada por componentes electrónicos adicionales, lo que resulta en un consumo de energía más alto del dispositivo completo...

La solución perfecta sería que el microcontrolador saliera del modo de reposo periódicamente por si mismo, lo que no es imposible. El circuito que lo habilita se muestra en la figura a la izquierda.

El principio de funcionamiento es simple:

Un pin se configura como salida y se le lleva un uno lógico (1). Esto causa una carga del capacitor. Inmediatamente después, el mismo pin se configura como entrada. El cambio de estado lógico habilita una interrupción y el microcontrolador entra en modo de reposo. Sólo ha quedado esperar que se descargue el capacitor por la corriente de fuga fluyendo por el pin de entrada. Después de la descarga, se produce una interrupción y el microcontrolador continúa con la ejecución de programa en modo normal. Todo el procedimiento se repite.

En teoría, esto es una solución perfecta. El problema es que todos los pines capaces de causar una interrupción son digitales y tienen una corriente de fuga relativamente alta cuando el voltaje sobre ellos no está cerca de los valores límites de Vdd (1) o VSS (0). En este caso, el condensador se descarga en poco tiempo ya que la corriente es de varias centenas de microamperios. Por esta razón se diseñó el circuito ULPWU, capaz de indicar una lenta caída de voltaje con un consumo de corriente mínimo.

La salida genera una interrupción, mientras que la entrada está conectada a uno de los pines del microcontrolador. Es el pin RA0. Refiriéndose a la Figura (R=200 ohms, C=1nF), el tiempo de descarga es aproximadamente 30mS, mientras que un consumo total de corriente del microcontrolador es 1000 veces más bajo (de varias centenas de nanoamperios).

Puerto PORTB y registro TRISB

El puerto PORTB es un puerto bidireccional, de 8 bits de anchura. Los bits del registro TRISB determinan la función de sus pines.

Similar al puerto PORTA, un uno lógico (1) en el registro TRISB configura el pin apropiado en el puerto PORTB y al revés. Los seis pines de este puerto se pueden comportar como las entradas analógicas (AN). Los bits del registro ANSELH determinan si estos pines serán configurados como entradas analógicas o entradas/salidas digitales:

RB0 = AN12 (determinado por el bit ANS12 del registro ANSELH)

RB1 = AN10 (determinado por el bit ANS10 del registro ANSELH)

RB2 = AN8 (determinado por el bit ANS8 del registro ANSELH)

RB3 = AN9 (determinado por el bit ANS9 del registro ANSELH)

RB4 = AN11 (determinado por el bit ANS11del registro ANSELH)

RB4 = AN11 (determinado por el bit ANS11del registro ANSELH)

Cada bit de este puerto tiene una función adicional relacionada a algunas unidades periféricas integradas, que vamos a describir en los siguientes capítulos.

Este puerto dispone de varias características por las que se distingue de otros puertos y por las que sus pines se utilizan con frecuencia:

• Todos

...

Descargar como (para miembros actualizados) txt (16 Kb)
Leer 10 páginas más »
Disponible sólo en Clubensayos.com