Vous êtes sur la page 1sur 6

PROGRAMACION DE ENTRADAS Y SALIDAS DE UN MICROCONTROLADOR

Con el propsito de sincronizar el funcionamiento de los puertos de E/S con la


organizacin interna del micro controlador 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 caractersticas en comn:

Por las razones prcticas, 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 propsito
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
fcil 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
analgicas (denotadas por AN):
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 cules pines sern configurados
como entradas y cules sern configurados como salidas, los bits apropiados del registro
ANSEL determinan si los pines sern configurados como entradas analgicas o
entradas/salidas digitales.

Cada bit de este puerto tiene una funcin adicional relacionada a algunas unidades
perifricas integradas, que vamos a describir en los siguientes captulos. Este captulo
cubre slo la funcin adicional del pin RA0, puesto que est relacionado al puerto PORTA
y a la unidad ULPWU.

El microcontrolador se utiliza generalmente en los dispositivos que funcionan


peridicamente y completamente independiente utilizando una fuente de alimentacin de
batera. En tal caso, el consumo de corriente mnimo es una de las prioridades. Los
ejemplos tpicos de tales aplicaciones son: termmetros, sensores de deteccin del fuego
y similar. Es conocido que al reducir frecuencia de reloj se reduce el consumo de
corriente, pues una de las soluciones ms 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 micro controlador en el modo de reposo es otro paso en la misma direccin.


An ha quedado el problema de salir de este modo y poner el micro controlador en modo
normal de funcionamiento. Es obviamente necesario tener una seal externa en alguno de
los pines. Esta seal debe ser generada por componentes electrnicos adicionales, lo que
resulta en un consumo de energa ms alto del dispositivo completo
La solucin perfecta sera que el micro controlador saliera del modo de reposo
peridicamente por si mismo, lo que no es imposible. El circuito que lo habilita se muestra
en la figura a la izquierda.

Expandir Salidas

La mejor solucin es la tercera, es posible emplear un 74x164 (sin latch) o 74x595 (con
latch) para expandir la cantidad de salidas. La ventaja de estos integrados es que se
pueden poner en cascada, y as agregar 8 puertos por cada integrado agregado.

Bsicamente son shift registers, es decir, una cadena de flip-flops del tipo D
encadenados, por lo que uno puede ir "empujando" datos por un lado y tener acceso a los
8 bits:
Generalmente tienen 3 terminales de control:

Clock: Al dar un pulso, los datos se van "desplazando" por los flip flops, y un dato
nuevo entra al FF de la izquierda
Datos: Marcan qu bit agregar a la izquierda al dar un pulso de clock
Reset: Al dar un pulso, hace que todos los bits pasen a 0

Algunos (como el 74x595) tienen una terminal ms, que hace que los datos pasen a la
salida. Es decir, los cambios se hacen sobre flip flops internos (que no controlan las
terminales fsicas) y al activar esa terminal extra los bits aparecen en las terminales:

Conviene elegir el shift register con latch en el caso de que las salidas necesiten
persistencia (es decir, si las salidas estn conectadas a cargas reales, como rels o
motores), para evitar que en una terminal haya un valor incorrecto (aunque sea por
milisegundos).

Por lo tanto, si queremos escribir una tira de bits en estos shift registers, debemos hacer
esta secuencia:

1. Por cada bit: (empezando por el de ms a la derecha)


1. Poner ese bit en la terminal de "Dato"
2. Hacer un pulso en la terminal de "Clock"
2. Hacer un pulso en la terminal de "Latch" (si hay), para hacer que se activen las
salidas correspondientes

Es posible poner varios shift register en cascada, de la siguiente manera:

Un ejemplo til de sto es poder manejar varias matrices de leds, unicamente con pocas
terminales de un microcontrolador:
Expandir Entradas

Para las entradas, es posible usar integrados como los 4014. Bsicamente es similar a las
salidas, con la diferencia que los shift registers son de entrada paralela y salida serial.
Este sera la secuencia para leer los bits:

1. Hacer un pulso en la terminal de "Latch", para que el integrado guarde en los FF


internos el valor de las terminales
2. Por cada bit[i] que se quiera leer: (desde la derecha)
1. Leer de la terminal de "Dato", ese es el bit[i]
2. Hacer un pulso en la terminal de "Clock"
3. Incrementar i
La forma de expandir los shift registers para obtener ms puertos de entrada es la
siguiente:

Vous aimerez peut-être aussi