Académique Documents
Professionnel Documents
Culture Documents
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.
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)
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.
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:
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: