Está en la página 1de 3

PUERTOS DE ENTRADA/SALIDA PARALELOS

1. Conceptos básicos

- Un puerto (PORT) es un circuito que forma parte del microcontrolador y sirve de interfaz con algún
dispositivo externo (un periférico).
- Los puertos se identifican por sus direcciones, ubicadas por lo general en la memoria de datos.
- En los microcontroladores PIC, el acceso a los puertos se realiza a través de los registros de funciones
especiales de la memoria de datos.
- El PIC16f877A tiene 5 puertos paralelos, nombrados con las letras A, B...G. Cada puerto puede ser de
hasta 8 bits. Los terminales de los puertos se identifican como RA, RB, ...,RG, donde x es el número del
bit (x = 0,1.. .7).
- En general, cada línea de un puerto se puede programar como entrada o como salida y tener distintas
funciones.
- Hay dos registros de funciones especiales por cada puerto, que se denominan PORT y TRIS (PORTA,
TRISA, PORTB, TRISB, etc.). Los registros PORT almacenan el dato de salida del puerto mientras que los
registros TRIS programan cada línea del puerto correspondiente como entrada o salida.
- Los PORTx están en el banco 0, los TRISx en el banco 1
- Un puerto (PORT) es una agrupación lógica de pines de E/S direccionado en la memoria RAM de datos, el
tamaño máximo de un puerto es de 8 bits (1 byte)
- Muchos de los pines de los puertos de E/S están multiplexados con otras funciones alternativas
asociadas a los módulos internos del microcontrolador. Cada función posible aparece separada del resto
mediante un carácter “/”: RC3/SCK/SCL
- Cada registro de puerto (PORTx), lleva asociado un registro de dirección de datos (TRISx) que configura la
dirección (entrada o salida) de cada uno de los pines del puerto. El bit n de TRISx controla el sentido del
bit n de PORTx (si es “1”: entrada , si “0”:salida)
- Tras un reset, todos los bits de los registros TRISx están a “1”, todos los pines de los PORTx son por tanto
de entrada por motivo de “seguridad” en las conexiones
- Si el pin estuviera definido por error como salida y la conexión externa correspondiera realmente a una
entrada cuyo nivel no tiene porqué coincidir con el que intenta “imponer” la salida, podría aparecer una
sobrecorriente que “quemaría” la etapa de salida.
- Es especialmente importante prestar atención a la configuración que se hace de la dirección de los pines
de los puertos desde el programa y también puede ser aconsejable “proteger” eléctricamente esos pines
con limitando la corriente de salida (una resistencia serie por ejemplo) ante errores de programación.

2. Puertos paralelos en el PIC16f877A


 PORTA
o En el puerto A solo están implementados 6 bits, que corresponden a los terminales RA0 a RA5.
o Todos los terminales se pueden configurar como entradas o como salidas. RA4 tiene la
particularidad de que es una entrada Schmitt Trigger y, si se programa como salida, es de
drenador abierto.
o Los registros de funciones especiales asociados al puerto A son PORTA y TRISA
o Los terminales del puerto A pueden estar compartidos con las entradas del convertidor A/D.
o En estos casos los terminales del puerto A pueden ser digitales o analógicos, y esto se programa
mediante el registro de funciones especiales ADCON1.
o El terminal RA4 no es entrada analógica.
o El terminal RA4 se utiliza también como entrada de reloj externo del temporizador Timer0. El
terminal se denomina entonces RA4/T0CKI

 PORTB
o El puerto B tiene 8 bits y sus terminales se denominan RB0 a RB7.
o Para escribir un dato en el puerto B se usa el registro de funciones especiales PORTB.
Todos los terminales se pueden configurar como entradas o como salidas mediante el registro de
funciones especiales TRISB.
o El terminal RB0/INT sirve para aceptar una solicitud de interrupción externa, por flancos. Esta
interrupción activa el bit INTF del registro INTCON (bit INTCON) y se habilita o inhabilita
mediante el bit INTE del registro INTCON (bit INTCON). El flanco que produce la interrupción
puede ser el de subida o el de bajada (mediante el bit INTEDG => OPTION_REG)
o Si estos terminales RB4, RB5, RB6 y RB7 se programan como entradas, un cambio en el nivel
lógico de la señal de entrada, de ‘0' a '1' o viceversa, en cualquiera de ellos, puede generar una
interrupción. Al producirse la interrupción el bit RBIF del registro INTCON (bit INTCON) se pone a
‘1’. La interrupción puede habilitarse mediante el bit RBIE del registro INTCON (bit INTCON).
Puede servir para sacar al microcontrolador del modo sleep.(bajo consumo)
o Los terminales RB3, RB6 y RB7 pueden ser utilizados como terminales para la programación en
circuito del microcontrolador. (ICSP: In-Circuit Serial Programming). Permite que el
microcontrolador sea programado en la propia placa de circuito impreso de la aplicación a la que
está destinado
o Terminales tienen un pull-up interno programable.
o Se tiene la posibilidad de activar unas resistencias de polarización (pull-up resistors) si los pines
están definidos como entradas y además el bit OPTION_REG= RBPU=0.
o En cuanto pasan a ser salidas se desactivan las resistencias.
o El uso de esas resistencias evita la conexión de otras externas: se trata de transistores pMOS
trabajando en su zona de comportamiento resistivo (20kΩ aprox.)

 PORTC
o Tiene 8 líneas bidireccionales (8 bits) cuyos terminales se nombran RC0 a RC7.
o El registro de funciones especiales PORTC sirve para las operaciones de lectura y escritura.
o Los terminales se pueden configurar como entradas o salidas digitales mediante el registro
TRISC.
o Algunos periféricos definen las líneas como entradas o como salidas de manera independiente al
estado de TRISC si hay definida una funcionalidad para el pin.
o Los terminales del puerto C comparten funciones con otros dispositivos de entrada y salida: el
temporizador Timer1, el módulo CCP (Compare/Capture/PWM) y los puertos serie SSP
(Synchronous Serial Port) o MSSP (Master Synchronous Serial Port) y USART (Universal
Synchronous Asynchronous Transmitter Receiver).

 PORTD
o El puerto D es un puerto paralelo de 8 líneas bidireccionales (8 bits) cuyos terminales se
nombran RD0 a RD7.
o Para escribir un dato en el puerto D se usa el registro de funciones especiales PORTD.
o Todos los terminales se pueden configurar como entradas de tipo Schmitt Trigger o como salidas
digitales, mediante el registro TRISD.
o PORTD se puede configurar como un puerto esclavo paralelo (PSP), controlable mediante las
líneas del PORTE

 PORTE
o El puerto E es un puerto paralelo de 3 líneas bidireccionales cuyos terminales van de RE0 a RE2.
o Las líneas están multiplexadas : a) Con 3 de las entradas analógicas del módulo de conversión
A/D RE0 = AN5 Canal analógico 5 RE1 = AN6 Canal analógico 6 RE2 = AN7 Canal analógico 7
o b) Con las señales de control del puerto esclavo paralelo PSP del PORTD

3. Conexión de periféricos comunes


 PULSADORES
o Siempre son entradas activas a NIVEL BAJO
o Conectables a cualquier terminal  ENTRADA BINARIA
o Configurar el correspondiente bit TRISx como ENTRADA
o Externamente se conecta una resistencia de protección
o El PORTB puede activar sus resistencias  prescinde de las externas.

 DIODOS
o Pueden conectarse a cualquier terminal que actúe como SALIDA BINARIA
o La conexión puede ser por el cátodo o el ánodo
o Si se conecta el ánodo al terminal  Lógica POSITIVA: terminal a ALTO activa el LED (el terminal
absorbe corriente).
o Si se conecta el cátodo al terminal  Lógica INVERSA: terminal a BAJO activa el LED (el terminal
suministra corriente).
o Resistencias de carga RL  fijan la corriente y tensión del LED
o PuertoB puede activar sus resistencias pull up.
o Consultar especificaciones del PIC para que sea capaz de absorber / suministrar la corriente (RL)

También podría gustarte