Hello, this very post is related to the RPM meter project. In fact this is the description of AT89S52 with reference to that context. You must first of all glance over the project here. This is to mention here that this post is the work of all the same team members mentioned in the project.
8051 is the name of a big family of microcontrollers. The device which we used in our project was the 'AT89S52' which is a typical 8051 microcontroller manufactured by Atmel™. The block diagram provided by Atmel™ in their datasheet that showed the architecture of 89S52 device seemed a bit complicated. A simpler architecture can be represented below.
The 89S52 has 4 different ports, each one having 8 Input/output lines providing a total of 32 I/O lines. Those ports can be used to output DATA and orders do other devices, or to read the state of a sensor, or a switch. Most of the ports of the 89S52 have 'dual function' meaning that they can be used for two different functions.
The first one is to perform input/output operations and the second one is used to implement special features of the microcontroller like counting external pulses, interrupting the execution of the program according to external events, performing serial data transfer or connecting the chip to a computer to update the software. Each port has 8 pins, and will be treated from the software point of view as an 8-bit variable called 'register', each bit being connected to a different Input/Output pin.
There are two different memory types: RAM and EEPROM. Shortly, RAM is used to store variable during program execution, while the EEPROM memory is used to store the program itself, that's why it is often referred to as the 'program memory'. It is clear that the CPU (Central Processing Unit) is the heart of the micro controllers. It is the CPU that will Read the program from the FLASH memory and Execute it by interacting with the different peripherals
Diagram below shows the pin configuration of the 89S52, where the function of each pin is written next to it, and, if it exists, the dual function is written between brackets. Note that the pins that have dual functions can still be used normally as an input/output pin. Unless the program uses their dual functions, all the 32 I/O pins of the microcontroller are configured as input/output pins.