Endereços bits da Porta P0 são inteiramente dependentes da arquitetura específica do microcontrolador. Não existe mapeamento universal. Você deve especificar o dispositivo exato.
Famílias Microcontrolador Comuns e Convenções Porta 0
Família 8051 (Intel, NXP, Atmel, Silicon Labs, STC)
- Porta 0: I/O bidirecional 8-bit (P0.0 - P0.7)
- Endereço SFR: 0x80 (byte-wide)
- Endereços bits: 0x80 (P0.0) até 0x87 (P0.7) — espaço SFR endereçável por bit
- Função especial: Barramento endereço/dados multiplexado (AD0-AD7) para memória externa
- Saídas open-drain: Requerem pull-ups externos (exceto quando usado como barramento AD)
ARM Cortex-M (STM32, NXP LPC, TI Tiva, etc.)
- Sem nomenclatura padrão "Porta 0" — tipicamente GPIOA, GPIOB, GPIOC... ou PORT0, PORT1
- Registradores: MODER, OTYPER, OSPEEDR, PUPDR, IDR, ODR, BSRR, LCKR, AFR
- Bit-banding (Cortex-M3/M4/M7): Região alias mapeia cada bit para endereço word
- Exemplo STM32: GPIOA base 0x40020000; alias bit-band para PA0 = 0x42000000
Microcontroladores PIC (Microchip)
- Sem "Porta 0" — portas nomeadas PORTA, PORTB, PORTC... (ou PORT0 em alguns 16-bit)
- Registradores: TRISx (direção), PORTx (leitura), LATx (latch escrita)
- Endereçamento bits: Bits individuais acessíveis (ex.: PORTAbits.RA0)
AVR (ATmega, ATtiny)
- Portas: PORTA, PORTB, PORTC... (sem Porta 0)
- Registradores: DDRx, PORTx, PINx
- Acesso bit: Instruções SBI/CBI, ou PORTB |= (1<
MSP430 (TI)
- Portas: P1, P2, P3... (P1 = Porta 1, não Porta 0)
- Registradores: PxDIR, PxOUT, PxIN, PxREN, PxSEL
RISC-V (SiFive, GD32, CH32, ESP32-C3)
- Controlador GPIO com registradores mapeados memória
- Sem "Porta 0" padrão — específico vendor
Como Encontrar Endereços Bits P0 do SEU Dispositivo
- Identifique número peça exato: ex.: AT89S52, STM32F103C8T6, PIC16F877A, ATmega328P
- Baixe datasheet do fabricante (não terceiros)
- Busque por: "Porta 0", "P0", "GPIO", "porta I/O", "mapa SFR", "mapa memória"
- Procure por: Endereço SFR, faixa endereçável bit, funções alternativas
Exemplo: AT89S52 (8051) Endereços Bits Porta 0
| Bit | Símbolo | Endereço Bit SFR | Endereço SFR Byte |
| 0 | P0.0 | 0x80 | 0x80 |
| 1 | P0.1 | 0x81 |
| 2 | P0.2 | 0x82 |
| 3 | P0.3 | 0x83 |
| 4 | P0.4 | 0x84 |
| 5 | P0.5 | 0x85 |
| 6 | P0.6 | 0x86 |
| 7 | P0.7 | 0x87 |
Acesso em C: P0_0, P0_1... (Keil) ou P0 &= ~(1<<0) (SDCC)
Acesso em Assembly: MOV P0.0, C / JB P0.1, LABEL
Caveats Críticos Porta 0 8051
- Saídas open-drain — devem ter resistores pull-up externos (4,7-10kΩ) para nível alto lógico
- Usada como AD0-AD7 para memória externa (EA=0) — não disponível para GPIO
- Pull-ups internos fracos apenas durante reset
- Não adequada para drive LEDs diretamente (apenas sink)
Forneça seu número peça microcontrolador específico para endereços bits exatos e restrições uso.