AVR microcontroller has some parts that are divided into:
ALU (Arithmetic Logic Unit) is a processor for executing the program code that is appointed by the counter program.
- Program memory is a flash memory to store programs in the form of a memory address and program code in the memory address.
Program Counter (PC) is a component to show the address of the program memory. So that ALU can make the execution of programs that exist in the address.
- General Purpose Working Registers (GPR) is a register that has 8-bit space. GPR will execute program code each instruction in the ALU involving GPR.
Static Random Access Memory (SRAM) is RAM that hold the temporarily data. SRAM also has a memory address of the usual RAM. Last address of an SRAM depends on the capacity of SRAM and is already defined in the header file with the name RAMEND. So, to make the stack (the last address of SRAM) we can use RAMEND.
- Internal pheripheral is an internal module in a microcontroller such as channel input / output, external interrupts, timers / counters, USART, EEPROM, and others. Each of these modules have internal port registers which control the internal module.
**) Pict from mouser,com