ĐH Bách Khoa TP.HCM
Lê Chí Thơng
The 8051 Microcontroller
Lê Chí Thơng
Ref. I. Scott Mackenzie, The 8051 Microcontroller
Instructor
Lê Chí Thơng
Faculty of Electrical and Electronics Engineering
Ho Chi Minh City University of Technology (HCMUT)
Trường Đại Học Bách Khoa - ĐHQG TP.HCM
Email: ;
Website: sites.google.com/site/chithong
Ref. I. Scott Mackenzie
sites.google.com/site/chithong
Lê Chí Thơng
2
1
ĐH Bách Khoa TP.HCM
Lê Chí Thơng
Objectives
• Introduction fundamentals and applications of
microprocessors and microcomputers.
• Architecture, the instruction set, and applications of
8051 microcontroller family
• Basic applications of microprocessors, such as
input/output, analog-digital conversion (ADC), and
digital-analog conversion (DAC), and data acquisition.
Ref. I. Scott Mackenzie
Lê Chí Thơng
3
Grading
• Quizzes and homework assignments: 20%
– Homework is due at the beginning of class
• Mid-term: 30%
• Final: 50%
Ref. I. Scott Mackenzie
sites.google.com/site/chithong
Lê Chí Thơng
4
2
ĐH Bách Khoa TP.HCM
Lê Chí Thơng
Textbooks
• The 8051 Microcontroller, 2nd Edition, I. Scott
MacKenzie, Prentice-Hall, 1995
• The 8051 Microcontroller: Architecture, Programming,
and Applications, Kenneth J. Ayala, West Publishing
Company
Ref. I. Scott Mackenzie
Lê Chí Thơng
5
Chapter 1
Introduction to Microcontrollers
Ref. I. Scott Mackenzie
sites.google.com/site/chithong
Lê Chí Thơng
6
3
ĐH Bách Khoa TP.HCM
Lê Chí Thơng
These are …
embedded systems
An embedded system is a system in which a
processor/microcontroller/computer is embedded to
perform a specific task orLê Chítasks
Ref. I. Scott Mackenzie
Thơng
7
Microprocessors
• Integrated ALU and CU
• No RAM, ROM, I/O on CPU chip itself
• Example: Intel’s x86, Motorola’s 680x0
Control Unit
(CU)
Arithmetic
Logical Unit (ALU)
Central Processing Unit (CPU)
CPU
GeneralPurpose
Microprocessor
Many chips on mother’s board
Data Bus
RAM
ROM
I/O
Port
Timer
Serial
Port
Address Bus
General-Purpose Microprocessor
System
Lê Chí Thơng
Ref. I. Scott Mackenzie
sites.google.com/site/chithong
8
4
ĐH Bách Khoa TP.HCM
FIGURE 1–2
Lê Chí Thơng
Block diagram of a microcomputer system
Architecture of computers
Ref. I. Scott Mackenzie
FIGURE 1–3
Lê Chí Thơng
9
The central processing unit (CPU)
Architecture of CPU
PCProgram counter
Ref. I. Scott Mackenzie
sites.google.com/site/chithong
Lê Chí Thơng
10
5
ĐH Bách Khoa TP.HCM
FIGURE 1–4
Lê Chí Thơng
Bus activity for an opcode fetch cycle
Opcode fetch, decode, execution
Ref. I. Scott Mackenzie
FIGURE 1–5
Lê Chí Thơng
11
Levels of software
Shell, GUI – user
- hardware
Utilities
Booster loader,
BIOS
Keyboard, monitor
Other hardwires
Ref. I. Scott Mackenzie
sites.google.com/site/chithong
Lê Chí Thơng
12
6
ĐH Bách Khoa TP.HCM
FIGURE 1–6
Lê Chí Thơng
Detailed block diagram of a microcomputer system
Ref. I. Scott Mackenzie
Lê Chí Thơng
13
Microcontrollers
• Integrates CPU, RAM, ROM, I/O ports, … on a
single chip
• Sometimes called a "computer on a chip"
• Typically used in embedded applications
• Example: Motorola’s 6811, Intel’s 8051, Zilog’s Z8
and PIC 16X
CPU
RAM ROM
I/O
Port
Serial
Timer COM
Port
Microcontroller
Ref. I. Scott Mackenzie
sites.google.com/site/chithong
A single chip
Lê Chí Thơng
14
7
ĐH Bách Khoa TP.HCM
Lê Chí Thơng
Microcontroller Architectures
Memory
Address Bus
CPU
0
Program
+ Data
Data Bus
2n
Von Neumann
Architecture
Memory
Address Bus
0
Fetch Bus
CPU
Program
Address Bus 0
Data Bus
Ref. I. Scott Mackenzie
Harvard
Architecture
Data
Lê Chí Thơng
15
Embedded System
• Embedded system: the processor is embedded into
that application.
• An embedded product usually uses a microcontroller
to do one task only.
• In an embedded system, there is only one application
software that is typically burned into ROM
Ref. I. Scott Mackenzie
sites.google.com/site/chithong
Lê Chí Thông
16
8
ĐH Bách Khoa TP.HCM
Lê Chí Thơng
Embedded System
sensor
Output interfaces
Sensor conditioning
sensor
Microcontroller
(uC)
actuator
indicator
sensor
Ref. I. Scott Mackenzie
Lê Chí Thơng
17
Representation of Number Systems
• Positive radix, positional number systems
• A number with radix r is represented by a string of
digits:
An - 1An - 2 … A1A0 . A- 1 A- 2 … A- m + 1 A- m
in which 0 < Ai < r and . is the radix point.
• The string of digits represents the power series:
(∑
i=n-1
(Number)r
=
j=-1
) (∑
i
Ai r +
i=0
j=-m
(Integer Portion)
Ref. I. Scott Mackenzie
sites.google.com/site/chithong
)
Aj r j
Lê Chí Thơng
+
(Fraction Portion)
18
9
ĐH Bách Khoa TP.HCM
Lê Chí Thơng
Representation of Number Systems
General
Radix (Base)
Digits
0
1
2
3
Powers of 4
Radix
5
-1
-2
-3
-4
-5
Decimal
Binary
r
10
2
0 => r - 1
0 => 9
0 => 1
r0
r1
r2
r3
r4
r5
r -1
r -2
r -3
r -4
r -5
1
10
100
1000
10,000
100,000
0.1
0.01
0.001
0.0001
0.00001
1
2
4
8
16
32
0.5
0.25
0.125
0.0625
0.03125
Ref. I. Scott Mackenzie
Lê Chí Thơng
19
Decimal (Radix r = 10)
4
0
7
.
6
2
5
102
101
100
.
10-1
10-2
10-3
4x102
0x101
7x100
.
6x10-1
2x10-2
5x10-3
400
0
7
.
0.6
0.02
0.005
400 + 0 + 7 + 0.6 + 0.02 + 0.005 = 407.625
Binary (Radix r = 2)
1
0
1
.
0
1
1
22
21
20
.
2-1
2-2
2-3
1x22
0x21
1x20
.
0x2-1
1x2-2
1x2-3
4
0
1
.
0
0.25
0.125
101.011 B = 4 + 0 + 1 + 0 + 0.25 + 0.125 = 5.375
Ref. I. Scott Mackenzie
sites.google.com/site/chithong
Lê Chí Thơng
20
10
ĐH Bách Khoa TP.HCM
Lê Chí Thơng
Hexadecimal or Hex (Radix r = 16)
Hexadecimal Decimal
0
1
2
3
4
5
6
7
Binary
0
1
2
3
4
5
6
7
Hexadecimal Decimal
0000
0001
0010
0011
0100
0101
0110
0111
8
9
A
B
C
D
E
F
Binary
8
9
10
11
12
13
14
15
1000
1001
1010
1011
1100
1101
1110
1111
5
A
0
.
4
D
1
162
161
160
.
16-1
16-2
16-3
5x162
10x161
0x160
.
4x16-1
13x16-2
1x16-3
1280
160
0
.
0.25
0.0508
0.0002
5A0.4D1
H = 1280 + 160 + 0 +Lê0.25
+ 0.0508 + 0.0002 = 1440.301
Ref. I. Scott Mackenzie
Chí Thơng
21
Converting decimal to binary
8 . 625 D = ? B
8
4
2
1
:2 =
:2 =
:2 =
:2=
4 remainder
2 remainder
1 remainder
0 remainder
0
0
0
1
1 0 0 0 . 1 0 1 B
0.625 x 2 = 1.25 save the integer digit 1
0.25 x 2 = 0.5 save the integer digit 0
0.5 x 2 = 1.0 save the integer digit 1
Ref. I. Scott Mackenzie
sites.google.com/site/chithong
Lê Chí Thơng
22
11
ĐH Bách Khoa TP.HCM
Lê Chí Thơng
Converting decimal to hex
1480.4296875D=?H
1480 : 16 = 92 remainder 8
92 : 16 = 5 remainder 12
5 : 16 = 0 remainder 5
5 C 8 . 6 E H
0.4296875 x 16 = 6.875 save the integer digit 6
0.875
x 16 = 14.0 save the integer digit 14
Ref. I. Scott Mackenzie
Lê Chí Thơng
23
Converting binary to hex
0 0 1 1 1 0 1 1 0 1 0 1 1 1 0 1 . 0 1 1 0 1 0 10 B
3
B
5
D
.
.
E
6
A
H
Converting binary to octal
2
C
9
8
H
0 01011001001.11101000 B
Ref. I. Scott Mackenzie
sites.google.com/site/chithong
Lê Chí Thơng
24
12
ĐH Bách Khoa TP.HCM
Lê Chí Thơng
BCD (Binary Coded Decimal)
Decimal
0
1
2
3
4
5
6
7
8
9
BCD
(8 4 2 1)
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
Ref. I. Scott Mackenzie
Ex:
12 = 0001 0010 (BCD)
39 = 0011 1001 (BCD)
Lê Chí Thơng
25
ASCII Code
b6 b5 b4
b3b2b1b0 Hex
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1 1 Mackenzie
10
Ref. I. Scott
1111
sites.google.com/site/chithong
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
000
001
010
011
100
101
110
111
0
1
2
3
4
5
6
7
NUL
SOH
STX
ETX
EOT
ENQ
ACK
BEL
BS
HT
LF
VT
FF
CR
SO
SI
DLE
DC1
DC2
DC3
DC4
NAK
SYN
ETB
CAN
EM
SUB
ESC
FS
GS
RS
US
SP
0
!
1
”
2
#
3
$
4
%
5
&
6
’
7
(
8
)
9
*
:
+
;
,
<
=
Lê. Chí Thơng >
/
?
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~ 26
DEL
13
ĐH Bách Khoa TP.HCM
Lê Chí Thơng
Boolean (Logical) Operations
a
NOT a
a
b
a AND b
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
a
b
a OR b
a
b
a XOR b
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
Ref. I. Scott Mackenzie
Lê Chí Thơng
27
Applying Boolean Operations
• Force a bit or bits to zero
– Sometimes called "masking out bits"
• Use a "mask" byte with
– 0's in positions to be cleared (forced to 0)
– 1's in positions to be unchanged
• Perform an AND with the mask
– x AND 0 = 0 (domination)
– x AND 1 = x (identity)
Ref. I. Scott Mackenzie
sites.google.com/site/chithong
Lê Chí Thơng
28
14
ĐH Bách Khoa TP.HCM
Lê Chí Thơng
Applying Boolean Operations
• Force a bit or bits to one
– Sometimes called "setting bits"
• Use a "mask" byte with
– 1's in positions to be set (forced to 1)
– 0's in positions to be unchanged
• Perform an OR with the mask
– x OR 0 = x (identity)
– x OR 1 = 1 (domination)
Ref. I. Scott Mackenzie
Lê Chí Thơng
29
Applying Boolean Operations
• Toggle a bit or bits
– Sometimes called "flipping or complementing
bits"
• Use a "mask" byte with
– 1's in positions to be toggled (complemented)
– 0's in positions to be unchanged
• Perform an XOR with the mask
– x XOR 0 = x (identity)
– x XOR 1 = NOT x
Ref. I. Scott Mackenzie
sites.google.com/site/chithong
Lê Chí Thơng
30
15
ĐH Bách Khoa TP.HCM
Lê Chí Thơng
Combining Bits in Separate Bytes
• Bit patterns from two bytes are to be combined
– The important bits of each byte must be aligned with 0 (and
unimportant) bits in the other byte
• The OR of the two bytes, combines them into one
– The bold bits are the important ones:
00110000
OR 00001010
00111010
Ref. I. Scott Mackenzie
Lê Chí Thơng
31
Shifting
• Move bits in a byte to the left or right
– 11011100 shifted left is 10111000
– 11011100 shifted right is 01101110
• In these examples, a zero (0) was brought in to
fill the vacated position
– Variations on the basic shift fill this position
differently
Ref. I. Scott Mackenzie
sites.google.com/site/chithong
Lê Chí Thơng
32
16
ĐH Bách Khoa TP.HCM
Lê Chí Thơng
Rotating
• Move bits in a byte to the left or right in a
circular pattern
– 11011100 rotated left is 10111001
– 11011100 rotated right is 01101110
• In these examples, the bit shifted out is used to
fill the vacated position
– There are some variations of this behavior as well
Ref. I. Scott Mackenzie
Lê Chí Thơng
33
Application of Shifts
• When a byte (or word) is interpreted
numerically (as a binary representation of a
number)…
– Left shift is equivalent to multiplication by 2
– Right shift is equivalent to division by 2
– 5CH shifted left becomes B8H
• 92 * 2 = 184
– 5CH shifted right is 2EH
• 92 / 2 = 46 (remainder if any is thrown away)
Ref. I. Scott Mackenzie
sites.google.com/site/chithong
Lê Chí Thơng
34
17
ĐH Bách Khoa TP.HCM
Lê Chí Thơng
Multiplication Tricks
• Every multiplication can be accomplished by
shifting and adding
– Just regroup using only multiplications by powers
of 2 and additions
• 10 * n = (8 + 2) * n
• =8*n+2*n
– or
• 10 * n = (2 * (4 + 1)) n
• = 2 * (4 * n + n)
Ref. I. Scott Mackenzie
Lê Chí Thơng
35
Memory
• A computer system
component that allows
the storage and retrieval
of data
• Main memory is usually
called RAM
• Memory is usually
organized as a table of
Addresses
bytes or words
are usually
shown in
hexadecimal
Ref. I. Scott Mackenzie
sites.google.com/site/chithong
Lê Chí Thơng
0000
0001
0002
0003
0004
0005
3F
2C
41
FF
00
1E
Data values
are usually
bytes
36
18
ĐH Bách Khoa TP.HCM
Lê Chí Thơng
RAM and ROM
• RAM: Random Access Memory
– Access time does not vary by address
– Read & write memory
– Typically volatile
• ROM: Read Only Memory
– Also a random access memory
– Retains data even when power is removed
Ref. I. Scott Mackenzie
Lê Chí Thơng
37
RAM and ROM
RAM
Ref. I. Scott Mackenzie
sites.google.com/site/chithong
ROM
Lê Chí Thơng
38
19
ĐH Bách Khoa TP.HCM
Lê Chí Thơng
References
• I. Scott Mackenzie, The 8051 Microcontroller
• Nguyễn Trọng Luật, Bài giảng Kỹ Thuật Số
• Các tài liệu trên Internet khơng trích dẫn hoặc khơng ghi tác
giả
Ref. I. Scott Mackenzie
sites.google.com/site/chithong
Lê Chí Thơng
39
20