Na arquitetura de microcontroladores PIC® da Microchip Technology (famílias PIC10/12/16/18/24/32), o registrador TRIS (Registrador Tri-Estado) é o Registrador de Direção de Dados para uma porta de I/O. Ele configura cada pino como Entrada ou Saída.
TRIS = **TRI**-Stado (Entrada, Saída Alta, Saída Baixa / Alta-Impedância). O pino pode ser forçado Alto, forçado Baixo, ou Alta-Impedância (Entrada).
| Valor do Bit TRISx | Direção do Pino | Estado do Pino | Driver de Saída | Buffer de Entrada |
|---|---|---|---|---|
| 1 | Entrada | Alta-Impedância (Hi-Z) | Desabilitado (Desligado) | Habilitado (Schmitt Trigger / TTL) |
| 0 | Saída | Forçado Alto / Baixo | Habilitado (Push-Pull / Open-Drain*) | Habilitado (Lê estado do pino) |
*Open-Drain (registrador ODCON) desabilita P-FET; requer pull-up externo.
Mnemônico: "1 = Entrada (I)", "0 = Saída (O)". Pense: **1** parece um **I** (Input). **0** parece um **O** (Output).
LATBbits.LATB5 = 1;if (PORTBbits.RB4) ...// 1. Configurar Analógico/Digital (ANSELx = 0 para I/O digital) ANSELB = 0x00;
// 2. Definir Níveis Iniciais de Saída (LATx) *antes* de tornar saídas LATB = 0x00; // Todos baixos inicialmente
// 3. Definir Direção de Dados (TRISx) TRISB = 0b00010000; // RB4 = Entrada (1), Outros = Saída (0)
// 4. Habilitar Pull-ups Fracos (se necessário, para entradas) WPUBbits.WPUB4 = 1; // Pull-up no RB4 INTCON2bits.nRBPU = 0; // Habilita pull-ups PORTB globalmente
Módulos periféricos (UART, SPI, I2C, PWM, ADC, Comparador) **sobrescrevem controle do TRIS** quando habilitados.
PORTB |= 0x01; lê pino (pode estar baixo por carga), modifica, escreve de volta → limpa outras saídas. Use LATx.BANKSEL TRISB faltando → escreve no registrador errado (PORTB).O registrador TRIS é o guardião da direção do pino. Domine sua lógica "1=Entrada, 0=Saída", sua parceria com LATx/PORTx/ANSELx, e sobreposições periféricas, e você domina I/O do PIC.
Tecnologia Eletrônica © [www.351231.com]