What is the difference between 8051, PIC, AVR and ARM?

By Admin on

  • 8051 is the very basic controller used for the simple applications, avr and pic are used to interface more advanced peripherals such as microSD card, RFID scanner etc and ARM is the most advanced controller family generally used for Real Time Applications.
  • 8051, PIC and AVR have Harvard architecture (separate memory spaces for RAM and program memory).  ARM has von Neumann architecture (program and RAM in the same space)
  • ARM has a 16 and/or 32 bit architecture. The others are byte (8-bit) architecture.
  • 8051 and PIC have limited stack space - limited to 128 bytes for the 8051, and as little as 8 words or less for PIC. Writing a C compiler for these architectures must have been challenging, and compiler choice is limited.
  • 8051, AVR and ARM can directly address all available RAM. PIC can only directly address 256 bytes and must use bank switching to extend it, though using a C compiler conceals this. You still pay a speed penalty though.
  • 8051 and PIC need multiple clock cycles per instruction. AVR and ARM execute most instructions in a single clock cycle.
  • 8051 and AVR are sufficiently similar that an AVR can usually replace an 8051 in existing products with practically no hardware change. Some AVRs are made with 8051 pinouts to drop right in. The Reset polarity is the main difference.
  • 8051 and AVR instruction sets are different but sufficiently similar that it's possible to translate 8051 assembler to AVR assembler line by line (I have done this). Because an 8051 takes 12 (sometimes six) clocks per instruction and an AVR takes only one, you have to modify timing critical routines.
  • AVR and ARM have the best compiler and application support, including free GCC compilers.
SPIRO Google Plus