Programacion de los Microcontroladores PIC16F877A
  PUERTOS E/S
 

El PIC16f877A dispone de 5 puertos de E/S (Entrada/Salida):
 
La puerta A posee 6 linias RA0 - RA5 que tienen funciones digitales y analogicas, estas ultimas funcionan con un ADC interno, y ademas una de ellas soporta 2 funciones multiplexadas. Se trata del RA4/TOCK1, que puede actuar como linia de E/S o como pin en el cual se reciben los impulsos que debe contar TMR0  (Timer 0). La puerta B tiene 8 linias, RB0 - RB7, y tambien tiene una con funciones multiplexadas, la RB0/INT, que ademas de linia tipica de E/S, tambien sirve como patita por la que se reciben los impulsos externos que provocan una interrupción; una puerta C de 8 bits que van desde RC0 - RC7, con funciones multiplexadas para la transmision serial y otras funciones especiales; una puerta D, igualmente con 8 lineas E/S, RD0 - RD7; y finalmente un puerto E, solamente con 3 lineas RE0 - RE2, las cuales tienen funciones Analogicas de igual modo que la Puerta A.

La informacion que entra y sale por las puertas recide en las posiciones 5, 6, 7, 8, 9 del Banco 0, mientras que TRISA, TRISB, TRISC, TRISD, TRISE, que son los registros de configuracion, ocupan las direcciones 5, 6, 7, 8, 9 del Banco 1.  

LA PUERTA A

Las lineas RA0 - RA3 y la linea RA5; admiten niveles de entrada TTL y de salida CMOS; ademas disponen de lineas de entradas  analogicas. La linea RA4/T0CKI dispone de un circuito Schmitt Triguer que proporciona una buena inmunidad al ruido y la salida tiene Drenador Abierto. RA4 multiplexa su funcion de E/S con la de entrada de impulsos externos para TMR0.

Cuando se lee una linea de la Puerta A se recoge el nivel logico que tiene en ese momento. Las lineas cuando actuan como salidas estan <<lacheadas>>, lo que significa que sus patitas sacan el nivel logico que se haya cargado por ultima vez en el Registro "PORTA". La escritura de una puerta implica la operacion <<lectura/modificacion/escritura>>, primero lee la puerta, luego se modifica el valor y finalmente se escribe en el lach de salida.

LA PUERTA B
Consta de 8 lineas bidireccionales de E/S, RB7 - RB0, cuya informacion se almacena en el registro PORTB, que ocupa la direccion 6 del banco 0. El registro de configuracion TRISB ocupa la misma direccion en el Banco 1.

La linia RB0/INT tiene dos funciones multiplexadas. Ademas de patita E/S, actua como patita para la peticion de una interrupcion Externa, cuando se autoriza esta funcion mediante la adecuada programcion del registro INTCON, del que se hablara mas adelante.  

A todas las linias de esta puerta se les permite conectar una resistencia de Pull-up. Para este fin hay que programar en el registro OPTION en el bit RBPU# = 0.

MANEJO DE LOS PUERTOS

Para el manejo de los puertos es necesario manejar dos tipos de registros, en el caso del puerto A, tenemos el registro PORTA ubicado en la posicion 5 del banco 0, el cual nos permite escribir y leer los datos en el puerto. El registro TRISA ubicado en la posicion 5 del banco 1, registro especial de configuracion de la bidireccionalidad del puerto A. Cuando cambiamos los bits del TRISA a estados altos, ponemos esas linias del puerto A como entradas, caso contrario como salidas.

Un aspecto importante a no olvidar, es cambiar el puerto A, como entradas y salidas digitales, esto lo hacemos en el registro ADCON1, en sus 3 primeros bits.

ejemplo:

BSF STATUS, RP0   ;cambiamos al banco 0
BSF STATUS, RP1
 
MOVLW 0X00
MOVWF TRISA    ; configuramos el purtoA como salida

movlw   0x06                 ; configura todos los pines 
movwf   ADCON1         ; del PORTA como entradas
                                        ; digitales

 
  Hoy habia 1 visitantes (1 clics a subpáginas) ¡Aqui en esta página!  
 
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis