Registros y programación de los Puertos E/S
Registros y programación de los Puertos E/S
Los registros que permiten la programación del puerto son registros de 8 bits. Cada bit de estos registros está asociado a un terminal del puerto. Los terminales del puerto se notan del 0 al 7, de forma que el bit 0 está asociado al terminal 0, el bit 1 al terminal 1, y así sucesivamente, tal y como se ve en la siguiente figura.
Los registros que permiten la configuración del puerto son los siguientes:
PxDIR: cada bit de este registro selecciona la dirección (entrada o salida) del terminal asociado. Con la escritura de un '0' se configura el terminal como ENTRADA y con la escritura de un '1' se configura como SALIDA.
PxIN: cada bit de este registro refleja el valor de la señal digital del terminal asociado, sólo cuando éste esté configurado como entrada.
PxOUT: cada bit de este registro es el valor de la señal digital generada en el terminal asociado a dicho bit, sólo cuando este terminal esté configurado como salida. Cuando el terminal está configurado como entrada y está habilida la resistencia interna pullup/pulldown, este bit determina el tipo de resistencia (bit=0 pulldown ) o (bit=1 pullup ).
PxREN: cada bit de este registro determina si el terminal asociado tiene habilitada o deshabilitada la resistencia interna pullup/pulldown (bit=0 deshabilitada) (bit=1 habilitada). El tipo de resistencia es establecido con PxOUT.
PxSEL y PxSEL2: cada bit de estos registros determinan la funcionalidad del terminal asociado, como E/S de propósito general (bits=00), o como función específica asociada a un periferico.
En el caso de los puertos P1 y P2, que cuentan con terminales con capacidad de interrupción, además de los anteriores, los siguientes registros permiten su programación:
PxIFG: cada bit de este registro es el flag de interrupción del terminal asociado. Cada bit se pone de forma automática a 1 cuando se produce un flanco activo en el terminal de entrada asociado. El flanco activo se determina con el registro PxIES.
PxIE: cada bit de este registro es el bit de habilitación del terminal asociado. Cada bit habilita/deshabilita la interrupción de su terminal (bit=0 deshabilita) (bit=1 habilita).
PxIES: cada bit de este registro selecciona el flanco activo de interrupción del correspondiente terminal asociado (bit=0 flanco de subida) (bit=1 flanco de bajada).
Ejercicio resuelto: Configuración puerto
Dada la siguiente configuración de los registros de control del puerto P1
P1DIR=0xF0; P1DIR|=BIT0+BIT1+BIT2 P1OUT &=~BIT3 P1REN|= BIT3 P1IES &=~ BIT3 P1IFG &=~ BIT3 P1IE|=BIT3 |