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

Giáo trình Vi xử lý-Vi điều khiển (Nghề: Điện tử công nghiệp - Trung cấp) - Trường CĐ nghề Việt Nam - Hàn Quốc thành phố Hà Nội

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 (4.06 MB, 174 trang )

ỦY BAN NHÂN DÂN THÀNH PHỐ HÀ NỘI
TRƯỜNG CAO ĐẲNG NGHỀ VIỆT NAM - HÀN QUỐC THÀNH PHỐ HÀ NỘI

TRỊNH THỊ HẠNH (Chủ biên)
NGUYỄN THANH HÀ – TRƯƠNG VĂN HỢI

GIÁO TRÌNH VI XỬ LÝ – VI ĐIỀU KHIỂN
Nghề: Điện tử cơng nghiệp
Trình độ: Trung cấp
(Lưu hành nội bộ)

Hà Nội - Năm 2019

1


LỜI NÓI ĐẦU
Để cung cấp tài liệu học tập cho học sinh - sinh viên và tài liệu cho giáo
viên khi giảng dạy, Khoa Điện tử Trường CĐN Việt Nam - Hàn Quốc thành phố
Hà Nội đã chỉnh sửa, biên soạn cuốn giáo trình “VI XỬ LÝ – VI ĐIỀU
KHIỂN” dành riêng cho học sinh - sinh viên nghề Điện tử công nghiệp. Đây là
môn học kỹ thuật cơ sở trong chương trình đào tạo nghề Điện tử cơng nghiệp
trình độ Trung cấp.
Nhóm biên soạn đã tham khảo các tài liệu: Giáo trình “Vi xử lý” dùng
cho học sinh trung cấp kỹ thuật của tác giả Trần Văn Trọng,Trường ĐHSPKT
TP HCM. Giáo trình “Họ vi điều khiển” Tống văn On, Đại học Bách khoa
TP.HCM 2005và nhiều tài liệu khác.
Mặc dù nhóm biên soạn đã có nhiều cố gắng nhưng khơng tránh được
những thiếu sót. Rất mong đồng nghiệp và độc giả góp ý kiến để giáo trình hồn
thiện hơn
Xin chân thành cảm ơn!


Hà Nội, tháng 09 năm 2019
Chủ biên: Trịnh Thị Hạnh

2


MỤC LỤC
LỜI NĨI ĐẦU ................................................................................................... 1
MỤC LỤC ......................................................................................................... 3
GIÁO TRÌNH MÔ ĐUN .............................................................................. 5
Phần I: VI XỬ LÝ ........................................................................................ 7
Bài 1Tổng quan về các hệ vi xử lý ............................................................... 7
1.1. Lịch sử phát triển các trung tâm vi xử lý: ............................................ 7
1.2. Cấu trúc cơ bản của hệ vi xử lý............................................................ 9
Bài 2Các đơn vi vi xử lý trung tâm............................................................ 11
2.1. Trung tâm vi xử lý P 8085 ............................................................... 11
2.2. Khái niệm và bản chất vật lý của các bus trong hệ vi xử lý ............... 15
2.3. Mạch 3 trạng thái............................................................................... 16
2.4. Ngắt (lnterrupt).................................................................................. 17
2.5. Các tập lệnh của 8085 ........................................................................ 18
Bài 3Bộ nhớ trong của hệ vi xử lý.............................................................. 37
3.1. Bộ nhớ trong hệ vi xử lý .................................................................... 37
3.2. Tổ chức bộ nhớ cho hệ vi xử lý ......................................................... 44
Bài 4Thiết bị vào ra của hệ vi xử lý ........................................................... 49
4.1. Bàn phím HEX (keyboard) ................................................................ 49
4.2. Màn hình (Monitor) ........................................................................... 55
Phần II: VI ĐIỀU KHIỂN ......................................................................... 60
Bài 5Sơ lược về lịch sử và hướng phát triển của vi điều khiển ................ 60
5.1. Lịch sử xuất hiện bộ vi điều khiển 8051 ............................................ 60
5.2. Lĩnh vực và ứng dụng ........................................................................ 62

Bài 6Cấu trúc của họ vi điều khiển 8051 ................................................... 64
6.1. Tổng quan ......................................................................................... 64
6.2. Sơ đồ chân vi điều khiển 8051 ........................................................... 65
6.3. Cấu trúc Port I/O ............................................................................... 71
Bài 7Tập lệnh 8051 ..................................................................................... 75
7.1. Mở đầu .............................................................................................. 75
7.2. Các phương pháp định địa chỉ ........................................................... 77
3


7.3. Các nhóm lệnh................................................................................... 82
Bài 8Bộ định thời ...................................................................................... 116
8.1.Mở đầu ............................................................................................. 116
8.2.Thanh ghi SFR của timer .................................................................. 118
8.3.Các chế độ làm việc .......................................................................... 120
8.4. Nguồn cung cấp xung cho Timer ..................................................... 122
8.5.Khởi động, dừng và điều khiển Timer .............................................. 123
8.6 Khởi tạo và truy xuất thanh ghi Timer .............................................. 123
Bài 9Cổng nối tiếp (serial port) ............................................................... 129
9.1. Mở đầu ............................................................................................ 129
9.2. Thanh ghi điều khiển ....................................................................... 131
9.3. Chế độ làm việc. .............................................................................. 131
9.4. Chế độ 3: UART 9 bit với tốc độ Baud thay đổi ............................. 136
9.4. Khởi tạo và truy xuất thanh ghi PORT nối tiếp ................................ 136
9.5. Truyền thông đa xử lý (Multiprocessor Communications) ............... 138
9.6. Tốc độ baud ..................................................................................... 140
Bài 10Ngắt................................................................................................. 146
10.1. Mở đầu .......................................................................................... 146
10.2.Tổ chức ngắt của 8051 (hình 6.2) .................................................. 147
10.3. Xử lý ngắt...................................................................................... 153

10.4. Thiết kế chương trình sử dụng ngắt ............................................... 156
10.5. Ngắt cổng nối tiếp ......................................................................... 160
10.6. Các cổng ngắt ngoài ...................................................................... 160
10.7. Đồ thị thời gian của ngắt................................................................ 160
Bài 11Phần mềm hợp ngữ ........................................................................ 165
11.1. Mở đầu .......................................................................................... 165
11.2. Hoạt động của trình biên dịch Assembler ...................................... 166
11.3. Cấu trúc chung chương trình hợp ngữ cho 8051 ............................ 167
11.4. Tính biểu thức trong khi hợp dịch .................................................. 169
TÀI LIỆU THAM KHẢO ........................................................................ 174

4


GIÁO TRÌNH MƠ ĐUN
Tên mơ đun: Vi xử lý – Vi điều khiển
Mã số của mô đun: MĐ 23
Thời gian của mô đun: 90 giờ.

(LT: 30 giờ; BT: 55 giờ; KT: 5 giờ)

I. Vị trí, tính chất, ý nghĩa và vai trị của mơ đun
Vị trí của mơ đun: Mơ đun được bố trí dạy cuối chương trình sau khi học
xong các môn học cơ bản như linh kiện điện tử, đo lường điện tử, kỹ thuật xung
- số, điện tử cơng suất....
Tính chất của mơ đun: Là mơ đun bắt buộc.
Ý nghĩa của mô đun: sau khi học xong mơ đun Vi xử lý, người học phải
biết lập trình một số ứng dụng từ đơn giản đến phức tạp và xử lý được các kết
nối máy tính với thiết bị ngoại vi.
Vai trị của mơ đun: Giáo trình mơ đun “Vi xử lý – Vi điều khiển” nhằm

cung cấp cho người học những kiến thức về lập trình và giao tiếp với máy tính
bằng vi xử lý – vi điều khiển.
II. Mục tiêu của mơ đun
Về kiến thức:
- Trình bày được về hệ đếm và mã hóa trong máy tính, tương tác giữa máy
tính và vi xử lý, các bộ vi xử lý intel đang được ứng dụng.
- Giải thích được nguyên lý làm việc các hệ điều khiển ứng dụng vi xử lý.
- Vận hành được các thiết bị và dây chuyền sản xuất dùng vi điều khiển.
- Xác định được các nguyên nhân gây ra hư hỏng xảy ra trong thực tế.
- Kiểm tra và viết được các chương trình điều kiển.
Về kỹ năng:
- Lập trình hợp ngữ một số bài tập cơ bản một cách thành thạo.
- Xử lý được một số dạng kết nối máy tính với vi xử lý và các thiết bị
ngoại vi.
- Phát triển được các hệ điều khiển trên cơ sở khối trung tâm là vi xử lý.
- Vận hành được các thiết bị và dây chuyền sản xuất dùng vi điều khiển.
- Xác định được các nguyên nhân gây ra hư hỏng xảy ra trong thực tế.
Về thái độ:
- Rèn luyện tính tỷ mỉ, chính xác và an tồn vệ sinh công nghiệp
5


III. Nội dung của mô đun

Số
TT

Thời gian
Tên các bài trong mô đun


Tổng
số


thuyết

Thực
hành

A

Phần 1. Vi xử lý

30

11

1

Tổng quan về các hệ vi xử lý

3

3

2

Các đơn vị vi xử lý trung tâm

8


3

5

3

Bộ nhớ trong của hệ vi xử lý

8

2

6

4

Thiết bị vào ra của hệ vi xử lý

11

3

7

1

B

Phần 2. Vi điều khiển


60

19

37

4

1

Sơ lược về lịch sử và hướng phát 2
triển của vi điều khiển

2

2

Cấu trúc họ vi điều khiển 8051

6

3

3

3

Tập lệnh 8051


10

2

7

1

4

Bộ định thời

14

4

9

1

5

Cổng nối tiếp

10

4

5


1

6

Ngắt

10

3

7

7

Phần mềm hợp ngữ

8

1

6

1

Cộng

90

30


55

5

6

18

Kiểm tra*
1


Phần I: VI XỬ LÝ
Bài 1
Tổng quan về các hệ vi xử lý
Mục tiêu
- Trình bày được một số hệ đếm, và các mã thường dùng trong hệ vi xử lý.
- Tính tốn, chuyển đổi được các phép tốn nhị phân.
- Trình bày được cách biểu diễn thơng tin trong các hệ vi xử lý.
- Rèn luyện tính tư duy, tác phong trong công nghiệp.
1.1. Lịch sử phát triển các trung tâm vi xử lý:
Bộ vi xử lý là thành phần rất cơ bản không thể thiếu được để tạo nên máy
vi tính và các hệ vi xử lý. Trước khi tìm hiểu cấu trúc của một hệ vi xử lý ta lướt
qua về lịch sử phát triển của các bộ vi xử lý.
Vi xử lý được chế tạo từ các tranzito tích hợp trên một vi mạch tích hợp
đơn. Xuất hiện lần đầu tiên vào những năm đầu của thập kỷ 70 của thế kỷ 20. Sử
dụng mã BCD trên nền 4 bit. Các vi xử lý 4 bit và 8 bit được sử dụng trong các
thiết bị đầu cuối, máy in, các hệ thống tự động...Đến giữa những năm 1970 thì
lần đầu tiên các vi xử lý 8 bit với 16 bit địa chỉ được sử dụng như máy tính đa
mục đích.

Các hãng sản xuất vi xử lý đầu tiên ở thời điểm này là Intel, Texas
Instruments và Garrett AiResearch với ba dịng chip tương ứng: Intel 4004, TMS
1000 và Central Air Data Computer. Đây là những vi xử lý 4 bit.
Sau sự ra đời của các vi xử lý 4 bit thì các hãng cho ra đời các dịng 8 bit,
12 bit, 16 bit, 32 bit, 64 bit.
1.1.1. Thế hệ 1 (1971 - 1973)
Năm 1971, hãng Intel đã cho ra đời bộ vi xử lý đầu tiên là 4004 (4 bit số
liệu, 12 bit địa chỉ). Sau đó Intel và các hãng khác lần lượt cho ra đời các bộ vi
xử lý khác: 4040 (4 bit) và 8008 (8 bit) của Intel,PPS-4 (4 bit) của Rockwell
International,IPM-16 (16 bit) của NationalSemiconductor.
Đặc điểm chung của các bộ vi xử lý thế hệ này là:
Độ dài từ thường là 4 bit (có thể dài hơn).
Cơng nghệ chế tạo PMOS có mật độ tích hợp nhỏ.
Tốc độ thực hiện lệnh: 10 - 60 μs/lệnh với tần số đồng hồ
fclk = 0,1 - 0,8 MHz.
7


Tập lệnh đơn giản và phải cần nhiều vi mạnh phụ trợ mới tạo nên một hệ
vi mạch hoàn chỉnh.
1.1.2. Thế hệ 2 (1974 – 1977)
Các bộ vi xử lý đại diện cho thế hệ này là các bộ vi xử lý 8 bit 8080 và
8085 của Intel, 6800 và 6809 của Motorola và Z80 của Zilog.
Đặc điểm:
Độ dài từ là 8 bit, đồng thời tập lệnh phong phú hơn thế hệ trước.
Cơng nghệ chế tạo: NMOS (có mật độ tích hợp cao hơn PMOS) hoặc
CMOS.
Tốc độ thực hiện lệnh: 1-8 μs/lệnh với tần số đồng hồ fclk = 1-5 MHz.
1.1.3. Thế hệ 3 (1978 - 1982)
Các bộ vi xử lý đại diện cho thế hệ này là các bộ vi xử lý 16 bit 8086,

80186, 80286 của Intel, 68000 và 68010 của Motorola.
Đặc điểm:
Độ dài từ là 16 bit.
Công nghệ chế tạo: HMOS (có mật độ tích hợp cao hơn PMOS) hoặc CMOS.
Tốc độ thực hiện lệnh: 0,1-1 μs/lệnh với tần số đồng hồ fclk =5-10 MHz.
Tập lệnh đa dạng với các lệnh nhân, lệnh chia và các lệnh thao tác với
chuỗi ký tự.
1.1.4. Thế hệ 4 (1983)
Các bộ vi xử lý đại diện cho thế hệ này là các bộ vi xử lý 32 bit 80386,
80486 và 64 bit Pentium của Intel, các bộ vi xử lý 32 bit 68020, 68030, 68040,
68060 của Motorola.
Đặc điểm của các bộ vi xử lý thế hệ này là bus địa chỉ đều là 32 bit (có khả
năng đánh địa chỉ cho bộ nhớ tới 4 GB) và có khả năng làm việc với bộ nhớ ảo.
Người ta cũng áp dụng các cơ chế hoặc các cấu trúc đã được sử dụng trong các
máy tính lớn vào các bộ vi xử lý: cơ chế xử lý xen kẽ liên tục dạng mã lệnh
(pipeline), bộ nhớ cache (bộ nhớ ẩn), bộ nhớ ảo. Các bộ vi xử lý thế hệ này đều
có bộ quản lý bộ nhớ (MMU) và nhiều khi cả bộ đồng xử lý toán học ở bên
trong. Phần lớn các bộ vi xử lý thế hệ này đều sản xuất bằng công nghệ
HCMOS.
Bên cạnh các bộ vi xử lý vạn năng truyền thống thường được sử dụng để
xây dựng các máy tính với tập lệnh đầy đủ (Complex Instruction Set Computer,
8


CISC) mà chúng ta đã nói ở trên, trong thời gian này cũng đã xuất hiện các bộ vi
xử lý cải tiến dùng để xây dựng các máy tính với tập lệnh rút gọn (Reduced
Instruction Set Computer, RISC) với nhiều tính năng có thể so sánh với các
máy tính lớn ở thế hệ trước. Đó là các bộ vi xử lý Alpha của hãng Digital,
PowerPC của ba hãng Apple-Motorola-IBM.
1.2. Cấu trúc cơ bản của hệ vi xử lý

Một vi xử lý về cơ bản gồm có 3 khối chức năng: đơn vị thực thi
(Execution), bộ điều khiển tuần tự (Sequencer) và bus giao tiếp.
- Đơn vị thực thi: Xử lý các lệnh số học và logic. Các toán hạng liên quan
có mặt ở các thanh ghi dữ liệu hoặc địa chỉ hoặc từ bus nội.
- Bộ điều khiển tuần tự: Bao gồm bộ giải mã lệnh (Intrustruction Decoder)
và bộ đếm chương trình (Program Counter).
Bộ đếm chương trình gọi các lệnh chương trình tuần tự.
Bộ giải mã lệnh thì khởi động các bước cần thiết để thực hiện lệnh. Bộ
điều khiển tuần tự tạo thành một hệ thống logic tuần tự mà cách thức hoạt động
của nó được chứa trong ROM. Nội dung chứa trong ROM được gọi là vi chương
trình. Các lệnh bên ngoài trong trường hợp này xác định các địa chỉ vào vi
chương trình. Khi chương trình bắt đầu thực hiện thì bộ đếm chương trình PC
được đặt ở địa chỉ bắt đầu, thường là địa chỉ 0000H (với xi xử lý 8 bit). Địa chỉ
này được chuyển đến bộ nhớ thông qua bus địa chỉ (Address Bus). Khi tín hiệu
Read được đưa vào ở bus địa chỉ nội dung của bộ nhớ liên quan xuất hiện trên
bus dữ liệu (data bus) và sẽ được chứa ở bộ giải mã lệnh (Instruction Decoder).
Sau khi khởi động một số bước cần thiết để thực thi lệnh nhờ một số chu kỳ máy
và khi lệnh đã thực thi, thì bộ giải mã lệnh làm cho bộ đếm chương trình chỉ đến
địa chỉ của lệnh kế.

Hình 1.14. Sơ đồ khối một máy tính cổ điển

9


Để tạo thành một hệ vi xử lý hoàn chỉnh, bộ vi xử lý cần phải kết hợp với
các bộ phận điện tử khác như bộ nhớ và các bộ phối ghép vào/ra. Cần lưu ý rằng
máy vi tính chỉ là một trong những ứng dụng cụ thể của hệ vi xử lý. Dưới đây là
sơ đồ khối tổng quát của một hệ vi xử lý.
Trong sơ đồ này ta thấy các khối chức năng chính của hệ vi xử lý gồm có:

+

Khối xử lý trung tâm (Central Processing Unit, CPU)

+

Bộ nhớ trong RAM-ROM (Memory, M)

+

Khối phối ghép với các thiết bị ngoại vi (Input/Output, I/O)

+

Các bus truyền thông tin giữa các khối.

10


Bài2
Các đơn vi vi xử lý trung tâm
Mục tiêu
- Trình bày được cấu trúc của các đơn vị vi xử lý đã học.
- Phân tích các chương trình có sẵn
- Thực hiện các ứng dụng thực tế thông qua các mơ hình.
- Rèn luyện tính tỷ mỉ, chính xác, an tồn và vệ sinh cơng nghiệp
2.1. Trung tâm vi xử lý P 8085

Hình 2.1. Sơ đồ khối cấu trúc của µP8085


Hình 2.1 là sơ đồ nối chân của µP8085. Khác với các loại µP xuất hiện
trước đó như µP8008 hay µP8080, µP8085 có những bước phát triển có tính đột
phá như sau:
11


Hình 2.2. Sơ đồ chân của µP8085

Cơ cấu ngắt theo nhiều mức khác nhau được hình thành qua một khối điều
khiển ngắt, tạo ra một vector ngắt tránh được sự chèn nhau do lệnh RET N trên
BUS dữ liệu. Tín hiệu nhận biết yêu cầu ngắt INTA được tạo bởi khối điều
khiển ngắt, chứ không phải từ mạch phụ 8228 như ở µP8080.
Các tín hiệu điều khiển ghi/đọc WR và RD được tạo ra từ bộ định thời và
điều khiển chức năng. Các tín hiệu INTA ,WR và RD được tạo ngay trong
CPU, chứ không do mạch phụ trợ bên ngồi.
µP8085 có mạch tạo xung đồng hồ được tích hợp ngay trong CPU.
Khối chức năng điều khiển vào/ra nối tiếp được tích hợp cũng cho phép
µP8085 thực hiện các lệnh vào/ra dữ liệu nối tiếp mà nhiều khi không cần đến
sự hỗ trợ của vi mạch chuyên dụng.
Đặc biệt hơn, µP8085 có hai thanh ghi đệm địa chỉ, đó là thanh ghi đệm
A5 -A8. Và thanh ghi đệm AD7-AD0 cho cả dữ liệu và địa chỉ. Việc dồn kênh
như trên tạo điều kiện cho những chân chức năng khác được tạo thêm, làm tăng
thêm sức mạnh cho CPU.
12


Đặc tính của vi xử lý 8085:
Nguồn cung cấp: 5 V ± 10%.
Dòng điện cực đại: Imax = 170 mA.
Tần số xung clock chuẩn: 6,134 Mhz.

Độ dài dữ liệu là 8 bit.
Khả năng truy xuất ô nhớ trực tiếp là 64Kb.
Vi xử lý có thể tính số nhị phân, thập phân.
Vi xử lý có 8 đường dữ liệu và 16 đường địa chỉ.
Các đường điều khiển: RD\, WR\, IO/M\, Clock Out, Reset Out và 4 ngắt.
A8 – A15. Nhóm tín hiệu ra: 8 bit cao của địa chỉ, các chân này là các chân
được nối với bên ngoài qua mạch 3 trạng thái. Các phần tử 3 trạng thái sẽ được
đặt ở trạng thái high-z trong các trường hợp một trong các tín hiệu HOLD hay
HALT là tích cực
AD0 – AD7. Nhóm tín hiệu dồn kênh 3 trạng thái. Ở giai đoạn đầu của chu
kỳ máy, T1 của M1, sẽ là byte thấp của 16 bộ địa chỉ
ALE (Address Enable). Tín hiệu ra qua mạch 3 trạng thái. Được sử dụng
để chốt byte thấp của tín hiệu địa chỉ (A0 - A7) Tín hiệu này được tạo ra trong
giai đoạn đầu tiên của chu kỳ máy, T1 của M1, và cũng được dùng để chốt các
tín hiệu trạng thái S0 và S1 khi cần thiết.
S0 và S1 (Data BUS Status). Là các tín hiệu chỉ trạng thái của các chân
thuộc BUS dữ liệu trong mỗi chu kỳ máy. Tổ hợp của hai tín hiệu này cũng cho
biết trạng thái của CPU.
S0

S1

Hoạt động của BUS dữ liệu

0

0

Trạng thái HALT


0

1

CPU đang thực hiện thao tác WRITE

1

0

CPU đang thực hiện thao tác READ

1

1

CPU đang thực hiện thao tác nhận lệnh Instruction fetch.

RD (Read). Chân ra 3 trạng thái. Nằm trong nhóm tín hiệu điều khiển. Tín
hiệu tích cực khi CPU tiến hành đọc dữ liệu từ bộ nhớ hoặc từ thiết bị ngoại vi.
Trong chế độ HALT hoặc DMA, chân ra này ở trạng thái high-z.
WR (Write). Chân ra 3 trạng thái. Nằm trong nhóm tín hiệu điều khiển. Tín
hiệu tích cực khi CPU tiến hành ghi dữ liệu vào bộ nhớ hoặc đưa dữ liệu ra thiết bị
ngoại vi. Trong các chế độ HALT hoặc DMA, chân ra này ở trạng thái high-z.
13


IO/M . Trạng thái logic của Ngõ ra này cho biết CPU đang làm việc với
thiết bị ngoại vi hay với bộ nhớ. Nếu là logic "l", CPU đang truy cập thiết bị
vào/ra, còn nếu là "0", CPU đang truy cập bộ nhớ. Kết hệ với hai Ngõ ra RD

và WR để tạo ra các tín hiệu I/OR, , I/OW RD , MEMR và MEMW trong
trường hợp sử dụng địa chỉ tách biệt đối với thiết bị vào/ra. Nằm trong nhóm tín
hiệu điều khiển, nên IO/M cũng là Ngõ ra 3 trạng thái.
Interrupts. µP8085 có ngắt đa mức. Có 5 chân ngắt tất cả: (INTR, RST5.5.
RST6.5, RST7.5 và TRAP). Ngoài chân ngắt không che được là TRAP, các
chân khác đều có thể che hoặc khơng che nhờ lập trình phần mềm.
INTR: Chân nhận yêu cầu ngắt từ bên ngoài, được đáp ứng theo nguyên
tắc polling hoặc vectoring thông qua lệnh RST.
Các yêu cầu ngắt RST. Có 3 Ngõ vào yêu cầu ngắt với các mức ưu tiên
khác nhau là RST7.5, RST6.5 và RST5.5. Khi yêu cầu ngắt xuất hiện tại các
chân này, CPU tự động chuyển đến các vector ngắt tương ứng. Cụ thể như sau:
• RST5.5 là mức ưu tiên thấp nhất, phản ứng theo mức điện áp trên chân
yêu cầu ngắt, địa chỉ vector ngắt này nằm ở ơ nhớ có địa chỉ 2CH.
•RST6.5
Ngắt ưu tiên thấp thứ 2, phản ứng theo mức điện áp trên chân yêu cầu ngắt, địa
chỉ vector ngắt này nằm ở ô nhớ 34H.
• RST7.5 Mức ưu tiên cao nhất. Phản ứng theo sườn lên của xung yêu cầu
ngắt. Sườn lên của xung này tác động lên một flip-flop, mạch này giữ lại u
cầu ngắt cho đến khi được xóa nhờ tín hiệu nhận biết yêu cầu ngắt
Acknowledge. Địa chỉ của vector ngắt này nằm ở ô nhớ 3CH.
TRAP: Là chân nhận yêu cầu ngắt khơng che được (có mức ưu tiên cao
nhất). Địa chỉ của vector ngắt này ở ô nhớ 24H.
INTA . Tín hiệu ra nhận biết yêu cầu ngắt tại chân INTR. Các yêu cầu ngắt
RST5.5, RST6.5, RST7.5 và TRAP không tác động đến INTA .
HOLD. trạng thái logic "1" ở chân này là yêu cầu của thao tác DMA.
Các Ngõ ra RD, WR, IO/M và ALE sẽ được đưa về trạng thái high-z.
HLDA. Tín hiệu nhận biết yêu cầu HOLD.
IN RESET . Logic thấp "0" ở Ngõ vào của chân này yêu cầu tái khởi động
hệ Vi xử lý. Do tác động của tín hiệu RESET IN tích cực, giá trị của thanh đếm
chương trình PC sẽ được nạp lại là 0000H các địa chỉ ngắt và tín hiệu HLDA

cũng được tái thiết lập về giá trị mặc định.
RESET OUT. Ngõ ra nhận biết hệ Vi xử lý được tái khởi động. Dùng tín
hiệu này để tái khởi động toàn bộ hệ thống.
14


READY. Logic "1" ở Ngõ vào này thông báo trạng thái sẵn sàng cung cấp
dữ liệu cho CPU hoặc nhận dữ liệu từ CPU của các thiết bị ngoại vi. SID (Serial
Input Data). Là cổng vào của dữ liệu nối tiếp của hệ Vi xử lý. Bit hiện diện tại
cổng này được đọc vào CPU nhờ lệnh RIM, bit sẽ được đưa vào bit cao của Acc
(MSB).
SOD (Serial Output Data). Bit cao (MSB) của Acc được truyền ra ngoài
chân này khi sử dựng lệnh SIM.
X1, X2. Chân nối thạch anh hoặc một mạch dao động để tạo xung nhịp cho
CPU. Có thể sử dụng thạch anh có tần số dao động trong khoảng từ 0.5 đến
3MHz. CLK. Ngõ ra của xung nhịp, có thể làm xung nhịp cho các thành phần
chức năng khác trong hệ Vi xử lý.
Vcc, Vss. Chân nối nguồn +5V và GND cho µP8085. µP8085,chỉ cần một
nguồn ni duy nhất là +5V, khả năng cung cấp dịng của nguồn cần được thiết
kế tuỳ theo nhu cầu của toàn hệ Vi xử lý.
2.2. Khái niệm và bản chất vật lý của các bus trong hệ vi xử lý
Hoạt động của một hệ Vi xử lý thực chất là việc trao đổi và xử lý các giá
trị nhị phân giữa các thành phần, các khối và các mạch vi điện tử trong toàn bộ
hệ thống. Như đã biết, các giá trị nhị phân (hoặc "0" hoặc "1") được thể hiện qua
mức điện áp so với một chuẩn nhất định. Giá trị "0" tương ứng với mức điện áp
thấp (từ 0V đến +0,8V) và giá trị "1" tương ứng với mức điện áp từ khoảng +3V
đến +5V. Để biểu diễn một số liệu nhị phân, các phần tử mang thông tin được
liên kết kề nhau theo nhóm (ví dụ 1byte là 8 bits). Để đảm nhận công việc di
chuyển các dữ liệu này trong tồn bộ hệ thống, có các đường dây truyền dẫn
điện chuyên dụng được ghép song song thành hệ thống, mỗi dây truyền dẫn

dành riêng cho 1 bit. Tập các đường truyền dẫn dành riêng cho các tín hiệu có
cùng chức danh (dữ liệu, địa chỉ, điều khiển) được gọi là BUS. Như vậy, trong
một hệ Vi xử lý, có ba loại BUS: BUS dữ liệu, BUS địa chỉ và BUS điều khiển.
Các BUS này hợp lại thành BUS hệ thống.
Từ khái niệm trên, dễ dàng suy ra bản chất vật lý của các BUS trong một
hệ Vi xử lý: Đó là các dường truyền dẫn điện, có thể dưới các dạng cáp nhiều
sợi, đường dẫn trong các bảng mạch in v. v... Khả năng và chất lượng dẫn điện
của các đường truyền dẫn này đóng vai trị quan trọng và quyết định đối với hoạt
động của một hệ Vi xử lý. Đường truyền dẫn kém, trở kháng cao có thể gây ra
sự suy giảm của tín hiệu điện dẫn đến các hiện tượng mất mát hoặc sai dữ liệu,
rất nguy hiểm.
BUS là đường dẫn điện nội bộ mà theo đó các tín hiệu được truyền từ
bộ phận này đến các bộ phận khác trong hệ Vi xừ lý. Có 3 loại BUS trong một
hệ Vi xử lý cũng nhu trong máy tính.
15


2.3. Mạch 3 trạng thái
Trong hệ Vi xử lý, có nhiều khối chức năng cần thông tin, nhưng tại một
thời điểm, bao giờ cũng chỉ có một khối đưa tín hiệu ra (dữ liệu) và một số hạn
chế các khối thu nhận tín hiệu. Thay vì nối dây dẫn liên kết các khối qua từng
đơi phần tử một, các tín hiệu này được đưa lên BUS. Với các cổng logic thông
thường, không thể nối trực tiếp chúng lên cùng một đường dây vì sẽ xảy ra
tranh chấp BUS vì đoản mạch. Ví dụ Ngõ ra của phần tử A là "1" trong lúc
Ngõ ra của phần tử B là "0". (Hình 2.4 và hình 2.5). Các Ngõ ra của loại mạch
này đều theo cấu trúc pull-up, nghĩa là có hai transistor được nối nối tiếp với
nhau (xem hình vẽ), emitter của transistor này qua một diode rồi đến đầu ra, đến
collector của transistor kia. Với hai trạng thái logic "1" và "0", tương ứng sẽ là
T1 mở, T2 đóng và ngược lại, T2 mở và T1 đóng. Trên hình vẽ 2.4 hiện tượng
nguy hiểm xảy ra khi ngõ ra của phần tử logic A là "1", các khóa mở hay đóng

tương đương việc transistor thơng bão hồ hay ngắt, ngõ ra chua phần tử logic
B là "0" và hiện tượng đoản mạch xảy ra.

Hình 2.4. Hiện tượng đoản mạch xảy ra khi nối hai đầu ra của hai phần tử trên cùng một
đường dây của BUS

Để tránh hiện tượng này, một loại cổng logic gọi là cổng 3 trạng thái (tristate gate) được sử dụng cho ngõ ra của các khối nối chung vào BUS. Hình
II.3a là một phần tử đảo Ngõ ra 3 trạng thái. Hình 2.5 là sơ đồ tương đương
của trạng thái high-z, tương ứng với trường hợp Ngõ ra bị tách khỏi BUS.
16


Hình 2.5. Phần tử đảo 3 trạng thái và sơ đồtương đương Ngõ ra của phần tử ở trạng thái high-z

Như vậy, để tránh xung đột trên BUS, các phần tử có Ngõ ra nối với BUS
cần phải đưa qua cổng 3 trạng thái.
2.4. Ngắt (lnterrupt)
Trong thực tế, tốc độ xử lý dữ liệu của CPU cao hơn rất nhiều so với
“sự chế biến dữ liệu” của các thiết bị I/O. Vì vậy cần tạo ra một cơ chế
vào/ra hợp lý để tăng hiệu suất làm việc của CPU. Ngắt trong hệ thống Vi
xử lý nhằm mục đích giải quyết sự bất hợp lý do CPU phải chờ đợi thiết bị
ngoại vi. Thiết bị ngoại vi chỉ yêu cầu CPU phục vụ việc nhận hay chuyển
giao dữ liệu khi bản thân nó đã sẵn sảng. Để thực hiện tốt yêu câu này, cơ
chế phục vụ ngắt là hợp lý nhất.

Ngắt nghĩa là yêu cầu CPU tạm thời dừng công việc hiện tại để trao đổi
hay xử lý dữ liệu không thuộc tuần tự của chương trình đang được thực hiện.
Ngắt là một hiện tượng xuất hiện ngẫu nhiên về phương diện thời điểm nhưng
được dự đoán trước.
17



Ngắt là hiện tượng một tín hiệu xuất hiện báo với CPU rằng có một sự kiện
đã xảy ra yêu cầu CPU phải xử lý. Quá trình xử lý của CPU sẽ bị tạm thời dừng
lại để thực hiện một thao tác khác phục vụ sự kiện có yêu cầu. Khi thao tác này
kết thúc, quá trình xừ lý vừa bị tạm dừng sẽ được tiếp tục. Bản thân sự kiện
thông thường là yêu cầu phục vụ của thiết bị ngoại vi đối với CPU.
Trong thực tế, ngắt được sử dụng chủ yếu khi các thiết bị ngoại vi
(thường rất chậm so với tốc độ xử lý của CPU) cần trao đổi thông tin với CPU.
Khi cần trao đổi thông tin, thiết bị ngoại vi gửi tín hiệu yêu cầu ngắt (Interrupt
Request) tới CPU. CPU sẽ thực hiện nốt lệnh hiện tại và trả lời bằng tín hiệu
nhận biết yêu cầu ngắt (INTA ).
Chương trình chính lúc này bị tạm dừng (ngắt) và CPU chuyển sang thực hiện
chương trình con phục vụ ngắt,tức là chương trình con trao đổi thơng tin với thiết bị
ngoại vi yêu cầu ngắt. Sau khi xong công việc phục vụ ngắt, CPU quay về thực hiện
tiếp chương trình chính kể từ lệnh tiếp theo sau khi bị ngắt các tín hiệu yêu cầu phục
vụ ngắt từ một thiết bị ngoại vi bất kỳ được gửi tới chấp nhận u cầu ngắt của CPU
có thể thơng qua một khối điều khiển ngắt, tuỳ theo người lập trình mà u cầu ngắt
đó có được chuyển tới CPU hay không. Trong trường hợp yêu cầu ngắt được gửi tới
CPU, xử lý của CPU gồm các bước sau:
Thực hiện xong lệnh đang được xử lý.
Phát tín hiệu nhận biết yêu cầu ngắt gửi cho thiết bị yêu cầu phục vụ ngắt
qua chân INTA.
Cất các cờ trạng thái hiện tại vào ngăn xếp.
Xóa các cờ IF (Interrupt Flag) và cờ TF (Trap Flag).
Cất địa chỉ lệnh tiếp theo trong tuần tự chương trình đang thực hiện vào
ngăn xếp.
Lấy địa chỉ của chương trình con phục vụ ngắt
Thực hiện chương trình con phục vụ ngắt.
2.5. Các tập lệnh của 8085

1. MOV : chuyển một byte hay Word
Dạng lệnh: MOV
Mơ tả:

Đích, Nguồn
Đích←Nguồn

Trong đó tốn hạng đích và Nguồn có thể tìm được theo các chế độ địa
chỉ khác nhau, nhưng phải có cùng độ dài và không được phép đồng thời là hai ô
nhớ hoặc hai thanh ghi đoạn.
Các cờ bị thay đổi: không.
18


Ví dụ:
MOV

AL, AH

;AL←AH

MOV

CX, 50

;CX←50

MOV DL, [SI]

;DL←{DS:SI}


2. OUT : Xuất một Byte hay một Word ra Port.
Dạng lệnh: OUT
Mô tả:

Port, Acc

Acc→{Port}

Trong đó {port} là dữ liệu của cổng có địa chỉ port. Port là địa chỉ 8 bit
của cổng, nó có thể là các giá trị trong khoảng 00...FFH. Như vậy có thể có các
khả năng sau đây.
- Nếu Acc là AL thì dữ liệu 8 bit được đưa ra cổng Port.
- Nếu Acc là AX thì dữ liệu 16 bit được đưa ra cổng Port và Port + 1.
Có một cách khác để chứa địa chỉ cổng là thông qua thanh ghi DX.
Khi dùng thanh ghi DX để chứa địa chỉ cổng ta có khả năng địa chỉ hố
cổng mềm dẻo hơn. Lúc này địa chỉ cổng nằm trong dải 0000H … FFFFH
và viết lệnh theo dạng:
OUT DX, Acc
Các cờ bị thay đổi: khơng.
Ví dụ:
OUT 45H, AL

;dua du lieu tu AL ra cong 45H

MOV

DX, 0

;xoa DX


MOV

DX, 00FFH

;nap dia chi cong vao DX

OUT DX, AX

;dua du lieu tu AX ra 00FFH

3. IN : Đọc dữ liệu từ cổng vào thanh ghi Acc.
Dạng lệnh: IN

Acc, địa_chỉ_cổng

Lệnh IN truyền một byte hoặc một từ từ một cổng vào lần lượt tới thanh
ghi AL hoặc AX. Địa chỉ của cổng có thể được xác định là một hằng tức thì kiểu
byte cho phép truy nhập các cổng từ 0…255 hoặc thông qua một số đã được đưa
ra trước đó trong thanh ghi DX mà cho phép truy nhập các cổng từ 0…65535.
Các cờ bị thay đổi: không.
19


Ví dụ:
IN

AL, 45H

;doc mot byte tu mot cong duoc xac

;dinh trong che do tuc thi

IN

AX, 0046H ;doc hai byte tu mot cong duoc xac
;dinh trong che do tuc thi

IN

AX, DX

;doc mot tu tu mot cong dang bien

4. POP : Lấy lại 1 Word vào thanh ghi từ đỉnh ngăn xếp
Dạng lệnh: POP
Mơ tả:

Đích

Đích←{SP}
SP←SP+2

Tốn hạng đích đích có thể là các thanh ghi đa năng, thanh ghi đoạn
(nhưng không được là thanh ghi đoạn mã CS) hoặc ô nhớ.
Các cờ bị thay đổi: khơng.
Ví dụ:
POP

DX


;lay 2 byte tu dinh ngan xep dua vao DX

5. PUSH: Cất 1 Word vào ngăn xếp
Dạng lệnh:
PUSH

Nguồn

Mơ tả: SP←SP-2
Nguồn→{SP}
Tốn hạng đích đích có thể là các thanh ghi đa năng, thanh ghi đoạn(kể cả
CS) hoặc ô nhớ.
Các cờ bị thay đổi: khơng.
Ví dụ:
PUSH

BX

;cat BX vao ngan xep tai vi tri do SP chi ra

Nhóm lệnh số học và logic: các lệnh trong nhóm này thực hiện các phép
tính số học cơ bản là cộng và trừ 2 toán hạng, các lệnh tăng giảm, hay so sánh
nội dung thanh ghi, các phép tính logic trong số sọc nhị phân, các phép dịch trái,
phải dữ liệu trong thanh ghi, lệnh quay vịng trái phải v.v...
6. ADC: Cộng có nhớ
Dạng lệnh: ADC
Mơ tả:

Đích, Nguồn


Đích ← Đích + Nguồn + CF

Cộng hai tốn hạng Đích và Nguồn với cờ CF kết quả lưu vào Đích.
20


Các cờ bị thay đổi: AF, CF, OF, PF, SF, ZF.
Ví dụ:
ADC

AL, 74H

;AL←AL+74+CF

ADC

CL, BL

;CL←CL+BL+CF

ADC

DL, [SI]

;DL←DL+(DS:SI)+CF

7. ADD : Cộng hai tốn hạng
Dạng lệnh: ADD
Mơ tả:


Đích, Nguồn

Đích ← Đích + Nguồn

Cộng hai tốn hạng đích và Nguồn kết quả lưu vào đích.
Các cờ bị thay đổi: AF, CF, OF, PF, SF, ZF.
Ví dụ:
ADD

DX, CX

;DX←DX+CX

ADD

AX, 400

;AX←AX+400

8. DEC – Decrement (giảm byte hay word đi một giá trị)
Dạng lệnh:
DEC Đích
DEC trừ tốn hạng Đích đi 1. Tốn hạng Đích có thể là byte hay word.
Các cờ bị thay đổi: AF, OF, PF, SF, ZF.
Ví dụ:
MOV BX, 1200H ;chuyen 1200H vao BX
DEC BX

;BX=11FFH


9. DIV – Division (chia khơng dấu)
Dạng lệnh: DIV

Nguồn

Tốn hạng Nguồn là số chia. Tuỳ theo độ dài tốn hạng Nguồn ta có hai
trường hợp bố trí phép chia.
- Nếu Nguồn là là số 8 bit: AX/Nguồn, thương để vào AL, số dư để vào AH Nếu Nguồn là số 16 bit: DXAX/Nguồn, thương để vào AX, số dư để vào DX
Nếu thương khơng phải là số ngun nó được làm trịn theo số nguyên sát
dưới. Nếu Nguồn bằng 0 hoặc thương thu được lớn hơn FFH hoặc FFFFH (tuỳ
theo độ dài của tốn hạng Nguồn) thì 8086 thực hiện lệnh ngắt INT0.
Các cờ bị thay đổi: không.
21


Ví dụ:
MOV

AX, 0033H ;chuyen 0033H vao AX

MOV

BL, 25

DIV

BL

;AL=02H va AH=01H


10. INC – Increment (tăng tốn hạng lên 1)
Dạng lệnh: INC
Mơ tả:

đích

Đích ← Đích + 1

Lệnh này tăng đích lên 1, tương đương với việc ADD đích, 1 nhưng chạy
nhanh hơn.
Các cờ bị thay đổi: AF, OF, PF, SF, ZF.
Ví dụ:
INC

AL

INC

BX

11. MUL – Multiply unsigned byte or word (nhân số không dấu)
Dạng lệnh: MUL

Nguồn

Thực hiện phép nhân khơng dấu với tốn hạng Nguồn (ô nhớ hoặc thanh
ghi) với thanh ghi tổng.
- Nếu Nguồn là số 8 bit: AL*Nguồn. Số bị nhân phải là số 8 bit đặt trong
AL, sau khi nhân tích lưu vào AX
- Nếu Nguồn là số 16 bit: AX*Nguồn. Số bị nhân phải là số 16 bit đặt

trong AX, sau khi nhân tích lưu vào DXAX.
- Nếu byte cao (hoặc 16 bit cao) của 16 (hoặc 32) bit kết quả chứa 0 thì
CF=OF=0.
Các cờ bị thay đổi: CF, OF.
Ví dụ:
MUL CX

;AXxCX → DXAX

MUL BL

;ALxBL → AX

12. NEG – Negation (lấy bù hai của một toán hạng, đảo dấu của một tốn hạng).
Dạng lệnh: NEG Đích
Mơ tả:

Đích←0-Đích
22


NEG lấy 0 trừ cho đích (có thể là 1 byte hoặc 1 từ) và trả lại kết quả cho
toán hạng đích, nếu ta lấy bù hai của -128 hoặc -32768 ta sẽ được kết quả không
đổi nhưng OF=1 để báo là kết quả bị tràn vì số dương lớn nhất biểu diễn được là
+127 và +32767.
Các cờ bị thay đổi: AF, CF, OF, PF, SF, ZF
Ví dụ:
NEG

AL


;AL←0-(AL)

13. SUB – Substract (trừ hai tốn hạng)
Dạng lệnh: SUB
Mơ tả:

Đích, Nguồn

Đích←Đích - Nguồn

Tốn hạng đích vào Nguồn phải chứa cùng một loại dữ liệu và không
được đồng thời là hai ô nhớ, cũng không được là thanh ghi đoạn.
Các cờ bị thay đổi: AF, CF, OF, PF, SF, ZF.
Ví dụ:
SUB

AL, 78H

;AL←AL-78H

SUB

BL, CL

;BL←BL-CL

SUB

DL, [SI]


;DL←DL-{DS:SI}

14. AND (phép logic Và)
Dạng lệnh: AND Đích, Nguồn
Mơ tả:

Đích ← Đích ^ Nguồn

Thực hiện phép và logic hai tốn hạng và lưu kết quả vào tốn hạng đích.
Người ta thường sử dụng để che đi/giữ lại một vài bit nào đó của một tốn hạng
bằng cách nhân logic tốn hạng đó với tốn hạng tức thì có các bit 0/1 ở các vị
trí cần che đi/giữ lại tương ứng.
Các cờ bị thay đổi: CF, OF, PF, SF, ZF.
Ví dụ:
AND

DX, CX

;DX←DX AND CX theo tung bit

AND

AL, 0FH

;che 4 bit cao cua AL

15. NOT – Logical Negation (phủ định logic)
Dạng lệnh: NOT Đích
23



NOT đảo các giá trị của các bit của toán hạng đích.
Các cờ bị thay đổi: khơng.
Ví dụ:
MOV

AL, 02H

;AL=(0000 0010)B

NOT

AL

;AL=(1111 1101)B

16. OR – Logic OR (phép hoặc logic)
Dạng lệnh: OR Đích, Nguồn
Mơ tả:

Đích = Đích + Nguồn

Tốn hạng Đích và Nguồn phải chứa dữ liệu cùng độ dài và không được
phép đồng thời là hai ô nhớ và cũng không được là thanh ghi đoạn. Phép OR
thường dùng để lập một vài bit nào đó của tốn hạng bằng cách cộng logic tốn
hạng đó với các tốn hạng tức thời có các bit 1 tại vị trí tương ứng cần thiết lập.
Các cờ bị thay đổi: CF, OF, PF, SF, ZF.
Ví dụ:
OR


AX, BX

;AX←AX∨BX theo tung bit

OR

CL, 30H

;lap bit b4 va b5 cua CL len 1

Nhóm lệnh điều khiển: Bao gồm các nhóm lệnh rẽ nhánh có điều kiện và
khơng điều kiện, các lệnh gọi chương trình con.
17. RCL – Rotate though CF to the Left (quay trái thông qua cờ nhớ)
Dạng lệnh: RCL Đích, CL
Mơ tả:

Lệnh này để quay tốn hạng sang trái thông qua cờ CF, CL phải được
chứa sẵn số lần quay. Trong trường hợp quay 1 lần có thể viết RCL Đích, 1 Nếu
số lần quay là 9 thì tốn hạng khơng đổi vì cặp CF và tốn hạng quay đúng một
vịng (nếu tốn hạng đích là 8 bit). Sau lệnh RCL cờ CF mang giá trị cũ của
MSB, còn cờ OF←1 nếu sau khi quay 1 lần mà bit MSB bị thay đổi so với trước
khi quay, cờ OF sẽ không được xác định sau nhiều lần quay.
Các cờ bị thay đổi: CF, OF, SF, ZF, PF.
24


Ví dụ:
MOV


CL, 3

;so lan quay la 3

RCL

AL, CL

Trước khi thực hiện lệnh: AL = 01011110, CF = 0.
Sau khi thực hiện lệnh: AL = 11110001, CF = 0.
18. RCR – Rotate though CF to the Right (quay phải thông qua cờ nhớ)
Dạng lệnh: RCR Đích, CL
Mơ tả:

Lệnh này để quay tốn hạng sang phải thơng qua cờ CF, CL phải được
chứa sẵn số lần quay. Trong trường hợp quay 1 lần có thể viết RCR Đích,
1 Nếu số lần quay là 9 thì tốn hạng khơng đổi vì cặp CF và tốn hạng quay
đúng một vịng (nếu tốn hạng đích là 8 bit). Sau lệnh RCR cờ CF mang giá trị
cũ của LSB, còn cờ OF←1 nếu sau khi quay 1 lần mà bit MSB bị thay đổi so
với trước khi quay, cờ OF sẽ không được xác định sau nhiều lần quay.
Các cờ bị thay đổi: CF, OF, SF, ZF, PF.
Ví dụ:
MOV

CL, 2

;so lan quay la 2

RCR


AL, CL

Trước khi thực hiện lệnh: AL = 11000010, CF = 1.
Sau khi thực hiện lệnh: AL = 01110000, CF = 1.
19. ROL – Rotate all bit to the Left (quay vòng sang trái).
Dạng lệnh: ROL Đích, CL.
Mơ tả:

CF

MSB LSB

Lệnh này dùng để quay vịng tốn hạng sang trái, MSB được đưa sang cờ
CF và LSB. CL phải chứa sẵn số lần quay mong muốn. Trong trường hợp quay
1 lần có thể viết ROL Đích, 1. Nếu số lần quay là 8 (CL=8) thì tốn hạng khơng
đổi vì tốn hạng quay đúng một vịng (nếu tốn hạng đích là 8 bit), cịn nếu
CL=4 thì 4 bit cao đổi chỗ cho 4 bit thấp.
25


×