Chapter 3
Hardware Summary
Lê Chí Thông
• 4KB ROM
• 128 bytes RAM
• Four 8-bit I/O ports
• Two 16-bit timers
• Serial interface
• 64KB external code memory space
Ref. I. Scott Mackenzie
• 64KB external Lêdata memory space
Chí Thông 2
Comparison of MCS-51 Family
Parallel I/O
Serial I/O
Memory Map
256-byte 64-Kbyte
Bit-addressable RAM
(20H-2FH)
Register banks
(00H-1FH) DPTR
Special function
registers
(80H-FFH)
Ref. I. Scott Mackenzie Lê Chí Thông 19
• General purpose RAM
o 80 bytes from addresses 30H to 7FH
o Accessed using direct or indirect addressing modes
Ex:
Direct
MOV A, 5FH
Indirect
MOV R0, #5FH
MOV A, @R0
POP 01H
Ref. I. Scott Mackenzie Lê Chí Thông 27
• Stack Pointer (SP) (Address 81H)
Ex: MOV R1,#15H R1 15H R3 0FH
MOV R3,#0FH
0AH 0AH
PUSH 01H 09H 09H
PUSH 03H 08H SP=08H 15H
POP 01H SP=07H 07H
POP 03H
0AH
SP=09H 0FH
08H 15H
07H
R1 0FH R3 15H
ROM RAM
Lê Chí Thông 43
General
purpose
RAM
(30H-7FH)
Special
function
Bit-
registers
addressable
(SFRs)
RAM
(80H-FFH)
(20H-2FH)
Register
banks
(00H-1FH)
Lê Chí Thông 44
General Purpose RAM
• Address from 30H to 7FH
• The content of one location is 8 bit.
Ex: MOV A,30H
This instruction moves (reads) the content of location 30H
(NOT data 30H) to register A.
A 30H
31H R4
Lê Chí Thông 45
General
purpose
RAM
(30H-7FH)
Special
function
Bit-
registers
addressable
(SFRs)
RAM
(80H-FFH)
(20H-2FH)
Register
banks
(00H-1FH)
Lê Chí Thông 46
Bit Addressable RAM
• Address from 20H to 2FH
• The content of one location is 8 bit.
• Can read/write a byte or a bit
Ex: MOV 20H, A ; writes the content of register A to location 20H.
20H A
Not affected
Lê Chí Thông 47
General
purpose
RAM
(30H-7FH)
Special
function
Bit-
registers
addressable
(SFRs)
RAM
(80H-FFH)
(20H-2FH)
Register
banks
(00H-1FH)
Lê Chí Thông 48
Register Banks
• 4 banks: Bank 0 (default), Bank 1, Bank 2, and Bank 3
• Change register bank by selecting bits RS1 and RS0 (in register PSW)
• One bank includes 8 registers: R0 through R7
o R0 of Bank 0 is location 00H
o …
o R7 of Bank 0 is location 07H
o R0 of Bank 1 is location 08H
o …
o R7 of Bank 1 is location 0FH
o R0 of Bank 2 is location 10H
o …
o R7 of Bank 2 is location 17H
o R0 of Bank 3 is location 18H
o …
o R7 of Bank 3 is location 1FH
Lê Chí Thông 49
Register Banks – Your Turn!
o R1 of Bank 0 is location ………
o R5 of Bank 0 is location ………
o R5 of Bank 1 is location ………
o R1 of Bank 2 is location ………
o R2 of Bank 3 is location ………
o R6 of Bank 3 is location ………
Lê Chí Thông 50
Register Banks
Ex: use default bank (Bank 0)
R5 ≡ 05H
Lê Chí Thông 51
Register PSW (Program Status Word)
Lê Chí Thông 52
Selecting Register Bank
The active bank is selected by bit RS1 (PSW.4) & RS0 (PSW.3)
RS1 RS0 Bank
0 0 0
0 1 1
1 0 2
1 1 3
Register
banks
(00H-1FH)
Lê Chí Thông 54
Special Function Registers (SFRs)
• SFRs include register A, B, PSW, P0, P1, P2, P3, DPTR,
TMOD, SCON …
• All SFRs are accessible by name and direct address.
• Both of them must be coded as direct address
Ex: MOV P1, A ; Output register A to Port 1
MOV 90H, A ; same
Same opcode: F5 90
Ex: MOV R1, ACC
MOV R1, 0E0H
Same opcode: A9 E0
Ex: MOV R1, ACC
MOV R1, A
Same function BUT different opcodes (A9 E0 vs. F9)
Try it: Input Port 2 to register A ……………………………
Lê Chí Thông 55
References
Lê Chí Thông 56