Skip to main content
Engineering LibreTexts

30.1: ATmega 328P Register Map

  • Page ID
    35921
  • Derived from the October, 2014 version of the Atmel 328P documentation which may be found at http://www.atmel.com/devices/ATMEGA328P.aspx.

    Address Name Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
    0x23 PINB PINB7 PINB6 PINB5 PINB4 PINB3 PINB2 PINB1 PINB0
    0x24 DDRB DDB7 DDB6 DDB5 DDB4 DDB3 DDB2 DDB1 DDB0
    0x25 PORTB PORTB7 PORTB6 PORTB5 PORTB4 PORTB3 PORTB2 PORTB1 PORTB0
    0x26 PINC - PINC6 PINC5 PINC4 PINC3 PINC2 PINC1 PINC0
    0x27 DDRC - DDC6 DDC5 DDC4 DDC3 DDC2 DDC1 DDC0
    0x28 PORTC - PORTC6 PORTC5 PORTC4 PORTC3 PORTC2 PORTC1 PORTC0
    0x29 PIND PIND7 PIND6 PIND5 PIND4 PIND3 PIND2 PIND1 PIND0
    0x2A DDRD DDD7 DDD6 DDD5 DDD4 DDD3 DDD2 DDD1 DDD0
    0x2B PORTD PORT7 PORT6 PORTD5 PORTD4 PORTD3 PORTD2 PORTD1 PORTD0
    0x2C-34 Reserved - - - - - - - -
    0x35 TIFR0 - - - - - OCF0B OCF0A TOV0
    0x36 TIFR1 - - ICF1 - - OCF1B OCF1A TOV1
    0x37 TIFR2 - - - - - OCF2B OCF2A TOV2
    0x38-3A Reserved - - - - - - - -
    0x3B PCIFR - - - - - PCIF2 PCIF1 PCIF0
    0x3C EIFR - - - - - - INT1 INT0
    0x3D EIMSK - - - - - - INTF1 INTF0
    0x3E GPIOR0 General Purpose I/O Register 0
    0x3F EECR     EEPM1 EEPM0 EERIE EEMPE EEPE EERE
    0x40 EEDR EEPROM Data Register
    0x41 EEARL EEPROM Address Register Low Byte
    0x42 EEARH EEPROM Address Register High Byte
    0x43 GTCCR TSM - - - - - PSRASY PSRSYNC
    0x44 TCCR0A COM0A1 COM0A0 COM0B1 COM0B0 - - WGM01 WGM00
    0x45 TCCR0B FOC0A FOC0B - - WGM02 CS02 CS01 CS00
    0x46 TCNT0 Timer/Counter0 (8-bit)
    0x47 OCR0A Timer/Counter0 Output Compare Register A
    0x48 OCR0B Timer/Counter0 Output Compare Register B
    0x49 Reserved - - - - - - - -
    0x4A GPIOR1 General Purpose I/O Register 1
    0x4B GPIOR2 General Purpose I/O Register 2
    0x4C SPCR SPIF WCOL DORD MSTR CPOL CPHA SPR1 SPR0
    0x4D SPSR SPIE SPE - - - - - SPI2X
    0x4E SPDR SPI Data Register
    0x4F Reserved - - - - - - - -
    0x50 ACSR ACD ACBG ACO ACI ACIE ACIC ACIS1 ACIS0
    0x51-52 Reserved - - - - - - - -
    0x53 SMCR - - - - SM2 SM1 SM0 SE
    0x54 MCUSR - - - - WDRF BORF EXTRF PORF
    0x55 MCUCR - BODS BODSE PUD - - IVCEL IVCE
    0x56 Reserved - - - - - - - -
    0x57 SPMCSR SPMIE RWWSB SIGRD RWWSRE BLBSET PGWRT PGERS SPMEN
    0x58-5C Reserved - - - - - - - -
    0x5D SPL SP7 SP6 SP5 SP4 SP3 SP2 SP1 SP0
    0x5E SPH - - - - - SP10 SP9 SP8
    0x5F SREG I T H S V N Z C
    0x60 WDTCSR WDIF WDIE WDP3 WDCE WDE WDP2 WDP1 WDP0
    0x61 CLKPR CLKPCE - - - CLKPS3 CLKPS2 CLKPS1 CLKPS0
    0x62-63 Reserved - - - - - - - -
    0x64 PRR PRTWI PRTM2 PRTM0 - PRTM1 PRSPI PRUSART0 PRADC
    0x65 Reserved - - - - - - - -
    0x66 OSCCAL Oscillator Calibration Register
    0x67 Reserved - - - - - - - -
    0x68 PCICR - - - - - PCIE2 PCIE1 PCIE0
    0x69 EICRA - - - - ISC11 ISC10 ISC01 ISC00
    0x6A Reserved - - - - - - - -
    0x6B PCMSK0 PCINT7 PCINT6 PCINT5 PCINT4 PCINT3 PCINT2 PCINT1 PCINT0
    0x6C PCMSK1   PCINT14 PCINT13 PCINT12 PCINT11 PCINT10 PCINT9 PCINT8
    0x6D PCMSK2 PCINT23 PCINT22 PCINT21 PCINT20 PCINT19 PCINT18 PCINT17 PCINT16
    0x6E TIMSK0 - - - - - OCIE0B OCIE0A TOIE0
    0x6F TIMSK1 - - ICIE1 - - OCIE1B OCIE1A TOIE1
    0x70 TIMSK2 - - - - - OCIE2B OCIE2A TOIE2
    0x71-77 Reserved - - - - - - - -
    0x78 ADCL ADC Data Register Low byte
    0x79 ADCH ADC Data Register High byte
    0x7A ADCSRA ADEN ADSC ADATE ADIF ADIE ADPS2 ADPS1 ADPS0
    0x7B ADCSRB - ACME - - - ADPT2 ADPT1 ADPT0
    0x7C ADMUX REFS1 REFS0 ADLAR - MUX3 MUX2 MUX1 MUX0
    0x7D Reserved - - - - - - - -
    0x7E DIDR0 - - ADC5D ADC4D ADC3D ADC2D ADC1D ADC0D
    0x7F DIDR1 - - - - - - AIN1D AIN0D
    0x80 TCCR1A COM1A1 COM1A0 COM1B1 COM1B0 - - WGM11 WGM10
    0x81 TCCR1B ICNC1 ICES1 - WGM13 WGM12 CS12 CS11 CS10
    0x82 TCCR1C FOC1A FOC1B - - - - - -
    0x83 Reserved - - - - - - - -
    0x84 TCNT1L Timer/Counter1 - Counter Register Low Byte
    0x85 TCNT1H Timer/Counter1 - Counter Register High Byte
    0x86 ICR1L Timer/Counter1 - Input Capture Register Low Byte
    0x87 ICR1H Timer/Counter1 - Input Capture Register High Byte
    0x88 OCR1AL Timer/Counter1 - Output Compare Register A Low Byte
    0x89 OCR1AH Timer/Counter1 - Output Compare Register A High Byte
    0x8A OCR1BL Timer/Counter1 - Output Compare Register B Low Byte
    0x8B OCR1BH Timer/Counter1 - Output Compare Register B High Byte
    8C-AF Reserved - - - - - - - -
    0xB0 TCCR2A COM2A1 COM2A0 COM2B1 COM2B0 - - WGM21 WGM20
    0xB1 TCCR2B FOC2A FOC2B - - WGM22 CS22 CS21 CS20
    0xB2 TCNT2 Timer/Counter2 (8-bit)
    0xB3 OCR2A Timer/Counter2 Output Compare Register A
    0xB4 OCR2B Timer/Counter2 Output Compare Register B
    0xB5 Reserved - - - - - - - -
    0xB6 ASSR - EXCLK AS2 TCN2UB OCR2AUB OCR2BUB TCR2AUB TCR2BUB
    0xB7 Reserved - - - - - - - -
    0xB8 TWBR 2-wire Serial Interface Bit Rate Register
    0xB9 TWSR TWS7 TWS6 TWS5 TWS4 TWS3 - TWPS1 TWPS0
    0xBA TWAR TWA6 TWA5 TWA4 TWA3 TWA2 TWA1 TWA0 TWGCE
    0xBB TWDR 2-wire Serial Interface Data Register
    0xBC TWCR TWINT TWEA TWSTA TWSTO TWWC TWEN - TWIE
    0xBD TWAMR TWAM6 TWAM5 TWAM4 TWAM3 TWAM2 TWAM1 TWAM0 -
    0xBE Reserved - - - - - - - -
    0xBF Reserved - - - - - - - -
    0xC0 UCSR0A RXC0 TXC0 UDRE0 FE0 DOR0 UPE0 U2X0 MPCMP0
    0xC1 UCSR0B RXCIE0 TXCIE0 UDRIE0 RXEN0 TXEN0 UCSZ02 RXB80 TXB80
    0xC2 UCSR0C UMSEL01 UMSEL00 UPM01 UPM00 USBS0 UCSZ01/UDORD0 UCSZ00/UCPHA0 UCPOL0
    0xC3 Reserved - - - - - - - -
    0xC4 UBRR0L USART I/O Data Register
    0xC5 UBBR0H - - - - USART Baud Rate Register High
    0xC6 UDR0 USART Baud Rate Register Low
    0xC7-FF Reserved - - - - - - - -

     

    • Was this article helpful?