Tải bản đầy đủ (.pdf) (8 trang)

Tập lệnh cơ bản của 8051

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (117.32 KB, 8 trang )


Trang 1/8
TÓM TẮT TẬP LỆNH

GHI CHÚ:


Ký hiệu Giải thích
Rn
đònh đòa chỉ thanh ghi sử dụng R0 – R7 của bank
thanh ghi được chọn
direct đòa chỉ 8 bit trong RAM nội (00H - FFH)
@Ri đònh đòa chỉ gián tiếp sử dụng thanh ghi R0 hoặc R1
#data hằng số 8 bit chứa trong lệnh
#data16 hằng số 16 bit chứa trong lệnh
bit đòa chỉ trực tiếp (8 bit) của một bit
rel offset 8 bit có dấu
addr11 đòa chỉ 11 bit trong trang hiện hành
addr16 đòa chỉ 16 bit
source toán hạng nguồn
destination toán hạng đích

được thay thế bởi …
(…) nội dung của …
((…)) dữ liệu được trỏ bởi …
i đònh đòa chỉ gián tiếp sử dụng R0 (i=0) hay R1 (i=1)
n
2
n
1
n


0
mã chọn thanh ghi R0 – R7 (000=R0, 001=R1, …)
d
7
d
6
…d
1
d
0
các bit dữ liệu
a
15
a
14
…a
1
a
0
các bit đòa chỉ
b
7
b
6
…b
1
b
0
đòa chỉ của 1 bit
r

7
r
6
…r
1
r
0
đòa chỉ tương đối 8 bit








Trang 2/8
NHÓM LỆNH SỐ HỌC

Mã lệnh

Mã gợi nhớ

d
7
d
6
d
5
d

4
d
3
d
2
d
1
d
0


Hex
Số
chu
kỳ
máy

Giải thích
ADD A, Rn 0 0 1 0 1 n
2
n
1
n
0
28-2F 1 (A) ← (A) + (Rn)
ADD A, direct 0
a
7
0
a

6

1
a
5

0
a
4
0
a
3
1
a
2
0
a
1
1
a
0
25
Byte2
1 (A) ← (A) + (direct)
ADD A, @Ri 0 0 1 0 0 1 1 i 26-27 1 (A) ← (A) + ((Ri))
ADD A, #data 0
d
7
0
d

6
1
d
5
0
d
4
0
d
3
1
d
2
0
d
1
0
d
0
24
Byte2
1 (A) ← (A) + #data
ADDC A, Rn 0 0 1 1 1 n
2
n
1
n
0
38-3F 1 (A) ← (A) + (C) + (Rn)
ADDC A, direct 0

a
7
0
a
6

1
a
5

1
a
4
0
a
3
1
a
2
0
a
1
1
a
0
35
Byte2
1 (A) ← (A) + (C) + (direct)
ADDC A, @Ri 0 0 1 1 0 1 1 i 36-37 1 (A) ← (A) + (C) + ((Ri))
ADDC A, #data 0

d
7
0
d
6
1
d
5
1
d
4
0
d
3
1
d
2
0
d
1
0
d
0
34
Byte2
1 (A) ← (A) + (C) + #data
SUBB A, Rn 1 0 0 1 1 n
2
n
1

n
0
98-9F 1 (A) ← (A) − (C) − (Rn)
SUBB A, direct 1
a
7
0
a
6

0
a
5

1
a
4
0
a
3
1
a
2
0
a
1
1
a
0
95

Byte2
1 (A) ← (A) − (C) − (direct)
SUBB A, @Ri 1 0 0 1 0 1 1 i 96-97 1 (A) ← (A) − (C) − ((Ri))
SUBB A, #data 1
d
7
0
d
6
0
d
5
1
d
4
0
d
3
1
d
2
0
d
1
0
d
0
94
Byte2
1 (A) ← (A) − (C) − #data

INC A 0 0 0 0 0 1 0 0 04 1 (A) ← (A) + 1
INC Rn 0 0 0 0 1 n
2
n
1
n
0
08-0F 1 (Rn) ← (Rn) + 1
INC direct 0
a
7
0
a
6

0
a
5

0
a
4
0
a
3
1
a
2
0
a

1
1
a
0
05
Byte2
1 (direct) ← (direct) + 1
INC @Ri 0 0 0 0 0 1 1 I 06-07 1 ((Ri)) ← ((Ri)) + 1
INC DPTR 1 0 1 0 0 0 1 1 A3 2 (DPTR) ← (DPTR) + 1
DEC A 0 0 0 1 0 1 0 0 14 1 (A) ← (A) − 1
DEC Rn 0 0 0 1 1 n
2
n
1
n
0
18-1F 1 (Rn) ← (Rn) − 1
DEC direct 0
a
7
0
a
6

0
a
5

1
a

4
0
a
3
1
a
2
0
a
1
1
a
0
15
Byte2
1 (direct) ← (direct) − 1
DEC @Ri 0 0 0 1 0 1 1 I 16-17 1 ((Ri)) ← ((Ri)) − 1
MUL AB 1 0 1 0 0 1 0 0 A4 4 (A) ← byte thấp của (A) x (B)
(B) ← byte cao của (A) x (B)
DIV AB 1 0 0 0 0 1 0 0 84 4 (A) ← phần nguyên của (A)/(B)
(B) ← phần dư của (A)/(B)
DA A 1 1 0 1 0 1 0 0 D4 1 Nội dung thanh ghi A là số
BCD
Nếu [(A
3 - 0
) > 9] OR [(AC) = 1]
thì (A
3 - 0
) ← (A
3 - 0

) + 6
Nếu [(A
7 - 4
) > 9] OR [(C) = 1]
thì (A
7 - 4
) ← (A
7 - 0
) + 6

NHÓM LỆNH LOGIC

Mã lệnh

Mã gợi nhớ
d
7
d
6
d
5
d
4
d
3
d
2
d
1
d

0



Hex
Số
chu
kỳ
máy

Giải thích
ANL A, Rn 0 1 0 1 1 n
2
n
1
n
0
58-5F 1 (A) ← (A) AND (Rn)

Trang 3/8
ANL A, direct 0
a
7
1
a
6

0
a
5


1
a
4
0
a
3
1
a
2
0
a
1
1
a
0

55
Byte2
1 (A) ← (A) AND (direct)
ANL A, @Ri 0 1 0 1 0 1 1 i 56-57 1 (A) ← (A) AND ((Ri))
ANL A, #data 0
d
7
1
d
6
0
d
5

1
d
4
0
d
3
1
d
2
0
d
1
0d
0

54
Byte2
1 (A) ← (A) AND #data
ANL direct, A 0
a
7
1
a
6

0
a
5

1

a
4
0
a
3
0
a
2
1
a
1
0
a
0

52
Byte2
1 (direct) ← (direct) AND (A)
ANL direct, #data 0
a
7
d
7
1
a
6
d
6

0

a
5
d
5

1
a
4
d
4
0
a
3
d
3
0
a
2
d
2
1
a
1
d
1
1
a
0
d
0


53
Byte2
Byte3
2 (direct) ← (direct) AND #data
ORL A, Rn 0 1 0 0 1 n
2
n
1
n
0
48-4F 1 (A) ← (A) OR (Rn)
ORL A, direct 0
a
7
1
a
6

0
a
5

0
a
4
0
a
3
1

a
2
0
a
1
1
a
0

45
Byte2
1 (A) ← (A) OR (direct)
ORL A, @Ri 0 1 0 0 0 1 1 i 46-47 1 (A) ← (A) OR ((Ri))
ORL A, #data 0
d
7
1
d
6
0
d
5
0
d
4
0
d
3
1
d

2
0
d
1
0d
0

44
Byte2
1 (A) ← (A) OR #data
ORL direct, A 0
a
7
1
a
6

0
a
5

0
a
4
0
a
3
0
a
2

1
a
1
0
a
0

42
Byte2
1 (direct) ← (direct) OR (A)
ORL direct, #data 0
a
7
d
7
1
a
6
d
6

0
a
5
d
5

0
a
4

d
4
0
a
3
d
3
0
a
2
d
2
1
a
1
d
1
1
a
0
d
0

43
Byte2
Byte3
2 (direct) ← (direct) OR #data
XRL A, Rn 0 1 1 0 1 n
2
n

1
n
0
68-6F 1 (A) ← (A) XOR (Rn)
XRL A, direct 0
a
7
1
a
6

1
a
5

0
a
4
0
a
3
1
a
2
0
a
1
1
a
0


65
Byte2
1 (A) ← (A) XOR (direct)
XRL A, @Ri 0 1 1 0 0 1 1 i 66-67 1 (A) ← (A) XOR ((Ri))
XRL A, #data 0
d
7
1
d
6
1
d
5
0
d
4
0
d
3
1
d
2
0
d
1
0d
0

64

Byte2
1 (A) ← (A) XOR #data
XRL direct, A 0
a
7
1
a
6

1
a
5

0
a
4
0
a
3
0
a
2
1
a
1
0
a
0

62

Byte2
1 (direct) ← (direct) XOR (A)
XRL direct, #data 0
a
7
d
7
1
a
6
d
6

1
a
5
d
5

0
a
4
d
4
0
a
3
d
3
0

a
2
d
2
1
a
1
d
1
1
a
0
d
0

63
Byte2
Byte3
2 (direct) ← (direct) XOR #data
CLR A 1 1 1 0 0 1 0 0 E4 1 (A) ← 0
CPL A 1 1 1 1 0 1 0 0 F4 1
(A) ← (
A
)
RL A 0 0 1 0 0 0 1 1 23 1 Nội dung của thanh ghi A được
quay trái một bit.


RLC A 0 0 1 1 0 0 1 1 33 1 Nội dung của thanh ghi A và cờ
C được quay trái một bit .



RR A
0 0 0 0 0 0 1 1 03 1 Nội dung của thanh ghi A được
quay phải một bit.
RRC A 0 0 0 1 0 0 1 1 13 1 Nội dung của thanh ghi A và cờ
C được quay phải một bit .


SWAP A
1 1 0 0 0 1 0 0 C4 1 (A
3 - 0
) ↔ (A
7 - 4
)
A
7
A
6
A
5
A
4
A
3
A
2
A
1
A

0
C A
7
A
6
A
5
A
4
A
3
A
2
A
1
A
0
A
7
A
6
A
5
A
4
A
3
A
2
A

1
A
0
C A
7
A
6
A
5
A
4
A
3
A
2
A
1
A
0

Trang 4/8
NHÓM LỆNH CHUYỂN DỮ LIỆU

Mã lệnh

Mã gợi nhớ
d
7
d
6

d
5
d
4
d
3
d
2
d
1
d
0


Hex
Số
chu
kỳ
máy

Giải thích
MOV A, Rn 1 1 1 0 1 n
2
n
1
n
0
E8-EF 1 (A) ← (Rn)
MOV A, direct 1
a

7
1
a
6

1
a
5

0
a
4
0
a
3
1
a
2
0
a
1
1
a
0
E5
Byte2
1 (A) ← (direct)
MOV A, @Ri 1 1 1 0 0 1 1 i E6-E7 1 (A) ← ((Ri))
MOV A, #data 0
d

7
1
d
6
1
d
5
1
d
4
0
d
3
1
d
2
0
d
1
0
d
0
74
Byte2
1 (A) ← #data
MOV Rn, A 1 1 1 1 1 n
2
n
1
n

0
F8-FF 1 (Rn) ← (A)
MOV Rn, direct 1
a
7
0
a
6

1
a
5

0
a
4
1
a
3
n
2
a
2
n
1
a
1
n
0
a

0
A8-AF
Byte2
2 (Rn) ← (direct)
MOV Rn, #data 0
d
7
1
d
6
1
d
5
1
d
4
1
d
3
n
2
d
2
n
1
d
1
n
0
d

0
78-7F
Byte2
1 (Rn) ← #data
MOV direct, A 1
a
7
1
a
6

1
a
5

1
a
4
0
a
3
1
a
2
0
a
1
1
a
0

F5
Byte2
1 (direct) ← (A)
MOV direct, Rn 1
a
7
0
a
6

0
a
5

0
a
4
1
a
3
n
2
a
2
n
1
a
1
n
0

a
0
88-8F
Byte2
2 (direct) ← (Rn)
MOV direct, direct 1
a
7
a
7
0
a
6
a
6

0
a
5
a
5

0
a
4
a
4
0
a
3

a
3
1
a
2
a
2
0
a
1
a
1
1
a
0
a
0
85
Byte2
Byte3
2 (direct) ← (direct)
(source)
(destination)
MOV direct, @Ri 1
a
7
0
a
6


0
a
5

0
a
4
0
a
3
1
a
2
1
a
1
i
a
0
86-87
Byte2
2 (direct) ← ((Ri))
MOV direct, #data 0
a
7
d
7
1
a
6

d
6

1
a
5
d
5

1
a
4
d
4
0
a
3
d
3
1
a
2
d
2
0
a
1
d
1
1

a
0
d
0
75
Byte2
Byte3
2 (direct) ← #data
MOV @Ri, A 1 1 1 1 0 1 1 i F6-F7 1 ((Ri)) ← (A)
MOV @Ri, direct 1
a
7
0
a
6

1
a
5

0
a
4
0
a
3
1
a
2
1

a
1
i
a
0
A6-A7
Byte2
2 ((Ri)) ← (direct)
MOV @Ri, #data 0
d
7
1
d
6
1
d
5
1
d
4
0
d
3
1
d
2
1
d
1
i

d
0
76-77
Byte2
1 ((Ri)) ← #data
MOV DPTR, #data16 1
d
7
d
7
0
d
6
d
6

0
d
5
d
5

1
d
4
d
4
0
d
3

d
3
0
d
2
d
2
0
d
1
d
1
0
d
0
d
0
90
Byte2
Byte3
2 (DPTR) ← #data
15 – 0

(DPH) ← #data
15 – 8

(DPL) ← #data
7 – 0

XCH A, Rn 1 1 0 0 1 n

2
n
1
n
0
C8-CF 1 (A) ↔ (Rn)
XCH A, direct 1
a
7
1
a
6

0
a
5

0
a
4
0
a
3
1
a
2
0
a
1
1

a
0
C5
Byte2
1 (A) ↔ (direct)
XCH A, @Ri 1 1 0 0 0 1 1

i

C6-C7 1 (A) ↔ ((Ri))
XCHD A, @Ri 1 1 0 1 0 1 1

i

D6-D7 1 (A
3 – 0
) ↔ ((Ri
3 – 0
))
PUSH direct 1
a
7
1
a
6

0
a
5


0
a
4
0
a
3
0
a
2
0
a
1
0
a
0
C0
Byte2
2 (SP) ← (SP) + 1
((SP)) ← (direct)
POP direct 1
a
7
1
a
6

0
a
5


1
a
4
0
a
3
0
a
2
0
a
1
0
a
0
D0
Byte2
2 (direct) ← ((SP))
(SP) ← (SP) – 1
MOVX A,@Ri 1 1 1 0 0 0 1 i E2-E3 2 (A) ← ((Ri)) RAM ngoài
MOVX A,@DPTR 1 1 1 0 0 0 0 0 E0 2 (A) ← ((DPTR)) RAM ngoài
MOVX @Ri, A 1 1 1 1 0 0 1 i F2-F3 2 ((Ri)) ← (A) RAM ngoài
MOVX @DPTR, A 1 1 1 1 0 0 0 0 F0 2 ((DPTR)) ← (A) RAM ngoài
MOVC A,@A+DPTR 1 0 0 1 0 0 1 1 93 2 (A) ← ((A)+(DPTR))
MOVC A,@A+PC 1 0 0 0 0 0 1 1 83 2 (A) ← ((A)+(PC))


Trang 5/8
NHÓM LỆNH CHUYỂN ĐIỀU KHIỂN


Mã lệnh

Mã gợi nhớ
d
7
d
6
d
5
d
4
d
3
d
2
d
1
d
0



Hex
Số
chu
kỳ
máy

Giải thích
ACALL addr11


a
10
a
7
a
9
a
6

a
8
a
5

1
a
4

0
a
3

0
a
2

0
a
1


1
a
0

Byte1
Byte2
2 (PC) ← (PC) + 2
(SP) ← (SP) +1
((SP)) ← (PC
7 - 0
)
(SP) ← (SP) +1
((SP)) ← (PC
15 - 8
)
(PC) ← đòa chỉ trang
LCALL addr16

0
a
15
a
7
0
a
14
a
6


0
a
13
a
5

1
a
12
a
4

0
a
11
a
3

0
a
10
a
2

1
a
9
a
1


0
a
8
a
0

12
Byte2
Byte3
2 (PC) ← (PC) + 3
(SP) ← (SP) +1
((SP)) ← (PC
7 - 0
)
(SP) ← (SP) +1
((SP)) ← (PC
15 - 8
)
(PC) ← addr
15 - 0
RET 0 0 1 0 0 0 1 0 22 2 (PC
15 - 8
) ← ((SP))
(SP) ← (SP) − 1
(PC
7 - 0
) ← ((SP))
(SP) ← (SP) − 1
RETI 0 0 1 1 0 0 1 0 32 2 (PC
15 - 8

) ← ((SP))
(SP) ← (SP) − 1
(PC
7 - 0
) ← ((SP))
(SP) ← (SP) − 1
AJMP addr11 a
10
a
7
a
9
a
6

a
8
a
5

0
a
4

0
a
3

0
a

2

0
a
1

1
a
0

Byte1
Byte2
2 (PC) ← (PC) + 2
(PC
10 - 0
) ← đòa chỉ trang
LJMP addr16

0
a
15
a
7
0
a
14
a
6

0

a
13
a
5

0
a
12
a
4

0
a
11
a
3

0
a
10
a
2

1
a
9
a
1

0

a
8
a
0

02
Byte2
Byte3
2 (PC) ← addr
15 - 0
SJMP rel 1

r
7
0

r
6

0

r
5

0
r
4

0
r

3

0
r
2

0
r
1

0
r
0

80
Byte2
2 (PC) ← (PC) + 2
(PC) ← (PC) + rel
JMP @A+DPTR 0 1 1 1 0 0 1 1 73 2 (PC) ← (A) + (DPTR)
JZ rel 0

r
7
1

r
6

1


r
5

0
r
4

0
r
3

0
r
2

0
r
1

0
r
0

60
Byte2
2 (PC) ← (PC) + 2
Nếu (A) = 0
thì (PC) ← (PC) + rel
JNZ rel 0


r
7
1

r
6

1

r
5

1
r
4

0
r
3

0
r
2

0
r
1

0
r

0

70
Byte2
2 (PC) ← (PC) + 2
Nếu (A) ≠ 0
thì (PC) ← (PC) + rel
JC rel 0

r
7
1

r
6

0

r
5

0
r
4

0
r
3

0

r
2

0
r
1

0
r
0

40
Byte2
2 (PC) ← (PC) + 2
Nếu (C) = 1
thì (PC) ← (PC) + rel
JNC rel 0

r
7
1

r
6

0

r
5


1
r
4

0
r
3

0
r
2

0
r
1

0
r
0

50
Byte2
2 (PC) ← (PC) + 2
Nếu (C) = 0
thì (PC) ← (PC) + rel
JB bit, rel 0

b
7
r

7
0

b
6
r
6

1

b
5
r
5

0
b
4
r
4

0
b
3
r
3

0
b
2

r
2

0
b
1
r
1

0
b
0
r
0

20
Byte2
Byte3
2 (PC) ← (PC) + 3
Nếu (bit) = 1
thì (PC) ← (PC) + rel
JNB bit, rel 0

b
7
r
7
0

b

6
r
6

1

b
5
r
5

1
b
4
r
4

0
b
3
r
3

0
b
2
r
2

0

b
1
r
1

0
b
0
r
0

30
Byte2
Byte3
2 (PC) ← (PC) + 3
Nếu (bit) = 0
thì (PC) ← (PC) + rel

Trang 6/8
JBC bit, rel 0

b
7
r
7
0

b
6
r

6

0

b
5
r
5

1
b
4
r
4

0
b
3
r
3

0
b
2
r
2

0
b
1

r
1

0
b
0
r
0

10
Byte2
Byte3
2 (PC) ← (PC) + 3
Nếu (bit) = 1
thì (bit) ← 0, (PC) ← (PC) + rel
CJNE A, direct,
rel
1

a
7
r
7
0

a
6
r
6


1

a
5
r
5

1
a
4
r
4

0
a
3
r
3

1
a
2
r
2

0
a
1
r
1


1
a
0
r
0

B5
Byte2
Byte3
2 (PC) ← (PC) + 3
Nếu (A) > (direct) thì (PC) ←
(PC) + rel và (C) ← 0
OR
Nếu (A) < (direct) thì (PC) ←
(PC) + rel và (C) ← 1
CJNE A, #data,
rel
1

d
7
r
7
0

d
6
r
6


1

d
5
r
5

1
d
4
r
4

0
d
3
r
3

1
d
2
r
2

0
d
1
r

1

0
d
0
r
0

B4
Byte2
Byte3
2 (PC) ← (PC) + 3
Nếu (A) > #data thì (PC) ←
(PC) + rel và (C) ← 0
OR
Nếu (A) < #data thì (PC) ←
(PC) + rel và (C) ← 1
CJNE Rn, #data,
rel
1

d
7
r
7
0

d
6
r

6

1

d
5
r
5

1
d
4
r
4

1
d
3
r
3

n
2
d
2
r
2

n
1


d
1
r
1

n
0

d
0
r
0

B8-BF
Byte2
Byte3
2 (PC) ← (PC) + 3
Nếu (Rn) > #data thì (PC) ←
(PC) + rel và (C) ← 0
OR
Nếu (Rn) < #data thì (PC) ←
(PC) + rel và (C) ← 1
CJNE @Ri,
#data, rel
1

d
7
r

7
0

d
6
r
6

1

d
5
r
5

1
d
4
r
4

0
d
3
r
3

1
d
2

r
2

1
d
1
r
1

i
d
0
r
0

B6-B7
Byte2
Byte3
2 (PC) ← (PC) + 3
Nếu ((Ri)) > #data thì (PC) ←
(PC) + rel và (C) ← 0
OR
Nếu ((Ri)) < #data thì (PC) ←
(PC) + rel và (C) ← 1
DJNZ Rn, rel 1

r
7
1


r
6

0

r
5

1
r
4

1
r
3

n
2
r
2

n
1

r
1

n
0


r
0

D8-DF
Byte2

2 (PC) ← (PC) + 2
(Rn) ← (Rn) − 1
Nếu (Rn) ≠ 0
thì (PC) ← (PC) + rel
DJNZ direct, rel 1

a
7
r
7
1

a
6
r
6

0

a
5
r
5


1
a
4
r
4

0
a
3
r
3

1
a
2
r
2

0
a
1
r
1

1
a
0
r
0


D5
Byte2
Byte3
2 (PC) ← (PC) + 3
(direct) ← (direct) − 1
Nếu (direct) ≠ 0
thì (PC) ← (PC) + rel
NOP 0 0 0 0 0 0 0 0 00 1
(PC) ← (PC) + 1

NHÓM LỆNH XỬ LÝ BIT

Mã lệnh

Mã gợi nhớ
d
7
d
6
d
5
d
4
d
3
d
2
d
1
d

0



Hex
Số
chu
kỳ
máy

Giải thích
CLR C 1 1 0 0 0 0 1 1 C3 1 (C) ← 0
CLR bit 1
b
7

1
b
6

0
b
5

0
b
4

0
b

3

0
b
2

1
b
1

0
b
0

C2
Byte2
1 (bit) ← 0
SETB C 1 1 0 1 0 0 1 1 D3 1 (C) ← 1
SETB bit 1
b
7

1
b
6

0
b
5


1
b
4

0
b
3

0
b
2

1
b
1

0
b
0

D2
Byte2
1 (bit) ← 1
CPL C 1 0 1 1 0 0 1 1 B3 1
(C) ← (
C
)
CPL bit 1
b
7


0
b
6

1
b
5

1
b
4

0
b
3

0
b
2

1
b
1

0
b
0

B2

Byte2
1
(bit) ← (
bit )

Trang 7/8
ANL C, bit 1
b
7

0
b
6

0
b
5

0
b
4

0
b
3

0
b
2


1
b
1

0
b
0

82
Byte2
2 (C) ← (C) AND (bit)
ANL C, /bit 1
b
7

0
b
6

1
b
5

1
b
4

0
b
3


0
b
2

0
b
1

0
b
0

B0
Byte2
2
(C) ← (C) AND (
bit )
ORL C, bit 0
b
7

1
b
6

1
b
5


1
b
4

0
b
3

0
b
2

1
b
1

0
b
0

72
Byte2
2 (C) ← (C) OR (bit)
ORL C, /bit 1
b
7

0
b
6


1
b
5

0
b
4

0
b
3

0
b
2

0
b
1

0
b
0

A0
Byte2
2
(C) ← (C) OR (
bit )

MOV C, bit 1
b
7

0
b
6

1
b
5

0
b
4

0
b
3

0
b
2

1
b
1

0
b

0

A2
Byte2
1 (C) ← (bit)
MOV bit, C 1
b
7

0
b
6

0
b
5

1
b
4

0
b
3

0
b
2

1

b
1

0
b
0

92
Byte2
2 (bit) ← (C)

TÓM TẮT MỘT SỐ THANH GHI CHỨC NĂNG ĐẶC BIỆT
Thanh ghi chế độ đònh thời TMOD (không được đònh đòa chỉ bit)
MSB LSB
Gate
T/C
M1 M0 Gate
T/C
M1 M0

Timer 1

Timer 0
Thanh ghi điều khiển đònh thời TCON (được đònh đòa chỉ bit)
MSB LSB
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

Timer

Interrupt

Thanh ghi điều khiển port nối tiếp SCON (được đònh đòa chỉ bit)
MSB LSB
SM0 SM1 SM2 REN TB8 RB8 TI RI
Thanh ghi cho phép ngắt IE (được đònh đòa chỉ bit)
MSB LSB
EA - (ET2) ES ET1 EX1 ET0 EX0
Thanh ghi ưu tiên ngắt IP (được đònh đòa chỉ bit)
MSB LSB
- - (PT2) PS PT1 PX1 PT0 PX0
Thanh ghi trạng thái chương trình PSW (được đònh đòa chỉ bit)
MSB LSB
CY AC F0 RS1 RS0 OV - P
Thanh ghi điều khiển nguồn PCON (không được đònh đòa chỉ bit)
MSB LSB
SMOD - - - GF1 GF0 PD IDL


Trang 8/8
TÓM TẮT CÁC LỆNH TÁC ĐỘNG LÊN CỜ

Cờ Lệnh
CY OV AC
Ghi chú
ADD x x x
ADDC x x x
SUBB x x x
MUL AB 0 x - (OV) = 1 nếu kết quả > 0FFH,
ngược lại (OV) = 0
DIV AB 0 x - (OV) = 1 nếu ban đầu (B) = 0,
ngược lại (OV) = 0

DA A x - -
RLC x - -
RRC x - -
CJNE x - -
SETB C 1 - -
CLR C 0 - -
CPL C x - -
ANL C, bit x - -
ANL C, /bit x - -
ORL C, bit x - -
ORL C, /bit x - -
MOV C, bit x - -
x : tùy thuộc vào kết quả.
- : không bò tác động bởi lệnh.
BẢNG CÁC VECTOR NGẮT

Nguyên nhân ngắt Cờ Đòa chỉ vector ngắt
Reset hệ thống RST 0000H
Ngắt ngoài 0 IE0 0003H
Ngắt timer 0 TF0 000BH
Ngắt ngoài 1 IE1 0013H
Ngắt timer 1 TF1 001BH
Ngắt port nối tiếp RI hoặc TI 0023H
BẢNG CÁC TỐC ĐỘ BAUD

Tốc độ baud Tần số
thạch anh
SMOD Giá trò nạp
cho TH1
Tốc độ baud

thực tế
Sai số
9600 12,000MHz 1 -7 (F9H) 8923 7%
2400 12,000MHz 0 -13 (F3H) 2404 0,16%
1200 12,000MHz 0 -26 (E6H) 1202 0,16%
19200 11,059MHz 0 -3 (FDH) 19200 0
9600 11,059MHz 0 -3 (FDH) 9600 0
2400 11,059MHz 0 -12 (F4H) 2400 0
1200 11,059MHz 0 -24 (E8H) 1200 0

×