0% found this document useful (0 votes)
15 views

CSC 503 - Microprocessor and Microcomputer Theory 2

Uploaded by

edocharles728
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views

CSC 503 - Microprocessor and Microcomputer Theory 2

Uploaded by

edocharles728
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 12

CSC506 MICROPROCESSOR SYSTEM 11 FROM DR. UBAKAM.

N
ARCHITECTURE OF 8085 MICROPROCESSOR
Introduction:
The 8085 microprocessor is an 8-bit microprocessor that was developed by Intel in the mid-
1970s. It was widely used in the early days of personal computing and was a popular choice
for hobbyists and enthusiasts due to its simplicity and ease of use. The architecture of the
8085 microprocessor consists of several key components, including the accumulator,
registers, program counter, stack pointer, instruction register, flags register, data bus, address
bus, and control bus.
The accumulator is an 8-bit register that is used to store arithmetic and logical results. It is the
most commonly used register in the 8085 microprocessor and is used to perform arithmetic
and logical operations such as addition, subtraction, and bitwise operations.

1. The 8085 microprocessor has six general-purpose registers, including B, C, D, E, H, and L,


which can be combined to form 16-bit register pairs. The B and C registers can be combined
to form the BC register pair, the D and E registers can be combined to form the DE register
pair, and the H and L registers can be combined to form the HL register pair. These register
pairs are commonly used to store memory addresses and other data.

The program counter is a 16-bit register that contains the memory address of the next
instruction to be executed. The program counter is incremented after each instruction is
executed, which allows the microprocessor to execute instructions in sequence.

The stack pointer is a 16-bit register that is used to manage the stack. The stack is a section of
memory that is used to store data temporarily, such as subroutine addresses and other data.
The stack pointer is used to keep track of the top of the stack.

The instruction register is an 8-bit register that contains the current instruction being
executed. The instruction register is used by the microprocessor to decode and execute
instructions.

2. The flags register is an 8-bit register that contains status flags that indicate the result of an
arithmetic or logical operation. These flags include the carry flag, zero flag, sign flag, and
parity flag. The carry flag is set when an arithmetic operation generates a carry, the zero flag
is set when the result of an arithmetic or logical operation is zero, the sign flag is set when the

1
result of an arithmetic or logical operation is negative, and the parity flag is set when the
result of an arithmetic or logical operation has an even number of 1 bits.

3. The data bus is an 8-bit bus that is used to transfer data between the microprocessor and
memory or other devices. The data bus is bidirectional, which means that it can be used to
read data from memory or write data to memory.

The address bus is a 16-bit bus that is used to address memory and other devices. The address
bus is used to select the memory location or device that the microprocessor wants to access.

4. The control bus is a set of signals that controls the operations of the microprocessor,
including the read and write operations. The control bus includes signals such as the read
signal, write signal, interrupt signal, and reset signal. The read signal is used to read data
from memory or other devices, the write signal is used to write data to memory or other
devices, the interrupt signal is used to signal the microprocessor that an interrupt has
occurred, and the reset signal is used to reset the microprocessor to its initial state.

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

2
Arithmetic and Logic Unit (ALU): It is used to perform mathematical operations like
addition, multiplication, subtraction, division, decrement, increment, etc. Different operations
are carried out in ALU: Logical operations, Bit-Shifting Operations, and Arithmetic
Operations.

Flag Register: It is an 8-bit register that stores either 0 or 1 depending upon which value is
stored in the accumulator. Flag Register contains 8-bit out of which 5-bits are important and
the rest of 3-bits are “don’t Care conditions”. The flag register is a dynamic register because
after each operation to check whether the result is zero, positive or negative, whether there is
any overflow occurred or not, or for comparison of two 8-bit numbers carry flag is checked.
So for numerous operations to check the contents of the accumulator and from that contents if
we want to check the behaviour of given result then we can use Flag register to verify and

3
check. So we can say that the flag register is a status register and it is used to check the
status of the current operation which is being carried out by ALU.

Different Fields of Flag Register:


1. Carry Flag
2. Parity Flag
3. Auxiliary Carry Flag
4. Zero Flag
5. Sign Flag

Accumulator: Accumulator is used to perform I/O, arithmetic, and logical operations. It is


connected to ALU and the internal data bus. The accumulator is the heart of the
microprocessor because for all arithmetic operations Accumulator’s 8-bit pin will always
there connected with ALU and in most-off times all the operations carried by different
instructions will be stored in the accumulator after operation performance.

General Purpose Registers: There are six 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 pairs like B-C, D-E, and H-L. Here registers W and Z are
reserved registers. We can’t use these registers in arithmetic operations. It is reserved for
microprocessors for internal operations like swapping two 16-bit numbers. We know that to
swap two numbers we need a third variable hence here W-Z register pair works as temporary
registers and we can swap two 16-bit numbers using this pair

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.

For Example: Suppose current value of Program Counter: [PC] = 4000H


(It means that next executing instruction is at location 4000H.After fetching, program
Counter(PC) always increments
by +1 for fetching of next instruction.)
Stack Pointer: It works like a stack. In stack, the content of the register is stored that is later
used in the program. It is a 16-bit special register. The stack pointer is part of memory but it
is part of Stack operations, unlike random memory access. Stack pointer works in a

4
continuous and contiguous part of the memory. whereas Program Counter(PC) works in
random memory locations. This pointer is very useful in stack-related operations like PUSH,
POP, and nested CALL requests initiated by Microprocessor. It reserves the address of the
most recent stack entry.

Temporary Register: It is an 8-bit register that holds data values during arithmetic and
logical operations.

Instruction register and decoder: It is an 8-bit register that holds the instruction code that is
being decoded. The instruction is fetched from the memory.

Timing and control unit: The timing and control unit comes under the CPU section, and it
controls the flow of data from the 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 and Status
signals.

Interrupt control: Whenever a microprocessor is executing the 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, and RST 5.5.

Priorities of Interrupts: TRAP > RST 7.5 > RST 6.5 > RST 5.5 > INTR

Address bus and data bus: The data bus is bidirectional and carries the data which is to be
stored. The address bus is unidirectional and carries the location where data is to be stored.
In the 8085 microprocessor, the address bus and data bus are two separate buses that are used
for communication between the microprocessor and external devices. The Address bus is
used to transfer the memory address of the data that needs to be read or written. The address
bus is a 16-bit bus, allowing the 8085 to access up to 65,536 memory locations. The Data bus
is used to transfer data between the microprocessor and external devices such as memory and
I/O devices. The data bus is an 8-bit bus, allowing the 8085 to transfer 8-bit data at a time.
The data bus can also be used for instruction fetch operations, where the microprocessor

5
fetches the instruction code from memory and decodes it. The combination of the address bus
and data bus allows the 8085 to communicate with and control external devices, allowing it to
execute its program and perform various operations.

Serial Input/output control: It controls the serial data communication by using Serial input
data and Serial output data. Serial Input/output control in the 8085 microprocessor refers to
the communication of data between the microprocessor and external devices in a serial
manner, i.e., one bit at a time. The 8085 has a serial I/O port (SID/SOD) for serial
communication. The SID pin is used for serial input and the SOD pin is used for serial
output. The timing and control of serial communication is managed by the 8085’s internal
circuitry. The 8085 also has two special purpose registers, the Serial Control Register (SC)
and the Serial Shift Register (SS), which are used to control and monitor the serial
communication.

The flow of an Instruction Cycle in 8085 Architecture: Execution starts with Program
Counter. It starts program execution with the next address field. it fetches an instruction from
the memory location pointed by Program Counter. For address fetching from the memory,
multiplexed address/data bus acts as an address bus and after fetching instruction this address
bus will now acts as a data bus and extract data from the specified memory location and send
this data on an 8-bit internal bus. For multiplexed address/data bus Address Latch
Enable(ALE) Pin is used. If ALE = 1 (Multiplexed bus is Address Bus otherwise it acts as
Data Bus).

After data fetching data will go into the Instruction Register it will store data fetched from
memory and now data is ready for decoding so for this Instruction decoder register is used.
After that timing and control signal circuit comes into the picture. It sends control signals all
over the microprocessor to tell the microprocessor whether the given instruction is for
READ/WRITE and whether it is for MEMORY/I-O Device activity.
Hence according to timing and control signal pins, logical and arithmetic operations are
performed and according to that data fetching from the different registers is done by a
microprocessor, and mathematical operation is carried out by ALU. And according to
operations Flag register changes dynamically.
With the help of Serial I/O data pin (SID or SOD Pins) we can send or receive input/output to
external devices .in this way execution cycle is carried out.

6
While execution is going on if there is any interrupt detected then it will stop execution of
the current process and Invoke Interrupt Service Routine (ISR) Function. Which will stop
the current execution and do execution of the current occurred interrupt after that normal
execution will be performed.
Uses of 8085 Microprocessor
The 8085 microprocessor is a versatile 8-bit microprocessor that has been used in a wide
variety of applications, including:

1. Embedded Systems: The 8085 microprocessor is commonly used in embedded systems,


such as industrial control systems, automotive electronics, and medical equipment.
2. Computer Peripherals: The 8085 microprocessor has been used in a variety of computer
peripherals, such as printers, scanners, and disk drives.
3. Communication Systems: The 8085 microprocessor has been used in communication
systems, such as modems and network interface cards.
4. Instrumentation and Control Systems: The 8085 microprocessor is commonly used in
instrumentation and control systems, such as temperature and pressure controllers.
5. Home Appliances: The 8085 microprocessor is used in various home appliances, such as
washing machines, refrigerators, and microwave ovens.
6. Educational Purposes: The 8085 microprocessor is also used for educational purposes, as
it is an inexpensive and easily accessible microprocessor that is widely used in
universities and technical schools.

Issues in 8085 Microprocessor:


Here are some common issues with the 8085 microprocessor:

1. Overheating: The 8085 microprocessor can overheat if it is used for extended periods or if
it is not cooled properly. Overheating can cause the microprocessor to malfunction or fail.
2. Power Supply Issues: The 8085 microprocessor requires a stable power supply for proper
operation. Power supply issues such as voltage fluctuations, spikes, or drops can cause the
microprocessor to malfunction.
3. Timing Issues: The 8085 microprocessor relies on accurate timing signals for proper
operation. Timing issues such as clock signal instability, noise, or interference can cause
the microprocessor to malfunction.

7
4. Memory Interface Issues: The 8085 microprocessor communicates with memory through
its address and data buses. Memory interface issues such as faulty memory chips, loose
connections, or address decoding errors can cause the microprocessor to malfunction.
5. Hardware Interface Issues: The 8085 microprocessor communicates with other devices
through its input/output ports. Hardware interface issues such as faulty devices, incorrect
wiring, or improper device selection can cause the microprocessor to malfunction.
6. Programming Issues: The 8085 microprocessor is programmed with machine language or
assembly language instructions. Programming issues such as syntax errors, logic errors,
or incorrect instruction sequences can cause the microprocessor to malfunction or
produce incorrect results.
7. Research and development: The 8085 microprocessor is often used in research and
development projects, where it can be used to develop and test new digital electronics and
computer systems. Researchers and developers can use the microprocessor to prototype
new systems and test their performance.
8. Retro computing: The 8085 microprocessor is still used by enthusiasts today for retro
computing projects. Retro computing involves using older computer systems and
technologies to explore the history of computing and gain a deeper understanding of how
modern computing systems have evolved.

Microprocessor

An integrated circuit that can work or work as a CPU of a computer or a microcontroller is


defined as a microprocessor. There are two popular microprocessors: 8085 and 8086. Let’s
dive deep and explore some more about the 8085 and 8086 microprocessors.

8085 Microprocessor

It was designed in 1976 by Intel. It is an 8-bit microprocessor with an 8-bit data bus, allowing
it to handle 8 bits of data in a single cycle. A 16-bit address bus is present. As a result, it has a
potential accessible memory capacity of 64 kilobytes, or 216 bytes.

8086 Microprocessor

In 1976, Intel came up with the idea. As a result of its 16-bit microprocessor and 16-bit data
bus it can process 16bit of data in a single cycle. There is a 20-bit address bus on it. The
maximum amount of accessible memory that it can hold is 1 MB, or 220 bytes. The
microprocessor 8086 is an improved model of the 8085.

8
Difference between 8085 and 8086 Microprocessor

8085 Microprocessor 8086 Microprocessor


Parameters

Basic It is an 8-bit microprocessor that has the ability to It is a 16-bit microprocessor that
function 8-bit data. has the ability to function 16-bit
data.

Type It is accumulator-based. It is register-based.

Arithmetic logic 8085 contains a 8-bit ALU size. 8086 contains a 16-bit ALU size.
unit (ALU) size

Accessible It holds 216 bytes or 64kb as the highest It holds 220 bytes or 1MB as the
memory Scope accessible memory scope. highest accessible memory scope.

Frequency of 8085 contains 3MHz of an on-chip oscillator. 8086 contains 5MHz, 8MHz, and
clock 10MHz as three versions of clock
frequency.

Address bus 8085 has an 8-bit address bus size. 80086 has a 16-bit address bus
size.

Cost 8085 is cheaper in comparison with the 8086 8086 is expensive in comparison
microprocessor. with the 8085 microprocessor.

Pipelining This microprocessor doesn’t support pipelining The 8086 microprocessor supports
architecture. pipelining architecture.

Processor It is a single processor configuration It is a multiprocessor configuration


configuration microprocessor. microprocessor.

Instruction queue It doesn’t have any instruction queue. It has an instruction queue of the
size 16-bit that follows the FIFO
principle.

Operation mode The 8085 microprocessor supports a single mode The 8086 microprocessor supports
of operation. two modes of operations, i.e.
minimum and maximum mode.

Transistors It contains 6500 transistors. It contains 29000 transistors.

Operations The operations like addition, decrement, All the procedures of


subtraction, increment, comparison, AND, shift, microprocessors with division and
OR, and X-OR, can be completed by 8085. But, it multiplication can be functioned
can’t function division and multiplication by this processor.

9
Flags It includes 5 flags. It includes 9 flags.

Segmentation It doesn’t allow memory segmentation. On the other hand, it allows


memory segmentation.

Multiprocessor Configuration
Multiprocessor means a multiple set of processors that executes instructions simultaneously.
There are three basic multiprocessor configurations.

 Coprocessor configuration
 Closely coupled configuration
 Loosely coupled configuration

Coprocessor Configuration

A Coprocessor is a specially designed circuit on microprocessor chip which can perform the
same task very quickly, which the microprocessor performs. It reduces the work load of the
main processor. The coprocessor shares the same memory, IO system, bus, control logic and
clock generator. The coprocessor handles specialized tasks like mathematical calculations,
graphical display on screen, etc.

The 8086 and 8088 can perform most of the operations but their instruction set is not able to
perform complex mathematical operations, so in these cases the microprocessor requires the
math coprocessor like Intel 8087 math coprocessor, which can easily perform these
operations very quickly.

Block Diagram of Coprocessor Configuration

How is the coprocessor and the processor connected?

The coprocessor and the processor is connected via TEST, RQ-/GT- and QS0 & QS1 signals.

10
The TEST signal is connected to BUSY pin of coprocessor and the remaining 3 pins are
connected to the coprocessor’s 3 pins of the same name.
TEST signal takes care of the coprocessor’s activity, i.e. the coprocessor is busy or idle.
The RT-/GT-is used for bus arbitration.
The coprocessor uses QS0 & QS1 to track the status of the queue of the host processor.

Closely Coupled Configuration

Closely coupled configuration is similar to the coprocessor configuration, i.e. both share the
same memory, I/O system bus, control logic, and control generator with the host processor.
However, the coprocessor and the host processor fetches and executes their own instructions.
The system bus is controlled by the coprocessor and the host processor independently.

Block Diagram of Closely Coupled Configuration

How is the processor and the independent processor connected?

Communication between the host and the independent processor is done through memory
space.
None of the instructions are used for communication, like WAIT, ESC, etc.
The host processor manages the memory and wakes up the independent processor by sending
commands to one of its ports.
Then the independent processor accesses the memory to execute the task.
After completion of the task, it sends an acknowledgement to the host processor by using the
status signal or an interrupt request.

Loosely Coupled Configuration

Loosely coupled configuration consists of the number of modules of the microprocessor


based systems, which are connected through a common system bus. Each module consists of
their own clock generator, memory, I/O devices and are connected through a local bus.

Block Diagram of Loosely Coupled Configuration

11
Advantages

1. Having more than one processor results in increased efficiency.


2. Each of the processors have their own local bus to access the local memory/I/O
devices. This makes it easy to achieve parallel processing.
3. The system structure is flexible, i.e. the failure of one module doesn’t affect the whole
system failure; faulty module can be replaced later.

12

You might also like