viernes, 31 de agosto de 2007

PUERTOS DE ENTRADA/SALIDA

Antes de nuestro primer programa es importante conocer los puertos del microcontrolador y las caracteristicas basicas de cada uno.

Algunos pines son multiplexados para ser usados en los modulos perifericos, cuando esto es asi, usualmente ese pin no puede ser usado como un pin de entrada salida normal.

EL PUERTO A Y EL REGISTRO TRISA

Las entradas y salidas del Puerto A son configuradas usando el registro TrisA, en el cual 1 equivale a entrada y 0 a salida. en la siguiente figura se observa como inicializar el Puerto A.



Cada instruccion juega su parte, las primeras dos "limpian" los bit RP0 y RP1 del Status para trabajar con el Banco 0, en ese banco esta el registro PortA, el cual limpiamos en su totalidad para que tenga solo 0's en su salida. Despues se selacciona el Banco 1 poniendo a 1 el RP0 pues es aho donde se encuentran el ADCON1 y el TrisA, a los cuales les mandamos bits de configuracion determinados por las palabras 06h y CFh respectivamente; en la primera se esta indicando que todos los pines del puerto A seran entradas o salidas digitales, la segunda indica que todos los pines seran entradas (00011111).


EL PUERTO B Y EL REGISTRO TRISB

Al igual que todos los puertos el registro TrisB configura la entrada-salida del Puerto. El Puerto B es de 8 bit que ademas tiene la opcion seleccionable de Pull-Up, las cuales son resistencias internas que permiten al micro poner en uno cada uno de los pines cuando estan desconectados en lugar de estar fluctuando entre cero y uno, esta caracteristica es muy importante como se vera luego.

Interrupt-On-Change es una caracteristica de los pines RB7:RB4 que como su nombre lo indica, produce una interrupcion de programa cuando cambia su valor que puede aun levantar al micro de un Sleep.


EL PUERTO C Y EL REGISTRO TRISC

El Puerto C tiene varias funciones en sus pines, tiene las funciones de comunicacion I2C, el reloj externo del timer 1, Usart, etc.

Cuando se usan los modulos relacionados con este puerto, se debe tener cuidado pues algunas veces cambia el estado i/o del pin sin importar lo que indique TrisC, para saber cuando si cambiaria debemos ver la descripcion de cada modulo.


EL PUERTO D Y EL REGISTRO TRISD

El puerto D es de 8 bit, con entradas Schimtt Trigger, este puerto puede ser configurado como linea de datos para PSP Parallel Slave Port.


EL PUERTO E Y EL REGISTRO TRISE

El puerto E consiste en tres pines que bien pueden ser de I/O, o configurados para controlar el PSP, conteniendo las lineas basicas como WR, RD, CS. Cuando se usa el modo PSP, el TrisE hace que el puerto E sea de entradas digitales, de la misma manera los pines no podran funcionar como entradas analogas.
Google