268
FACULTY OF MEDIA,INFORMATION &COMMUNICATION TECHNOLOGY HIGHER CERTIFICATE IN SYSTEMS ENGINEERING YEAR 1 SEMESTER 2 MICROPROCESSORS 500

FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

  • Upload
    docong

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Page 1: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

FACULTY OF MEDIA,INFORMATION &COMMUNICATION TECHNOLOGY

HIGHER CERTIFICATE IN SYSTEMS ENGINEERING

YEAR 1 SEMESTER 2

MICROPROCESSORS 500

Page 2: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

1

Registered with the Department of Higher Education as a Private Higher Education Institution under the Higher Education Act 1997. Registration Certificate No. 2000/HE07/008

FACULTY OF MEDIA INFORMATION AND COMMUNICATION TECHNOLOGY

QUALIFICATION TITLE

HIGHER CERTIFICATE IN SYSTEMS ENGINEERING

LEARNER GUIDE

MODULE: MICROPROCESSORS 500 (2ND SEMESTER)

PREPARED ON BEHALF OF

PC TRAINING & BUSINESS COLLEGE (PTY) LTD

AUTHOR: Mr Blessing Chibamu Matanyaire

EDITOR: Mr Caston Zimunhu

FACULTY HEAD: Mr. Isaka Reddy

Copyright © 2015

PC Training & Business College (PTY) LTD Registration Number:

2000/000757/07

All rights reserved; no part of this publication may be reproduced in any form

or by any means, including photocopying machines, without the written

permission of the Institution.

LESSON PLAN ALIGNED TO MOBILE CONTENT [MOODLE]

Section Subject Matter BSc IT

Page No

1 MICROPROCESSORS

1.1 Introduction to Microprocessors Lesson 1 4

Page 3: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

2

1.2 8085 Microprocessor Lesson 2

8

1.2.1 Interrupts 10

1.3 8085 Microprocessor Architecture Lesson 3 14

1.3.1 Memory Lesson 4

14

1.3.2 Registers 15

1.4 Instruction Set Lesson 5 16

1.5 Addressing Modes Lesson 6 16

1.6 Internal Architecture Lesson 7

17

1.7 8085 Microprocessor System Bus 20

1.8 8085 Programming Model Lesson 8 29

1.9 Instruction Set Classification

Lesson 9

32

1.9.1 Data Transfer Operations 32

1.9.2 Arithmetic Operations 33

1.9.3 Logical Operations 33

1.9.4 Branching Operations 34

1.9.5 Machine Control Operations 34

1.10 Levels of Programming Languages Lesson 10 42

2 8086 MICROPROCESSOR ASPECTS

2.1 Properties of 8086 Microprocessor Lesson 11 46

2.2 8086 Internal Architecture Lesson 12

47

2.2.1 Bus Interface 48

2.2.2 Execution Unit 49

2.3 Maximum and Minimum Modes Lesson 13 49

2.4 Signal Description Lesson 14 50

3 MICROCONTROLLERS

3.1 Introduction to Microcontrollers Lesson 15

55

3.2 The Controller 56

3.3 Embedded Systems Lesson 16 57

3.4 Microprocessors versus Microcontrollers Lesson 17 58

3.5 The 8051 Standard Lesson 18 59

3.6 Pin Description Lesson 19

60

3.7 Input/ Output Ports 60

3.8 Memory Organisation Lesson 20 66

3.9 Special Function Registers (SFRs) Lesson 21 71

3.10 Universal Asynchronous Receiver Transmitter (UART) Lesson 22 81

Page 4: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

3

INTERACTIVE ICONS USED IN THIS LEARNER GUIDE

Learning Outcomes

Study

Read

Writing Activity

Think Point

Research

Glossary

Key Point

Review Questions

Case Study

Bright Idea

Problem(s)

Multimedia Resource

References

Worked Example

Web

Resource

Page 5: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

4

TOPIC ONE | MICROPROCESSORS

LEARNING OUTCOMES

1. Demonstrate a sound understanding of Microprocessors.

2. Demonstrate an understanding of the 8085 microprocessor Architecture.

3. Demonstrate a sound understanding of the Instruction set

4. Demonstrate the ability to write programs in the 8085 microprocessor

1.1 Introduction to Microprocessors

Microprocessor is a single chip CPU which is use to perform arithmetic and

(Logical Unit) or calculation on the given data. The data will be provided by any

input device and result will be given to any output device. Microprocessor has

no uses unless and until interface with input or output device.

The Microprocessor is the most important chip in any system. It's considered

to be the brain of the computer. Microprocessor is an Integrated Circuit (IC)

which has only the CPU inside them i.e. only the processing powers such as

Intel’s Pentium 1,2,3,4, core 2 duo, i3, i5 etc. These microprocessors don’t have

RAM, ROM, and other peripheral on the chip. A system designer has to add

them externally to make them functional. Application of microprocessor

includes Desktop PC’s, Laptops, notepads etc.

History of Microprocessors

The first microprocessor was introduced in

1970 by Intel (named 4004). It ran at the

speed of 108 KHz. Four years later, Intel

created the 8080 running at just over 2

MHz. This microprocessor was used on the

world's firs personal computer, named

Altair. Motorola created their 68000 series

of microprocessors in 1979. These were

implemented later in the Macintosh

computer by Apple. Another significant

role was held by Sun Microsystems when

introducing Sparc (Scaleable Processor) in

RESEARCH

Go on the Internet and find

the definition of a

microprocessor. What is it

made up of and what is its

function?

Page 6: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

5

1987. This generation of microprocessors used RISC (Reduced Instruction Set)

making the processing operations faster.

How Microprocessors Operate

Regardless of their speed or physical form they have, the operation that most

of the microprocessors do is to execute a sequence of stored instructions.

Devices running according to the Von Neumann's architecture work in four

steps: fetch, decode, execute and write.

Figure 1.1 How the microprocessor works

Fetching involves getting an instruction from the program memory. An

instruction is represented typically by a sequence of numbers (e.g. 101000101).

This fetching operation forced researching for better memory technologies; the

memory was slow enough to make the microprocessor's power unusable. The

next step is to decode the information, by breaking it into process able parts.

Every part of the information goes to a portion of the CPU that can process it.

This choice is made by considering the opcodes, and indicator posted before

the information that signals what operation is needed (e.g. addition).

Executing involves connecting various portions of the CPU together to serve the

desired operation. Different schemes and connections between the parts form

logical circuits that perform and act after Boolean rules. For example if a

multiplication must be processed, the ALU (Arithmetic Logical Unit) will be

linked with an Input and an Output address.

Page 7: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

6

The final part, writing, takes place after the processing (execution) was

completed. It involves writing the results to a memory address given by a

memory addressing scheme.

As far as the physical layout, microprocessors are usually connected to the

motherboard through a socket using a PGA (Pin Grid Array).

Figure 1.2: Removing or Adding a Microprocessor

Removing or adding a microprocessor can be an easy and safe operation if one

knows what he is doing. It has a system called ZIF (Zero Insertion Force) that

protects the processor's pins. As a caution, just remember to try not to touch

the golden pins when working with a processor. After inserting it, it's wise to

use a drop of thermal conductor paste between the microprocessor and a heat

sink, to allow thermal transfer in the best conditions possible. Overheating due

to heavy usage with poor ventilation will make the system instable and can

harm it permanently.

Page 8: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

7

Figure 1.3: Older versions of the Intel Pentium generation

These types of processors usually had no ventilation, since their surface was

large enough to cool itself. In the 1990s, when both slot and socket were used,

some adapters also appeared on the market, like slot card with socket.

Figure 1.4: Integrated Circuit

Microprocessor incorporates most or all of the functions of a central processing

unit (CPU) on a single integrated circuit (IC). The first microprocessors emerged

in the early 1970s and were used for electronic calculators, using BCD

arithmetic on 4-bit words. Other embedded uses of 4 and 8-bit

microprocessors, such as terminals, printers,

various kinds of automation etc., followed

rather quickly. Affordable 8-bit

microprocessors with 16-bit addressing also

led to the first general

purpose microcomputers in the

mid-1970s.

Processors were for a long period THINK POINT

constructed out of small and medium-scale The processor is often ICs

containing the equivalent of a few to a referred to as the brain of the few

hundred transistors. The integration of computer. In what ways does the whole

CPU onto a single VLSI chip the human brain and the therefore greatly reduced

the cost of processor resemble each processing capacity. From their humble

other? How to they differ? beginnings, continued increases in microprocessor

capacity have rendered other forms of computers almost completely obsolete

(see history of computing hardware), with one or more microprocessor as

processing element in everything from the smallest embedded systems and

handheld devices to the largest mainframes. Since the early 1970s, the increase

Page 9: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

8

in processing capacity of evolving microprocessors has been known to generally

follow Moore's Law.

1.2 Introduction to 8085 Microprocessor

The microprocessor is a small very large scale integration (VLSI) chip with many

pins. It processes information and manage the exchange between the

Input/output units and main memory. It is controlled by a sequence of

instructions called microprocessor program, and the result of this program in

sent to the appropriate peripheral (input and output).

The microprocessor consists of the following sections:

Several register which stores data.

Arithmetic and logic unit (ALU)

Control and timing unit.

Registers

Registers main function is storing data, some of them can be used by the

programmer and some cannot, and used only by the processor. Most important

registers: Accumulator: also known as A-register, is used for storing the results

of mathematical operations. Instruction register: used to store the current

instruction those are being executed in the microprocessor.

Program counter: stores the address of the next instruction to be

executed.

Buffer register: stores data temporarily.

Status register: stores the current state of the instruction that are

being executed at the microprocessor.

Stack pointer: points to (stores the location of) the place in the main

memory called stack.

Arithmetic Logic Unit (ALU)

This unit executes the arithmetic and

logical instructions.

The microprocessor can be

programmed to perform functions on

given data by writing

specific instructions into its

memory. The microprocessor reads one

instruction at a time, matches it with its

instruction set, and performs

the data manipulation

specified. The result is either stored back

into memory or displayed on an output

device. The 8085 uses three separate

buses to perform its operations:

The address bus.

BRIGHT IDEA

You can think of a bus as a

highway on which data travels

within a computer. All buses

consist of an address bus and a

data bus. The data bus transfers

actual data whereas the address

bus transfers information about

where the data should go.

Page 10: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

9

The data bus.

The control bus.

The Address Bus

It is a group of wires or lines that are used to transfer the addresses of Memory

or I/O devices. It is unidirectional. In Intel 8085 microprocessor, Address bus

was of 16 bits. This means that Microprocessor 8085 can transfer maximum 16

bit address which means it can address 65,536 different memory locations. This

bus is multiplexed with 8 bit data bus. So the most significant bits (MSB) of

address goes through Address bus (A7-A0) and LSB goes through multiplexed

data bus (AD0-AD7). When the 8085 wants to access a peripheral or a memory

location, it places the 16-bit address on the address bus and then sends the

appropriate control signals.

The Data Bus

As name tells that it is used to transfer data within Microprocessor and

Memory/Input or Output devices. It is bidirectional as Microprocessor requires

to send or receive data. The data bus also works as address bus when

multiplexed with lower order address bus. Data bus is 8 Bits long. The word

length of a processor depends on data bus, that’s why Intel 8085 is called 8 bit

Microprocessor because it have an 8 bit data bus.

The Control Bus

Microprocessor uses control bus to process data that is what to do with the

selected memory location. Some control signals are Read, Write and Opcode

fetch etc. Various operations are performed by microprocessor with the help

of control bus. This is a dedicated bus, because all timing signals are generated

according to control signal.

Page 11: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

10

Figure 1.5: The Microprocessor Organisation

1.2.1 Interrupts

An interrupt is a condition that causes the microprocessor to temporarily work

on a different task, and then later return to its previous task. Interrupts can be

internal or external. Internal interrupts, or "software interrupts," are triggered

by a software instruction and operate similarly to a jump or branch instruction.

An external interrupt, or a "hardware interrupt," is caused by an external

hardware module. As an example, many computer systems use interrupt driven

I/O, a process where pressing a key on the keyboard or clicking a button on the

mouse triggers an interrupt. The processor stops what it is doing, it reads the

input from the keyboard or mouse, and then it returns to the current program.

The diagram below shows conceptually how an interrupt happens:

Figure 1. 6: Interrupt handling

The grey bars represent the control flow. The top line is the program that is

currently running, and the bottom bar is the interrupt service routine (ISR).

Notice that when the interrupt (Int) occurs, the program stops executing and

the microcontroller begins to execute the ISR. Once the ISR is complete, the

microcontroller returns to processing the program where it left off. 8085

Interrupts Interrupt is a process where an external device can get the attention

of the microprocessor. The process starts from the I/O device and is

asynchronous.

Classification of Interrupts

Interrupts can be classified into two types:

Maskable Interrupts (Can be delayed or Rejected)

Non-Maskable Interrupts (Cannot be delayed

or

Rejected)

Interrupts can also be classified into:

Vectored (the address of the service routine is hardwired)

Non-vectored (the address of the service routine needs to be

supplied externally by the device)

Page 12: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

11

An interrupt is considered to be an emergency signal that may be serviced. The

Microprocessor may respond to it as soon as possible.

What happens when the microprocessor is interrupted?

When the Microprocessor receives an interrupt signal, it suspends the currently

executing program and jumps to an Interrupt Service Routine (ISR) to respond

to the incoming interrupt. Each interrupt will most probably have its own ISR.

Responding to an interrupt may be immediate or delayed depending on

whether the interrupt is mask able or non-mask able and whether interrupts

are being masked or not.

WEB RESOURCE

https://www.youtube.com/watch?v=sfzAABHcq_Y

Watch this complete series of Lecture on Microprocessor

and its applications.

There are two ways of redirecting the execution to the ISR depending on

whether the interrupt is vectored or non-vectored.

When a device interrupts, it actually wants the microprocessor to give a service

which is equivalent to asking the MP to call a subroutine. This subroutine is

called ISR (Interrupt Service Routine).

The ‘EI’ instruction is a one byte instruction and is used to enable the non-mask

able interrupts. The ‘DI’ instruction is a one byte instruction and is used to

disable the non-mask able interrupts. The 8085 has a single Non-Maskable

interrupt. The non-maskable interrupt is not affected by the value of the

Interrupt Enable flip flop.

Page 13: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

12

Table 1.1: 8085 Microprocessor Interrupts

An interrupt vector is a pointer to where the ISR is stored in memory. All

interrupts (vectored or otherwise) are mapped onto a memory area called the

Interrupt Vector Table (IVT). The IVT is usually located in memory page 00

(0000H – 00FFH). The purpose of the IVT is to hold the vectors that redirect the

microprocessor to the right place when an interrupt arrives.

Let, a device interrupts the Microprocessor using the RST 7.5 interrupt line.

Because the RST 7.5 interrupt is vectored, Microprocessor knows, in which

memory location it has to go using a call instruction to get the ISR address.

RST7.5 is knows as Call 003Ch to Microprocessor. Microprocessor goes to 003C

location and will get a JMP instruction to the actual ISR address. The

microprocessor will then, jump to the ISR location.

1. The interrupt process should be enabled using the EI instruction.

2. The 8085 checks for an interrupt during the execution of every instruction.

3. If INTR is high, MP completes current instruction, disables the interrupt and

sends INTA (Interrupt acknowledge) signal to the device that interrupted.

4. A allows the I/O device to send a RST instruction through data bus.

5. Upon receiving the INTA signal, MP saves the memory location of the next

instruction on the stack and the program is transferred to ‘call’ location (ISR

Call) specified by the RST instruction 6- Microprocessor Performs the ISR.

6. ISR must include the ‘EI’ instruction to enable the further interrupt within

the program.

7. RET instruction at the end of the ISR allows the MP to retrieve the return

address from the stack and the program is transferred back to where the

program was interrupted.

8085 Interrupts II Restart Sequence

The restart sequence is made up of three machine cycles In

the first machine cycle:

The microprocessor sends the INTA signal. While INTA is active the

microprocessor reads the data lines expecting to receive, from the interrupting

device, the opcode for the specific RST instruction.

In the second and third machine cycles:

The 16-bit address of the next instruction is saved on the stack.

Then the microprocessor jumps to the address associated with the specified

RST instruction.

How does the external device produce the opcode for the appropriate RST

instruction?

The opcode is simply a collection of bits. So, the device needs to set the bits of

the data bus to the appropriate value in response to an INTA signal. During the

Page 14: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

13

interrupt acknowledge machine cycle. The Microprocessor activates the INTA

signal. This signal will enable the Tri-state buffers, which will place the value

EFH on the data bus.

Issues in Implementing INTR Interrupts

How long must INTR remain high?

The microprocessor checks the INTR line one clock cycle before the last T-state

of each instruction. The INTR must remain active long enough to allow for the

longest instruction.

The longest instruction for the 8085 is the conditional CALL instruction which

requires 18 T-states.

Therefore, the INTR must remain active for 17.5 T-states. If f= 3MHZ then T=1/f

and so, INTR must remain active for [ (1/3MHZ) * 17.5 ≈ 5.8 micro seconds].

How long can the INTR remain high?

The INTR line must be deactivated before the EI is executed. Otherwise, the

microprocessor will be interrupted again. Once the microprocessor starts to

respond to an INTR interrupt, INTA becomes active (=0). Therefore, INTR should

be turned off as soon as the INTA signal is received.

Can the microprocessor be interrupted again before the completion of the ISR?

As soon as the 1st interrupt arrives, all mask able interrupts are disabled. They

will only be enabled after the execution of the EI instruction. Therefore, the

answer is: “only if we allow it to”. If the EI instruction is placed early in the ISR,

other interrupt may occur before the ISR is done.

How do we allow multiple devices to interrupt using the INTR line?

The microprocessor can only respond to one signal on INTR at a time.

Therefore, we must allow the signal from only one of the devices to reach the

microprocessor. We must assign some priority to the different devices and

allow their signals to reach the microprocessor according to the priority. The

solution is to use a circuit called the priority encoder (74LS148). This circuit has

8 inputs and 3 outputs. The inputs are assigned increasing priorities according

to the increasing index of the input. Input 7 has highest priority and input 0 has

the lowest. The 3 outputs carry the index of the highest priority active input.

This circuit can be used with a Tri-state buffer to implement an interrupt

priority scheme.

Multiple Interrupts & Priorities

Note that the opcodes for the different RST instructions follow a set pattern.

Bit D5, D4 and D3 of the opcodes change in a binary sequence from RST 7 down

to RST 0. The other bits are always 1. This allows the code generated by the

74366 to be used directly to choose the appropriate RST instruction. The one

drawback to this scheme is that the only way to change the priority of the

devices connected to the 74366 is to reconnect the hardware.

Page 15: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

14

1.3 Intel 8085 Microprocessor Architecture

1.3.1 Memory

Program, data and stack memories occupy the same memory space. The total

addressable memory size is 64 KB.

Program memory

Program can be located anywhere in memory. Jump, branch and call

instructions use 16-bit addresses, i.e. they can be used to jump/branch

anywhere within 64 KB. All jump/branch instructions use absolute addressing.

Data memory

The data can be placed anywhere as the 8085 processor always uses 16-bit

addresses.

Stack memory

Is limited only by the size of memory. Stack grows downward. First 64 bytes in

a zero memory page should be reserved for vectors used by RST instructions.

Interrupts

The 8085 microprocessor has 5 interrupts. They are presented below in the

order of their priority (from lowest to highest):

INTR is mask able 8080A compatible interrupt. When the interrupt occurs the

processor fetches from the bus one instruction, usually one of these

instructions:

One of the 8 RST instructions (RST0 - RST7). The processor saves

current program counter into stack and branches to memory

location N * 8 (where N is a 3-bit number from 0 to 7 supplied with

the RST instruction).

CALL instruction (3 byte instruction). The processor calls the

subroutine, address of which is specified in the second and third

bytes of the instruction.

RST5.5 is a mask able interrupt. When this interrupt is received the processor

saves the contents of the PC register into stack and branches to 2Ch

(hexadecimal) address.

RST6.5 is a mask able interrupt. When this interrupt is received the processor

saves the contents of the PC register into stack and branches to 34h

(hexadecimal) address.

RST7.5 is a mask able interrupt. When this interrupt is received the processor

saves the contents of the PC register into stack and branches to 3Ch

(hexadecimal) address.

Page 16: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

15

Trap is a non-mask able interrupt. When this interrupt is received the processor

saves the contents of the PC register into stack and branches to 24h

(hexadecimal) address. All maskable interrupts can be enabled or disabled

using EI and DI instructions. RST 5.5, RST6.5 and RST7.5 interrupts can be

enabled or disabled individually using SIM instruction.

1.3.2 Registers

Accumulator or A register is an 8-bit register used for arithmetic, logic, I/O and

load/store operations.

Flag is an 8-bit register containing 5 1-bit flags:

Sign - set if the most significant bit of the result is set. Zero - set if

the result is zero.

Auxiliary carry - set if there was a carry out from bit 3 to bit 4 of the

result.

Parity - set if the parity (the number of set bits in the result) is even.

Carry - set if there was a carry during addition, or borrow during

subtraction/comparison.

General registers:

8-bit B and 8-bit C registers can be used as one 16-bit BC register

pair. When used as a pair the C register contains low-order byte.

Some instructions may use BC register as a data pointer.

8-bit D and 8-bit E registers can be used as one 16-bit DE register

pair. When used as a pair the E register contains low-order byte.

Some instructions may use DE register as a data pointer.

8-bit H and 8-bit L registers can be used as one 16-bit HL register

pair. When used as a pair the L register contains low-order byte. HL

register usually contains a data pointer used to reference memory

addresses.

Stack pointer is a 16 bit register. This register is always is incremented or

decremented by 2.Program counter is a 16-bit register.

Web Resource

http://www.slideshare.net/ParveshGautam/8085-

microprocessorarchitecture-ppt?next_slideshow=1

Learn in detail about the functions and working of flags, the timing and

control unit, Interrupt control and various other signals associated with it.

Also learn about the data bus and address bus present in 8085

microprocessor and how these units combine to process a data

altogether.

Page 17: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

16

1.4 Instruction Set

Instruction set of Intel 8085 microprocessor consists of the following

instructions:

Data moving instructions.

Arithmetic - add, subtract, increment and decrement.

Logic - AND, OR, XOR and rotate.

Control transfer - conditional, unconditional, call subroutine, return

from subroutine and restarts.

Input/output instructions.

Other - setting/clearing flag bits, enabling/disabling interrupts,

stack operations, etc.

1.5 Addressing modes

Every instruction of a program has to operate on a data.

The method of specifying the data to be operated by the instruction is called

Addressing.

The 8085 has the following 5 different types of addressing.

Immediate Addressing

Direct Addressing

Register Addressing

Register Indirect Addressing

Implied Addressing

Immediate Addressing:

In immediate addressing mode, the data is specified in the instruction itself.

The data will be a part of the program instruction e.g. MVI B, 3EH - Move the

data 3EH given in the instruction to B register; LXI SP, 2700H.

Direct Addressing:

In direct addressing mode, the address of the data is specified in the instruction.

The data will be in memory. In this addressing mode, the program instructions

and data can be stored in different memory e.g. LDA 1050H - Load the data

available in memory location 1050H in to accumulator; SHLD 3000H Register

Addressing:

Page 18: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

17

In register addressing mode, the instruction specifies the name of the register

in which the data is available, e.g. MOV A, B - Move the content of B register to

A register; SPHL; ADD C.

Register Indirect Addressing:

In register indirect addressing mode, the instruction specifies the name of the

register in which the address of the data is available. Here the data will be in

Page 19: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

18

memory and the address will be in the register pair e.g. MOV A, M - The

memory data addressed by H L pair is moved to A register. LDAX B.

Implied Addressing:

In implied addressing mode, the instruction itself specifies the data to be

operated e.g. CMA - Complement the content of accumulator; RAL

1.6 Microprocessor Internal Architecture

Modern microprocessors are among the most complex systems ever created

by humans. A single silicon chip, roughly the size of a fingernail, can contain a

complete high-performance processor, large cache memories, and the logic

required to interface it to external devices. In terms of performance, the

processors implemented on a single chip today dwarf the room-sized

supercomputers that cost over $10 million just 20 years ago. Even the

embedded processors found in everyday appliances such as cell phones,

personal digital assistants, and handheld game systems are far more powerful

than the early developers of computers ever envisioned.

Control Unit

Generates signals within uP to carry out the instruction, which has been

decoded. In reality causes certain connections between blocks of the uP to be

opened or closed, so that data goes where it is required, and so that ALU

operations occur.

Figure 1. 7 8085 Microprocessor Architecture

Page 20: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

19

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 in Accumulator.

Registers

The 8085/8080A-programming model includes six registers, one accumulator,

and one flag register, as shown in Figure1.8. In addition, it has two 16-bit

registers: the stack pointer and the program counter. They are described

briefly as follows. The 8085/8080A has six general-purpose registers to store

8-bit data; these are identified as B, C, D, E, H, and L as shown in the figure.

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 registers by using data copy instructions. 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. The result of an operation is stored in the accumulator. The

accumulator is also identified as register A.

Flags

The ALU includes five flip-flops, which are set or reset after an operation

according to data conditions 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; they are listed in the Table and their bit positions in the flag

register are shown in the Figure below. The most commonly used flags are

Zero, Carry, and Sign. The microprocessor uses these flags to test data

conditions. For example, after an addition

of two numbers, if the sum in the

accumulator id larger than eight bits, the

flip-flop uses to indicate a carry -- called the

Carry flag (CY) – is set to one. When an

arithmetic operation results in zero, the flip-

flop called the Zero (Z) flag is set to one. The

first Figure shows an 8bit register, called the

flag register, adjacent to the accumulator.

However, it is not used as a register; five bit

positions out of eight are used to store the

outputs of the five flip-flops. The flags are

stored in the 8bit register so that the

programmer can examine these flags (data conditions) by accessing the

THINK POINT

In an 8085 microprocessor

which one is called a High

order Register and which one

is called a Low order

Register?

Page 21: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

20

register through an instruction. These flags have critical importance in the

decision-making process of the microprocessor.

The conditions (set or reset) of the flags are tested through the software

instructions. For example, the instruction JC (Jump on Carry) is implemented

to change the sequence of a program when CY flag is set. The thorough

understanding of flag is essential in writing assembly language programs.

Program Counter (PC) This 16-bit registers deals with sequencing the execution

of instructions. This register is a memory pointer. Memory locations have 16bit

addresses, and that is why this is a 16-bit register.

The microprocessor uses this register to sequence the execution of the

instructions.

The function of the program counter is to point to the memory address from

which the next byte is to be fetched. When a byte (machine code) is being

fetched, the program counter is incremented by one to point to the next

memory location

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 the stack. The beginning of the

stack is defined by loading 16-bit address in the stack pointer.

Instruction Register/Decoder

Temporary store for the current instruction of a program. Latest instruction

sent here from memory prior to execution. Decoder then takes instruction and

‘decodes’ or interprets the instruction. Decoded instruction then passed to

next stage.

Memory Address Register

Holds address, received from PC, of next program instruction. Feeds the

address bus with addresses of location of the program under execution.

Control Generator

Generates signals within μP to carry out the instruction which has been

decoded. In reality causes certain connections between blocks of the uP to be

opened or closed, so that data goes where it is required, and so that ALU

operations occur.

Register Selector

This block controls the use of the register stack in the example. Just a logic

circuit which switches between different registers in the set will receive

instructions from Control Unit.

Page 22: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

21

General Purpose Registers μP requires extra registers for versatility. Can be

used to store additional data during a program. More complex processors may

have a variety of differently named registers.

Microprogramming

How the μP does knows what an instruction means, especially when it is only

a binary number? The micro program in an μP /μC is written by the chip

designer and tells the μP /μC the meaning of each instruction μP /μC can then

carry out operation.

1.7 8085 Microprocessor System Bus

Typical system uses a number of busses, collection of wires, which transmit

binary numbers, one bit per wire. A typical microprocessor communicates with

memory and other devices (input and output) using three busses: Address Bus,

Data Bus and Control Bus.

Address Bus

One wire for each bit, therefore 16 bits = 16 wires. Binary number carried alerts

memory to ‘open’ the designated box. Data (binary) can then be put in or taken

out. The Address Bus consists of 16 wires, therefore 16 bits. Its "width" is 16

bits. A 16 bit binary number allows 216 different numbers, or 32000 different

numbers, i.e. 0000000000000000 up to 1111111111111111. Because memory

consists of boxes, each with a unique address, the size of the address bus

determines the size of memory, which can be used. To communicate with

memory the microprocessor sends an address on the address bus, e.g.

0000000000000011 (3 in decimal), to the memory. The memory selects box

number 3 for reading or writing data. Address bus is unidirectional, i.e.

numbers only sent from microprocessor to memory, not the other way. If you

have a memory chip of size 256 kilobytes (256 x 1024 x 8 bits), how many wires

does the address bus need, in order to be able to specify an address in this

Figure 1. 8 : System Bus

Page 23: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

22

memory? Note: the memory is organized in groups of 8 bits per location,

therefore, how many locations must you be able to specify?

Data Bus

Data Bus: carries ‘data’, in binary form,

between μP and other external units,

such as memory. Typical size is 8 or 16

bits. Size determined by size of boxes in

memory and μP size helps determine

performance of μP. The Data Bus

typically consists of 8 wires. Therefore,

28 combinations of binary digits. Data

bus used to transmit "data", i.e.

information, results of arithmetic, etc.,

between memory and the

microprocessor.

Data Bus also carries instructions from

memory to the microprocessor. Size of

the bus therefore limits the number of

possible instructions to 256, each

specified by a separate number.

Control Bus

Control Bus is various lines which have specific functions for coordinating and

controlling microprocessor operations. For example, Read/Not write line,

single binary digit. Control whether memory is being ‘written to’ (data stored

in memory) or ‘read from’ (data taken out of memory) 1 = Read, 0 = Write. May

also include clock line(s) for timing/synchronizing, ‘interrupts’, ‘reset’ etc.

Typically μP has 10 control lines. Cannot function correctly without these vital

control signals.

The Control Bus carries control signals partly unidirectional, partly

bi-directional.

Controls signals are things like "read or write". This tells memory that we are

reading from a location, specified on the address bus, or writing to a location

specified. Various other signals to control and coordinate the operation of the

system.

Modern day microprocessors, like 80386, 80486 have much larger busses.

Typically 16 or 32 bit busses, which allow larger number of instructions, more

memory location, and faster arithmetic. Microcontrollers organized along

same lines, except: because microcontrollers have memory etc. inside the chip,

BRIGHT IDEA

Data bus is bi-directional and it is

the size of the data bus determines

what arithmetic can be done. If

only 8 bits wide then largest

number is 11111111 (255 in

decimal). Therefore, larger

numbers have to be broken down

into chunks of 255. This slows

microprocessor

Page 24: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

23

the busses may all be internal. In the microprocessor the three busses are

external to the chip (except for the internal data bus). In case of external

Page 25: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

24

busses, the chip connects to the busses via buffers, which are simply an

electronic connection between external bus and the internal data bus.

8085 Pin description

8085 is a general purpose microprocessor having 40 pins and works on single

power supply.

Single + 5V Supply

4 Vectored Interrupts (One is Non Mask able)

Serial In/Serial Out Port

Decimal, Binary, and Double Precision Arithmetic

Direct Addressing Capability to 64K bytes of memory

The Intel 8085A is a new generation, complete 8 bit parallel central processing

unit (CPU). The 8085A uses a multiplexed data bus. The address is split between

the bit address bus and the 8bit data bus. Figures are at the end of the

document.

Pin Description

The following describes the function of each pin:

A6 - A1s (Output 3 State) Address Bus;

The most significant 8 bits of the memory address or the 8 bits of the

I/0 address, 3 stated during Hold and Halt modes.

AD0 - 7 (Input/output 3state) Multiplexed Address/Data Bus; Lower

8 bits of the memory address (or I/0 addresses) appear on the bus

during the first clock cycle of a machine state.

It then becomes the data bus during the second and third clock cycles.

3 stated during Hold and Halt modes.

Address Latch Enable: It occurs during the first clock cycle of a machine state

and enables the address to get latched into the on chip latch of peripherals.

The falling edge of ALE is set to guarantee setup and hold times for the address

information.

ALE can also be used to strobe the status information. ALE is never 3stated. SO,

S1 (Output) Data Bus Status. Encoded status of the bus cycle:

S1 S0

0 0 HALT

0 1 WRITE

1 0 READ

1 1 FETCH

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

RD (Output 3state)

Page 26: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

25

READ; indicates the selected memory or 1/0 device is

to be read and that the Data Bus is available for the

data transfer.

WR (Output 3state)

WRITE indicates the data on the Data Bus is to be written into the selected

memory or 1/0 location. Data is set up at the trailing edge of WR. 3 stated

during Hold and Halt modes.

READY (Input)

If Ready is high during a read or writes cycle, it indicates that the memory or

peripheral is ready to send or receive data. If Ready is low, the CPU will wait

for Ready to go high before completing the read or write cycle.

HOLD (Input)

HOLD; indicates that another Master is requesting the use of the Address and

Data Buses. The CPU, upon receiving the Hold request. Will relinquish the use

of buses as soon as the completion 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 relinquish the buses in the next clock cycle. HLDA goes low after

the Hold request is removed. The CPU takes the buses one half clock cycle after

HLDA goes low.

INTR (Input)

INTERRUPT REQUEST; is used as a general purpose interrupt. 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 RESTART or CALL instruction can be inserted to jump

to the interrupt service routine. The INTR is enabled and disabled by software.

It is disabled by Reset and immediately after an interrupt is accepted.

INTA (Output)

INTERRUPT ACKNOWLEDGE; is used instead of (and has the same timing as)

RD during the Instruction cycle after an INTR is accepted. It can be used to

activate the 8259 Interrupt chip or some other interrupt port.

RST 5.5

RST 6.5 - (Inputs)

RST 7.5

Page 27: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

26

RESTART INTERRUPTS; These three inputs have the same timing as I

NTR except they cause an internal RESTART to be automatically

inserted.

RST 7.5 ~~ Highest Priority

RST 6.5

RST 5.5 o Lowest Priority

The priority of these interrupts is ordered as shown above. These interrupts

have a higher priority than the INTR.

TRAP (Input)

Trap interrupt is a non-mask able restart interrupt. It is recognized at the same

time as INTR. It is unaffected by any mask or Interrupt Enable. It has the highest

priority of any interrupt.

RESET IN (Input)

Reset sets the Program Counter to zero and resets the Interrupt Enable and

HLDA flip-flops. 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.

Figure 1. 9 : Pin diagram of 8085 microprocessor

Page 28: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

27

RESET OUT (Output)

Indicates CPlJ is being reset. Can be used as a system RESET. The signal is

synchronized to the processor clock.

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.

IO/M (Output)

IO/M indicates whether the Read/Write is to memory or l/O Tri-stated during

Hold and Halt modes.

SID (Input)Serial input data line the data on this line is loaded into accumulator

bit 7 whenever a RIM instruction is executed.

SOD (output)Serial output data line. The output SOD is set or reset as specified

by the SIM instruction. Vcc +5 volt supply.

Vss Ground Reference.

For the execution of an instruction a

microprocessor fetches the instruction from the

memory and executes it. The time taken for the

execution of an instruction is called instruction

cycle (IC). An instruction cycle (IC). An instruction

cycle consists of a fetch cycle (FC) and an

execute cycle (EC). A fetch cycle is the time

required for the fetch operation in which the

machine code of the instruction (opcode) is

fetched from the memory. This time is a fixed

slot of time. An execute cycle is of variable width

which depends on the instruction to be executed. The total time for the

execution is given by: IC = FC + EC.

Fetch Operation

In fetch operation the microprocessor gets the 1st byte of the instruction,

which is operation code (opcode), from the memory. The program counter

THINK POINT

In an 8085

microprocessor what is

the function of HOLD and

HLDA signal?

Page 29: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

28

keeps the track of address of the next instruction to be executed. In the

beginning of the fetch cycle the content of the program counter is sent to the

memory. This takes one clock cycle. The memory first reads the opcode. This

operation also takes one clock cycle. Then the memory sends the opcode to

the microprocessor, which takes one clock period.

The total time for fetch operation is the time required for fetching an opcode

from the memory. This time is called fetch cycle. Having received the address

from the microprocessor the memory takes two clock cycles to respond as

explained above. If the memory is slow, it may take more time. In that case the

microprocessor has to wait for some time till it receives the opcode from the

memory. The time for which the microprocessor waits is called wait cycle.

Most of the microprocessor have provision for wait cycles to cope with slow

memory.

Execute Operation

The opcode fetched from the memory goes to the data register, DR

(data/address buffer in Intel 8085) and then to instruction register, IR. From

the instruction register it goes to the decoder circuitry is within the

microprocessor. After the instruction is decoded, execution begins. If the

operand is in the general purpose registers, execution is immediately

performed. The time taken in decoding and the address of the data, some read

cycles are also necessary to receive the data from the memory. These read

cycle are similar to opcode fetch cycle. The fetch quantities in these cycles are

address or data.

Machine Cycle

An instruction cycle consists of one or more machine cycles as shown in Figure

5. This figure is for MVI instruction. A machine cycle consists of a number of

clock cycles. One clock cycle is known as state.

8085 Microprocessor Functional Description

The 8085A is a complete 8 bit parallel central processor. It requires a single +5

volt supply. Its basic clock speed is 3 MHz thus improving on the present 8080's

Figure 1. 10 : Typical Instruction Set

Page 30: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

29

performance with higher system speed. Also it is designed to fit into a minimum system

of three IC's: The CPU, a RAM/ IO, and a ROM or PROM/IO chip.

The 8085A uses a multiplexed Data Bus. The address is split between the higher bit

Address Bus and the lower 8bit Address/Data Bus. During the first cycle the address is

sent out. The lower 8bits are latched into the peripherals by the

Address Latch Enable (ALE). During the rest of the machine cycle the Data Bus is used

for memory or l/O data.

The 8085A provides RD, WR, and lO/Memory signals for bus control. An Interrupt

Acknowledge signal (INTA) is also provided. Hold, Ready, and all Interrupts are

synchronized. The 8085A also provides serial input data (SID) and serial output data

(SOD) lines for simple serial interface.

In addition to these features, the 8085A has three mask able, restart interrupts and one

non-mask able trap interrupt. The 8085A provides RD, WR and IO/M signals for Bus

control.

Status Information

Status information is directly available from the 8085A. ALE serves as a status strobe.

The status is partially encoded, and provides the user with advanced timing of the type

of bus transfer being done. IO/M cycle status signal is provided directly also. Decoded

So, S1 Carries the following status information:

HALT, WRITE, READ, FETCH.

S1 can be interpreted as R/W in all bus transfers. In the 8085A the 8 LSB of address are

multiplexed with the data instead of status. The ALE line is used as a strobe to enter the

lower half of the address into the memory or peripheral address latch. This also frees

extra pins for expanded interrupt capability.

Interrupt and Serial l/O The8085A has5 interrupt inputs: INTR, RST5.5, RST6.5, RST 7.5,

and TRAP. INTR is identical in function to the 8080 INT. Each of these three RESTART

inputs, 5.5, 6.5. 7.5, has a programmable mask. TRAP is also a RESTART interrupt except

it is non-mask able.

The three RESTART interrupts cause the internal execution of RST (saving the program

counter in the stack and branching to the RESTART address) if the interrupts are enabled

and if the interrupt mask is not set. The non-mask able TRAP causes the internal

execution of a RST independent of the state of the interrupt enable or masks.

The interrupts are arranged in a fixed priority that determines which interrupt is to be

recognized if more than one is pending as follows: TRAP highest priority, RST 7.5, RST

6.5, RST 5.5, INTR lowest priority This priority scheme does not take into account the

priority of a routine that was started by a higher

priority interrupt. RST 5.5 can interrupt a RST 7.5 routine if the interrupts were re-

enabled before the end of the RST 7.5 routine. The TRAP interrupt is useful for

catastrophic errors such as power failure or bus error. The TRAP input is recognized just

Page 31: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

30

as any other interrupt but has the highest priority. It is not affected by any flag

or mask. The TRAP input is both edge and level sensitive.

Basic System Timing

The 8085A has a multiplexed Data Bus. ALE is used as a strobe to sample the

lower 8bits of address on the Data Bus. Figure 2 shows an instruction fetch,

memory read and l/ O write cycle (OUT). Note that during the l/O write and

read cycle that the l/O port address is copied on both the upper and lower half

of the address. As in the 8080, the READY line is used to extend the read and

write pulse lengths so that the 8085A can be used with slow memory. Hold

causes the CPU to relinquish the bus when it is through with it by floating the

Address and Data Buses.

System Interface

8085A family includes memory components, which are directly compatible to

the 8085A CPU. For example, a system consisting of the three chips, 8085A,

8156, and 8355 will have the following features:

2K Bytes ROM

256 Bytes RAM

1 Timer/Counter

4 8bit l/O Ports

1 1 6bit l/O Port

4 Interrupt Levels

Serial In/Serial Out Ports

In addition to standard l/O, the memory mapped I/O offers an efficient l/O

addressing technique. With this technique, an area of memory address space is

assigned for l/O address, thereby, using the memory address for I/O

manipulation. The 8085A CPU can also interface with the standard memory that

does not have the multiplexed address/data bus.

Page 32: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

31

1.8 The 8085 Programming Model

The 8085 programming model includes six registers, one accumulator, and one

flag register, as shown in Figure. In addition, it has two 16 - bit reg isters: the

stack pointer and the program counter .

Registers

The 8085 has six general - purpose registers to store 8 - bit data; these are

identified as B, C, D, E, H, and L as shown in the figure. 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 registers by

using data copy instructions.

Review Questions

1.1 Outline the important points which must be considered while

interfacing memory devices to the 8085 microprocessor.

1.2 Compare and contrast I/O mapped and memory mapped I/O

techniques.

1.3 With the aid of a diagram discuss the i nterfacing of both an input

device and an output device.

Figure 1. 11 8085 Programming Model :

Page 33: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

32

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. The result of an operation is stored in the accumulator. The

accumulator is also identified as register A.

Flags

The ALU includes five flip-flops, which are set or reset after an operation

according to data conditions 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 the Figure

below. The most commonly used flags are Zero, Carry, and Sign. The

microprocessor uses these flags to test data conditions.

Program Counter (PC)

This 16-bit register deals with sequencing the execution of instructions. This

register is a memory pointer. Memory locations have 16-bit addresses, and that

is why this is a 16-bit register. The microprocessor uses this register to sequence

the execution of the instructions.

The function of the program counter is to point to the memory address from

which the next byte is to be fetched. When a byte (machine code) is being

fetched, the program counter is incremented by one to point to the next

memory location.

Page 34: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

33

Web Resource

https://www.youtube.com/watch?v=_lvm_MPeY5w

Learn in detail about the microprocessor 8085 architecture and

programing model from this video lecture.

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 the stack. The beginning of the stack is defined

by loading 16-bit address in the stack pointer.

This programming model will be used in subsequent tutorials to examine how these

registers are affected after the execution of an instruction.

Page 35: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

34

D7 D6 D5 D4 D3 D2 D1 D0

S Z AC P CY

The 8085 Addressing Modes

The instructions MOV B, A or MVI A, 82H are to copy data from a source into a

destination. In these instructions the source can be a register, an input port, or

an 8 - bit number (00H to FFH). Similarly, a destination can be a register or an

output port. The sources and destination are operands. The various formats for

specifying operands are called the ADDRESSING MODES. For 8085, they are:

Immediate addressing

Register addressing

Direct addressing

Indirect addressing

Immediate addressing

In this mode, the operand is specified within the instruction itself.

Data is present in the instruction. Load the immediate da ta to the destination

provided. Example:

MVI is the operation

05 ). H is the immediate data (source

A is the destination.

Direct addressing

In this mode, the add ress of the operand is given in the instruction itself.

Used to accept data from outside devices to store in the accumulator or send

the data stored in the accumulator to the outside device. Accept the data from

the port 00H and store them into the accumu lator or Send the data from the

accumulator to the port 01H. Example:

LDA is the operation.

2500 H is the address of source.

Accumulator is the destination.

Indirect Addressing

Page 36: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

35

This means that the Effective Address is calculated by t he processor a nd 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 that this requires

several memory accesses; two accesses to retrieve the 16 - bit address and a

furthe r access (or accesses) to retrieve the data which is to be loaded into the

register.

1.9 Instruction Set Classification

An instruction is a binary pattern designed inside a microprocessor to perform

a specific function. The entire group of instructions, called the instruction set ,

determines what functions the microprocessor can perform. These instructions

can be classified into the following five functional categories: data transfer

( copy) operations, arithmetic operations, logica l operations, branching

operations, and machine - control operations.

1.9.1 Data Transfer (Copy) Operations

This group of instructions copy data from a location called a source to another

location called a destination, without modifying the contents of th e source. In

technical manuals, the term data transfer is used for this copying function.

However, the term transfer is misleading; it creates the impression that the

Web Resource

t h n tp://www.eazynotes.com/notes/microprocessor/Slides/addressi

g - s mode - f o - .pd f 8085

To perform any operation, we have to give the corresponding

instructions to the microprocessor . Learn in detail about the 8085

microprocessor addressing modes from the power p oint slides.

Figure 1. 12 : 8085 Microprocessor Instruction Set

Page 37: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

36

contents of the source are destroyed when, in fact, the contents are retained without

any modification.

The various types of data transfer (copy) are listed below together with examples of

each type:

Types Examples

1. Between Registers. 1. Copy the contents of the register B

into register D.

2. Specific data byte to a register

or a memory location.

2. Load registers B with the data byte

32H.

3. Between a memory location

and a register.

3. From a memory location 2000H to

register B.

4. Between an I/O device and

the accumulator.

4. From an input keyboard to the

accumulator.

1.9.2 Arithmetic Operations

These instructions perform arithmetic operations such as addition, subtraction,

increment, and decrement.

Page 38: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

37

Addition - Any 8-bit number, or the contents of a register or the contents

of a memory location can be added to the contents of the accumulator and the

sum is stored in the accumulator. No two other 8-bit registers can be added

directly (e.g., the contents of register B cannot be added directly to the contents

of the register C). The instruction DAD is an exception; it adds 16-bit data

directly in register pairs.

Subtraction - Any 8-bit number, or the contents of a register, or the

contents of a memory location can be subtracted from the contents of the

accumulator and the results stored in the accumulator. The subtraction is

performed in 2's compliment, and the results if negative, are expressed in 2's

complement. No two other registers can be subtracted directly.

Increment/Decrement - The 8-bit contents of a register or a memory

location can be incremented or decrement by 1. Similarly, the 16-bit contents

of a register pair (such as BC) can be incremented or decrement by 1. These

increment and decrement operations differ from addition and subtraction in an

important way; i.e., they can be performed in any one of the registers or in a

memory location.

1.9.3 Logical Operations

These instructions perform various logical operations with the contents of the

accumulator.

AND, OR Exclusive-OR - Any 8-bit number, or the contents of a register,

or of a memory location can be logically ANDed, Ored, or Exclusive-ORed with

the contents of the accumulator. The results are stored in the accumulator.

Rotate- Each bit in the accumulator can be shifted either left or right to

the next position.

Compare- Any 8-bit number or the contents of a register, or a memory

location can be compared for equality, greater than, or less than, with the

contents of the accumulator.

Complement - The contents of the accumulator can be complemented.

All 0s are replaced by 1s and all 1s are replaced by

0s.

1.9.4 Branching Operations

This group of instructions alters the sequence of program execution either

conditionally or unconditionally.

Jump - Conditional jumps are an important aspect of the decisionmaking

process in the programming. These instructions test for a certain conditions

(e.g., Zero or Carry flag) and alter the program sequence when the condition is

Page 39: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

38

met. In addition, the instruction set includes an instruction called unconditional

jump.

Call, Return, and Restart - These instructions change the sequence of a

program either by calling a subroutine or returning from a subroutine. The

conditional Call and Return instructions also can test condition flags.

1.9.5 Machine Control Operations

These instructions control machine functions such as Halt, Interrupt, or do

nothing.

The microprocessor operations related to data manipulation can be

summarized in four functions:

Copying data

Performing arithmetic operations

Performing logical operations

Testing for a given condition and alerting the program sequence Some

important aspects of the instruction set are noted below:

In data transfer, the contents of the source are not destroyed; only the

contents of the destination are changed. The data copy instructions do not

affect the flags.

Arithmetic and Logical operations are performed with the contents of

the accumulator, and the results are stored in the accumulator (with some

expectations). The flags are affected according to the results.

Any register including the memory can be used for increment and

decrement. A program sequence can be changed either conditionally or by

testing for a given data condition.

Instruction Format

An instruction is a command to the microprocessor to perform a given task on

a specified data. Each instruction has two parts: one is task to be performed,

called the operation code (opcode), and the second is the data to be operated

on, called the operand. The operand (or data) can be specified in various ways.

It may include 8-bit (or 16-bit) data, an internal register, a memory location, or

8-bit (or 16-bit) address.

In some instructions, the operand is implicit.

Instruction word size

The 8085 instruction set is classified into the following three groups according

to word size:

One-word or 1-byte instructions

Two-word or 2-byte instructions

Three-word or 3-byte instructions

Page 40: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

39

In the 8085, "byte" and "word" are synonymous because it is an 8-bit microprocessor.

However, instructions are commonly referred to in terms of bytes rather than words.

One-Byte Instructions

A 1-byte instruction includes the opcode and operand in the same byte.

Operand(s) are internal register and are coded into the instruction.

For example:

Task Op code Operand Binary

Code

Hex

Code

Copy the contents of the

accumulator in the register C.

MOV C,A 0100

1111

4FH

Add the contents of register

B to the contents of the

accumulator.

ADD B 1000

0000

80H

Invert (compliment) each bit

in the accumulator.

CMA 0010

1111

2FH

These instructions are 1-byte instructions performing three different tasks. In the first

instruction, both operand registers are specified. In the second instruction, the operand

B is specified and the accumulator is assumed. Similarly, in the third instruction, the

accumulator is assumed to be the implicit operand. These instructions are stored in 8-

bit binary format in memory; each requires one memory location.

Two-Byte Instructions

In a two-byte instruction, the first byte specifies the operation code and the second

byte specifies the operand. Source operand is a data byte immediately following the

opcode. For example:

Task Opcode Operand Binary

Code

Hex Code

Load an 8-bit

data byte in

the

accumulator.

MVI A, Data 0011 1110 3E

Data

First

Byte

Second

Byte

DATA

Page 41: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

40

Three-Byte Instructions

In a three-byte instruction, the first byte specifies the opcode, and the following

two bytes specify the 16-bit address. Note that the second byte is the low-order

address and the third byte is the highorder address. opcode + data byte + data

byte.

This instruction would require three memory locations to store in memory.

Page 42: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

41

Task Opcode Operand Binary code Hex

Code

Transfer the

program

sequence to

the memory

location 2085H.

JMP 2085H 1100 0011

1000 0101

0010 0000

C3

85

20

First byte

Second

Byte

Third Byte

Three byte instructions - opcode + data byte + data byte LXI rp, data16 rp is one of the

pairs of registers BC, DE, HL used as 16-bit registers. The two data bytes are 16-bit data

in L H order of significance. rp <-- data16 Example:

LXI H,0520H coded as 21H 20H 50H in three bytes. This is also immediate addressing.

LDA addr

A <-- (addr) Addr is a 16-bit address in L H order. Example: LDA 2134H coded as 3AH

34H 21H. This is also an example of direct addressing.

Page 43: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

42

Worked Examples

1.1 Write an assembly program to add two numbers.

Solution: Program:

MVI D, 8BH

MVI C, 6FH

MOV A, C

1100 0011

1000 0101

0010 0000

ADD D

OUT PORT1

HLT

1.2 Write an assembly program to multiply a number by 8.

Solution: Program:

MVI A, 30H

RRC

RRC

RRC

OUT PORT1

Page 44: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

43

HLT

1.3 Write an assembly program to find greatest between two

numbers

Solution:

Program:

MVI B, 30H

MVI C, 40H

MOV A, B

CMP C

JZ EQU

JC GRT

OUT PORT1

HLT

EQU: MVI A, 01H

OUT PORT1

HLT

GRT: MOV A, C

OUT PORT1 HLT

Page 45: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

44

Page 46: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

45

Data Transfer Group

The data transfer instructions move data between registers or between memory and

registers.

MOV Move MVI Move Immediate

LDA Load Accumulator Directly from

Memory

STA Store Accumulator Directly in Memory

LHLD Load H & L Registers Directly from Memory

SHLD Store H & L Registers Directly in Memory

An 'X' in the name of a data transfer instruction implies that it deals with a register pair

(16-bits);

LXI Load Register Pair with Immediate data

LDAX Load Accumulator from Address in Register Pair

STAX Store Accumulator in Address in Register Pair

XCHG Exchange H & L with D & E

XTHL Exchange Top of Stack with H & L

Arithmetic Group:

Page 47: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

46

The arithmetic instructions add, subtract, increment, or decrement data in

registers or memory.

Page 48: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

47

ADD Add to Accumulator

ADI Add Immediate Data to Accumulator

ADC Add to Accumulator Using Carry Flag

ACI Add Immediate data to Accumulator Using Carry

SUB Subtract from Accumulator

SUI Subtract Immediate Data from Accumulator

SBB Subtract from Accumulator Using Borrow (Carry)

Flag

SBI Subtract Immediate from Accumulator Using Borrow

(Carry) Flag

INR Increment Specified Byte by One

DCR Decrement Specified Byte by One

INX Increment Register Pair by One

DCX Decrement Register Pair by One

DAD Double Register Add; Add Content of Register

Pair to H & L Register Pair

Logical Group:

This group performs logical (Boolean) operations on data in registers and memory and

on condition flags. The logical AND, OR, and Exclusive OR instructions enable you to set

specific bits in the accumulator ON or OFF.

ANA Logical AND with Accumulator

ANI Logical AND with Accumulator Using Immediate Data

ORA Logical OR with Accumulator

OR Logical OR with Accumulator Using Immediate Data

XRA Exclusive Logical OR with Accumulator

XRI Exclusive OR Using Immediate Data

The Compare instructions compare the content of an 8-bit value with the contents of

the accumulator;

CMP Compare

CPI Compare Using Immediate Data

The rotate instructions shift the contents of the accumulator one bit position to the left

or right:

Page 49: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

48

RLC Rotate Accumulator Left

RRC Rotate Accumulator Right

RAL Rotate Left Through Carry

RAR Rotate Right Through Carry

Complement and carry flag instructions:

CMA Complement Accumulator

CMC Complement Carry Flag

STC Set Carry Flag

Branch Group:

The branching instructions alter normal sequential program flow, either

unconditionally or conditionally. The unconditional branching instructions are

as follows:

JMP Jump

CALL Call

RET Return

Conditional branching instructions examine the status of one of four condition

flags to determine whether the specified branch is to be executed. The

conditions that may be specified are as follows:

NZ Not Zero (Z = 0) Z Zero (Z = 1)

NC No Carry (C = 0)

C Carry (C = 1)

PO Parity Odd (P = 0)

PE Parity Even (P = 1)

P Plus (S = 0)

M Minus (S = 1)

Thus, the conditional branching instructions are specified as follows:

Page 50: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

49

Jumps Calls Returns

C CC RC (Carry)

INC CNC RNC (No Carry)

JZ CZ RZ (Zero)

JNZ CNZ RNZ (Not Zero)

JP CP RP (Plus)

JM CM RM (Minus)

JPE CPE RPE (Parity Even)

JP0 CPO RPO (Parity Odd)

Two other instructions can affect a branch by replacing the contents or the program

counter:

PCHL Move H & L to Program Counter \RST Special Restart

Instruction Used with Interrupts

Page 51: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

50

Stack I/O, and Machine Control Instructions: The

following instructions affect the Stack and/or Stack

Pointer:

PUSH Push Two bytes of Data onto the Stack

POP Pop Two Bytes of Data off the Stack

XTHL Exchange Top of Stack with H & L

SPHL Move content of H & L to Stack Pointer

The I/O instructions are as follows:

IN Initiate Input Operation

OUT Initiate Output Operation

The Machine Control instructions are as follows:

EI Enable Interrupt System

DI Disable Interrupt System

HLT Halt

NOP No Operation

Addition of two 8 bit numbers.

MVI B, 06

//Load Register B with the Hex value 06

MOV A, B

//Move the value in B to the Accumulator or register A

MVI C, 07

//Load the Register C with the second number 07

ADD C

//Add the content of the Accumulator to the Register C

STA 8200

//Store the output at a memory location e.g. 8200

HLT

//Stop the program execution

Addition of two 8 bit n umbers stored in memory Code:

LDA 8500

//Load the accumulator with the address of memory viz 8500

MOV B, A

Move the accumulator value to the register B

LDA 8501

//Load the accumulator with the address of memory viz 8501

ADD B

//Add the content of the Accumulator to the Register B

Page 52: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

51

STA 8502

//Store the output at a memory location e.g. 8502

HLT

//Stop the program execution

Addition of two 8 bit numbers stored in memory and storing the carry Code:

LDA 8500

//Load the accumulator with the address of memory viz 8500

MOV B, A

Move the accumulator value to the register B

LDA 8501

//Load the accumulator with the address of memory viz 8501 ADD B

//Add the content of the Accumulator to the Register B

STA 8502

//Store the output at a memory location e.g. 8502

MVI A, 00

//clear the accumulator with 00

ADC A

//Add with carry the content of the accumulator

STA 8503

//Store the output at a memory location e.g. 8503

HLT

//Stop the program execution

Statement: Store the data byte 32H into memory location 4000H.

Program 1:

MVI A, 52H : Store 32H in the accumulator STA 4000H

: Copy accumulator contents at address 4000H HLT

: Terminate program execution

Program 2:

LXI H : Load HL with 4000H MVI M

:Store 32H in memory location pointed by HL register pair (4000H) HLT

: Terminate program execution

Statement: Exchange the contents of memory locations 2000H and 4000H

Program 1:

LDA 2000H :Get the contents of memory location 2000H into

accumulator

MOV B, A : Save the contents into B register

LDA 4000H : Get the contents of memory location 4000Hinto

accumulator

STA 2000H : Store the contents of accumulator at address 2000H

Page 53: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

52

MOV A, B : Get the saved contents back into A register

STA 4000H : Store the contents of accumulator at address 4000H

Instruction Set Architecture

ISA Includes the information needed to interact with the microprocessor. Does

not include information as to how microprocessor is designed or implemented

Includes microprocessor instruction set, which would be the set of all assembly

languages instructions. Also includes the complete set of accessible registers.

1.10 Levels of Programming Languages

Programming languages are divided into three categories.

High level languages hide the details of the computer and operating system. Are

also referred to as platform-independent. Examples include C++, Java, and

FORTRAN.

Assembly language is an example of a lower level language. Each

microprocessor has its own assembly language. A program written in the

assembly language of one microprocessor cannot be run on a different

microprocessor.

Backward compatibility used in order to have old programs that ran on an old

microprocessor, can run on a newer model. Assembly language can manipulate

the data stored in a microprocessor. Assembly language is not platform

independent.

Lowest levels of languages are machine language. Contains binary values to

cause microprocessor to perform operations. Microprocessor understands the

machine language, and thus it is in this state that it executes an instruction set.

High level language and assembly language are converted to machine language.

A programming language such as C, FORTRAN, or Pascal that enables a

programmer to write programs that are more or less independent of a particular

type of computer. Such languages are considered high-level because they are

closer to human languages and further from machine languages. In contrast,

Figure 1. 13 Levels of Programming Languages

Page 54: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

53

assembly languages are considered low-level because they are very close to

machine languages.

The main advantage of high-level languages over low-level languages is that

they are easier to read, write, and maintain. Ultimately, programs written in a

high-level language must be translated into machine language by a compiler or

interpreter.

Compilers

Compiler checks statement in a program is valid. If every instruction is

syntactically correct, then the compiler generates an object code. Linker

combines object code as an executable file.

Executable file copied into memory and

microprocessor then runs the machine code

contained in that file.

A high-level language statement is usually

converted to a sequence of several machine

code instructions. Every high-level language

statement might have more than one valid

conversion of a statement.

Every statement in assembly language

however corresponds to one

unique machine code instruction. The

assembler converts source code to object

code, and then the linking, and the loading

of procedures occur.

1.11 Closer look at Assembly Language

Assembly language is very important part of an instruction set architecture.

Assembly instructions can be grouped together based on their functions.

Instructions related with this category perform the following transfers:

Load data from memory into microprocessor.

Store data from the microprocessor into memory.

Move data within the microprocessor. Input data to the

microprocessor.

Output data from the microprocessor.

Data operation instructions modify their data values. They require one or two

operands, and then they store the result Arithmetic instructions make up a large

part of the data operation instructions. Logic instructions perform basic logical

operations on data. Shift instructions shift bits of data values in a register.

For Assembly languages, the jump or branch instruction is commonly used to go

to another part of the program. An assembly language instruction set may

THINK POINT

the diffe Identify rence

between an interpreter and a

compiler. What are the

advantages level of high

lan guages level over low

languages?

Page 55: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

54

include instructions to call and return from subroutines. Microprocessor can

also be designed to accept interrupts, which basically causes a microprocessor

to stop its current process, and execute another set of instructions.

Data Types

Numeric data can be represented as integers:

Unsigned integers of n-bit values can range from 0 to 2𝑛−1.

Signed n-bit integers can have values between –2𝑛−1 to 2𝑛−1−1

Other types include:

Float: Microprocessor may have special registers only for floating point data,

and its corresponding instruction set.

Boolean: Instructions can perform logical operations on these values.

Characters: Stored as binary values. Operations include concatenation,

replacing characters, or character string manipulation.

Page 56: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

55

1.1 Expand the following acronyms:

IC, ALU, EI, DI, RISC.

1.2 What are the basic units of a microprocessor?

1.3 Name and explain the three special registers of an 8085

microprocessor.

1.4 Define opcode and operand?

1.5 List the limitations of 8 bit microprocessor.

1.6 What do you mean by T-state, instruction cycle, and machine cycle?

1.7 Describe the function of HOLD and HLDA signal.

1.8 Discuss the difference between an assembly language and a high

level language? Use practical examples in your answer.

1.9 There are five types of instruction used in 8085 microprocessor. List

and explain these five instruction sets.

1.10 Discuss the different types of addressing modes.

1.11 Which type of architecture 8085 has?

1.12 Expand the acronym ALE. Explain the functions of ALE in 8085.

1.13 Differentiate between software and hardware interrupts.

Explain what happens when the microprocessor is interrupted.

1.14 Differentiate between symmetrical and asymmetrical

multiprocessing.

1.15 What is the need for timing diagram?

1.16 Draw and specify the complete bit configuration of 8085 flag

Register?

1.17 Explain the interrupt process in 8085.

1.18 Distinguish between an assembler and a linker and explain their

use in program development.

Review Ques tions

Page 57: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

56

Page 58: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

57

TOPIC TWO | 8086 SOFTWARE ASPECTS, SYSTEM DESIGN AND I/O

INTERFACING

LEARNING OUTCOMES

1. Demonstrate a sound understanding of the properties of 8086 microprocessor.

2. Demonstrate an understanding of the 8086 microprocessor maximum and minimum mode.

3. Demonstrate a sound understanding of the block diagram of 8086 microprocessor.

4. Demonstrate an understanding internal architecture of 8086

microprocessor

2.1 Properties of 8086 Microprocessor

It is a 16-bit Microprocessor housed in a 40-pin Dual-Inline-Package (DIP) and

capable of addressing 1Megabyte of memory, various versions of this chip can

operate with different clock frequencies ranging from 5 MHz.

The term 16-bit means that its Arithmetic Logic Unit (ALU), its internal registers

and most of its instructions are designed to work with 16-bit binary word. The

8086 microprocessor has a 16-bit data bus, so it can read from or write data to

memory and ports either 16-bits or 8-bits at a time. The 8086 Microprocessor

has 20-bit address bus, so it can address any one of 220 or 1,048,576 memory

locations. Here 16-bit words will be stored in two consecutive memory

locations. If the first byte of a word is at an even address, the 8086 can read

entire word in one operation, if the first byte of the word is at an odd address

the 8086 will read the first byte with one bus operation and the second byte

with another bus operation.

Some inherent properties of the 8086 microprocessor family are:

It can support up to 64K I/O ports.

It provides 14, 16 -bit registers.

It has multiplexed address and data bus AD0- AD15 and A16 – A19.

It requires single phase clock with 33% duty cycle to provide

internal timing.

8086 microprocessor is designed to operate in two modes,

Minimum and Maximum.

Page 59: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

58

It can prefaces up to 6 instruction bytes from memory and queues

them in order to speed up instruction execution. It requires +5V

power supply.

2.2 8086 Internal Architecture

The internal architecture 8086 microprocessor is as shown in the Fig 2.1. The

8086 CPU is divided into two independent functional parts, the Bus interface

unit (BIU) and execution unit (EU).

The Bus Interface Unit contains Bus Interface Logic, Segment registers, Memory

addressing logic and a six byte instruction object code queue. The execution

unit contains the Data and Address registers, the Arithmetic and Logic Unit, the

Control Unit and flags.

Page 60: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

59

The BIU sends out address, fetches the instructions from memory, read data

from ports and memory, and writes the data to ports and memory. In other

words the BIU handles all transfers of data and addresses on the buses for the

execution unit. The execution unit (EU) of the 8086 tells the BIU where to fetch

instructions or data from, decodes instructions and executes instruction. The

EU contains control circuitry which directs internal operations. A decoder in the

EU translates instructions fetched from memory into a series of actions which

the EU carries out.

The EU is has a 16-bit ALU which can add, subtract, AND, OR, XOR, increment,

decrement, complement or shift binary numbers. The EU is decoding an

instruction or executing an instruction which does not require use of the buses.

Figure 2.1 8086 Microprocessor Internal Architecture

Page 61: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

60

2.2.1 Bus Interface Unit

Specifically it has the following functions:

Instruction fetch, Instruction queuing, Operand fetch and storage,

Address relocation and Bus control.

The BIU uses a mechanism known as an instruction stream queue

to implement a pipeline architecture.

This queue permits prefetch of up to six bytes of instruction code.

Whenever the queue of the BIU is not full, it has room for at least

two more bytes and at the same time the EU

These prefetching instructions are held in its FIFO queue. With its 16 bit data

bus, the BIU fetches two instruction bytes in a single memory cycle. After a

byte is loaded at the input end of the queue, it automatically shifts up through

the FIFO to the empty location nearest the output.

The EU accesses the queue from the output end. It reads one instruction byte

after the other from the output of the queue. If the queue is full and the EU is

not requesting access to operand in memory.

These intervals of no bus activity, which may occur between bus cycles are

known as idle state.

If the BIU is already in the process of

fetching an instruction when the EU

request it to read or write operands from

memory or I/O, the BIU first completes

the instruction fetch bus cycle before

initiating the operand read / write cycle.

The BIU also contains a dedicated adder

which is used to generate the 20bit

physical address that is output on the

address bus. This address is formed by

adding an appended 16 bit segment

address and a 16 bit offset address.

The BIU is also responsible for generating

bus control signals such as those for memory read or write and I/O read or

write.

2.2.2 Execution Unit

The Execution unit is responsible for decoding and executing all instructions.

The EU extracts instructions from the top of the queue in the BIU, decodes

them, generates operands if necessary, passes them to the BIU and requests it

to perform the read or write bus cycles to memory or I/O and perform the

operation specified by the instruction on the operands.

THINK POINT

What are the functions played

by the Bus Interface Unit ( BIU)

and Execution Unit ( EU ) ?

How does the two

complement each other?

Page 62: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

61

During the execution of the instruction, the EU tests the status and

control flags and updates them based on the results of executing

the instruction.

If the queue is empty, the EU waits for the next instruction byte to

be fetched and shifted to top of the queue.

When the EU executes a branch or jump instruction, it transfers

control to a location corresponding to another set of sequential

instructions.

Whenever this happens, the BIU automatically resets the queue

and then begins to fetch instructions from this new location to refill

the queue.

2.3 Minimum and Maximum Modes

In a minimum mode 8086 system, the microprocessor 8086 is operated in

minimum mode by strapping its MN/MX* pin to logic1. In this mode, all the

control signals are given out by the microprocessor chip itself. There is a single

microprocessor in the minimum mode system. The remaining components in

the system are latches, transreceivers,

clock generator, memory and I/O

devices. Some type of chip selection

logic may be required for selecting

memory or I/O devices, depending upon

the address map of the system.

In the maximum mode, the 8086 is

operated by strapping the MN/MX* pin

to ground. In this mode, the processor

derives the status signals S2*, S1* and

S0*. Another chip called bus controller

derives the control signals using this

status information. In the maximum mode, there may be more than one

microprocessor in the system configuration. The other components in the

system are the same as in the minimum mode system.

The minimum mode is selected by applying logic 1 to the MN / MX

input pin. This is a single microprocessor configuration.

The maximum mode is selected by applying logic 0 to the MN / MX

input pin. This is a multi-microprocessors configuration.

RESEARCH

With the aid of a block diagram

discuss the functions of the 8086

microprocessor in the minimum

mode of operation.

Page 63: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

62

2.4 Signal Description of 8086

The 8086 Microprocessor is a 16-bit CPU available in 3 clock rates, i.e. 5, 8 and

10MHz, packaged in a 40 pin CERDIP or plastic package. The 8086

microprocessor operates in single processor or multiprocessor configurations

to achieve high performance. The pin configuration is as shown in Figure 2.2.

Some of the pins serve a particular function in minimum mode (single processor

mode) and others function in maximum mode (multiprocessor mode)

configuration.

The 8086 signals can be categorized in three groups:

The first are the signal having common functions in minimum as

well as maximum mode.

The second are the signals which have special functions for

minimum mode.

The third are the signals having special functions for maximum

mode.

Figure 2.3 8086 Microprocessor Pin Diagram

Page 64: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

63

The following signal descriptions are common for both modes:

AD15-AD0: These are the time multiplexed memory I/O address

and data lines.

Address remains on the lines during T1 state, while the data is

available on the data bus during T2, T3, Tw and T4.

These lines are active high and float to a tri-state during interrupt

acknowledge and local bus hold acknowledge cycles.

A19/S6, A18/S5, A17/S4, and A16/S3: These are the time

multiplexed address and status lines.

During T1 these are the most significant address lines for memory

operations.

During I/O operations, these lines are low. During memory or I/O

operations, status information is available on those lines for T2, T3,

Tw and T4.

The status of the interrupt enable flag bit is updated at the

beginning of each clock cycle.

The S4 and S3 combined indicate which segment register is

presently being used for memory accesses as in below fig.

These lines float to tri-state off during the local bus hold

acknowledge. The status line S6 is always low.

The address bits are separated from the status bit using latches

controlled by the ALE signal.

Table 2.1: Bus High Enable/Status

BHE/S7: The bus high enable is used to indicate the transfer of data

over the higher order (D15-D8) data bus as shown in Table 2.1

above. It goes low for the data transfer over D15-D8 and is used to

derive chip selects of odd address memory bank or peripherals. BHE

is low during T1 for read, write and interrupt acknowledge cycles,

whenever a byte is to be transferred on higher byte of data bus. The

status information is available during T2, T3 and T4. The signal is

active low and tri-stated during hold. It is low during T1 for the first

pulse of the interrupt acknowledges cycle.

Page 65: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

64

RDRead: This signal on low indicates the peripheral that the

processor is performing s memory or I/O read operation. RD is

active low and shows the state for T2, T3, and Tw of any read cycle.

The signal remains tri-stated during the hold acknowledge.

READY: This is the acknowledgement from the slow device or

memory that they have completed the data transfer. The signal

made available by the devices is synchronized by the 8284A clock

generator to provide ready input to the 8086. The signal is active

high.

INTR-Interrupt Request: This is a triggered input. This is sampled

during the last clock cycles of each instruction to determine the

availability of the request. If any interrupt request is pending, the

processor enters the interrupt acknowledge cycle.

TEST This input is examined by a ‘WAIT’ instruction. If the TEST pin

goes low, execution will continue, else the processor remains in an

idle state. The input is synchronized internally during each clock

cycle on leading edge of clock.

CLK- Clock Input: The clock input provides the basic timing for

processor operation and bus control activity. It’s an asymmetric

square wave with 33% duty cycle.

MN/MX: The logic level at this pin decides whether the processor

is to operate in either minimum or maximum mode.

The following pin functions are for the minimum mode operation of 8086:

M/IO – Memory/IO: This is a status line logically equivalent to S2 in

maximum mode. When it is low, it indicates the CPU is having an

I/O operation, and when it is high, it indicates that the CPU is having

a memory operation. This line becomes active high in the previous

T4 and remains active till final T4 of the current cycle. It is tri-stated

during local bus “hold acknowledge “.

INTA Interrupt Acknowledge: This signal is used as a read strobe

for interrupt acknowledge cycles. i.e. when it goes low, the

processor has accepted the interrupt.

ALE – Address Latch Enable: This output signal indicates the

availability of the valid address on the address/data lines, and is

connected to latch enable input of latches. This signal is active high

and is never tri-stated.

DT/R – Data Transmit/Receive: This output is used to decide the

direction of data flow through the transceivers (bidirectional

Page 66: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

65

buffers). When the processor sends out data, this signal is high and

when the processor is receiving data, this signal is low.

DEN – Data Enable: This signal indicates the availability of valid data

over the address/data lines. It is used to enable the transceivers

(bidirectional buffers) to separate the data from the multiplexed

address/data signal. It is active from the middle of T2 until the

middle of T4. This is tristated during ‘ hold acknowledge’ cycle.

HOLD, HLDA- Acknowledge: When the HOLD line goes high, it

indicates to the processor that another master is requesting the bus

access. The processor, after receiving the HOLD request, issues the

hold acknowledge signal on HLDA pin, in the middle of the next

clock cycle after completing the current bus cycle At the same time,

the processor floats the local bus and control lines. When the

processor detects the HOLD line low, it lowers the HLDA signal.

HOLD is an asynchronous input, and is should be externally

synchronized.

The following pin functions are applicable for maximum mode operation of

8086 microprocessor:

S2, S1, S0 – Status Lines: These are the status lines which reflect the

type of operation, being carried out by the processor. These

become activity during T4 of the previous cycle and active during T1

and T2 of the current bus cycles.

Web Resource

http://nptel.ac.in/courses/106108100/pdf/Teacher_Slides/mod1/M1L3.

pdf

Follow the above link to some informative PowerPoint slides on the 8086

microprocessor architecture.

Page 67: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

66

1.1 In which T-state does the CPU sends

Review Questions

Page 68: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

67

the address to memory or I/O and the ALE signal for Demultiplexing?

Page 69: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

68

A. T1

Page 70: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

69

B. T2

Page 71: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

70

C. T3

Page 72: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

71

D. T4

Page 73: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

72

ANSWER: During the first clocking period in a bus cycle, which is called T1,

Page 74: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

73

the address of the memory or I/O location is sent out and the control

Page 75: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

74

signals ALE, DT/R’ and IO/M’ are also output. Hence answer is (A).

Page 76: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

75

1.2 Ready pin of a microprocessor is used …………..

Page 77: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

76

A. to indicate that the microprocessor is ready to receive inputs

Page 78: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

77

B. to indicate that the microprocessor is ready to receive outputs

Page 79: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

78

C. to introduce wait states

Page 80: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

79

D. to provide direct memory access

Page 81: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

80

ANSWER: This input is controlled to insert wait states into the timing of the

Page 82: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

81

microprocessor. Hence answer is (C)

Page 83: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

82

1.3 Identify the correct statement from the following.

Page 84: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

83

A. The group of machine cycle is called a state

Page 85: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

84

B. A machine cycle consists of one or more instruction cycle

Page 86: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

85

C. An instruction cycle is made up of machine cycles and a machine

Page 87: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

86

cycle is made up of number of states

Page 88: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

87

D. A state is a set of instructions

Page 89: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

88

ANSWER: An instruction cycle consists of several machine cycles. Hence

Page 90: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

89

Answer is (B)

Page 91: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

90

1.4 Which microprocessor pins are used to request and acknowledge a

Page 92: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

91

DMA

Page 93: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

92

transfer?

Page 94: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

93

A. Reset and Ready

Page 95: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

94

B. Ready and Wait

Page 96: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

95

C. HOLD and HLDA

Page 97: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

96

D. Reset and Wait

Page 98: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

97

ANSWER: The HOLD pin is an input that is used request a DMA action and

Page 99: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

98

the HLDA pin is an output that that acknowledges the DMA action. Hence

Page 100: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

99

answer is (C).

Page 101: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

100

Page 102: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

101

2.1 How do you classify the instruction set of the 8086 microprocessor?

Page 103: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

102

2.2 Distinguish between the minimum and maximum mode of operation.

Page 104: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

103

Page 105: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

104

TOPIC THREE | MICROCONTROLLERS

LEARNING OUTCOMES

1. Demonstrate a sound understanding of the 8051 standard.

2. Demonstrate an understanding of the 8051 microcontroller's pins

and it’s Input/output Ports (I/O Ports)

3. Demonstrate a specialist knowledge on 8051 microcontroller

memory organisation.

4. Demonstrate an understanding of Special Function Registers (SRF),

Counters and Timers.

5. Demonstrate a sound understanding of the Universal

Asynchronous Receiver and Transmitter (UART)

6. Demonstrate a specialist knowledge on 8051 Microcontroller

Interrupts and 8051 Microcontroller Power Consumption Control.

3.1 Introduction to Microcontrollers

The purpose of this chapter is to introduce the concept of a microcontrollers,

how they differ from microprocessors, and different types of commercial

microcontrollers available as well as their applications.

A microcontroller is a highly integrated chip, which includes on single chip, all

or most of the parts needed for a controller. The microcontroller typically

includes:

Central Processing Unit (CPU)

Random Access Memory (RAM)

Read Only Memory (ROM)

Programmable Read Only Memory (PROM)

Erasable Programmable Read Only Memory (EPROM)

Input/Output (I/O) – serial and parallel, timers, interrupt

controller. By only including the features specific to the task (control),

cost is relatively low. A typical microcontroller has bit manipulation

instructions, easy and direct access to I/O (input/output), and quick and

efficient interrupt processing. Unlike a general-purpose computer,

which also includes all of these components, a microcontroller is

designed for a very specific task - to control a particular system. A

microcontroller differs from a microprocessor, which is a general-

Page 106: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

105

purpose chip that is used to create a multi-function computer or device

and requires multiple chips to handle various tasks.

The great advantage of microcontrollers, as opposed to using larger

microprocessors, is that the 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. Figure 3.1 below shows the block diagram of a typical

microcontroller.

Microcontrollers are sometimes referred to as an embedded microcontroller,

which just means that they are part of an embedded system that is, one part of

a larger device or system.

3.2 The Controller

A device that controls the transfer of data from a computer to a peripheral

device and vice versa. For example, disk drives, display screens, keyboards and

printers all require controllers. In personal computers, the controllers are often

single chips. When you purchase a computer, it comes with all the necessary

controllers for standard components, such as the display screen, keyboard, and

disk drives. If you attach additional devices, however, you may need to insert

new controllers that come on expansion boards. Controllers must be designed

to communicate with the computer's expansion bus.

Figure 3.1: A block diagram of a microcontroller

Page 107: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

106

There are three standard bus architectures for PCs - the AT bus, Peripheral

Component Interconnect (PCI) and SCSI. When you purchase a controller,

therefore you must ensure that it conforms to the bus architecture of your PC.

3.3 Embedded Systems

A general-purpose definition of embedded systems is that they are devices

used to control, monitor or assist the operation of equipment, machinery or

plant. “Embedded” reflects the fact that they are an integral part of the system.

In many cases, their “embeddedness” may be such that their presence is far

from obvious to the casual observer. An embedded system is a system that has

software embedded into hardware, which makes a system dedicated for an

application (s) or specific part of an application or product or part of a larger

system. It processes a fixed set of pre-programmed instructions to control

electromechanical equipment which may be part of an even larger system (not

a computer with keyboard, display, etc). The block diagram of a typical

embedded system is shown in Fig 3.2.

A specialized computer system that is part of a larger system or machine.

Typically, an embedded system is housed on a single microprocessor board

with the programs stored in ROM. Virtually all appliances that have a digital

Interface- watch, microwaves, VCRs, cars -utilize embedded systems. Some

embedded systems include an operating system, but many are so specialized

that the entire logic can be implemented as a single program.

3.3.1 Characteristics of Embedded Systems

Embedded systems are application specific & single functioned; application

is known apriori, the programs are executed repeatedly.

Efficiency is of paramount importance for embedded systems. They are

optimized for energy, code size, execution time, weight & dimensions, and

cost.

Embedded systems are typically designed to meet real time constraints; a

real time system reacts to stimuli from the controlled object/ operator

within the time interval dictated by the environment.

Figure 3.2: Block Diagram of an Embedded System

Page 108: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

107

Embedded systems often interact (sense, manipulate & communicate) with

external world through sensors and actuators and hence are typically

reactive systems; They generally have minimal or no user interface.

3.4 Microprocessors versus Microcontrollers

Microprocessor is a single chip CPU, microcontroller contains, a CPU

and much of the remaining circuitry of a complete microcomputer

system in a single chip.

Microcontroller includes RAM, ROM, serial and parallel interface,

timer, interrupt schedule circuitry (in addition to CPU) in a single

chip. RAM is smaller than that of even an ordinary microcomputer,

but enough for its applications. Interrupt system is an important

feature, as microcontrollers have to respond to control oriented

devices in real time. E.g., opening of microwave oven’s door cause

an interrupt to stop the operation. (Most microprocessors can also

implement powerful interrupt schemes, but external components

are usually needed).

Microprocessors are most commonly used as the CPU in

microcomputer systems. Microcontrollers are used in small,

minimum component designs performing control-oriented

Microprocessor instruction sets are “processing intensive”,

implying powerful addressing modes with instructions catering to

large volumes of data. Their instructions operate on nibbles, bytes,

etc. Microcontrollers have instruction sets catering to the control of

inputs and outputs. Their instructions operate also on a single bit.

E.g., a motor may be turned ON and OFF by a 1-bit output port.

Microprocessors and microcontrollers are widely used in embedded systems’

products. An embedded project uses a microprocessor or a microcontroller to

do one task only. For example, a printer is an embedded system that does one

task, get data and print it.

activities.

Figure 3.3: Microcontroller and Microprocessor

Page 109: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

108

3.5 The 8051 Standard

Microcontroller manufacturers have been competing for a long time for

attracting choosy customers and every couple of days a new chip with a higher

operating frequency, more memory and upgraded A/D converters appeared on

the market. However, most of them had the same or at least very similar

architecture known in the world of microcontrollers as “8051 compatible”. The

whole story has its beginnings in the far 80s when Intel launched the first series

of microcontrollers called the MCS 051. Even though these microcontrollers

had quite modest features in comparison to the new ones, they conquered the

world very soon and became a standard for what nowadays is called the

microcontroller.

The main reason for their great success and popularity is a skilfully chosen

configuration which satisfies different needs of a large number of users

allowing at the same time constant expansions (refers to the new types of

microcontrollers). Besides, the software has been developed in great extend in

the meantime, and it simply was not profitable to change anything in the

microcontroller’s basic core. This is the reason for having a great number of

various microcontrollers which basically are solely upgraded versions of the

8051 family. What makes this microcontroller so special and universal so that

almost all manufacturers all over the world manufacture it today under

different name?

Figure 3.5: 8051 Microcontroller

As seen in figure above, the 8051 microcontroller has nothing impressive in

appearance:

4 Kb of ROM is not much at all.

128b of RAM (including SFRs) satisfies the user's basic needs.

4 ports having in total of 32 input/output lines are in most cases

sufficient to make all necessary connections to peripheral

environment.

Page 110: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

109

The whole configuration is obviously thought of as to satisfy the needs of most

programmers working on development of automation devices. One of its

advantages is that nothing is missing and nothing is too much. In other words,

it is created exactly in accordance to the average user‘s taste and needs.

Another advantages are RAM organization, the operation of Central Processor

Unit (CPU) and ports which completely use all recourses and enable further

upgrade.

3.6 8051 Pin Description

The 8051 microcontroller uses a 40 PIN Integrated Circuit. Figure 3.6 shows the

Pins of IC of 8051 micro-controller.

Figure 3.6: The 8051 Microcontroller Pins

Page 111: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

110

Explanation for each PIN is given below:

Pins 1 to 8(Port 1): The Pins 1.0 to 1.7 are 8 Pins of port 1. Each of them can be

configured as input or output pin.

Pin 9: It is used to Reset Microcontroller 8051. A positive pulse is given on this

Pin to reset Microcontroller.

Pin 10 to 17(Port 3): These Pins are similar to Pins of Port 1. These Pins can be

used as universal Input or output. These are dual function Pins. Function of each

Pin is given as:

Pin 10: It is Serial Asynchronous Communication Input or Serial

Asynchronous Communication Output.

Pin 11: Serial Asynchronous Communication Output or Serial

Synchronous Communication Output.

Pin 12: Interrupt 0 input Pin 13: Interrupt 1 input.

Pin 14: Counter 0 clock input.

Pin 15: Counter 1 clock input.

Pin 16: Writing Signal for writing content on external RAM.

Pin 17: Reading Signal to read contents of external RAM. Pin 18 and

19: These are input output PINS for oscillator. An internal oscillator

is connected to Micro controller through these PINS.

Pin 20: Pin 20 is grounded.

Pin 21 to 28 (Port 2): These Pins can be configured as Input Output Pins. But

this is only possible in case when we don't use any external memory. If we use

external memory then these pins will work as high order address bus (A8 to

A15).

Pin 29: If we uses an external ROM then it should has a logic 0 which indicates

Micro controller to read data from memory.

Pin 30: This Pin is used for ALE that is Address Latch Enable. If we uses multiple

memory chips then this pin is used to distinguish between them. This Pin also

gives program pulse input during programming of EPROM.

Pin 31: If we have to use multiple memories then by applying logic 1 to this pin

instructs Micro controller to read data from both memories first internal and

afterwards external.

Pin 32 to 39(Port 0): Similar to port 2 and 3, these pins can be used as input

output pins when we don't use any external memory. When ALE or Pin 30 is at

1 then this port is used as data bus, when ALE pin at 0, then this port is used as

lower order address bus(A0 to A7).

Page 112: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

111

3.7 Input and Output Ports (I/O Ports)

All 8051 microcontrollers have four I/O ports each comprising 8 bits which can

be configured as inputs or outputs. Accordingly, in total of 32 input/output pins

enabling the microcontroller to be connected to peripheral devices are

available for use.

Pin configuration, i.e. whether it is to be configured as an input (1) or an output

(0), depends on its logic state. In order to configure a microcontroller pin as an

input, it is necessary to apply a logic zero (0) to appropriate I/O port bit. In this

case, voltage level on appropriate pin will be 0.

Similarly, in order to configure a microcontroller pin as an input, it is necessary

to apply a logic one (1) to appropriate port. In this case, voltage level on

appropriate pin will be 5V (as is the case with any TTL input). This may seem

confusing but don't lose your patience. It all becomes clear after studying

simple electronic circuits connected to an I/O pin.

Figure 3.7: Circuitry inside the Microcontroller

Page 113: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

112

Input/Output Pin

Figure 3.8 below illustrates a simplified schematic of all circuits within the

microcontroller connected to one of its pins. It refers to all the pins except

those of the P0 port which do not have pull-up resistors built-in.

Figure 3.8: I/O pin circuitry

Output pin

A logic zero (0) is applied to a bit of the P register. The output FE transistor is

turned on, thus connecting the appropriate pin to ground.

Figure 3.9: Output pin circuitry

Input pin

A logic one (1) is applied to a bit of the P register. The output FE transistor is

turned off and the appropriate pin remains connected to the power supply

voltage over a pull-up resistor of high resistance.

Page 114: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

113

Figure 3.10: Input pin circuitry

Page 115: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

114

Port 0

The P0 port is characterized by two functions. If external memory is used then

the lower address byte (addresses A0 - A7) is appl ied on it. Otherwise, all bits of

this port are configured as inputs/outputs.

The other fu nction is expressed when it is configured as an output. Unlike other

ports consisting of pins with built - in pull -

up resistor connected by its end to 5 V

power supply, pins of this port have this

resistor left out. This apparently small

difference has its c onsequences:

If any pin of this port is configured as an

input then it acts as if it “floats”. Such an

input has unlimited input resistance and

undetermined potential.

When the pin is configured as an output, it acts as an “open drain”. By applying

log ic 0 to a port bit, the appropriate pin will be connected to ground (0V). By

applying logic 1, the external output will keep on “floating”. In order to apply

logic 1 (5V) on this outp ut pin, it is necessary to build in an external pull - up

resistor.

BRIGHT IDEA

Logic state (voltage) of any pin

can be changed or read at any

moment. A logic zero and (0)

logic one (1) are not equal. Logic

one (0) represents a short circuit

to ground. Such a pin acts as an

output.

A logic one (1) is “loosely”

connected to the power supply

voltage over a resistor of high

resistance. Since this voltage can

be easily “reduced” by an

external signal, such a pin acts

as an input.

Figure 3.11

Figure 3.12

Page 116: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

115

Port 1

P1 is a true I/O port, because it doesn't have any alternative functions as is the

case with P0, but can be configured as general I/O only. It has a pull-up resistor

built-in and is completely compatible with TTL circuits.

Port 2

P2 acts similarly to P0 when external memory is used. Pins of this port occupy

addresses intended for external memory chip. This time it is about the higher

address byte with addresses A8-A15. When no memory is added, this port can

be used as a general input/output port showing features similar to P1. Port 3

All port pins can be used as general I/O, but they also have an alternative

function. In order to use these alternative functions, a logic one (1) must be

applied to appropriate bit of the P3 register. In terms of hardware, this port is

similar to P0, with the difference that its pins have a pull-up resistor built-in.

Pin's Current Limitations

When configured as outputs (logic zero (0)), single port pins can receive a

current of 10mA. If all 8 bits of a port are active, a total current must be limited

to 15mA (port P0: 26mA). If all ports (32 bits) are active, total maximum current

must be limited to 71mA. When these pins are configured as inputs (logic 1),

built-in pull-up resistors provide very weak current, but strong enough to

activate up to 4 TTL inputs of LS series.

As seen from description of some ports, even though all of them have more or

less similar architecture, it is necessary to pay attention to which of them is to

be used for what and how.

For example, if they shall be used as outputs with high voltage level (5V), then

P0 should be avoided because its pins do not have pull-up resistors, thus giving

low logic level only. When using other ports, one should have in mind that pull-

up resistors have a relatively high resistance, so that their pins can give a

current of several hundred microamperes only.

Web Resource

https://www.youtube.com/watch?v=pz57y4BHIy0

This video covers the internal architecture, pin diagram, registers, RAM

memory location and some of the special function registers of 8051

microcontroller. Hereby, you can learn each and every block of

architecture and also explained its pin details specially port pins and how

all the registers are stored in memory, it may be general purpose or

special purpose registers and what is its specified address.

Page 117: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

116

3.8 Memory Organization

The 8051 has two types of memory and these are Program Memory and Data

Memory. Program Memory (ROM) is used to permanently save the program

being executed, while Data Memory (RAM) is used for temporarily storing data

and intermediate results created and used during the operation of the

microcontroller. Depending on the model in use (we are still talking about the

8051 microcontroller family in general) at most a few Kb of ROM and 128 or

256 bytes of RAM is used. All 8051 microcontrollers have a 16-bit addressing

bus and are capable of addressing 64 kb memory. It is neither a mistake nor a

big ambition of engineers who were working on basic core development. It is a

matter of smart memory organization which makes these microcontrollers a

real “programmers’ goody“.

The 8051 microprocessor has 128 byte Random Access memory for data

storage. Random access memory is non-volatile memory. During execution for

storing the data the RAM is used. RAM consists of the register banks, stack for

temporary data storage. It also consists of some special function register (SFR)

which are used for some specific purpose like timer, input output ports etc.

Normally microcontroller has 256 byte RAM in which 128 byte is used for user

space which is normally Register banks and stack.

Figure 3.13: Memory Addressing

Page 118: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

117

Program Memory

The fi rst models of the 8051 microcontroller family did not have internal

program memory. It was added as an external separate chip. These models are

recognizable by their label beginning with 803 (for example 8031 or 8032). All

later models have a few Kbyte ROM embedded. Even though such an amount

of memory is sufficient for writing most of the programs, there are situations

when it is necessary to use additional memory as well. A typical example are so

called lookup tables. They are used in cases when equations describing some

processes are too complicated or when there is no time for solving them.

In such cases all necessary estimates and approximates are executed in advance

and the final results are put in the tables (similar to logarithmic tables).

How the m icrocontroller handle external memory depends on the EA pin logic

state.

Data Memory

As already mentioned, data memory is used for temporarily storing data and

intermediate results created and used during the operation of the

microcontroller. Besides, R AM memory built in the 8051 family includes many

registers such as hardware counters and timers, input/output ports, serial data

buffers etc. The previous models had 256 RAM locations, while for the later

models this number was incremented by additional 12 8 registers. However, the

first 256 memory locations (addresses 0FFh) are the heart of memory common

to all the models belonging to the 8051 family. Locations available to the user

occupy memory space with addresses 0 - 7 Fh, i.e. first 128 registers. This pa rt of

RAM is divided in several blocks.

The first block consists of 4 banks each including 8 registers denoted by R0 - R7.

Prior to accessing any of these registers, it is necessary to select the bank

Figure 3.1 4 Program Memory

Page 119: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

118

containing it. The next memory block (address 20h-2Fh) is bit- addressable,

which means that each bit has its own address (0-7Fh).

Since there are 16 such registers, this block contains in total of 128 bits with

separate addresses (address of bit 0 of the 20h byte is 0, while address of bit 7

of the 2Fh byte is 7Fh). The third group of registers occupy addresses 2Fh-7Fh,

i.e. 80

locations, and does not have any special functions or features.

Imagine for a moment that you're an

engineer designing a new 8051based product. Not unexpectedly, the

application's code size will greatly exceed the 64KB architectural limit

of the 8051's program memory. Which of the following two methods

would you chose to get the needed extra program memory space?

Do you expand the program memory space using a method that

wastes a large amount of physical memory; makes some of the 8051

I/O pins unusable; segments the memory into disjointed pages; slows

down the execution of the program; and uses extra bytes in the 8051's

internal data memory?

Or do you expand the program memory space using a method that

employs all available physical memory up to 512KB; uses no 8051 I/O

pins; provides a linear, no segmented 512KB of program memory;

executes the program at full speed with no performance penalty; and

uses no internal data memory resources?

THINK POINT

Page 120: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

119

Additional RAM

In order to satisfy the programmers’ constant hunger for Data Memory, the

manufacturers decided to embed an additional memory block of 128 locations

into the latest versions of the 8051 microcontrollers. However, it’s not as simple

as it seems to be… The problem is that electronics performing addressing has 1

byte (8 bits) on disposal and is capable of reaching only the first 256 locations,

therefore. In order to keep already existing 8-bit architecture and compatibility

with other existing models a small trick was done.

What does it mean? It means that additional memory block shares the same

addresses with locations intended for the SFRs (80h-FFh). In order to

differentiate between these two physically separated memory spaces, different

ways of addressing are used. The SFRs memory locations are accessed by direct

addressing, while additional RAM memory locations are accessed by indirect

addressing.

Page 121: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

120

3.9 Memory Expansion

In case memory (RAM or ROM) built in the microcontroller is not sufficient, it is

possible to add two external memory chips with capacity of 64Kb each. P2 and

P3 I/O ports are used for their addressing and data transmission. From the

user’s point of view, everything works quite simply when properly connected

because most operations are performed by the microcontroller itself.

The 8051 microcontroller has two pins for data read RD# (P3.7) and PSEN#. The

first one is used for reading data from external data memory (RAM), while the

other is used for reading data from external program memory (ROM). Both pins

are active low. A typical example of memory expansion by adding RAM and

ROM chips (Hardware architecture), is shown in figure above. Even though

additional memory is rarely used with the latest versions of the

microcontrollers, we will describe in short what happens when memory chips

are connected according to the previous schematic. The whole process

described below is performed automatically. When the program during

execution encounters an instruction which resides in external memory (ROM),

the microcontroller will activate its control output ALE and set the first 8 bits of

address (A0-A7) on P0. IC circuit 74HCT573 passes the first 8 bits to memory

address pins. A signal on the ALE pin latches the IC circuit 74HCT573 and

immediately afterwards 8 higher bits of address (A8-A15) appear on the port.

In this way, a desired location of additional program memory is addressed. It is

left over to read its content. Port P0 pins are configured as inputs, the PSEN pin

is activated and the microcontroller reads from memory chip. Similar occurs

when it is necessary location from external RAM.

Figure 3.15 Expanding 8051 Memory

Page 122: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

121

Addressing

While operating, the processor processes data as per program instructions.

Each instruction consists of two parts. One part describes what should be done,

while the other explains HOW to do it. The latter part can be a data (binary

number) or the address at which the data is stored. Two ways of addressing are

used for all 8051 microcontrollers depending on which part of memory:

Direct Addressing

On direct addressing, the address of memory location containing data to be

read is specified in instruction. The address may contain a number being

changed during operation (variable). For example, since the address is only one

byte in size (the largest number is 255), only the first 255 locations of RAM can

be accessed this way. The first half of RAM is available for use, while another

half is reserved for SFRs.MOV A, 33h; Means: move a number from address 33

hex to accumulator.

Indirect Addressing

On indirect addressing, a register containing the address of another register is

specified in instruction. Data to be used in the program is stored in the letter

register. For example: Indirect addressing is only used for accessing RAM

locations available for use (never for accessing SFRs). This is the only way of

accessing all the latest versions of the microcontrollers with additional memory

block (128 locations of RAM). Simply put, when the program encounters

instruction including “@” sign and if the specified address is higher than 128 (7F

hex.), the processor knows that indirect addressing is used and skips memory

space reserved for SFRs.

On indirect addressing, registers R0, R1 or Stack Pointer are used for specifying

8-bit addresses. Since only 8 bits are available, it is possible to access only

registers of internal RAM this way (128 locations when speaking of previous

models or 256 locations when speaking of latest models of microcontrollers). If

an extra memory chip is added then the 16-bit DPTR Register (consisting of the

registers DPTRL and DPTRH) is used for specifying address. In this way it is

possible to access any location in the range of 64K.

MOV A, @R0; Means: Store the value from the register whose address is in the

R0 register into accumulator.

Page 123: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

122

3 .10 Special Function Registers (SFRs )

Special Function Registers (SFRs) are a sort of control table used for running

and monitoring the operation of the microcontroller. Each of these registers as

well as each bi t they include, has its name, address in the scope of RAM and

precisely defined purpose such as timer control, interrupt control, serial

communication control etc. Even though there are 128 memory locations

intended to be occupied by them, the basic core, shared by all types of 8051

microcontrollers, has only 21 such registers. Rest of locations are intentionally

left unoccupied in order to enable the manufacturers to further develop

microcontrollers keeping them compatible with the previous versions. It al so

enables programs written a long time ago for microcontrollers which are out of

production now to be used today.

The Register (Accumulator)

A register is a general - purpose register used for storing intermediate results

obtained during operation. Prior to executing an instruction upon any number

or operand it is necessary to store it in the accumulator first. All results obtained

from arithmetical operations performed by the ALU are stored in the

accumulator. Data to be moved from one register to anothe r must go through

the accumulator. In other words, the A register is the most commonly used

register and it is impossible to imagine a microcontroller without it. More than

half instructions used by the 8051 microcontroller use somehow the

accumulator.

Page 124: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

123

B Register

Multiplication and division can be performed only upon numbers stored in the

A and B registers. All other instructions in the program can use this register as

a spare accumulator (A).

During the process of writing a program, each register i s called by its name so

that their exact addresses are not of importance for the user. During

compilation, their names will be automatically replaced by appropriate

addresses.

R Registers (R0 - R7)

This is common name for 8 general - p urpose registers (R0, R1, R2 ...R7). Even

though they are not true SFRs, they deserve to be discussed here because of

their purpose. They occupy 4 banks within RAM. Similar to the accumulator,

they are used for temporary storing variables and intermediate results during

operation. Which one of these banks is to be active depends on two bits of the

PSW Register. Active bank is a bank the registers of which are currently used.

The following example best illustrates the purpose of these registers. Suppose

it is necessary to perform some arithmetical operations upon numbers

previously stored in the R registers: (R1+R2) - R3+R4). Obviously, a register for (

temporary storing results of addition is needed.

Figure 3. 16 R Register :

Page 125: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

124

This is how it looks in the program:

MOV A, R3; Means: move number from R3 into accumulator

ADD A, R4; Means: add number from R4 to accumulator (result

remains in accumulator)

MOV R5, A; Means: temporarily move the result from

accumulator into R5

MOV A, R1; Means: move number from R1 to accumulator

ADD A, R2; Means: add number from R2 to accumulator

SUBB A, R5; Means: subtract number from R5 (there are R3+R4)

Program Status Word (PSW) Register

PSW register is one of the most important SFRs. It contains several status bits

that reflect the current state of the CPU. Besides, this register contains Carry

bit, Auxiliary Carry, two register bank select bits, Overflow flag, parity bit and

user-definable status flag.

P - Parity bit. If a number stored in the accumulator is even then this bit will be

automatically set (1), otherwise it will be cleared (0). It is mainly used during

data transmit and receive via serial communication.

Bit 1. This bit is intended to be used in the future versions of microcontrollers.

OV Overflow occurs when the result of an arithmetical operation is larger than

255 and cannot be stored in one register. Overflow condition causes the OV bit

to be set (1). Otherwise, it will be cleared (0).

RS0, RS1 - Register bank select bits. These two bits are used to select one of

four register banks of RAM. By setting and clearing these bits, registers R0-R7

are stored in one of four banks of RAM.

F0 - Flag 0. This is a general-purpose bit available for use.

AC - Auxiliary Carry Flag is used for BCD operations only.

Page 126: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

125

CY - Carry Flag is the (ninth) auxiliary bit used for all arithmetical operations and

shift instructions.

Data Pointer Register (DPTR)

DPTR register is not a true one because it doesn't physically exist. It consists of

two separate registers: DPH (Data Pointer High) and (Data Pointer Low). For this

reason it may be treated as a 16-bit register or as two independent 8-bit

registers. Their 16 bits are primarily used for external memory addressing.

Besides, the DPTR Register is usually used for storing data and intermediate

results.

Stack Pointer (SP) Register

A value stored in the Stack Pointer points to the first free stack address and

permits stack availability. Stack pushes increment the value in the Stack Pointer

by 1. Likewise, stack pops decrement its value by 1. Upon any reset and

poweron, the value 7 is stored in the Stack Pointer, which means that the space

of RAM reserved for the stack starts at this location. If another value is written

to this register, the entire Stack is moved to the new memory location.

P0, P1, P2, P3 - Input/ Output Registers

If neither external memory nor serial communication system are used then 4

ports within total of 32 input/output pins are available for connection to

peripheral environment. Each bit within these ports affects the state and

Figure 3. 17 Data pointer Register

Page 127: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

126

performance of appropriate pin of the microcontroller. Thus, bit logic state is

reflected on appropriate pin as a voltage (0 or 5 V) and vice versa, voltage on a

pin reflects the state of appropriate port bit. As mentioned, port bit state affects

performance of port pins, i.e. whether they will be configured as inputs or

outputs. If a bit is cleared (0), the appropriate pin will be configured as an

output, while if it is set (1), the appropriate pin will be configured as an input.

Upon reset and power-on, all port bits are set (1), which means that all

appropriate pins will be configured as inputs. I/O ports are directly connected

to the microcontroller pins. Accordingly, logic state of these registers can be

checked by voltmeter and vice versa, voltage on the pins can be checked by

inspecting their bits!

Counters and Timers

As you already know, the microcontroller oscillator uses quartz crystal for its

operation. As the frequency of this oscillator is precisely defined and very

stable, pulses it generates are always of the same width, which makes them

ideal for time measurement. Such crystals are also used in quartz watches. In

order to measure time between two events it is sufficient to count up pulses

coming from this oscillator. That is exactly what the timer does. If the timer is

properly programmed, the value stored in its register will be incremented (or

decremented) with each coming pulse, i.e. once per each machine cycle. A

single machine-cycle instruction lasts for 12 quartz oscillator periods, which

means that by embedding quartz with oscillator frequency of 12MHz, a number

stored in the timer register will be changed million times per second, i.e. each

microsecond.

The 8051 microcontroller has 2 timers/counters called T0 and T1. As their

names suggest, their main purpose is to measure time and count external

events. Besides, they can be used for generating clock pulses to be used in serial

communication, so called Baud Rate.

Timer T0

As seen in figure below, the timer T0 consists of two registers – TH0 and TL0

representing a low and a high byte of one 16-digit binary number.

Page 128: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

127

Figure 3.18: Timer T0

Page 129: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

128

Accordingly, if the content of the timer T0 is equal to 0 (T0=0) then both

registers it consists of will contain 0. If the tim er contains for example number

decimal), then the TH0 register (high byte) will contain the number 3, 1000 (

while the TL0 register (low byte) will contain decimal number 232.

Formula used to calculate values in these two registers is very simple:

TH0 × TL0 = T 256 +

Matching the previous example it would be as follows:

× 256 + 232 = 1000 3

Since the timer T0 is virtually 16 - bit register, the largest value it can store is 65

535 . In case of exceeding this value, the timer will be automatically cle ared and

counting starts from 0. This condition is called an overflow. Two registers TMOD

and TCON are closely connected to this timer and control its operation.

TMOD Register (Timer Mode)

The TMOD register selects the operational mode of the timers T0 and T1. As

seen in figure below, the low 4 bits (bit0 - bit3) refer to the timer 0, while the

high 4 bits (bit4 - bit7) refer to the timer 1. There are 4 operational modes and

each of them is described herein.

Figure 3. 19 0 : Timer T

Figure 3. 20 : TMOD R egister

Page 130: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

129

Timer 0 in Mode 0 (13 – bit Timer)

This is one of the rarities being kept only for the purpose of compatibility with

the previous versions of microcontrollers. This mode configures timer 0 as a

13bit timer which consists of all 8 bits of TH0 and the lower 5 bits of TL0. As a

result, the Timer 0 uses only 13 of 16 bits. How does it operate? Each coming

pulse causes the lower register bits to change their states. After receiving 32

pulses, this register is loaded and automatically cleared, while the higher byte

(TH0) is incremented by 1. This process is repeated until registers count up 8192

pulses. After that, both registers are cleared and counting starts from 0.

Timer 0 in Mode 1 (16-bit timer)

Mode 1 configures timer 0 as a 16-bit timer comprising all the bits of both

registers TH0 and TL0. That's why this is one of the most commonly used modes.

Timer operates in the same way as in mode 0, with difference that the registers

count up to 65 536 as allowable by the 16 bits.

Figure 3.22: Timer 0 in Mode 1

Figure 3.21: Time 0 in Mode 0

Page 131: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

130

Timer 0 in mode 2 (Auto - Reload Timer)

Mode 2 configures timer 0 as an 8 - bit timer. Actually, timer 0 uses only one 8 -

bit register for counting and never counts from 0, but from an arbitrary value

(0 - 255) stored in another (TH0) register.

The following example shows the advantages of this mode. Suppose it is

necessar y to constantly count up 55 pulses generated by the clock. If mode 1

or mode 0 is used, it is necessary to write the number 200 to the timer registers

and constantly check whether an overflow has occurred, i.e. whether they

reached the value 255. When it h appens, it is necessary to rewrite the number

200 and repeat the whole procedure. The same procedure is automatically

performed by the microcontroller if set in mode 2. In fact, only the TL0 register

operates as a timer, while another (TH0) register stores the value from which

the counting starts. When the TL0 register is loaded, instead of being cleared,

the contents of TH0 will be reloaded to it. Referring to the previous example, in

order to register each 55th pulse, the best solution is to write the num ber 200

to the TH0 register and configure the timer to operate in mode 2.

Timer 0 in Mode 3 (Split Timer)

Mode 3 configures timer 0 so that registers TL0 and TH0 operate as separate 8 -

bit timers. In other words, the 16 - bit timer consisting of two regis ters TH0 and

TL0 is split into two independent 8 - bit timers. This mode is provided for

applications requiring an additional 8 - bit timer or counter. The TL0 timer turns

into timer 0, while the TH0 timer turns into timer 1. In addition, all the control

bits of 16bit Timer 1 (consisting of the TH1 and TL1 register), now control the

8 - bit Timer 1. Even though the 16 - bit Timer 1 can still be configured to operate

in any of modes (mode 1, 2 or 3), it is no longer possible to disable it as there is

no control bit to do it .

Figure 3.23: Timer 0 in Mode 2

Page 132: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

131

Thus, its operation is restricted when timer 0 is in mode 3. The only application

of this mode is when two timers are used and the 16-bit Timer 1 the operation

of which is out of control is used as a baud rate generator.

Timer 0 in mode 3 becomes two completely separate 8-bit counters. TL0 is

controlled by the gate arrangement of Figure 11 and sets timer flag TF0

whenever it overflows from FFh to 00h. TH0 receives the timer clock (the

oscillator divided by 12) under the control of TR 1 only and sets the TF1 flag

when it overflows.

Timer 1 may still be used in modes 0, 1,

and 2, while timer 0 is in mode 3 with one

important exception: No interrupts will be

generated by timer I while timer 0 is using

the TF1 overflow flag. Switching timer I to

mode 3 will stop it

(and hold whatever count is in timer 1).

Timer 1 can be used for baud rate

generation for the serial port, or any other

mode 0, 1, or 2 function that does not

depend upon an interrupt (or any other

use of the TF1 flag) for proper operation.

Counting

The only difference between counting and timing is the source of the clock

pulses to the counters. When used as a timer, the clock pulses are sourced from

RESEARCH

Write an essay outlining the

difference between a timer and a

counter operation of the 8051

microcontroller. In your essay

explain how one would start/stop

the timer/counter when:

i. GATE control is not used ii.

GATE control is used

Figure 3.24: Timer 0 in Mode 3

Page 133: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

132

the oscillator through the divide-by-12d circuit. When used as a counter, pin T0

(P3.4) supplies pulses to counter 0 and pin T1 (P3.5) to counter 1.

The input pulse on TX is sampled during P2 of state 5 every machine cycle. A

change on the input from high to low between samples will increment the

counter. Each high and low state of the input pulse must thus be held constant

for at least one machine cycle to ensure reliable counting. Since this takes 24

pulses, the maximum input frequency that can be accurately counted is the

oscillator frequency divided by 24 for our 6 megahertz crystal. The calculation

yields a maximum external frequency of 250 kilohertz.

The 8051 timer has three general functions:

Keeping time and calculating the amount of time between events.

Counting events.

Generating baud rates for serial ports.

When used as a timer, the 8051’s crystal is used as the source of frequency.

However, when used as a counter, it is a pulse outside of the 8051 that

increments the TH and TL registers.

Web Resource

https://www.youtube.com/watch?v=0SZPr4iGACg

Follow the link above to learn in the basics of Timer/ Counter operations

from the video tutorial presented.

The link below will take you to some tutorial slides on how a counter

works.

http://www.slideshare.net/ankit3991/8051-timer-counter

Page 134: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

133

3.1 0 Universal Asynchronous Receiver and Transmitter (UART)

One of the micro controller features making it so powerful is an integrated

UART, better known as a serial port. It is a full - duplex port, thus being able to

transmit and receive data simultaneously and at different baud rates. Without

it, serial data send and receive woul d be an enormously complicated part of

the program in which the pin state is constantly changed and checked at regular

intervals. When using UART, all the programmer has to do is to simply select

serial port mode and baud rate. When it's done, serial data transmit is nothing

but writing to the SBUF register, while data receive represents reading the

same register. The microcontroller takes care of not making any error during

data transmission.

Serial port must be configured prior to being used. In other words, it is

necessary to determine how many bits is contained in one serial “word”, baud

rate and synchronization clock source. The whole process is in control of the

bits of the SCON register (Serial Control).

Serial Port Control (SCON) Register

SM0 - Serial port mode bit 0 is used for serial port mode selection.

SM1 - Serial port mode bit 1.

SM2 - Serial port mode 2 bit, also known as multiprocessor communication

enable bit. When set, it enables multiprocessor communication in mode 2

and 3, and eventually mode 1. It should be cleared in mode 0.

REN - Reception Enable bit enables serial reception when set. When

cleared, serial reception is disabled.

TB8 - Transmitter bit 8. Since all registers are 8 - bit wide, this bit solves the

problem of tra nsmitting the 9th bit in modes 2 and 3. It is set to transmit a

logic 1 in the 9th bit.

RB8 - Receiver bit 8 or the 9th bit received in modes 2 and 3. Cleared by

hardware if 9th bit received is a logic 0. Set by hardware if 9th bit received

is a logic 1.

Page 135: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

134

TI - Transmit Interrupt flag is automatically set at the moment the last bit

of one byte is sent. It's a signal to the processor that the line is available for

a new byte transmit. It must be cleared from within the software.

RI - Receive Interrupt f lag is automatically set upon one byte receive. It

signals that byte is received and should be read quickly prior to being

replaced by a new data. This bit is also cleared from within the software.

T ransmit

Data transmit is initiated by writing data to the SBUF register. In fact, this

process starts after any instruction being performed upon this register. When

all 8 bits have been sent, the TI bit of the SCON register is automatically set.

R eceive

Data receive through the RXD pin starts upon the two f ollowing conditions are

met: bit REN=1 and RI=0 (both of them are stored in the SCON register). When

all 8 bits have been received, the RI bit of the SCON register is automatically set

indicating that one byte receives is complete. Since there are no START and

STOP bits or any other bit except data sent from the SBUF register in the pulse

sequence, this mode is mainly used when the distance between devices is short,

noise is minimized and operating speed is of importance. A typical example is

I/O port expan sion by adding a cheap IC (shift registers 74HC595, 74HC597 and

similar).

Page 136: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

135

Mode 1

In mode 1, 10 bits are transmitted through the TXD pin or received through the

RXD pin in the following manner: a START bit (always 0), 8 data bits (LSB first)

and a STOP bit (always 1). The START bit is only used to initiate data receive,

while the STOP bit is automatically written to the RB8 bit of the SCON register.

Multiprocessor Communication

As you may know, additional 9th data bit is a part of message in mode 2 and 3.

It can be used for checking data via parity bit. Another useful application of this

bit is in communication between two or more microcontrollers, i.e.

multiprocessor communication. This feature is enabled by setting the SM2 bit

of the SCON register. As a result, after receiving the STOP bit, indicating end of

the message, the serial port interrupt will be generated only if the bit RB8 = 1

(the 9th bit).

Suppose there are several microcontrollers sharing the same interface. Each of

them has its own address. An address byte differs from a data byte because it

has the 9th bit set (1), while this bit is cleared (0) in a data byte. When the

microcontroller A (master) wants to transmit a block of data to one of several

slaves, it first sends out an address byte which identifies the target slave. An

address byte will generate an interrupt in all slaves so that they can examine

the received byte and check whether it matches their address.

Of course, only one of them will match the address and immediately clear the

SM2 bit of the SCON register and prepare to receive the data byte to come.

Other slaves not being addressed leave their SM2 bit set ignoring the coming

data bytes.

Figure 3.25 Mode 0

Page 137: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

136

8051 Microcontroller Interrupts

There are five interrupt sources for the 8051, which means that they can

recognize 5 different events that can interrupt regular program execution. Each

interrupt can be enabled or disabled by setting bits of the IE register. Likewise,

the whole interrupt system can be disabled by clearing the EA bit of the same

register. Now, it is necessary to explain a few details referring to external

interrupts- INT0 and INT1. If the IT0 and IT1 bits of the TCON register are set,

an interrupt will be generated on high to low transition, i.e. on the falling pulse

edge (only in that moment). If these bits are cleared, an interrupt will be

continuously executed as far as the pins are held low.

IE Register (Interrupt Enable)

Interrupt Priorities

It is not possible to foresee when an interrupt request will arrive. If several

interrupts are enabled, it may happen that while one of them is in progress,

another one is requested. In order that the microcontroller knows whether to

continue operation or meet a new interrupt request, there is a priority list

instructing it what to do.

The priority list offers 3 levels of interrupt priority:

1. Reset! The absolute master. When a reset request arrives, everything is

stopped and the microcontroller restarts.

2. Interrupt priority 1 can be disabled by Reset only.

3. Interrupt priority 0 can be disabled by both Reset and interrupt priority 1.

The IP Register (Interrupt Priority Register) specifies which one of existing

interrupt sources have higher and which one has lower priority. Interrupt

priority is usually specified at the beginning of the program. According to

that, there are several possibilities:

If an interrupt of higher priority arrives while an interrupt is in

progress, it will be immediately stopped and the higher priority

interrupt will be executed first.

If two interrupt requests, at different priority levels, arrive at the

same time then the higher priority interrupt is serviced first.

If the both interrupt requests, at the same priority level, occur one

after another, the one which came later has to wait until routine

being in progress ends.

Page 138: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

137

If two interrupt requests of equal priority arrive at the same time

then the interrupt to be serviced is selected according to the

following priority list:

Handling Interrupts

When an interrupt request arrives the following occurs:

Instruction in progress is ended.

The address of the next instruction to execute is pushed on the

stack.

Depending on which interrupt is requested, one of 5 vectors

(addresses) is written to the program counter in accordance to the

table below:

These addresses store appropriate subroutines processing

interrupts. Instead of them, there are usually jump instructions

specifying locations on which these subroutines reside.

When an interrupt routine is executed, the address of the next

instruction to execute is poped from the stack to the program

counter and interrupted program resumes operation from where it

left off.

From the moment an interrupt is enabled, the microcontroller is on

alert all the time. When an interrupt request arrives, the program

execution is stopped, electronics recognizes the source and the

program “jumps” to the appropriate address (see the table above).

This address usually stores a jump instruction specifying the start of

appropriate subroutine. Upon its execution, the program resumes

operation from where it left off.

INTERRUPT SOURCE VECTOR (ADDRESS)

IE0 3 h

TF0 B h

TF1 1B h

RI, TI 23 h

All addresses are in hexadecimal format

Page 139: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

138

Reset

Reset occurs when the RS pin is supplied with a positive pulse in duration of at

least 2 machine cycles (24 clock cycles of crystal oscillator). After that, the

microcontroller generates an internal reset signal which clears all SFRs, except

SBUF registers, Stack Pointer and ports (the state of the first two ports is not

defined, while FF value is written to the ports configuring all their pins as

inputs). Depending on surrounding and purpose of device, the RS pin is usually

connected to a power-on reset push button or circuit or to both of them. Figure

below illustrates one of the simplest circuits providing safe power-on reset.

Basically, everything is very simple: after turning the power on, electrical

capacitor is being charged for several milliseconds through a resistor connected

to the ground. The pin is driven high during this process. When the capacitor is

charged, power supply voltage is already stable and the pin remains connected

to the ground, thus providing normal operation of the microcontroller. Pressing

the reset button causes the capacitor to be temporarily discharged and the

microcontroller is reset. When released, the whole process is repeated.

8051 Microcontroller Power Consumption Control

Generally speaking, the microcontroller is inactive for the most part and just

waits for some external signal in order to takes its role in a show. This can cause

some problems in case batteries are used for power supply. In extreme cases,

the only solution is to set the whole electronics in sleep mode in order to

minimize consumption. A typical example is a TV remote controller: it can be

out of use for months but when used again it takes less than a second to send

Figure 3.27 Reseting

Page 140: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

139

a command to TV receiver. The AT89S53 uses approximately 25mA for regular

operation, which doesn't make it a power-saving microcontroller. Anyway, it

doesn’t have to be always like that, it can easily switch the operating mode in

order to reduce its total consumption to approximately 40uA. Actually, there

are two power saving modes of operation: Idle and Power Down.

Idle mode

Upon the IDL bit of the PCON register is set, the microcontroller turns off the

greatest power consumer- CPU unit while peripheral units such as serial port,

timers and interrupt system continue operating normally consuming 6.5mA. In

Idle mode, the state of all registers and I/O ports remains unchanged.

In order to exit the Idle mode and make the microcontroller operate normally,

it is necessary to enable and execute any interrupt or reset. It will cause the IDL

bit to be automatically cleared and the program resumes operation from

instruction having set the IDL bit. It is recommended that first three instructions

to execute now are NOP instructions. They don't perform any operation but

provide some time for the microcontroller to stabilize and prevents undesired

changes on the I/O ports.

Power Down mode

By setting the PD bit of the PCON register from within the program, the

microcontroller is set to Power down mode, thus turning off its internal

oscillator and reduces power consumption enormously. The microcontroller

can operate using only 2V power supply in power- down mode, while total

Figure 3.28: Idle and Power Down mode

Page 141: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

140

power consumption is less than 40uA. The only way to get the microcontroller

back to normal mode is by reset.

While the microcontroller is in Power Down mode, the state of all SFR registers

and I/O ports remains unchanged. By setting it back into the normal mode, the

contents of the SFR register is lost, but the content of internal RAM is saved.

Reset signal must be long enough, approximately 10mS, to enable stable

operation of the quartz oscillator.

Page 142: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

141

SECTION A: MULTIPLE CHOICE QUESTIONS

Review Questions

Page 143: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

142

Identify the electronic components that are not found on ordinary Integrated

Page 144: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

Circuits.

Page 145: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

144

A. Diodes

Page 146: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

B. Transistors

Page 147: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

146

C. Resistors

Page 148: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

D. Inductors

Page 149: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

148

Which one is not the function of the Microprocessor?

Page 150: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

A. Receive data from an input device

Page 151: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

150

B. Process data

Page 152: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

C. Regulates power

Page 153: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

152

D. Send data to an output device

Page 154: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

What type of control pins are needed in a microprocessor to regulate traffic on

Page 155: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

154

the bus, in order to prevent two devices from trying to use it at the same time?

Page 156: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

A. Bus control

Page 157: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

156

B. Interrupts

Page 158: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

C. Bus arbitration

Page 159: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

158

D. Status

Page 160: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

Which instruction cannot force the 8086 processor out of ‘halt’ state?

Page 161: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

160

A. Interrupt request

Page 162: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

B. Reset

Page 163: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

162

C. Interrupt request and Reset

Page 164: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

D. Hold

Page 165: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

164

The circuits in the 8085 microprocessor that provide the arithmetic and logic

Page 166: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

functions are called the:

Page 167: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

166

A. CPU

Page 168: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

B. ALU

Page 169: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

168

C. I/O

Page 170: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

D. PC

Page 171: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

170

Single-bit indicators that may be set or cleared to show the results of logical or

Page 172: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

arithmetic operations are the called ……………….

Page 173: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

172

A. flags

Page 174: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

B. registers

Page 175: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

174

C. buses

Page 176: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

D. monitors

Page 177: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

176

Page 178: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,
Page 179: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

178

Page 180: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

When referring to instruction words,

Review Questions

Page 181: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

180

a mnemonic is …………………

Page 182: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

A. a short abbreviation for the operand address

Page 183: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

182

B. a short abbreviation for the operation to be performed

Page 184: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

C. a short abbreviation for the data word stored at the operand address D.

Page 185: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

184

shorthand for machine language

Page 186: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

A register in the microprocessor that keeps track of the answer or results of any

Page 187: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

186

arithmetic or logic operation is the ………………

Page 188: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

A. stack pointer

Page 189: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

188

B. program counter

Page 190: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

C. instruction pointer

Page 191: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

190

D. accumulator

Page 192: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

In 8085 microprocessor, an example of a non maskable interrupts is ……..

Page 193: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

192

A. TRAP

Page 194: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

B. RST 5.5

Page 195: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

194

C. RST 6.5

Page 196: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

D. INTR

Page 197: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

196

What is used to store critical pieces of data during subroutines and interrupts?

Page 198: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

A. Stack

Page 199: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

198

B. Queue

Page 200: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

C. Accumulator

Page 201: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

200

D. Data register

Page 202: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

Which of the following buses is primarily used to carry signals that direct other

Page 203: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

202

ICs to find out what type of operation is being performed?

Page 204: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

A. data bus

Page 205: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

204

B. control bus

Page 206: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

C. address bus

Page 207: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

206

D. memory bus

Page 208: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

Identify the addressing mode that is not possible in the 8085 microprocessor.

Page 209: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

208

A. Indexed addressing

Page 210: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

B. Indirect addressing

Page 211: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

210

C. Direct addressing

Page 212: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

D. Indirect register address

Page 213: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

212

What does the microprocessor speed depend on ……………..

Page 214: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

A. the clock

Page 215: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

214

B. the data bus width

Page 216: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

C. the address bus width

Page 217: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

216

D. the size of register

Page 218: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,
Page 219: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

218

Page 220: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

In 8086 microprocessor the over flow

Review Questions

Page 221: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

220

flag is set when ………………

Page 222: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

A. the sum is more than 16 bit

Page 223: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

222

B. signed numbers go out of their range after an arithmetic operation

Page 224: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

C. the carry and sign flags are set.

Page 225: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

224

D. the zero flag is set.

Page 226: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

The cache usually gets its data from the ………….. whenever the instruction or

Page 227: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

226

data is required by the CPU.

Page 228: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

A. main memory

Page 229: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

228

B. secondary memory

Page 230: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

C. control memory

Page 231: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

230

D. cycle memory

Page 232: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

Different components on the motherboard of a PC unit are linked together by

Page 233: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

232

sets of parallel electrical conducting lines. What are these lines called?

Page 234: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

A. Conductors B.

Page 235: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

234

Buses

Page 236: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

C. Connectors

Page 237: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

236

D. Consecutives

Page 238: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

The Central Processing Unit (CPU) can read & write data by using …………………….

Page 239: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

238

A. control bus

Page 240: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

B. data bus

Page 241: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

240

C. address bus

Page 242: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

D. utility bus

Page 243: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

242

With interrupt-driven I/O, if two or more devices request service at the same

Page 244: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

time, ..

Page 245: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

244

A. the device closest to the CPU gets priority

Page 246: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

B. the device that is fastest gets priority

Page 247: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

246

C. the device assigned the highest priority is serviced first

Page 248: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

D. the system is likely to crash

Page 249: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

248

The necessary steps carried out to perform the operation of accessing either

Page 250: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

memory or I/O device, constitute a ……………

Page 251: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

250

A. fetch operation

Page 252: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

B. execute operation

Page 253: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

252

C. machine cycle

Page 254: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

D. instruction cycle

Page 255: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

254

Page 256: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,
Page 257: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

256

Page 258: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

90

Page 259: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

258

In vectored interrupts, how does

the device identify itself to the

processor?

A. By sending the starting address

of the service routine

B. By sending its device id

C. By sending the machine code

for the interrupt service routine

D. By sending the last address of the service routine

What do you understand by the term Op - code?

A. The instruction that is to be executed

B. The value in which an operation acts upon

C. A mnemonic that defines a data size

D. The compiled assembly code

Execution of two or mo re programs by a single CPU is known as …………….

A. multiprocessing

B. multiprogramming

C. multitasking

D. timesharing

Interrupts which are initiated by an I/O drive are called ………………

A. internal interrupts

B. external interrupts

C. software interrupts

D. hardware interrupts

The synchronization between microprocessor and memory is done by …….

A. ALE signal

B. HOLD signal

C. READY signal

D. WAIT signal

When the READY pin of 8085 microprocessor is low …………….

A. the processor will be ready to execute program

B. the processor will enter into wait state for one clock period

C. the processor will enter into wait state until the READY pin is made

high

D. the processor will return back from its READY state

Review Questions

Page 260: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

259

Page 261: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

260

Page 262: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

261

2.1 Describe the different buses

found in microprocessors. What is the purpose of each of the buses you have

identified?

2.2 Explain priority interrupts of 8085 microprocessor. How does the processor

handle the situation where two or more interrupts go high at the same time?

3.1 The invention of the microprocessor has touched our lives and changed the

world. Do you agree with this statement? Write an argumentative essay

illustrating your viewpoints. Support your answer with practical examples

and theory.

4. Follow the link below to some aptitude questions on microprocessors and

microcontrollers:http://www.slideshare.net/manishpatel_79/question-

paperwith-solution-the-8051-microcontroller-based-embedded-systems-

junejuly2013-vtu

5. An instruction is a binary pattern designed inside a microprocessor to

perform a specific function. The entire group of instructions, called the

instruction set, determines what functions the microprocessor can perform.

These instructions can be classified into five functional categories.

List and explain these five categories. Explain what may happen if one of the

categories is not functioning correctly.

6. List the four major categories of the benefits of multithreaded

programming. Briefly explain each.

7. Multicore systems present certain challenges for multithreaded

programming. Briefly describe these challenges.

8. Write an argumentative essay on the following topic: Is it feasible

for quantum processors to replace the silicon microprocessors used in

classical computers of today?

Review Questions

SECTION B: ESSAY TYPE QUESTIONS

Page 263: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

262

Page 264: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

263

GLOSSARY OF TERMS

Ampere: Ampere(s), the unit of electrical current. Current is defined as the amount of charge

that flows past a give point, per unit of time. The symbol I is used for current in equations and

A is the abbreviation for ampere.

Bandwidth: Bandwidth (BW) is a range of frequencies, or information, that a circuit can

handle or the range of frequencies that a signal contains or occupies. Example: An AM

broadcast radio channel in the US has a bandwidth of 10kHz, meaning that it occupies a

10kHz-wide band, such as the frequencies from 760kHz to 770kHz.

Page 265: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

264

Bus: Data path that connects to a number of devices. A typical example is the

bus a computer's circuit board or backplane. Memory, processor, and I/O

devices may all share the bus to send data from one to another. A bus acts as a

shared highway and is in lieu of the many devoted connections it would take to

hook every device to every other device. Often misspelled "buss."

Capacitor: A capacitor is a passive electronic component that consists of two

conductive plates separated by an insulating dielectric. A voltage applied to the

plates develops an electric field across the dielectric and causes the plates to

accumulate a charge. When the voltage source is removed, the field and the

charge remain until discharged, storing energy. Capacitance (or C, measured in

farads), dictates the amount of charge that can be stored at a given voltage (a

one-farad capacitor charged to one volt will hold one Coulomb of charge).

Coulomb: Coulomb (abbreviated C) is the standard measure of electrical

charge.

Named after Charles-Augustin de Coulomb, it is the amount of charge

accumulated on a one-farad capacitor charged to one volt; or the amount of

charge transported by a one ampere current in one second.

Current: See Ampere

Diode: A two-terminal device that rectifies signals (passes current in only one

direction). Most commonly, a semiconductor consisting of a P-N junction, but

diodes can also be realized using vacuum tube, point-contact,

metalsemiconductor junction (Schottky), and other technologies.

DRAM: Dynamic RAM: Random-Access Memory that uses a continuous clock.

Unlike SRAM, when DRAM is no longer clocked, its data is lost.

EPROM: Erasable programmable read-only memory.

ESD: Electrostatic Discharge: Release of stored static electricity. The potentially

damaging discharge of many thousands of volts that occurs when an electronic

device is touched by a charged body.

Embedded System: A system in which the computer (generally a

microcontroller or microprocessor) is included as an integral part of the system.

Often, the computer is relatively invisible to the user, without obvious

applications, files, or operating systems. Examples of products with invisible

embedded systems are the controller that runs a microwave oven or the engine

control system of a modern automobile.

Gate: The controlling terminal of a FET. A voltage on the gate controls the

current flow between the source and drain. A basic logic element (e.g. AND, OR,

NOT, NAND, NOR, XOR, etc.).

Half - Duplex: Data transmission over a circuit capable of transmitting in either

direction, but not simultaneously.

Heat Sink: Mechanical device that is thermally-connected to a heat-producing

electronic component, designed to conduct heat away from the device. Most

Page 266: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

265

heat sinks are aluminium and employ fins to increase surface area and

encourage the transfer of heat to the ambient environment.

Hot Swap: A power supply line controller which allows circuit boards or other

devices to be removed and replaced while the system remains powered up.

Hotswapable devices typically protect against overvoltage, undervoltage, and

inrush current that can cause faults, errors, and hardware damage. Hertz; Hz: A

measure of frequency. An older term is cycles per second, or cps. IC: Integrated

circuit: A semiconductor device that combines multiple transistors and other

components and interconnects on a single piece of semiconductor material.

Microcontroller: A highly integrated microprocessor designed specifically for

use in embedded systems. Microcontrollers typically include an integrated CPU,

memory (a small amount of RAM, ROM, or both), and other peripherals on the

same chip. Common examples are Microchip's PIC, the 8051, Intel's 80196, and

Motorola's 68HCxx series.

Microprocessor: A piece of silicon containing a general-purpose CPU. The most

common examples are Intel's 8085 and 8086 families.

Multiprocessing: The use of more than one processor in a single computer

system. So-called multiprocessor systems usually have a common memory

space through which all of the processors can communicate and share data. In

addition, some multiprocessor systems support parallel processing.

Multitasking: The execution of multiple software routines in pseudoparallel.

Each routine represents a separate thread of execution. The operating system

is responsible for simulating parallelism by parceling out the processor's time

to the individual threads.

Page 267: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

266

REFERENCES

Prescribed Material:

Page 268: FACULTY OF MEDIA,INFORMATION …mypctbc.co.za/HET2016/MICT/Higher Certificate in Systems... · Demonstrate the ability to write programs in the 8085 microprocessor ... steps: fetch,

267

Krishna, K. 2011.Microprocessors and Microcontrollers: Architecture,

Program and System Design 8085, 8086, 8051, 8096 1𝑠𝑡 Edition, Osca

Publications, India.

Other Referenced Material

Hall, D.V. 1990 Microprocessors and Interfacing: Programming and

Hardware 1𝑠𝑡 Edition,. 1990, McGraw-Hill C, Inc. Place of publication

Gaonkar, R. S. 2002. Microprocessor Architecture, Programming, and

Applications with the 8085 5𝑡ℎ Edition, Prentice Hall.