Microprocessor, Microcontroller & Embedded Systems
Microprocessor, Microcontroller & Embedded Systems
2
8086 microprocessor-Features
The 8086, announced in 1978, was the first 16-bit
microprocessor introduced by Intel Corporation
8086 is a 16-bit processor
It’s ALU, internal registers works with 16 bit binary word
8086 has a 16-bit data bus
It can read or write data to a memory either 16bits or 8 bit at a
time
8086 has a 20-bit address bus
It can address up to 220 = 1MB memory location
In addition, it can address up to 64K of byte-wide
input/output ports
3
8086 microprocessor-Features
It is manufactured using high-performance metal-oxide
semiconductor (HMOS) technology
The circuitry on its chip is equivalent to approximately
29,000 transistors
Frequency range of 8086 is 6-10 MHz
It has multiplexed address and data bus AD0 - AD15 and A16
– A19
It has 14 registers each one with 16-bit.
It requires +5V power supply
A 40 pin dual in line package
4
Pins and Signals
5
Pins and Signals
6
Pins and Signals
7
Pins and Signals
8
Pins and Signals
9
Pins and Signals
This is a single
microprocessor configuration .
This is a multi
microprocessor configuration .
10
Pins and Signals
11
Pins and Signals
12
Pins and Signals
13
Pins and Signals
14
Pins and Signals
15
Simplified Functional Block Diagram of 8086 MP
Various conditions of the
Computational Unit;
results are stored as
performs arithmetic and Internal storage of data
status bits called flags in
logic operations
flag register
19
Internal Architecture of 8086 MP
BIU contains
Instruction queue
Adder
Segment registrés
Instruction pointer
20
Internal Architecture of 8086 MP
Bus Interface Unit (BIU)
21
8086 Architecture - BIU
Instruction queue
The BIU stores prefetched bytes in a first-in-first-out register set
called a queue
When the EU is ready for its next instruction, it simply reads the
instruction byte for the instruction from the queue in the BIU
A group of First-In-First-Out (FIFO) in which up to 6 bytes of
instruction code are pre fetched from the memory ahead of time.
This is done in order to speed up the execution by overlapping
instruction fetch with execution.
This mechanism is known as pipelining.
22
Instruction Queue and Pipelining
Pipelining is a computer organization technique in which successive
steps of an instruction sequence are executed in parallel, so that another
instruction can be begun before the previous one is finished.
Feature of fetching the next instruction while the current (first) instruction is
executing is called pipelining as shown in figure.
From figure is seen that the required time for fetching and execution 3
instructions without pipelining is mare than with pipelining.
8086 Architecture - BIU
Segment register
The four segment register
• The code segment (CS)
• The stack segment (SS)
• The extra segment (ES)
• The data segment (DS)
25
8086 Architecture - BIU
• The code segment (CS)
– 16 bit
– It holds the upper 16 bits of the starting or base address for the current
code segment
– IP contains the distance or offset from this address to the next instruction
byte to be fetched.
– BIU computes the 20-bit physical address by logically shifting the contents
of CS 4-bits to the left and then adding the 16-bit contents of IP.
• The stack segment (SS)
– 16-bit
– It is used to hold the upper 16 bits of the starting address for the program
stack
– Points to the current stack.
– The 20-bit physical stack address is calculated from the Stack Segment
(SS) and the Stack Pointer (SP) for stack instructions such as PUSH and
POP.
– In based addressing mode, the 20-bit physical stack address is calculated
from the Stack segment (SS) and the Base Pointer (BP).
26
8086 Architecture - BIU
• The extra segment (ES)
– 16-bit
– Points to the extra segment in which data (in excess of 64K
pointed to by the DS) is stored.
– String instructions use the ES and DI to determine the 20-bit
physical address for the destination.
• The data segment (DS)
– 16-bit
– Points to the current data segment; operands for most instructions
are fetched from this segment.
– The 16-bit contents of the Source Index (SI) or Destination Index
(DI) or a 16-bit displacement are used as offset for computing the
20-bit physical address.
27
8086 Architecture - BIU
Instruction pointer
16-bit
Always points to the next instruction to be executed within the
currently executing code segment.
So, this register contains the 16-bit offset address pointing to the
next instruction code within the 64Kb of the code segment area.
Its content is automatically incremented as the execution of the
next instruction takes place.
28
8086 Architecture - EU
EU contains
Control circuitry
Instruction décoder
ALU (Arithmétique Logic unit)
Flag register
General purpose register
29
8086 Architecture - EU
EU decodes and
executes instructions.
A decoder in the EU
control system
translates instructions.
and
Some of the 16 bit registers can be
Index registers (Source used as two 8 bit registers as :
Index, Destination Index)
each of 16-bits AX can be used as AH and AL
BX can be used as BH and BL
CX can be used as CH and CL 30
DX can be used as DH and DL
8086 Architecture - EU
Control circuitry
It directs internal operations
Instruction decoder
It translates instructions fetched from memory into a series of
actions which the EU carries out
ALU (Arithmetic Logic Unit)
The EU has 16 bit arithmetic logic unit which can add, subtract,
AND, OR, XOR, increment, decrement, complement
31
8086 Architecture-Flag Registers
Flag register
A flag is a flip-flop which indicates some condition
A 16-bit flag register in the EU contains nine active flags
Six of the nine flag are used to indicate some condition
The six conditional flags are
• The carry flag (CF)
• The parity flag (PF)
• The auxiliary flag (AF)
• The zero flag (ZF)
• The sign flag (SF)
• The overflow flag (OF)
32
8086 Architecture-Flag Registers
The three remaining flags in the flag register are used to
control certain operations of the processor
The three control flags are
The trap flag (TF)
The interrupt flag (IF)
The direction flag (DF)
33
Functions of Flag Registers
Auxiliary Carry Flag
Carry Flag
This is set, if there is a carry from the
lowest nibble, i.e, bit three during This flag is set, when there is
addition, or borrow for the lowest a carry out of MSB in case of
nibble, i.e, bit three, during addition or a borrow in case
subtraction. of subtraction.
This flag is set, when the This flag is set, if the result of This flag is set to 1, if the lower
result of any computation the computation or comparison byte of the result contains even
is negative performed by an instruction is number of 1’s ; for odd number
zero of 1’s set to zero.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OF DF IF TF SF ZF AF PF CF
Tarp Flag
Over flow Flag If this flag is set, the processor
This flag is set, if an overflow occurs, i.e, if the result of a signed enters the single step execution
operation is large enough to accommodate in a destination
mode by generating internal
register. The result is of more than 7-bits in size in case of 8-bit
signed operation and more than 15-bits in size in case of 16-bit interrupts after the execution of
sign operations, then the overflow will be set. each instruction
Direction Flag Interrupt Flag
This is used by string manipulation instructions. If this flag bit
is ‘0’, the string is processed beginning from the lowest Causes the 8086 to recognize
address to the highest address, i.e., auto incrementing mode. external mask interrupts; clearing IF
Otherwise, the string is processed from the highest address disables these interrupts.
towards the lowest address, i.e., auto incrementing mode. 34
8086 Architecture - EU
General purpose register
The EU has four 16-bit general purpose register, AX, BX, CX,
and DX.
The AX is also called the accumulator
AL in this case contains the low order byte of the word, and AH contains the
high-order byte.
35
General Purpose Registers
Base Register (BX)
Consists of two 8-bit registers BL and BH, which can be combined together and
used as a 16-bit register BX.
BL in this case contains the low-order byte of the word, and BH contains the high-
order byte.
This is the only general purpose register whose contents can be used for
addressing the 8086 memory.
All memory references utilizing this register content for addressing use DS as the
default segment register.
36
General Purpose Registers
Counter Register (CX)
Consists of two 8-bit registers CL and CH, which can be combined together and
used as a 16-bit register CX.
When combined, CL register contains the low order byte of the word, and CH
contains the high-order byte.
Example:
If it is zero, 8086 executes the next instruction; otherwise the 8086 branches
to the label START.
37
General Purpose Registers
Data Register (DX)
Consists of two 8-bit registers DL and DH, which can be combined together and
used as a 16-bit register DX.
When combined, DL register contains the low order byte of the word, and DH
contains the high-order byte.
Use to hold the high 16-bit result (data) in the case of multiplication and
division
38
8086 Architecture - EU
Stack Pointer (SP) and Base Pointer (BP)
SP and BP are used to access data in the stack segment.
39
8086 Architecture - EU
Source Index (SI) and Destination Index (DI)
Used in indexed addressing.
Instructions that process data strings use the SI and DI registers together with
DS and ES respectively in order to distinguish between the source and destination
addresses.
40
Registers and Special Functions- At a Glance
Register Name of the Register Special Function
into 6 groups OF DF IF TF SF ZF AF PF CF
1. Register Addressing
Group I : Addressing modes for
2. Immediate Addressing register and immediate data
3. Direct Addressing
5. Based Addressing
Group II : Addressing modes for
6. Indexed Addressing
memory data
7. Based Index Addressing
8. String Addressing
8. String Addressing
45
8086 Microprocessor Group I : Addressing modes for
Addressing Modes register and immediate data
1. Register Addressing
In immediate addressing mode, an 8-bit or 16-bit
2. Immediate Addressing data is specified as part of the instruction
3. Direct Addressing
Example:
4. Register Indirect Addressing
MOV DL, 08H
5. Based Addressing
The 8-bit data (08H) given in the instruction is
6. Indexed Addressing moved to DL
8. String Addressing
MOV AX, 0A9FH
9. Direct I/O port Addressing
The 16-bit data (0A9FH) given in the instruction is
10. Indirect I/O port Addressing
moved to AX register
11. Relative Addressing
(AX) 0A9FH
12. Implied Addressing
46
8086 Microprocessor Group II : Addressing modes
Addressing Modes for memory data
1. Register Addressing
2. Immediate Addressing
Here, the effective address of the memory
3. Direct Addressing
location at which the data operand is stored is
4. Register Indirect Addressing given in the instruction.
12. Implied Addressing This addressing mode is called direct because the
displacement of the operand from the segment
base is specified directly in the instruction.
47
8086 Microprocessor Group II : Addressing modes
Addressing Modes for memory data
(CL) (MA)
(CH) (MA +1)
48
8086 Microprocessor Group II : Addressing modes
Addressing Modes for memory data
7. Based Index Addressing When BP holds the base value of EA, BP and SS is
used.
8. String Addressing
Example:
9. Direct I/O port Addressing
MOV AX, [BX + 08H]
10. Indirect I/O port Addressing
Operations:
11. Relative Addressing
0008H 08H (Sign extended)
12. Implied Addressing EA = (BX) + 0008H
BA = (DS) x 1610
MA = BA + EA
(AL) (MA)
49
(AH) (MA + 1)
8086 Microprocessor Group II : Addressing modes
Addressing Modes for memory data
(CL) (MA)
(CH) (MA + 1)
50
8086 Microprocessor Group II : Addressing modes
Addressing Modes for memory data
51
8086 Microprocessor Group II : Addressing modes
Addressing Modes for memory data
1. Register Addressing
2. Immediate Addressing
1. Register Addressing
2. Immediate Addressing
3. Direct Addressing
5. Based Addressing
6. Indexed Addressing
Instructions using this mode have no operands.
The instruction itself will specify the data to be
7. Based Index Addressing
operated by the instruction.
8. String Addressing
Example: CLC
9. Direct I/O port Addressing
This clears the carry flag to zero.
10. Indirect I/O port Addressing
55
8086 Microprocessor
Types of Memory
Processor Memory
Registers inside a microcomputer
Store data and results temporarily
No speed disparity
Cost
Secondary Memory
Storage media comprising of slow
devices such as magnetic tapes and
disks
Hold large data files and programs:
Operating system, compilers,
databases, permanent programs etc. 56
8086 Microprocessor Memory Segmentation
Intel 8086 has 20 lines address bus. With 20 address lines, the memory
that can be addressed is 2^20 bytes. 2^20= 1,048,576 bytes (1 MB).
These registers are 16-bit in size. Each register stores the base address
(starting address) of the corresponding segment.
Because the segment registers cannot store 20 bits, they only store the
upper 16 bits. 58
8086 Microprocessor Advantages of Memory Segmentation
Allows the placing of code data and stack portions of the same
program in different parts (segments) of memory, for data and code
protection.
59
8086 Microprocessor Memory Segmentation
60
8086 Microprocessor Physical Address Calculation
61
8086 Microprocessor Physical Address Calculation
62
8086 Microprocessor Physical Address Calculation
63
8086 Microprocessor
Physical Address Calculation-Example
65
8086 Microprocessor
Physical Address Calculation-Example
66
Physical Address Calculation- More Examples
Example:
If CS=2500 h & IP=95F3 h, what is the physical address?
Solution:
Physical Address Calculation- More Examples
Example:
If CS=24F6h & IP=634Ah, show the;
1- The logical address
2- The offset address
3- The physical address
4- The lower range of the segment
5- The upper range of the segment
Solution:
1- The logical address is the CS: IP content which is: 24F6:634A
2- The offset address is the content of the IP register which is: 634A
3- The physical address:
Physical Address Calculation- More Examples
4- The lower range of the segment:
72
Interrupt
An interrupt is a signal from a device attached to a computer, or from
a program within the computer, that tells the OS (operating system) to stop
and decide what to do next. When an interrupt is generated,
computer processor follows to change from one task to another while
ensuring that the tasks do not conflict.
An interrupt is used to cause a temporary halt in the execution of program.
The meaning of ‘interrupts’ is to break the sequence of operation.
While the Microprocessor is executing a program, an ‘interrupt’ breaks the
normal sequence of execution of instructions, diverts its execution to some
other program called Interrupt Service Routine (ISR).
After executing ISR, IRET (Interrupt Return) returns the control back again
to the main program. Interrupt processing is an alternative to polling.
Examples
• When your phone rings during a lecture, what will
happen?
• When you are studying then your cell phone rings – what
will you do?
• When you finish talking on the phone then you will
continue with your study
• Now your phone rings again and someone also knocking
at your door then what will you do?
• When being interrupted, you will perform some pre-
defined action
• Interrupt has priority – some interrupt is more important
than the others. For example, asking your phone is more
important than opening the door
74
Basic Interrupt Terminology
• Interrupt pins: Set of pins used in hardware interrupts
• Interrupt Service Routine (ISR) or Interrupt handler: code used
for handling a specific interrupt
• Interrupt priority: In systems with more than one interrupt inputs,
some interrupts have a higher priority than other
– They are serviced first if multiple interrupts are triggered
simultaneously
• Interrupt vector: Code loaded on the bus by the interrupting device
that contains the Address (segment and offset) of specific interrupt
service routine
• Interrupt Masking: Ignoring (disabling) an interrupt
• Non-Maskable Interrupt: Interrupt that cannot be ignored (power-
down)
75
The Purpose of Interrupts
• Interrupts are useful when interfacing I/O devices with low data-
transfer rates, like a keyboard or a mouse, in which case polling the
device wastes valuable processing time
• The peripheral interrupts the normal application execution,
requesting to send or receive data.
• The processor jumps to a special program called Interrupt Service
Routine to service the peripheral
• After the processor services the peripheral, the execution of the
interrupted program continues.
76
Use of Interrupt
How to get key typed in the keyboard or a keypad?
Polling
The CPU executes a program that check for the available of data
If a key is pressed then read the data, otherwise keep waiting
or looping!!!
Interrupt
The CPU executes other program, as soon as a key is pressed, the
Keyboard generates an interrupt. The CPU will response to the
interrupt – read the data. After that returns to the original program.
So by proper use of interrupt, the CPU can serve many devices at the
“same time”
77
How to get key typed in the keyboard or a keypad?
interrupt
Doing
Something else
No key pressed
Polling
78
Use of Interrupt
How to control a robot that has sensors to detect obstacles
and makes a turn?
• Polling
– Move forward in a pre-defined unit
– Check sensor reading
– Do nothing if no obstacle or turn if obstacle detected
– Loop back and move forward again
• Controlling a robot by interrupt
– Keeping moving until interrupted by the sensor
– Interrupt received then do pre-defined operation
– After finishing the interrupt service return to
normal operation ie keep moving forward again 79
Polling Vs Interrupt-Control of a Robot
Move forward
Move forward
Check sensor
interrupt
Stop or turn 80
Interrupt Processing Flow Chart
Main program
Interrupt N
Req
Accept N
Interrupt
Get interrupt
vector
Jump to ISR
Save PC
Load PC
81
Steps Involved in Processing an Interrupt Instruction by the Processor
Executes the Interrupt instructions
85
Interrupt Priority
• When more than one interrupt occur then priorities of the
interrupts are compared in order to determine which
interrupt to serve first
• Hardware, software, and internal interrupts are serviced on
a priority basis
• Priority hierarchy groups: internal interrupt, nonmaskable
interrupt, software interrupt, and external hardware
interrupt
• Internal interrupt group has the highest priority
• External hardware interrupt group has the lowest priority
• Within a group, different interrupts have different priority
levels represented by the type number (or interrupt
number)
90
Interrupt Priority
Interrupt type Priority level
Internal Highest
Non-maskable Very high
software High
External Low
91
Hardware Interrupts – Interrupt Pins and Timing
• x86 Interrupt Pins
– INTR: Interrupt Request. Activated by a peripheral device to
interrupt the processor.
• Level triggered. Activated with a logic 1.
– /INTA: Interrupt Acknowledge. Activated by the processor to
inform the interrupting device the the interrupt request (INTR) is
accepted.
• Level triggered. Activated with a logic 0.
– NMI: Non-Maskable Interrupt. Used for major system faults such
as parity errors and power failures.
• Edge triggered. Activated with a positive edge (0 to 1) transition.
• Must remain at logic 1, until it is accepted by the processor.
• Before the 0 to 1 transition, NMI must be at logic 0 for at least 2 clock
cycles.
• No need for interrupt acknowledgement.
Interrupt Vectors & Interrupt Vector Table
• An interrupt vector is the memory location of an interrupt handler, which
prioritizes interrupts and saves them in a queue if more than one interrupt
is waiting to be handled.
• An "interrupt vector table" (IVT) is a data structure that associates a list
of interrupt handlers with a list of interrupt requests in a table of interrupt
vectors.
• The processor uses the interrupt vector to determine the address of the ISR
of the interrupting device. The interrupt vector is a pointer to the Interrupt
Vector Table.
• In the 8088/8086 processor
– The Interrupt Vector Table occupies the address range from 00000H to
003FFH.
– Each entry in the Interrupt Vector Table is 4 bytes long. The first two
represent the offset address and the last two the segment address of the
ISR.
– The first 5 vectors are reserved by Intel to be used by the processor. The
vectors 5 to 255 are free to be used by the user.
Circuits for Generating Interrupt Vectors
95
Issues in Implementing Interrupts
1. Is there a minimum pulse width required for the INTR signal?
The microprocessor checks INTR, one clock period before the last T-states of an instruction
cycle. In the 8085, the Call instructions require 18 T-states; therefore, the INTR pulse should
be high at least for 17.5 T-states. In a system with 3 MHz clock frequency (such as the SDK-
85 system), the input pulse to INTR should be at leas 5.8 µs long.
Address
DMA
contr
Memory IO oller
MPU
control
Data Bus
HOLD
HLDA
Series of Intel and Pentium Microprocessors
• Intel 8088
• Intel 80188
• Intel 80288
• Intel 80388
• Intel 80488
• Intel Pentium
• Intel Pentium Pro
• Intel Pentium II
• Intel Pentium II Xeon
• Intel Pentium III
• Intel Pentium IV
• Intel Dual Core
• Intel Core 2 Duo
99
Series of Intel and Pentium Microprocessors
• Intel 8088
– Introduced in 1979
– It was also 16-bit MP
– It could execute 2.5 million instructions per second
– It could access 1 MB of memory
– It had 22,000 instructions
– It had Multiply and Divide instructions
100
Series of Intel and Pentium Microprocessors
• Intel 80188
– Introduced in 1982
– They were 16-bit MPs
– They had additional components like
• Interrupt Controller
• Clock Generator
• Local Bus Controller
• Counters
101
Series of Intel and Pentium Microprocessors
• Intel 80288
– Introduced in 1982
– It was also 16-bit MP
– It could address 16 MB of memory
– It could execute 4 million instructions per second
– Its clock speed was 8 MHz
102
Series of Intel and Pentium Microprocessors
• Intel 80388
– Introduced in 1986
– It was first 32-bit MP
– It could address 4 GB of memory
– Different versions of 80386 is
• 80386 SX
• 80386 SL / 80386 SLC
• 80386 EX
103
Series of Intel and Pentium Microprocessors
• Intel 80488
– Introduced in 1989
– It was also 32-bit MP
– It had 1.2 million transistors
– Cache memory was introduced
104
Series of Intel and Pentium Microprocessors
• Intel Pentium
– Introduced in March 22,1993
– It was also 32-bit MP
– It was originally named 80586
– It could execute 110 million instructions per sec
– Cache memory
• 8 KB for instructions
• 8 KB for data
105
Series of Intel and Pentium Microprocessors
106
Series of Intel and Pentium Microprocessors
• Intel Pentium II
– Introduced in 1997
– It was also 32-bit MP
– It could execute 333 million instructions per second
– MMX (Multi-Media-eXtension) technology was
supported
– L2 cache & processor were on one circuit
• Level 3 cache is now the name for the extra cache built into
motherboards between the microprocessor and the main
memory
107
Series of Intel and Pentium Microprocessors
108
Series of Intel and Pentium Microprocessors
109
Series of Intel and Pentium Microprocessors
• Intel Pentium IV
– Introduced in 2000
– It was also 32-bit MP
– L1 cache was of 32 KB & L2 cache of 256 KB
– It had 42 million transistors
– All internal connections were made from
aluminum to copper
110
Series of Intel and Pentium Microprocessors
111
Series of Intel and Pentium Microprocessors
112
8086 Microprocessor
8085 and 8086 Comparison
113
8086 Microprocessor
8086 and 8088 comparison
8086 8088
16-bit Data bus lines obtained by 8-bit Data bus lines obtained by
demultiplexing AD0 – AD15 demultiplexing AD0 – AD7
In MIN mode, pin 28 is assigned the In MIN mode, pin 28 is assigned the
signal M / 𝐈𝐎 signal IO / 𝐌̅
To access higher byte, 𝐁𝐇𝐄 signal is No such signal required, since the
used data width is only 1-byte
114
8086 Microprocessor
Multiprocessor System and Co-processor
115
Microcontrollers
• An embedded microcontroller is a chip which is
a computer processor with all it’s support
functions (clocking and reset), memory, and i/O
built into the device.
Power Control
distribution store
Reset
control
Clock and
timing RAM
instruction decode
program ROM
Data
Add memory
Variable RAM interface unit Processor and built-
Ctrl in registers
Stack RAM
Harvard Architecture Block Diagram
Data
Add instruction
decode
Ctrl
PC Stack
program ROM Variable RAM
Data
Processor and
Add
built-in
registers Ctrl
CISC & RISC
• CISC versus RISC
– RISC stands for “Reduced Instruction Set
Computers”. Instructions are as bare a minimum as
possible to allow users to design their own operations.
– CISC stands for “Complex Instruction Set
Computers”. Large number of instructions, each
carrying out a different permutation of the same
operation.
Microcontroller Memory Types
• Control store
– program memory or firmware. this memory space is the
maximum size of the application that can be loaded into
the microcontroller and that the application also
includes all the low-level code and device interface
necessary to execute an application.
– nonvolatile
– 8051 has 5 different types of control store : none, mask
ROM, PROM, EPROM and EEPROM/Flash
Microcontroller Memory Types
• Variable area (RAM)
– 4 types variable data storage: bits, registers, variable
RAM, PC stack.
– in 8051 they are implemented as SRAM.
– program counter stack
– part of the RAM.
– LIFO memory.
– must be initialized by the starting address of the
stack area.
Microcontroller Features
• Clock/Oscillator
• IO pins
• interrupts
Basic features
• timers
• Peripherals
• ADC inputs
• DAC outputs
• PWM outputs
Comparing µC with µP
• General-purpose
microprocessors contains
o No RAM
Have the advantage of versatility on the amount of
o No ROM RAM, ROM, and I/O ports
o No I/O ports
• Microcontroller has
o CPU (microprocessor)
o RAM
o ROM
o I/O ports
The fixed amount of on-chip ROM, RAM, and
o Timer number of I/O ports and less computing power;
o ADC and other peripherals suitable for very specific purpose with much less
cost.
Applications
Home
Appliances, intercom, telephones, security systems, garage door
openers, answering machines, fax machines, TVs, cable TV tuner, VCR,
camcorder, remote controls, video games, cellular phones, musical
instruments, sewing machines, lighting control, paging, camera, pinball
machines, toys, exercise equipment.
Office
Telephones, security systems, fax machines, microwave, copier, laser
printer, color printer, paging.
Auto
Navigation system, engine control, air bag, ABS, instrumentation,
security system, transmission control, entertainment, climate control,
cellular phone, keyless entry.
Examples of 8-bit µC
– Motorola’s 6811
– Intel’s 8051
– Zilog’s Z8
The 8051 family has the largest number of
– Microchip’s PIC diversified (multiple source) suppliers:
o Intel (original)
o Atmel
o Philips/Signetics
o AMD
o Infineon (formerly Siemens)
o Matra
o Dallas Semiconductor/Maxim
8051 µC
8051 µC Pin Diagram
Pin Description Summery
8051 µC features
• Intel introduced 8051, referred as MCS-51, in 1981
• The 8051 is an 8-bit processor
• The CPU can work on only 8 bits of data at a time
• 1 to 16 MHz clock
• The 8051 has
• 128 bytes of RAM
• 4K bytes of on-chip ROM
• Two timers
• One serial port
• Four I/O ports, each 8 bits wide
• 2 external and 3 internal interrupt sources
8051 µC features
• 8051 instruction cycle consists of 12 clock cycles.
• Application should be run using slower clock speed to reduce power
consumption.
• Dallas version of 8051 is 87C51 has EPROM as control store and CMOS
device:
• 24Mhz
• 12 cycle per instruction
• 4Kbyte of Control store
• 128 bytes of RAM
• 32 I/O lines
• Two 8/16-bit times
• Multiple internal and external interrupts sources
• Programmable serial ports
• Interface upto 128Kbytes of external memory
8051 µC Block Diagram
Frequency
Reference Counters
8051
CPU
External Ports/IO/ Tx Rx
Control
Interrupt ADD/Data
bus
UART Universal Asynchronous Receiver and Transmitter also known as serial port. It is a full
duplex port which able to transmit & receive data simultaneously at different data rates.
MPU Based System-Example
MCU Based System-Example