Atmel AT89 series


The Atmel AT89 series is an Intel 8051-compatible family of 8-bit microcontrollers that were manufactured by the Atmel Corporation. Microchip Technology purchased Atmel in April 2016 and manufactures the AT89 series.
Based on the Intel 8051 core, the AT89 series remains very popular as general purpose microcontrollers, due to their industry standard instruction set, their low unit cost, and the availability of these chips in DIL packages. This allows a great amount of legacy code to be reused without modification in new applications. While less powerful than the newer AT90 series of AVR RISC microcontrollers, new product development has continued with the AT89 series for the aforementioned advantages.
More recently, the AT89 series has been augmented with 8051-cored special function microcontrollers, specifically in the areas of USB, I²C, SPI and Controller [Area Network|CAN] bus controllers, MP3 decoders and hardware PWM.
Atmel has also created an LP series of these chips with a "Single Cycle Core", making the execution speed of these chips considerably faster.

AT89 Series Microcontrollers

Device nameFlash memory sizeData memory size
AT80C51RD264KB Flash1024 bytes RAM
AT83C5134-none-1024 bytes RAM
AT83C5135-none-1024 bytes RAM
AT83C5136-none-1024 bytes RAM
AT83EB5114-none-256 bytes RAM
AT89C10511KB Flash64 bytes RAM
AT89C20512KB Flash128 bytes RAM
AT89C40514KB Flash128 bytes RAM
AT89C51/S514KB Flash128 bytes RAM
AT89C511516KB Flash256 bytes RAM
AT89C5130A-M16KB Flash1024 bytes RAM
AT89C5131A-L32KB Flash1024 bytes RAM
AT89C5131A-M32KB Flash1024 bytes RAM
AT89C51AC232KB Flash1024 bytes RAM
AT89C51AC364KB Flash2048 bytes RAM
AT89C51ED264KB Flash1792 bytes RAM
AT89C51IC232KB Flash256 bytes RAM
AT89C51ID264KB Flash1792 bytes RAM
AT89C51RC32KB Flash512 bytes RAM
AT89C51RD264KB Flash1792 bytes RAM
AT89C52/S528KB Flash256 bytes RAM
AT89C55/55WD20KB Flash256 bytes RAM
AT89EB51144KB Flash256 bytes RAM
AT89LP2132KB Flash128 bytes RAM
AT89LP2142KB Flash128 bytes RAM
AT89LP2162KB Flash128 bytes RAM
AT89LP20522KB Flash256 bytes RAM
AT89LP324032KB Flash4352 bytes RAM
AT89LP40524KB Flash256 bytes RAM
AT89LP644064KB Flash4352 bytes RAM
AT89LS514KB Flash128 bytes RAM
AT89LS528KB Flash256 bytes RAM
AT89S20512KB Flash256 bytes RAM
AT89S40514KB Flash256 bytes RAM
AT89S514KB Flash128 bytes RAM
AT89S5312KB Flash256 bytes RAM
AT89S82528KB Flash256 bytes RAM
AT89S82538KB Flash256 bytes RAM

Port structures and operation

All four ports in the AT89C51 and AT89C52 are bidirectional. Each consists of a latch, an output driver, and an input buffer. The output drivers of Ports 0 and 2, and the input buffers of Port 0, are used in accesses to external memory. In this application, Port 0 outputs the low byte of the external memory address, time-multiplexed with the byte being written or read. Port 2 outputs the high byte of the external memory address when the address is 16 bits wide. Otherwise the Port 2 pins continue to emit the P2 SFR content. All the Port 3 pins, and two Port 1 pins are multifunctional. The alternate functions can only be activated if the corresponding bit latch in the port SFR contains a 1. Otherwise the port pin is stuck at 0.