8085- part 1

15
UNIT I 8085 General Architecture of a Microcomputer System The hardware of a microcomputer system can be divided into four functional sections: the  Input unit ,  MicroprocessingUnit ,  Memory Unit , and Output Unit . MicroProcessor Unit (MPU) is the heart of a microcomputer.  A microprocessor is a general purpose processing unit built into a single integrated circuit (IC).  The Microprocessor is the part of the microcomputer that executes instructions of the  program and processes data  It is responsible for performing all arithmetic operations and making the logical decisions initiated by the computer’s program.   A microprocessor is abbreviated μP)  One or more microprocessors typically serve as a central processing unit (CPU) in a computer system or handheld device. Input and Output units are the means b y which the MPU communicates with the outside world Input unit: keyboard, mouse, scanner, etc. Output unit: monitor, printer, etc. Memory unit: Primary: is normally smaller in size and is used for temporary storage of active information. Typically ROM, RAM. Secondary: is normally larger in size and used for long-term storage of information. Like Hard disk, Floppy, CD, etc.

Upload: sakthi-vel

Post on 04-Jun-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 8085- part 1

8/13/2019 8085- part 1

http://slidepdf.com/reader/full/8085-part-1 1/15

UNIT I

8085

General Architecture of a Microcomputer System The hardware of a microcomputer systemcan be divided into four functional sections: the  Input unit , MicroprocessingUnit ,  Memory Unit ,

and Output Unit .

MicroProcessor Unit (MPU) is the heart of a microcomputer.  A microprocessor is a general purpose processing unit built into a single integrated circuit

(IC).

  The Microprocessor is the part of the microcomputer that executes instructions of the program and processes data

  It is responsible for performing all arithmetic operations and making the logical decisionsinitiated by the computer’s program. 

  A microprocessor is abbreviated μP)  One or more microprocessors typically serve as a central processing unit (CPU) in a

computer system or handheld device.

Input and Output units are the means by which the MPU communicates with the outside worldInput unit: keyboard, mouse, scanner, etc.Output unit: monitor, printer, etc.

Memory unit:Primary: is normally smaller in size and is used for temporary storage of active

information. Typically ROM, RAM.Secondary: is normally larger in size and used for long-term storage of information. Like

Hard disk, Floppy, CD, etc.

Page 2: 8085- part 1

8/13/2019 8085- part 1

http://slidepdf.com/reader/full/8085-part-1 2/15

Types of Microprocessors Microprocessors generally is categorized in terms of the maximumnumber of binary bits in the data they process –  that I, their word length. Over time, five standarddata widths have evolved for microprocessors: 4-bit, 8-bit, 16-bit, 32-bit, 64-bit. There are somany manufacturers of Microprocessors, but only two companies have been produces popularmicroprocessors: Intel and Motorola 

Microprocessors also control the logic of almost all digital devices, from clock radios to fuel-injection systems for automobiles. Hence it is necessary to understand the working ofmicroprocessors.

Microcontroller: A highly integrated chip that contains all the components comprising acontroller.

• Typically this includes a CPU, RAM, some form of ROM, I/O ports, and timers.

• Unlike a general-purpose computer, which also includes all of these components, amicrocontroller is designed for a very specific task - to control a particular system.

• A microcontroller differs from a microprocessor, which is a general-purpose chip that isused to create a multi-function computer or device and requires multiple chips to handlevarious tasks.

• A microcontroller is meant to be more self -contained and independent, and functions as atiny, dedicated computer.

• The great advantage of microcontrollers, as opposed to using larger microprocessors, is thatthe parts-count and design costs of the item being controlled can be kept to a minimum.

• They are typically designed using CMOS (complementary metal oxide semiconductor)technology, an efficient fabrication technique that uses less power and is more immune to power spikes than other techniques.

• Microcontrollers are sometimes called embedded microcontrollers, which just means thatthey are part of an embedded system that is, one part of a larger device or system.

Intel family:

μP  Data bus width Memory capacity

8085 8 64K

8086  16 1M

80286 16 16M

80386EX , 80386DX 16 , 32 64M , 4G

80486DX4 32 4G + 16K cache

Pentium 64 4G + 16K cache

PentiumIII , Pentium4 6464G+32K L1 cache

+256 L2 cacheMotorola family:

6800 8 64K

68060 64 4G + 16K cache

Page 3: 8085- part 1

8/13/2019 8085- part 1

http://slidepdf.com/reader/full/8085-part-1 3/15

 

Micro processor Micro controller

Single chip with Processing unit . Memory, I/OPorts to be connected externally

Single chip with CPU,I/O,Peripherals liketimer,RAM,ROM ,serial and parallel ports

Design for General purpose application Designed for Specific application

Eg: 8085,8086 Eg:8051

Advantages of Microprocessor based system1. Computational/processing speed is high.2. Intelligence has been brought to systems.3. Automation of industrial processes and office administration.4. Since the devices are programmable, there is flexibility to alter the system by changing thesoftware alone.5. Less number of components, compact in size and cost less. Also it is more reliable.

6. Operation and maintenance are easier.Disadvantages of Microprocessor based System1. It has limitations on the size of data.2. The applications are limited by the physical address space.3. The analog signals cannot be processed directly and digitizing the analog signals introduceserrors.4. The speed of execution is slow and so real time applications are not possible.5. Most of the microprocessors does not support floating point operations.

Page 4: 8085- part 1

8/13/2019 8085- part 1

http://slidepdf.com/reader/full/8085-part-1 4/15

• The History of Intel’s Microprocessors 

•  Intel 4004

 –  1971, 4-bit

•  Intel 8008 –  1972, 8-bit

 –  Originally designed for Datapoint Corp. as a CRT display controller•  Intel 8080

 –  1974, April - Altair 8800, 1975, MITS( 256 bytes of Mem, $395) –  Apple II -- Steve Jobs and Steve Wozniak 1976, Apple –  Bill Gates and a fellow student : BASIC, 1975 --> Microsoft

•  Intel 8086/8088 –  1978, 16 bit: 8088, 1979, 8-bit external bus

 –  IBM PC ; 1981

 –  29,000 Trs

•  Intel 80286 –  1982, 16-bit architecture –  24-bit addressing, memory protection and virtual memory

 –  16 MB of physical MEM and 1 GB of virtual mem

 –  130,000 Trs onto a single chip –  IBM PC/AT in 1984, IBM PS/2 Model 50 and 60

•  Intel 80386

 –  1985, 32 bits

 –  3~5 MIPS (7 MIPS on the 25 MHz chip) –  memory paging and enhanced I/O permission features

 –  4GB programming model

•  Intel 80486

 –  1989 Spring COMDEX show -> 1990 June : actual release –  1,200,000 Trs

 –  386+387+8K data and instruction cache, paging and MMU

•  Pentium –  1993

 –  110 MIPS on 66 Mhz Chip –  16 KB on-chip cache and 64 bit data bus

 –  superscalar technology (two instructions/clock)

 –  3.1 million transistors

•  Pentium Pro –  1995, Superscalar(three-way issue)

 –  5.5 million Trs in the CPU core + 15.5 million Trs in the secondary cache

 –  8K data, 8K instr cache –  256 KB SRAM secondary cache

 –  200 SPECint92 at 133 MHz2.9 V, 0.6 micron BICMOS

•  Pentium II

 –  Pentium Pro + MMX, 1997 –  233, 266, upto 450 MHz –  7.5 million Trs in CPU

 –  512KB in secondary cache

•  Pentium III,IV, Dual core ,Quad core etc

Page 5: 8085- part 1

8/13/2019 8085- part 1

http://slidepdf.com/reader/full/8085-part-1 5/15

Basic Programming model

Once we understand the basic programming model for the 8085 and 8086 processors, we will be able tounderstand the improvements made with the newer models.

8085 Microprocessor

The main features of 8085 μp are:• It is a 8 bit microprocessor with 8 bit data bus and 16 bit address bus.• It is manufactured with N-MOS technology.

• Since it has 16-bit address bus and hence can address up to 216

= 65536 bytes (64KB) memorylocations through A

0-A

15.

• The first 8 lines of address bus and 8 lines of data bus are multiplexed AD0 –  AD

7.

• It supports external interrupt request.

• A 16 bit program counter (PC)

• A 16 bit stack pointer (SP)• Six 8-bit general purpose register arranged in pairs: BC, DE, HL.

• It requires a signal +5V power supply and operates at 3-6 MHZ single phase clock.• It is enclosed with 40 pins DIP (Dual in line package).

Page 6: 8085- part 1

8/13/2019 8085- part 1

http://slidepdf.com/reader/full/8085-part-1 6/15

 System Bus is the group of wires used to carry data or address or control signals and hence classified into

data bus or address bus or control bus.In 8085 ,Address Bus : Consists of 16 unidirectional address lines: A0 –  A15

 –  Address locations: 0000 (hex) –  FFFF (hex) –  Can access 64K bytes of memory, each byte has 8 bits –  Can access 64K × 8 bits of memory

Data Bus : Consists of 8 data lines: D0 –  D7 –  Operates in bidirectional mode –  The data bits are sent from the MPU to I/O & vice versa –  Data range: 00 (hex) –  FF (hex)

• Control Bus: 

 –  Consists of various lines carrying the control signals such as read / write enable, flag bits

[ Question?: If you have a memory chip of size 256 kilobytes (256 x 1024 x 8 bits), how many wires does theaddress bus need, in order to be able to specify an address in this memory? Note: the memory is organized ingroups of 8 bits per location, therefore, how many locations must you be able to specify?256 X1024 locations and each are of size 8bit hence 262144 locations can be accessed:

256 =2 8 ,1024=2 10 Therefore 18 address lines are needed ]The various functional blocks of 8085 micro processor are :

a) Registers b) Arithmetic and Logic Unitc) Instruction decoder and machine cycle encoderd) Address buffere) Address/ Data bufferf) Incrementor / Decrementor address latchg) Interrupt controlh) Serial I/O control

i) Timing and control Circuit

Page 7: 8085- part 1

8/13/2019 8085- part 1

http://slidepdf.com/reader/full/8085-part-1 7/15

 

a.  Registers

It has eight addressable 8-bit registers: A, B, C, D, E, H, L and two 16-bit registers PC and SP. Theseregisters can be classified as:

a. General Purpose Registers - B, C, D, E, H, L b. Temporary Registers

i) Temporary Data Register ii) W and Z registersc. Special Purpose Registers

i) Accumulator ii) Flag Registers iii) Instruction Registerd. Sixteen bit Registers

i)Program counter ii) Stack pointer

A. General Purpose Registers:

 –  Six general purpose 8‐ bit registers: B, C, D, E, H,L

 –  Combined as register pairs to perform 16‐ bit operations: BC, DE, HL –  Registers are programmable (load, move, etc.)

B. Temporary Registers

Temporary Data register: The ALU has two inputs, one from the accumulator and other from temporary data

register. The programmer cannot access this temporary data register. b. W and Z registers: They are used tohold 8-bit data during execution of some instructions and are not available for the programmer.

W and Z registers

1) The CALL instruction is used to transfer program control to a subprogram or subroutine. This instruction pushes the current PC contents onto the stack and loads the given address into the PC. The given address istemporarily stored in the W and Z registers and placed on the bus for the fetch cycle. Thus the programcontrol is transferred to the address given in the instruction.2) XCHG instruction exchanges the contents of H with D and L with E. At the time of exchange W and Zregisters are used for temporary storage of data.

C. Special Purpose Registers

i) Accumulator-The accumulator is an 8-bit register that is a part of arithmetic/logic unit (ALU).This register is used to store 8-bit data and to perform arithmetic and logical operations. Theresult of an operation is stored in the accumulator. The accumulator is also identified as registerA.

ii) Flag Registers-  8 bit register

-  5 flag bits

-  Reflects the condition of accumulator

Page 8: 8085- part 1

8/13/2019 8085- part 1

http://slidepdf.com/reader/full/8085-part-1 8/15

 

S- sign flag bitIf D7 bit of accumulator is 1, S=1(set) indicating negative numberIf D7 bit of accumulator is 0, S=0(reset) indicating positive number

Z-Zero flag bitIf accumulator content is zero Z=1 else it is 0

P-Parity flag =1 if the parity is even

CY- Carry flag = 1 , if there was a carry /borrow

AC-Auxiliary carry flag=1 ,if there was a carry out from bit 3 to bit 4 of the result{Note 1 : AC is the only flag that is not user accessible. Used by DAA instruction

alone}

{Note 2: The contents of accumulator and flag register together is called as program

Status word)

iii) Instruction Register -Instruction register temporarily stores the current instruction of a program.

D. Sixteen bit Registers

Program Counter (PC)- 16-bit register deals with sequencing the execution of instructions.- is a memory pointer. Memory locations have 16-bit addresses, and hence this is a 16-bit register.- points the memory address from which the next byte is to be fetched.

Stack Pointer (SP)-16-bit register used as a memory pointer.- points to a memory location in R/W memory, called the stack.- beginning of the stack is defined by loading 16-bit address in the stack pointer.

Arithmetic Logic Unit

The ALU performs the actual numerical and logic operation such as ‘add’, ‘subtract’, ‘AND’, ‘OR’, etc. Uses

data from memory and from Accumulator to perform arithmetic. Always stores result of operation inAccumulator.

Instruction Decoder - Decoder then takes instruction and ‘decodes’ or interprets the instruction. Decodedinstruction is then passed to next stage.

Address Buffer: It is an 8-bit unidirectional buffer. It is used to drive external high order address bus. It is alsoused to tri-state the high order address bus under certain conditions such as reset, hold, halt and when addresslines are not in use.

Address/ Data Buffer

It is an 8-bit bi-directional buffer. It is used to drive multiplexed address/data bus i.e., low order address bus

Page 9: 8085- part 1

8/13/2019 8085- part 1

http://slidepdf.com/reader/full/8085-part-1 9/15

(A7- A0) and Data bus (D7- D0). It is also used to tri-state the multiplexed address/data bus under certainconditions such as reset, hold, halt and when the bus is not in use.The address and data buffers are used to drive external address and data buses respectively. Due to these buffersthe address and data buses can be tri-stated when they are not in use.

Incrementer / Decrementer Address LatchThis 16-bit register is used to increment or decrement the contents of program counter or stack pointer as a partof execution of instructions related to them.

Timing and Control Unit

Generates signals within uP to carry out the instruction, which has been decoded. In reality causes certainconnections between blocks of the uP to be opened or closed, so that data goes where it is required, and so thatALU operations occur.

Pin Diagram of the 8085 microprocessor 

Page 10: 8085- part 1

8/13/2019 8085- part 1

http://slidepdf.com/reader/full/8085-part-1 10/15

 

8085 pins can be grouped as Power supply pins Address and Data pins Control pins Status pins Interrupt pins Serial I/O pins Clock pins Reset pins DMA pins

  Power supply pins

Vcc  : +5 volt supply.Vss:  Ground Reference.

  Address and Data pins

A8-A15 :H igher order Address Bus;

  The most significant 8 bits of the memory address or the 8 bits of the I/O address  Tristated during Hold and Halt modes.

AD0 -AD 7 : Lower order Mul tiplexed Address/Data Bus;

  Lower 8 bits of the memory address (or I/O Address) appear on the bus during the first clock cycleof a machine state.

  It then becomes the data bus during the second and third clock cycles.  Tristated during Hold and Halt modes.

Page 11: 8085- part 1

8/13/2019 8085- part 1

http://slidepdf.com/reader/full/8085-part-1 11/15

  Status Signals:

ALE (Output):Address Latch Enable:

 It occurs during the first clock cycle of a machine state When ALE= HIGH, Address is available in AD0  – AD7 multiplexed address and data lines. When ALE= LOW, Data is available in AD0  – AD7 multiplexed address and data lines.

S0, S1 (Output):

S1  S0  Operation

0 0 Halt

0 1 Write

1 0 Read

1 1 Fetch

S1 can be used as an advanced R/W status.

  (Output) :

  IO/M indicates whether the Read/Write is to memory or l/O   1 if Read/write is IO related operation

   0 if Read/write is Memory related operation  Tristated during Hold and Halt modes.

  Control pins:

  (Output 3state): READ;  = 0, indicates the selected memory or I/O device is to be read .

  (Output 3state): WRITE;

  =0, indicates the data on the Data Bus is to be written into the selected memory or 1/0 location.

READY (Input)

  If Ready is high during a read or write cycle, it indicates that the memory or peripheral is ready to sendor receive data.

  If Ready is low, the CPU will wait for Ready to go high before completing the read or write cycle.

  DMA control lines:

HOLD (Input)

  indicates that another Master is requesting the use of the Address and Data Buses.

  The CPU, upon receiving the Hold request , will relinquish/release the use of buses as soon as thecompletion of the current machine cycle. Internal processing can continue.

  The processor can regain the buses only after the Hold is removed.  When the Hold is acknowledged, the Address, Data, RD, WR, and IO/M lines are 3stated.

HLDA (Output):HOLD ACKNOWLEDGE;

  indicates that the CPU has received the Hold request and that it will release the buses in the next clockcycle.

  HLDA goes low after the Hold request is removed.  The CPU takes the buses after HLDA goes low.

Page 12: 8085- part 1

8/13/2019 8085- part 1

http://slidepdf.com/reader/full/8085-part-1 12/15

  Interrupt Pins:

5 hardware interrupts ( INTR,TRAP,RST 7.5,RST 6.5,RST 5.5 and 1 Interrupt acknowledgement ( )

INTR (Input): I NTERRUPT REQUEST;

  is used as a general purpose interrupt.  It is a maskable interrupts  The INTR is enabled and disabled by software. It is disabled by Reset and immediately after an

interrupt is accepted.  It is sampled only during the next to the last clock cycle of the instruction. If it is active, the Program

Counter (PC) will be inhibited from incrementing and an INTA will be issued. During this cycle a RESTARTor CALL instruction can be inserted to jump to the interrupt service routine.

 (Output) :INTERRUPT ACKNOWLEDGE;  It is an acknowledgement after an INTR is accepted.  It can be used to activate the 8259 Interrupt chip or some other interrupt port.

RESTART INTERRUPTS;  RST 5.5, RST 6.5, RST 7.5

  These three inputs have the same timing as INTR except they cause an internal RESTART to beautomatically inserted.

RST 7.5 ~~ Highest PriorityRST 6.5RST 5.5 o Lowest Priority  These interrupts have a higher priority than the INTR.

TRAP (Input)

  Trap interrupt is a nonmaskable(NMI) interrupt.  It is unaffected by any mask or Interrupt Enable.

  It has the highest priority of any interrupt.

Reset Pins:

RESET I N (I nput)

  Reset sets the Program Counter to zero and resets the Interrupt Enable and HLDA flipflops.   None of the other flags or registers (except the instruction register) are affected  The CPU is held in the reset condition as long as Reset is applied.

RESET OUT (Output)

  Indicates CPU is being reset.

  Can be used as a system RESET.  The signal is synchronized to the processor clock.

  CLOCK pins:

X1, X2 (Input)

  Crystal or R/C network connections to set the internal clock generator  X1 can also be an external clock input instead of a crystal.  The input frequency is divided by 2 to give the internal operating frequency.

CLK (Output)

  Clock Output for use as a system clock when a crystal or R/ C network is used as an input to the CPU.  The period of CLK is twice the X1, X2 input period.

Page 13: 8085- part 1

8/13/2019 8085- part 1

http://slidepdf.com/reader/full/8085-part-1 13/15

 

Serial I/O lines:

SID (I nput)

Serial input data line The data on this line is loaded into accumulator bit 7 whenever a RIM instruction isexecuted.SOD (output)

Serial output data line. The output SOD is set or reset as specified by the SIM instruction.

8085 Addressing modes:

The various formats for specifying operands are called the ADDRESSING MODES.For 8085, they are:

1. Immediate addressing.2. Register addressing.3. Direct addressing.4. Indirect addressing.5.Implied Addressing.

Immediate addressingData is present in the instruction. Load the immediate data to the destination provided. Example: MVI R,data

Register addressingData is provided through the registers. Example: MOV Rd, Rs

Direct addressingAddress where the data has to be stored or retrieved is given in the instruction itself. Example: LDA 4000H

I ndirect AddressingThis means that the Effective Address is calculated by the processor. And the contents of the address (and

the one following) is used to form a second address. The second address is where the data is stored. Note thatthis requires several memory accesses; two accesses to retrieve the 16-bit address and a further access (oraccesses) to retrieve the data which is to be loaded into the register.

 Example :LDAX B

 In simpleIn indirect addressing modes instructions have their operand in memory and the 16-bit memory address isspecified in a register pair e.g. LDAX, STAX, PUSH, POP etc.

Implied Addressing:

These instruction have their operand implied in the op-code itself e.g. CMA, CMC, STC  etc.

8085 Instruction Set

An instruction is assembled in the memory of a microcomputer system in binary form.The instruction is of the form opcode,operand .

 –   an opcode, or operation code, tells the microprocessor which operation to perform –   an operand is the value on which the opcode has to operate

The size of an instruction signifies how much memory space is required to load an instruction in the memory.8085 instructions are of following sizes:

  One-byte Instructions –   has opcode alone

Page 14: 8085- part 1

8/13/2019 8085- part 1

http://slidepdf.com/reader/full/8085-part-1 14/15

  e.g. MOV, ADD, ANA, SUB, ORA etc.

  Two-byte instructions- has opcode and one byte operande.g. MVI, ADI, ANI, ORI, XRI etc.

  Three-byte instructions- has opcode and two byte operande.g. LXI, LDA, STA, LHLD, SHLD etc.

  Instruction set of 8085 can be classified in following groups:

  Data Transfer Instructions  These instructions can perform data transfer operations between

  Registers of 8085 e.g. MOV  8085 registers and main memory e.g. LDA, STA, MOV, LDAX, STAX, MVI,

LXI etc.  Accumulator register and I/O devices e.g. IN, OUT

  Data transfer instructions never affect the flag bits

  Arithmetic Instructions  8085 can perform only 8-bit addition, subtraction and compare operations. These operations are

always performed with accumulator as one of the operands. The status of the result can beverified by the contents of the flag register.

  Op-codes for arithmetic instructions include ADD, ADI, ADC, ACI, SUB, SUI, SBB, SBI,CMP, CPI

  Logical Instructions  8085 can perform 8-bit basic logical operations -AND, OR, XOR, NOT with some special

operations such as rotate and shift operations  Logical instructions also modify the flag bits.

  Op-codes for logical instructions include ANA, ANI, ORA, ORI, XRA, XRI, CMA, RAL, RLC,RAR, RRC etc.

  Program Control Instructions  These instructions are used to transfer the program control:

  to jump from one memory location to any other memory location within a program  from one program to another program called as a subroutine

  8085 Instruction set consists of following program control instructions:  Jump Instructions  Call & Return Instructions  Restart instructions

  Program control instructions

  Unconditional or Conditional  Unconditional program control instructions perform branching operation

unconditionally  Unconditional Program control instructions are

 JMP Call & RET RST n (n=0-7)

  Conditional program control instructions perform branching operation withreference to the condition of flag bits.  Conditional Program control instructions are

 JNC, JC, JNZ, JZ, JP, JM, JPE, JPO

Page 15: 8085- part 1

8/13/2019 8085- part 1

http://slidepdf.com/reader/full/8085-part-1 15/15

 CNC, CC, CNZ, CZ, CP, CM, CPE, CPO RNC, RC, RNZ, RZ, RP, RM, RPE, RPO

  Machine control InstructionsThese instructions include special instructions such as  HLT  –   To halt the CPU   NOP –   To perform no operation  SIM  –   To set the masking of hardware interrupts and serial output data

  RIM  –  To read the status of interrupt mask and serial input data  EI  –   Enable Interrupt  DI  –   Disable Interrupt

For more details refer Part 2 ( A separate pdf )

Review Questions:1. Define microprocessor2. Give some examples for 8 bit microprocessor3. Give some examples for 16 bit microprocessor4. Write the difference between microprocessor and microcontroller.5. Write the flag structure of 8085 µP6. Which is the only flag that is not user accessible in 8085?7. What are the 16 bit registers of 8085.8. Define stack.9. What is the use of PC and SP?10. What is the use of HOLD and HLDA pins.11. Mention the hardware interrupts of 8085.12. Write down the software interrupts of 8085.13.Give example for vectored and non vectored interrupts of 8085.14. Define addressing mode.15. Give example for Direct and indirect addressing mode.16. How 8085 instructions are classified.17. Give example for 2 byte instruction.18. Which is the only instruction that affects the AC flag.19.What is the difference between jump and cll instruction.20.Write the priorities of 8085 interrupt.