You are on page 1of 20

H Bch Khoa TP.

HCM

L Ch Thng-www.tinyurl.com/thongchile

The 8051 Microcontroller

L Ch Thng Ref. I. Scott Mackenzie, The 8051 Microcontroller

Instructor
L Ch Thng Faculty of Electrical and Electronics Engineering Ho Chi Minh City University of Technology (i Hc Bch Khoa TP.HCM) Email: chithong@gmail.com; chithong@hcmut.edu.vn Website: www.tinyurl.com/thongchile

Ref. I. Scott Mackenzie

L Ch Thng

H Bch Khoa TP.HCM

L Ch Thng-www.tinyurl.com/thongchile

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 Thng

Grading
Quizzes and homework assignments: 20%
Homework is due at the beginning of class

Mid-term: 30% Final: 50%

Ref. I. Scott Mackenzie

L Ch Thng

H Bch Khoa TP.HCM

L Ch Thng-www.tinyurl.com/thongchile

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 Thng

Chapter 1 Introduction to Microcontrollers

Ref. I. Scott Mackenzie

L Ch Thng

H Bch Khoa TP.HCM

L Ch Thng-www.tinyurl.com/thongchile

These are

embedded systems
An embedded system is a system in which a processor/microcontroller/computer is embedded to perform a specific task or Ch Thng tasks Ref. I. Scott Mackenzie L

Microprocessors
Integrated ALU and CU No RAM, ROM, I/O on CPU chip itself Example: Intels x86, Motorolas 680x0
Control Unit (CU)

Arithmetic Logical Unit (ALU)

Central Processing Unit (CPU) Data Bus

Many chips on mothers board


Serial Port

CPU
GeneralPurpose Microprocessor

RAM

ROM

I/O Port

Timer

Address Bus
Ref. I. Scott Mackenzie

General-Purpose Microprocessor System L Ch Thng

H Bch Khoa TP.HCM

L Ch Thng-www.tinyurl.com/thongchile

FIGURE 12

Block diagram of a microcomputer system

Architecture of computers

Ref. I. Scott Mackenzie

L Ch Thng

FIGURE 13

The central processing unit (CPU)

Architecture of CPU

PCProgram counter

Ref. I. Scott Mackenzie

L Ch Thng

10

H Bch Khoa TP.HCM

L Ch Thng-www.tinyurl.com/thongchile

FIGURE 14

Bus activity for an opcode fetch cycle

Opcode fetch, decode, execution

Ref. I. Scott Mackenzie

L Ch Thng

11

FIGURE 15

Levels of software

Shell, GUI user - hardware

Utilities

Booster loader, BIOS

Keyboard, monitor Other hardwires

Ref. I. Scott Mackenzie

L Ch Thng

12

H Bch Khoa TP.HCM

L Ch Thng-www.tinyurl.com/thongchile

FIGURE 16

Detailed block diagram of a microcomputer system

Ref. I. Scott Mackenzie

L Ch Thng

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: Motorolas 6811, Intels 8051, Zilogs Z8 and PIC 16X
CPU I/O Port RAM ROM Serial Timer COM Port
L Ch Thng

A single chip

Ref. I. Scott Mackenzie

Microcontroller

14

H Bch Khoa TP.HCM

L Ch Thng-www.tinyurl.com/thongchile

Microcontroller Architectures
Memory

Address Bus CPU Data Bus

Program + Data
2n Memory

Von Neumann Architecture

Address Bus CPU Fetch Bus

Program

Address Bus 0 Data Bus


Ref. I. Scott Mackenzie

Harvard Architecture

Data
L Ch Thng 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

L Ch Thng

16

H Bch Khoa TP.HCM

L Ch Thng-www.tinyurl.com/thongchile

Embedded System
Sensor conditioning

Output interfaces

sensor

actuator

sensor

Microcontroller (uC)

indicator

sensor

Ref. I. Scott Mackenzie

L Ch Thng

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:
(Number)r
=

i=n-1

Ai r i +
+
L Ch Thng

) (

j=-1

Aj r j

)
18

i=0

j=-m

(Integer Portion)
Ref. I. Scott Mackenzie

(Fraction Portion)

H Bch Khoa TP.HCM

L Ch Thng-www.tinyurl.com/thongchile

Representation of Number Systems


General Radix (Base) Digits 0 1 2 3 Powers of 4 Radix 5 -1 -2 -3 -4 -5
Ref. I. Scott Mackenzie

Decimal 10 0 => 9 1 10 100 1000 10,000 100,000 0.1 0.01 0.001 0.0001 0.00001
L Ch Thng

Binary 2 0 => 1 1 2 4 8 16 32 0.5 0.25 0.125 0.0625 0.03125


19

r 0 => r - 1 r0 r1 r2 r3 r4 r5 r -1 r -2 r -3 r -4 r -5

Decimal (Radix r = 10) 4


102 4x102 400

0
101 0x101 0

7
100 7x100 7

.
. . .

6
10-1 6x10-1 0.6

2
10-2 2x10-2 0.02

5
10-3 5x10-3 0.005

400 + 0 + 7 + 0.6 + 0.02 + 0.005 = 407.625 Binary (Radix r = 2) 1


22 1x22 4

0
21 0x21 0

1
20 1x20 1

.
. . .

0
2-1 0x2-1 0

1
2-2 1x2-2 0.25

1
2-3 1x2-3 0.125

101.011 B = 4 + 0 + 1 + 0 + 0.25 + 0.125 = 5.375


Ref. I. Scott Mackenzie L Ch Thng 20

10

H Bch Khoa TP.HCM

L Ch Thng-www.tinyurl.com/thongchile

Hexadecimal or Hex (Radix r = 16)


Hexadecimal Decimal 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 Binary 0000 0001 0010 0011 0100 0101 0110 0111 Hexadecimal Decimal 8 9 A B C D E F 8 9 10 11 12 13 14 15 Binary 1000 1001 1010 1011 1100 1101 1110 1111

5
162 5x162 1280

A
161 10x161 160

0
160 0x160 0

.
. . .

4
16-1 4x16-1 0.25

D
16-2 13x16-2 0.0508

1
16-3 1x16-3 0.0002

5A0.4D1 H = 1280 + 160 + 0 +L0.25 + 0.0508 + 0.0002 = 1440.301 Ref. I. Scott Mackenzie Ch Thng 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 L Ch Thng 22

11

H Bch Khoa TP.HCM

L Ch Thng-www.tinyurl.com/thongchile

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 Thng

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 . 6 A H

Converting binary to octal

0 01011001001.11101000 B
Ref. I. Scott Mackenzie L Ch Thng 24

12

H Bch Khoa TP.HCM

L Ch Thng-www.tinyurl.com/thongchile

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

Ex:

12 = 0001 0010 (BCD) 39 = 0011 1001 (BCD)

Ref. I. Scott Mackenzie

L Ch Thng

25

ASCII Code
b6 b5 b4 000 b3b2b1b0 Hex 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 Ref. I. Scott Mackenzie 1111 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI 001 1 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US 010 2 011 3 100 4 @ A B C D E F G H I J K L M N O 101 5 P Q R S T U V W X Y Z [ \ ] ^ _ 110 6 ` a b c d e f g h i j k l m n o 111 7 p q r s t u v w x y z { | } ~ 26 DEL

SP 0 ! 1 2 # 3 $ 4 % 5 & 6 7 ( 8 ) 9 * : + ; , < = . Ch Thng > L / ?

13

H Bch Khoa TP.HCM

L Ch Thng-www.tinyurl.com/thongchile

Boolean (Logical) Operations


a 0 1 NOT a 1 0 a 0 0 1 1 a 0 0 1 1
Ref. I. Scott Mackenzie

b 0 1 0 1
b 0 1 0 1

a AND b 0 0 0 1
a XOR b 0 1 1 0
27

b 0 1 0 1

a OR b 0 1 1 1
L Ch Thng

a 0 0 1 1

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

L Ch Thng

28

14

H Bch Khoa TP.HCM

L Ch Thng-www.tinyurl.com/thongchile

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 Thng

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 L Ch Thng 30

15

H Bch Khoa TP.HCM

L Ch Thng-www.tinyurl.com/thongchile

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 Thng

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

L Ch Thng

32

16

H Bch Khoa TP.HCM

L Ch Thng-www.tinyurl.com/thongchile

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 Thng

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

L Ch Thng

34

17

H Bch Khoa TP.HCM

L Ch Thng-www.tinyurl.com/thongchile

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 Thng

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
Ref. I. Scott Mackenzie L Ch Thng

0000 0001 0002 0003 0004 0005

3F 2C 41 FF 00 1E
Data values are usually bytes
36

are usually shown in hexadecimal

18

H Bch Khoa TP.HCM

L Ch Thng-www.tinyurl.com/thongchile

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 Thng

37

RAM and ROM


RAM ROM

Ref. I. Scott Mackenzie

L Ch Thng

38

19

H Bch Khoa TP.HCM

L Ch Thng-www.tinyurl.com/thongchile

References
I. Scott Mackenzie, The 8051 Microcontroller Nguy n Tr ng Lu t, Bi gi ng K Thu t S Cc ti li u trn Internet khng trch d n ho c khng ghi tc gi

Ref. I. Scott Mackenzie

L Ch Thng

39

20

You might also like