Programming of microcontrollers means writing to the internal program memory. Most of the modern microcontrollers are equipped with central program memory (Flash EEPROM) that can be programmed and erased electrically. Atmel AT89C51 is one such IC. AT89C51 is available in a 40 pin DIP so that it can be easily hooked up in a breadboard or a PCB by a beginner. AT89C51 has 4k byte of Flash program memory. The AT89C51 program memory is programmed byte-by-byte. To program any non-blank on-chip memory, the entire program memory has to be erased before programming.
Two versions of AT89C51 are available so far as the programming voltage is concerned,viz., 5V or 12 V. The advantage of having a 5V programming voltage is that a user can program the memory while the IC is still in the circuit. However, in some applications 12V programming voltage is preferred where a separate programmer is required for programming for safety purpose.
For programming the flash memory, the following connections are made.