Puertos de entrada y salida
Configurar puertos como entrada/salida
Para configurar los puertos PORTA, PORTB, …, PORTE se utilizan los registros TRISA, TRISB, …, TRISE respectivamente.
Donde 1 es Input y 0 es Output.
Es importante que antes de configurar un puerto como salida, se escriban los bits de cada pin con “0“ por protección, para que al encenderlos no llegen a generar un corto o activar algo que este conectado al pin. Esto porque MCLR (master clear) no limpia el contenido de los puertos a menos que se indique lo contrario.
Así que para configurar el puerto D como salida se utiliza el siguiente código
CLRF PORTD
BSF STATUS,RP0 ;B1.
CLRF TRISD
BCF STATUS,RP0 ;B0.
...
COMF PORTD ;PORTD EN HIGH
Configurar puertos como digital/analógico
Los puertos A,B y E están configurados por default como entradas analógicos. Si se desean usar como entradas digitales, se debe cambiar su configuración desde los registros ANSEL y ANSELH.
| AN13 | AN12 | AN11 | AN10 | AN9 | AN8 | AN7 | AN6 | AN5 | AN4 | AN3 | AN2 | AN1 | AN0 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| RB5 | RB0 | RB4 | RB1 | RB3 | RB2 | RE2 | RE1 | RE0 | RA5 | RA3 | RA2 | RA1 | RA0 | |
| A | N | S | E | L | H | A | N | S | E | L |
Los registros ANSEL y ANSELH tienen por default el valor de 1 y los pines funcionan como inputs analógicas. Cuando el valor es 0, los pines funcionan como digital o función especial del puerto.
Para configurar un pin como entrada digital es necesario:
- Configurar el puerto pin como entrada con
TRISX(Configurada por default con1s=inputs). - Configurar el puerto como entrada analógica con
ANSEL/ANSELH(Configurados por default con1s=inputs analógicas).