Microprocessor-8085

8085 is pronounced as “eighty-eighty-five” microprocessor. It is an 8-bit microprocessor designed by Intel in 1977 using NMOS technology.

It has the following configuration −

  • 8-bit data bus
  • 16-bit address bus, which can address up to 64KB
  • A 16-bit program counter
  • A 16-bit stack pointer
  • Six 8-bit registers arranged in pairs: BC, DE, HL
  • Requires +5V supply to operate at 3.2 MHZ single phase clock

It is used in washing machines, microwave ovens, mobile phones, etc.

Architecture of 8085 microprocessor

8085 is an 8-bit, general purpose microprocessor. It consists of following functional units:-

 

Block Diagram of 8085 Microprocessor
  1. Arithmetic and Logic Unit (ALU):
    It is used to perform mathematical operations like: addition, multiplication, subtraction, division, decrement, increment, etc.
     
  2. Flag Register:
    It is an 8-bit register that stores either 0 or 1 depending upon which value is stored in the accumulator.
     
  3. Accumulator:
    Accumulator is used to perform I/O, arithmetic and logical operations. It is connected to ALU and internal data bus. 
     
  4. General Purpose Registers:
    There are 6 general purpose registers. These registers can hold 8-bit values. These 8-bit registers are B, C, D, E, H, L. These registers work as 16-bit registers when they work in pair like: B-C, D-E, H-L.
     
  5. Program Counter: 
    Program Counter holds the address value of the memory to the next instruction that is to be executed. It is a 16-bit register.
     
  6. Stack Pointer:
    It works like stack. In stack, the content of register is stored that is later used in the program. It is a 16-bit special register.
     
  7. Temporary Register:
    It is a 8-bit register that holds data values during arithmetic and logical operations.
     
  8. Instruction registers and decoder:
    It is a 8-bit register that holds the instruction code that is being decoded. The instruction is fetched from the memory. 
     
  9. Timing and control unit:
    The timing and control unit comes under the CPU section, and it controls the flow of data from CPU to other devices. It is also used to control the operations performed by the microprocessor and the devices connected to it. There are certain timing and control signals like: Control signals, DMA Signals, RESET signals, Status Signal. 
     
  10. Interrupt control:
    Whenever a microprocessor is executing a main program and if suddenly an interrupt occurs, the microprocessor shifts the control from the main program to process the incoming request. After the request is completed, the control goes back to the main program. There are 5 interrupt signals in 8085 microprocessors: INTR, TRAP, RST 7.5, RST 6.5, RST 5.5
     
  11. Address bus and data bus: 
    Data bus is bidirectional and carries the data which is to be stored.  Address bus is unidirectional and carries location where data is to be stored.
  12. Serial Input/output control:
    It controls the serial data communication by using Serial input data and Serial output data.

Working of 8085 Microprocessor

Now after having an idea about the functional units of the 8085 microprocessor, let us proceed further to understand the operation of the 8085 microprocessor.

We already know that the function of a microprocessor is to execute instructions. Also, to execute an instruction, it first needs to be fetched then decoded and then executed. And to fetch an instruction, firstly the address of the instruction must be known.

The address of the instruction is present in the program counter. This address is then placed on the 16-bit address bus and is then forwarded towards the memory. From the memory, the instruction present at that memory location is fetched through the 8-bit data bus.

Here, in the above figure, we can clearly see that we have combinedly used data bus and address bus so as to reduce the number of lines. As we know that at a particular time the processor will access either the data bus or the address bus.

Further when the instruction is fetched from the memory, then through internal buses the instruction is provided to the instruction register. At this particular point of time fetching the instruction from the memory is over.

Now, it’s time for the processor to decode the instruction. So, it is then fed to the instruction decoder.

We already have the idea that both data and instruction in the memory is stored in the form of an opcode. So, the fetched opcode is analyzed by the instruction decoder present inside the processor in order to execute the instruction.

But, a noteworthy point over here is that, after an instruction is fetched from the memory, then PC increments itself thereby providing the address location of the next instruction. As PC does not play any role in decoding and executing.

However, after execution of first instruction, the next is fetched form the memory.

Now, this is all about fetching and decoding, now what about the execution of the instruction.

In the above figure, we can see the timing and control circuit. This circuit basically sends the control signals to the various units of the microprocessor to execute the instruction.

Suppose, the instruction is ADD A and B. This simply tells the ALU to add the data present in B register with the data present in accumulator i.e., A register. But, in 8085 the decoded instruction is simply ADD B. So, automatically, the ALU adds the value present in the accumulator with the data in register B.

Also, in 8085 the outcome of the operation is stored register A  which is nothing but an accumulator.

Further when an instruction ADD C is decoded by the 8085, then data at C register is added to the data present in register A and is stored at register A. Due to such cumulative action, register A is termed as an accumulator.

Basically, the timing and control circuit timely sends the signals to the accumulator to release its value for proceeding execution. Also, this timing and control circuit sends signals to the register select that tells it to choose the particular register.

Once the data is fetched from a particular register then it is stored in the temporary register and it is used by the ALU. It is to be kept in mind that a programmer can only access the general purpose register as the temporary register is used by the processor to hold the 2nd operand of the operation.

Now, once the operation is executed, then the result is fed to the accumulator through the data bus. But a flag register is also present that holds the status of the result present at the accumulator.

As we have also discussed in the functional unit that a flag register holds a sign, carry etc. related information of the generated result.

After every instruction execution performed by the ALU, the status of the flag register gets changed. So, ALU produces the result and its status simultaneously after each operation.

As we have already discussed that W and Z are the temporary registers but these are not accessed by the programmer as both are used by the processor to hold the temporary value stored by it.

So, this is all about the block diagram and working of 8085 microprocessor.

Applications of 8085 microprocessor

8085 finds its major applications in programmable calculators as well as in numerical control and environment monitoring systems. These are also used in switching, banking and financial systems.