Introduction to 8085 Microprocessor:
A microprocessor is a multipurpose, programmable, clock-driven, register-based digital electronic Integrated Chip/device which reads the binary instructions from a storage device called memory, accepts the binary data as inputs, and processes the data according to the instructions, then provides the result as output. Any microprocessor-based systems having a limited number of resources are called microcomputers. Nowadays, the microprocessor can be seen in almost all types of electronic devices like mobile phones, printers, washing machines, etc. When the microprocessor came to the real market, then the 8085 Microprocessor was the first microprocessor over healed the Embedded design product. The 8085 Microprocessor is a first and perfect design microprocessor among all who was having all the operation features to use on a computer.
History Of 8085 Microprocessor:
The 8085 Microprocessor was designed by Intel in 1977 using NMOS technology. The main operation 8085 Microprocessor ALU is arithmetic as well as logical which includes addition, subtraction, increment, decrement, logical operations like AND, OR, Ex-OR, complement, evaluation, left shift or right shift and having a very good register design to do these operations.
Block Diagram Of 8085 Microprocessor
The microprocessor is a digital device on a chip that can fetch instructions from a memory, decode and execute them i.e. performs certain arithmetic and logical operations, accept data from an input device and send results to output devices. Therefore a microprocessor interfaced with memory, and Input/ Output devices form a Microcomputer.
In a computer system, ALU and Control Unit are combined in one unit called Central Processing Unit (CPU). Basically, there are five building blocks of a digital computer system namely:
- Input Unit: Through this unit data and instructions are fed to the memory of the computer. The basic purpose of this unit is to read the data into the machine. The program from the memory is read into the machine along with the input data which are required to solve or compute the problem by the machine. The typical devices which are used for this purpose are keyboards, paper tape reader and toggle switches, etc.
- Memory Unit: The memory unit of a digital computer consists of devices that are capable of storing information. The memory of a computer is used for storing two distinct types of information such as data to be processed by the computer and program through which the result of the desired problem is obtained. Computer programs and data are stored in the Memory Unit. This usually consists of chips of both ROMs (Read Only Memories) and RAMs (Random Access Memories) either bipolar or MOS.
- ALU: This unit is used for performing arithmetic operations such as Logical Unit Addition, Subtraction, Multiplications, division, and other logical (ALU) operations on the data. The control unit guides ALU which of the operations are to be performed. The sequence of the instructions is controlled by the control unit.
- Control Unit: The control unit performs the most important function in a computer. It controls all other units and also controls the flow of data from one unit to another for performing computations. It also sequences the operations. It instructs all the units to perform the task in a particular sequence with the help of clock pulses.
- Output Unit: After processing of the data in the Arithmetic and Logical Unit, the results are displayed to the output world through this unit. The CRTs (Cathode Ray Tubes), LEDs (Light Emitting Diodes) and Printer, etc. form the output unit.
8085 Microprocessor Interfacing with I/O & Memory Module:
A microprocessor is only a processing unit and also have consisted of the control unit to control the various blocks as it requires to accept the input data and instruction from the external environment (Keyboard, Mouse, etc.), store the data (RAM, ROM), and send the data result (Monitor, Speaker, etc.).
To interface all the modules with the microprocessor to make a computer, it needs some wires with a standard called a bus that interconnecting with each other. These busses allow an exchange of words between the blocks. A bus has a wire or line for each bit and thus allows the exchange of all bits of a word in parallel. The processing of bits in the μP is also in parallel. The busses can thus be viewed as data highways. The width of a bus is the number of signal lines that constitute the bus.
A bus is a number of wires which interconnecting the Input Module, Out module, and Memory module with the microprocessor. It is divided into 3 basic categories for different purposes as Data Bus, Address Bus, and Control Bus.
- Address Bus: It carries the address, which is a unique binary pattern used to identify a memory location or an I/O port. For example, an eight-bit address bus has eight lines and thus it can address 28 = 256 different locations. The locations in the hexadecimal format can be written as 00H – FFH.
- Data Bus: The data bus is used to transfer data between memory and processor or between the I/O device and processor. For example, an 8-bit processor will generally have an 8-bit data bus and a 16-bit processor will have a 16-bit data bus.
- Control Bus: The control bus carries control signals, which consists of signals for selection of memory or I/O device from the given address, direction of data transfer and synchronization of data transfer in case of slow devices.
The architecture of Intel 8085A Microprocessor:
The 8085 microprocessor is an 8-bit processor available as a 40-pin IC package and uses +5 V for power. It can run at a maximum frequency of 3 MHz. Its data bus width is 8-bit and the address bus width is 16-bit, thus it can address 216 = 64 KB of memory. The internal architecture of 8085 is shown in the below figure.
It is an improved version of 8080A. The 8080A is compatible with 8085A in the instruction set but they are not in a pin-compatible. The 8085A has got eight(8) addressable 8 – bit registers. out of which six are general-purpose registers and two are special-purpose registers the two special purpose registers are the Accumulator (A) and flag register (F). The program counter (PC) and the stack pointer (SP) are special-purpose 16 – bit registers. The 8085A is provided with five Hardware interrupts with different degrees of priority. In order of decreasing priority, they are TRAP, RST 7.5, RST 6.5, RST 5.5, and INTR. The TRAP interrupt is unmasked able while the rest are maskable interrupts. The Intel 8085A Microprocessor is available as a 40 – pin chip, and requires a +SV DC power supply and has its own internal clock. It has eight(8) data lines sixteen(16) Address lines.
There Besides, it has READY, HOLD, HLDA, RESET OUT. And clock Clock outlines. it also has one serial data input (SID) line and one serial data output (SOD) line. The timing operation of 8085 A evolves seven types of Machine cycles.
- Opcode fetch
- Memory read
- Memory write
- I/O Read
- I/O Write
- INTR Acknowledge
Arithmetic-Logic Unit (ALU):
The arithmetic and logic unit performs the computing functions that both arithmetic and logical operations are addition, subtractions, logical AND, Logical OR, Logical EXCLUSIVE OR, Complement, Increment, Decrement, Left shift, rotate left, Rotate Wright, clear, etc. This unit includes Accumulator (A), Temporary Register, The Arithmetic and logic circuits, and five flags. We will discuss below.
- Accumulator: The Accumulator is an 8 – bit register associated with the ALU. It is used to hold one of the operands of arithmetic or logical operations. It serves as one input to the ALU. The other operand may be from memory or one of the general-purpose Registers (B, C, D, E, H, L). The final result of an arithmetic or logical operations will be placed in Accumulator (A). Exceptional cases:
- 1. When one operand is used for logical instructions the result will be stored in the accumulator. E.g. – ADDA, RLA. 2. For the addition of 16 – bit data, one operand is kept in HL pair and the other is in BC or DE and the result will be stored in H – L. e.g. – DAD rp.
- Registers: The 8085 includes six registers, one accumulator, and one flag register, as shown in Fig. 3. In addition, it has two 16-bit registers: stack pointer and program counter. They are briefly described as follows. The 8085 has six general-purpose registers to store 8-bit data; these are identified as B, C, D, E, H, and L. they can be combined as register pairs – BC, DE, and HL to perform some 16-bit operations. The programmer can use these registers to store or copy data into the register by using data copy instructions.
- Flag register (PSW): The ALU includes five flip-flops, which are set or reset after an operation according to data condition of the result in the accumulator and other registers. They are called Zero (Z), Carry (CY), Sign (S), Parity (P), and Auxiliary Carry (AC) flags. Their bit positions in the flag register are shown in Fig. 4. The microprocessor uses these flags to test data conditions.
Carry Flag (CS) – D0: After the execution of Arithmetic operation, If a carry is produced, then CS = 1 otherwise CS = 0. E.g. On addition of two 8 – bit numbers, if the sum is larger than 8 – bits, a carry is produced. And the CS but if the PSW register will be 1 (set). If the sum of the not larger than 8 – bits, then CS = 0. In the case of subtraction, if borrow occurs then CS bit will be set, otherwise, it will be reset.
Parity Flag (P) – D2: ‘P’ is the parity status flag of PSW Register .if the result of Arithmetic or logical operations contains even numbers of 1’s, and then the parity flag becomes 1, i.e. = p = 1 (set). if the result contains odd numbers of 1’s then the parity flag becomes ‘0 ’ i.e. P = 0.
Auxiliary carry flag (AC) – D4: In arithmetic and logical operations, if the carry occurs of the ‘D3’ bit to ‘D4’ bit, then the AC flag will be set i.e. AC = 1, otherwise ‘AC’ will be reset i.e. AC = 0.
Zero flags (Z) – D6: If the result of an Arithmetic/logical operations is ‘0. Then the zero flags will be set i.e. Z = 1(Set). If the result is not zero, then Z = 0 (Reset).
Sign flag (S) – D7: If the result of an arithmetic/logical operation is negative, then the sign flag (s) will be set (1). If the result is positive then the sign flag will be reset (0). Generally, the ‘MSB’ is used for the sign flag.
NOTE: The Status flags on the PSW register can be visualized in case of unsigned arithmetic operation. But in the case of unsigned arithmetic operations, all the 8 – bits are used to represent the magnitude of the number.
- General Purpose Registers or Scratch Pad Memory: There are six general-purpose 8-bit registers that can be used by the programmer for a variety of purposes. These registers, labeled as B, C, D, E, H, and L, can be used individually (e.g., when an operation on 8-bit data is desired) or in pairs (e.g., when a 16-bit address is to be stored). Only B-C, D-E, and H-L pairs are allowed.
- Instruction Register/Decoder: This 8-bit register stores the next instruction to be executed. At the proper time, this stored word (instruction) is fed to an instruction decoder which decodes it and supplied appropriate signals to the control unit. When the execution has been accomplished the new word in the instruction register is processed.
- Program Counter (PC): This is a 16-bit register which holds the address of the next instruction that has to be fetched from the main memory and loaded into the instruction register. The program controlling the operation is stored in the main memory and instructions are retrieved from this memory normally in order. Therefore, normally the address contained in the PC is incremented after each instruction is fetched. However, certain classes of instruction can modify the PC so that the programmer can provide for branching away from the normal program flow. Examples are instructions in the “jump” and ‘call subroutine’ groups.
- Stack Pointer (SP): The stack pointer is also a 16-bit register, used as a memory pointer. It points to a memory location in R/W memory, called stack. The beginning of the stack is defined by loading 16-bit address in the stack pointer.
8085 Microprocessor Pin Diagram Description:
The 8085 microprocessor is an 8 – bit. It is called 8 – bit because basically it performs 8 – bit operation. It is a single chip NMOS device implemented with approximately 6200 transistors on a single chip. The microprocessor 8085 contained 40 pins that are dual – inline (DIP) packages. It uses a single power supply (+SVDC) for its operation. Its clock speed is about 3MHZ. The clock cycle is of 320 nano – sec. The time for the clock cycle of 8085AH-2 is 200ns.
Address and Data Buses:
- A8 – A15 (output): Most significant eight bits of memory addresses and the eight bits of the I/O addresses.
- AD0 – AD7 (input/output): Lower significant bits of memory addresses and the eight bits of the I/O addresses during a first clock cycle. Behaves as data bus during the third and fourth clock cycle.
Control & Status Signals:
- ALE: Address latch enable
- RD: Read control signal.
- WR: Write a control signal.
- IO/M, S1, and S0: Status signals. Power Supply & Clock Frequency:
- Vcc: +5 V power supply
- Vss: Ground reference
- X1, X2: A crystal having a frequency of 6 MHz is connected at these two pins
- CLK: Clock output.
Externally Initiated and Interrupt Signals:
- RESET IN: When the signal on this pin is low, the PC is set to 0 and the processor is reset.
- RESET OUT: This signal indicates that the processor is being reset. The signal can be used to reset other devices.
- READY: When this signal is low, the processor waits for an integral number of clock cycles until it goes high.
- HOLD: This signal indicates that a peripheral like DMA (direct memory access) controller is requesting the use of address and data bus.
- HLDA: This signal acknowledges the HOLD request.
- INTR: Interrupt request is a general-purpose interrupt.
- INTA: This is used to acknowledge an interrupt.
- RST 7.5, RST 6.5, RST 5,5 – restart interrupt: These are vectored interrupts and have the highest priority than INTR interrupt.
- TRAP: This is a non-maskable interrupt and has the highest priority.