Convocatoria de Becas Caja de Ingenieros_UOC 2024-25
Pic16f84
1. 4 – Puertosde Entrada y Salida
Los microprocesadores PIC16F84 tienen 2 puertos de entrada/salida paralelos de usos generales denominados Puerto A y
Puerto B.
El Puerto A es de 4 bits y el Puerto B es de 8 bits.
Los puertos del microcontrolador PIC16F84 son el medio de comunicación con el mundo exterior, en ellos podremos
conectar los periféricos o circuitos necesarios como por ejemplo los módulos LCD, motores eléctricos, etc; pero estas
conexiones no se podrán realizar arbitrariamente. Existen unas reglas básicas que deberán cumplirse para que el
microcontrolador no sufra daños o se destruya. Para ello es necesario conocer los limites de corriente que puede manejar el
microcontrolador.
LIMITE DE CORRIENTE PARA LOS PUERTOS “A”Y “B”
Los puertos “A” y “B” del microcontrolador podrán ser programados como entradas y salidas indiferentemente. Para elcaso
de que sean programados como salida se denominan “Modo Fuente”por que suministran corriente y cuando son
programados como entrada se denominan “Modo Sumidero” por que reciben corriente.
La máxima corriente que puede suministrar una línea programada como salida es de 20 mili-amperios, pero si utilizamos
toda las líneas del puerto “A” programadas como salida, no deberá exceder de 50mA para todo el puerto “A”. Para el caso
del puerto “B” no deberá exceder de 100 mA.
Si las programamos como entradas (Sumidero), la corriente máxima que puede manejar una sola línea es de 25 mA. Para el
caso del puerto “A” programado con todas sus líneas como entrada, la máxima es de 80 mA. En el caso del puerto “B” es de
150 mA.
En caso de querer utilizar periféricos que manejen mayor cantidad de corriente de la especificada, habrá que aplicar un
circuito acoplador como por ejemplo los buffers, transistores que se encarguen de controlar la corriente, etc.
IDENTIFICACIÓN DE LOS PINES UTILIZADOS PARA LOS PUERTOS DE ENTRADA Y SALIDA
En la imagen siguiente se podrá observar claramente que el microcontrolador tiene dos puertos denominados “A” y “B”. El
puerto “A” tiene 5 líneas disponibles (RA0, RA1, RA2, RA3, RA4) y elpuerto “B” tiene 8 líneas disponibles (RB0, RB1, RB2,
RB3, RB4, RB5, RB6, RB7). Ambos Puertos suman un total de 13 líneas que podrán ser programadas independientemente
como entradas o como salidas. Estas son las líneas que estarán destinadas a comunicar el microcontrolador con el mundo
exterior, como por ejemplo motores, diodos luminosos “Leds”, módulos LCD, teclados matriciales, etc.
2. También hay que hacer mención a que el Pin número 3 perteneciente alpuerto “A” (RA4) también tiene otra nomenclatura
denominada “TOCKI”, lo cual quiere decir que esta línea se puede programar como entrada, salida y temporizador/contador.
CONFIGURACIÓN DE LOS PUERTOS DE ENTRADA/SALIDA
Los bits de cada puerto se configuran mediante los bits correspondientes de un registro de control asociado que recibe el
nombre de TRIS. En realidad cada puerto soporta dos registros:
1. El registro de datos, al que se denomina Puerto A o B (PortA o PortB).
2º El registro de control TRISA o TRISB, con el que se programa el sentido (Entrada o Salida) de las líneas de cada puerto.
Los Puertos A y B se corresponden con las posiciones 5 y 6 del área de datos. Cada uno de sus bits puede programarse
como una línea de Entrada o de Salida, según se ponga un 1 ó un 0 en el bit del registro de controlTRIS correspondiente.
Un 1 en el bit “x” del registro TRISA pone en alta impedancia (Entrada) la línea asociada “x” del Puerto A. Si en el bit “x” de
TRISA hubiese un 0, el contenido del biestable de datos correspondiente delPuerto A pasaría a la patita de E/S externa.
Cualquier línea puede funcionar como Entrada o como Salida. Sin embargo, si actúa como Entrada, la información que se
introduce desde el exterior no se memoriza o graba, pasa simplemente por un dispositivo triestado por lo cual el valor de
dicha información debe mantenerse hasta que sea leída. La lectura se realiza en “tiempo real”.
Cuando una patita de E/S funciona como salida, el bit que proviene del bus de datos se guarda en el biestable del dato con
lo cual la información que ofrece esta patita permanece invariable hasta que se reescriba otro bit.
Para configurar la patita como Entrada, hay que cargar un 1 en el biestable de control de E/S mientras que hay que cargar
un 0 si se desea que sea Salida.
Cada línea de E/S de los puertos se programa de forma independiente y puede ser Entrada o Salida. Cuando se produce un
reset, todos los bits de los registros TRIS pasan a tener el valor 1 y todas las líneas de E/S actúan como Entrada por
evidentes motivos de seguridad para evitar daños irreparables.
Los puertos que contienen entradas y salidas necesitan una atención especial al escribir el programa. Instrucciones como bsf
y bcf comienzan leyendo el valor del puerto y cargándolo en el registro W; allí ejecutan la puesta a 1 ó a 0 del bit
seleccionado y, luego, depositan el registro W en el puerto. También hay que tener en cuenta las modificaciones que se
3. produzcan en las patitas que son entrada y pasan a salida, pues pueden estar presentes datos antiguos en el registro de
salida del puerto al ser memorizados.
Hay que prestar mucha atención a las operaciones que, tras una lectura de un puerto. Sigue una escritura de la misma. Se
debe dejar pasar un tiempo determinado para que se estabilice el voltaje de las patitas. Insertando entre la lectura y la
escritura una instrucción NOP o cualquier otra que no implique a los puertos, se eliminan estos errores potenciales.