Sei sulla pagina 1di 5

PRINCIPIOS DE PROGRAMACION DEL PIC 16F84A

PUERTOS DE 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 el caso 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 el puerto “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.
También hay que hacer mención a que el Pin número 3 perteneciente al puerto “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 control TRIS 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 del Puerto 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 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.

Potrebbero piacerti anche