You are on page 1of 13

Chương 3

Tập lệnh Vi điều khiển 8051


Nhóm lệnh xử lý trên bit

Nguyễn Lý Thiên Trường


Tổ chức bộ nhớ dữ liệu nội (internal data) của MCU 8051

Vùng RAM
đa dụng
(30H-7FH)

Vùng
thanh ghi
Vùng RAM
chức năng
được địa chỉ
đặc biệt
hóa từng bit
(SFRs)
(20H-2FH)
(80H-FFH)

Vùng bank
thanh ghi
(00H-1FH)
2
 Các lệnh về bit luôn luôn sử dụng định vị trực tiếp, ngoại trừ
bit CY được dùng mặc định, khi đó bit CY được ký hiệu là C.
 Các địa chỉ bit được ký hiệu bằng một trong 4 cách:
 Địa chỉ hằng số từ 00H-7FH (128 bit trong vùng RAM nội có địa
chỉ byte từ 20H-2FH) và các bit của SFR được địa chỉ hóa từng bit
 Ví dụ: CLR 05H
SETB 90H
 Ký hiệu tên SFR theo sau là dấu . và vị trí bit
 Ví dụ: SETB P1.0
 Ký hiệu địa chỉ byte theo sau là dấu . và vị trí bit
 Ví dụ: CLR 20H.5; SETB 90H.0
 Ký hiệu riêng (hay tên riêng)
 Ví dụ: CLR RS1; SETB RS0
 Bit carry C được sử dụng hầu hết trong các lệnh xử lý bit. Địa chỉ trực
tiếp của C là 0D7H, hoặc PSW.7, hoặc 0D0H.7 hoặc ký hiệu CY.
CLR C
≡ CLR 0D7H
≡ CLR PSW.7
≡ CLR 0D0H.7
≡ CLR CY
Nhóm lệnh xử lý trên bit

Nguyễn Lý Thiên Trường


Ví dụ
Cho biết ý nghĩa, mã máy và thời gian thực
thi (tính theo số chu kỳ máy) của các câu
lệnh sau:
1. CLR C
2. CLR CY
3. CLR PSW.7
4. CLR 0D0H.7
5. CLR 0D7H
6. SETB 90H
7. SETB 30H.1
8. CPL P1.0
9. ANL C,P1.0
10.ORL C,/P1.7
11.XRL C,P1.0
12.MOV C,P1.0
13.MOV P1.7,P1.0
Ví dụ
S Câu lệnh Thuộc câu lệnh Ý nghĩa Mã máy Số
T tổng quát câu lệnh (HEX) MC
T
1 CLR C CLR C CY = 0 C3 1
2 CLR CY CLR bit CY = 0 C2 D7 1
3 CLR PSW.7 CLR bit CY = 0 C2 D7 1
4 CLR 0D0H.7 CLR bit CY = 0 C2 D7 1
5 CLR 0D7H CLR bit CY = 0 C2 D7 1
Ví dụ
S Câu lệnh Thuộc câu lệnh Ý nghĩa Mã máy Số
T tổng quát câu lệnh (HEX) MC
T
1 CLR C CLR C CY = 0 C3 1
2 CLR CY CLR bit CY = 0 C2 D7 1
3 CLR PSW.7 CLR bit CY = 0 C2 D7 1
4 CLR 0D0H.7 CLR bit CY = 0 C2 D7 1
5 CLR 0D7H CLR bit CY = 0 C2 D7 1
6 SETB 90H SETB bit (90H) = 1 D2 90 1
7 SETB 30H.1 SETB bit Không có địa chỉ - -
bit 30H.1
Ví dụ
S Câu lệnh Thuộc câu lệnh Ý nghĩa Mã máy Số
T tổng quát câu lệnh (HEX) MC
T
1 CLR C CLR C CY = 0 C3 1
2 CLR CY CLR bit CY = 0 C2 D7 1
3 CLR PSW.7 CLR bit CY = 0 C2 D7 1
4 CLR 0D0H.7 CLR bit CY = 0 C2 D7 1
5 CLR 0D7H CLR bit CY = 0 C2 D7 1
6 SETB 90H SETB bit (90H) = 1 D2 90 1
7 SETB 30H.1 SETB bit Không có địa chỉ - -
bit 30H.1
8 CPL P1.0 CPL bit P1.0  /P1.0 B2 90 1
9 ANL C,P1.0 ANL C,bit CY  CY AND P1.0 82 90 2
10 ORL C,/P1.7 ORL C,/bit CY  CY OR /P1.0 A0 97 2
11 XRL C,P1.0 Sai cú pháp - -
Ví dụ
S Câu lệnh Thuộc câu lệnh Ý nghĩa Mã máy Số
T tổng quát câu lệnh (HEX) MC
T
1 CLR C CLR C CY = 0 C3 1
2 CLR CY CLR bit CY = 0 C2 D7 1
3 CLR PSW.7 CLR bit CY = 0 C2 D7 1
4 CLR 0D0H.7 CLR bit CY = 0 C2 D7 1
5 CLR 0D7H CLR bit CY = 0 C2 D7 1
6 SETB 90H SETB bit (90H) = 1 D2 90 1
7 SETB 30H.1 SETB bit Không có địa chỉ - -
bit 30H.1
8 CPL P1.0 CPL bit P1.0  /P1.0 B2 90 1
9 ANL C,P1.0 ANL C,bit CY  CY AND P1.0 82 90 2
10 ORL C,/P1.7 ORL C,/bit CY  CY OR /P1.0 A0 97 2
11 XRL C,P1.0 Sai cú pháp - -
12 MOV C,P1.0 MOV C,bit CY  P1.0 A2 90 1
13 MOV P1.7,P1.0 Sai cú pháp - -
Ví dụ
Viết chương trình thực hiện phép XOR logic giữa 2
bit P1.0 với P1.1. Kết quả được chép vào bit P1.2

Cách 1 𝑧 = 𝑥⨁𝑦 = 𝑥 𝑦 + 𝑥𝑦
ORG 0000H
LOOP: MOV C,P1.1 ; CY  P1.1
ANL C,/P1.0 ; CY  P1.1 AND /P1.0
MOV 20H,C ; (20H) = /P1.0 AND P1.1
MOV C,P1.0 ; CY  P1.0
ANL C,/P1.1 ; CY  P1.0 AND /P1.1
ORL C,20H ; CY  (P1.0 AND /P1.1) OR (/P1.0 AND P1.1)
MOV P1.2,C ; P1.2 = P1.0 XOR P1.1
SJMP LOOP
END
Ví dụ
Viết chương trình thực hiện phép XOR logic giữa 2
bit P1.0 với P1.1. Kết quả được chép vào bit P1.2
𝑧 = 𝑥⨁𝑦 = 𝑥 𝑦 + 𝑥𝑦
Cách 2  𝑦 = 0 ⟹ 𝑧 = 𝑥
 𝑦=1⟹𝑧=𝑥

ORG 0000H
LOOP: MOV C,P1.0 ; CY  P1.0
JNB P1.1, KT ; Kiểm tra nếu P1.1 = 0 thì P1.2  P1.0
CPL C ; P1.1 = 1, do đó P1.2  /P1.0
KT: MOV P1.2,C
SJMP LOOP
END
Ví dụ
Viết chương trình thực hiện phép AND logic giữa 2
bit P1.0 với P1.1. Kết quả được chép vào bit P1.2

ORG 0000H
LOOP: MOV C,P1.0
ANL C,P1.1
MOV P1.2,C
SJMP LOOP
END
Ví dụ
Viết chương trình thực hiện sơ đồ logic bên dưới.
Lưu ý: không được phép biến đổi hay rút gọn mạch.

ORG 0000H ORL C,P1.6


LOOP:MOV C,P1.5 MOV P1.7,C
ANL C,/P1.4 SJMP LOOP
CPL C END

You might also like