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

Giáo trình Kỹ thuật Vi xử lý - Nghề: Kỹ thuật lắp ráp và sửa chữa máy tính - Trình độ: Cao đẳng nghề (Tổng cục Dạy nghề)

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 (5.47 MB, 111 trang )

BỘ LAO ĐỘNG - THƯƠNG BÌNH VÀ XÃ HỘI
TỔNG CỤC DẠY NGHỀ

GIÁO TRÌNH

KỸ THUẬT VI XỬ LÝ
NGHỀ: KỸ THUẬT SỬA CHỮA, LẮP
RÁP MÁY TÍNH
TRÌNH ĐỘ: CAO ĐẲNG
(Ban hành theo Quyết định số: 120/QĐ-TCDN ngày 25 tháng 02 năm 2013
cục trưởng Tổng cục dạy nghề)

NĂM 2013

của Tổng


LỜI GIỚI THIỆU
Khoa học kỹ thuật đang ngày càng phát triển rất mạnh mẽ, các công
nghệ mới thuộc các lĩnh vực khác nhau cũng nhờ đó đã ra đời nhằm đáp ứng
nhu cầu của xã hội và kỹ thuật Vi xử lý cũng nằm trong số đó. Hiện nay kỹ
thuật Vi xử lý đã được giảng dạy rộng rãi ở các trường Cao đẳng trong cả
nước, tuy nhiên lĩnh vực mới Vi xử lý vẫn đang còn rất mới mẻ, và những ứng
dụng của nó vẫn chưa được khai thác triệt để trong các hệ thống điều khiển,
đo lường và điều chỉnh của các dây chuyền công nghiệp. Tác giả đã tập trung
nghiên cứu và biên soạn giáo trình kỹ thuật Vi xử lý nhằm phục vụ công việc
giảng dạy tại các trường. Đối tượng của quyển giáo trình này là các sinh viên
ngành Kỹ thuật lắp ráp sửa chữa máy tính. Tuy nhiên để tiếp thu tốt nội dung
từ quyển giáo trình này, người học cần có kiến thức về kỹ thuật số, kỹ thuật
điện tử và đã biết qua một ngôn ngữ lập trình cấp cao như Pascal, C…
Mặc dù đã có cố gắng trong quá trình biên soạn nhưng chắc chắn cuốn


giáo trình này không thể không có thiếu sót. Tác giả rất mong sự góp ý của
các bạn đọc. Thư góp ý xin gửi về: Trường Cao Đẳng nghề kỹ thuật công
nghệ.
Chúng tôi xin cảm ơn!

Hà Nội, 2013
Tham gia biên soạn
Khoa Công Nghệ Thông Tin
Trường Cao Đẳng Nghề Kỹ Thuật Công Nghệ
Địa Chỉ: Tổ 59 Thị trấn Đông Anh – Hà Nội
Tel: 04. 38821300
Chủ biên: Lê Văn Dũng

Mọi góp ý liên hệ: Phùng Sỹ Tiến – Trưởng Khoa Công Nghệ Thông Tin
Mobible: 0983393834
Email: –
MỤC LỤC


ĐỀ MỤC
Bài mở đầu: Các hệ thống đếm-các loại mã- các mạch điện tử số cơ
bản

1. Các hệ thống số đếm.
2. Mã BCD, ASCII

TRANG
6

1. Cấu trúc bên trong và hoạt động của hệ vi xử lý.

2. Cấu trúc các thanh ghi.
3. Tập lệnh Macro của bộ vi xử lý

6
8
8
14
14
16
18
18
25
28

4.

Dùng Assembly để thiết lập các tập lệnh điều khiển

35

Chương3: Các mạch giải mã địa chỉ và tổ chức bộ nhớ

39
39
45

3. Các sơ đồ nguyên lý của mạch số cơ bản
Chương1: Máy tính và hệ thống vi xử lý

1. Phân loại máy tính.

2. Các khái niệm cơ bản liên quan đến hệ vi xử lý
Chương 2: Tổng quan về vi xử lý

1. Tổ chức bộ nhớ
2. Các mạch giải mã địa chỉ
Chương 4: Xuất nhập dữ liệu của hệ vi xử lý

49

1. Giới thiệu các tín hiệu, các mạch phụ trợ của hệ vi xử lý
2. Thiết lập bộ nhớ cho hệ vi xử lý

49
55

3.

55
65
65
67
68
81
81
91
97
102
111

Thiết kế mạch vào/ra


Chương 5: Ngắt và xử lý ngắt trong hệ vi xử lý

1. Giới thiệu các loại ngắt
2. Xử lý ưu tiên khi ngắt
3. Các mạch điều khiển ngắt
Chương 6: Ghép nối cơ bản

1. Ghép nối bàn phím, số.
2. Ghép nối đèn hiển thị
3. Ghép nối với màn hình
4. Ghép nối các loại thiết bị ngoại vi khác
TÀI LIỆU THAM KHẢO

MÔN HỌC : KỸ THUẬT VI XỬ LÝ


Mã môn học: MH29
Vị trí, ý nghĩa, vai trò môn học:
- Vị trí :
+ Mô đun được bố trí sau khi sinh viên học xong các môn học chung
- Tính chất :
+ Là môn học chuyên ngành
+ Là môn học phục vụ cho sửa chữa phần cứng
Ý nghĩa, vai trò của môn học:
+ Là môn học quan trọng của nghề Sửa chữa, lắp ráp máy tính
Mục tiêu của môn học:
- Trình bày được các hệ thống đếm, các loại bảng mã dùng trong kỹ thuật số
- Trình bày được các khái niệm về xuất nhập dữ liệu.
- Trình bày được các ngắt và xử lý ngắt trong hệ vi xử lý

- Trình bày được các ghép nối cơ bản. vận dụng được kiến thức đó học để áp dụng
được các ứng dụng trong thực tế từ đơn giản đến phức tạp một cách thành thục.
- Tư duy tốt và lập trình điều khiển hệ thống vi xử lý.
- Cẩn thận, khéo léo trong thao tác.

Mã bài
MH29 - 01

MH29 - 02

MH29 - 03

MH29- 04

MH29 - 05

MH29 - 06

Tên chương
Tổng quan cấu trúc phần cứng
Giới thiệu họ vi điều kiển
Sơ lược về các chân của 89C51
Tổ chức bộ nhớ
Các thanh ghi chức năng đặc biệt
Bộ nhớ ngoài
Tập lệnh của 89C51
Các chế độ đánh địa chỉ
Các lệnh của 89C51
Hoạt động của bộ định thời
Giới thiệu bộ định thời

Thanh ghi chế độ Timer (TMOD)
Thanh ghi điều khiển Timer (TCON)
Các chế độ Timer
Nguồn tạo xung nhịp
Khởi động điều khiển và truy xuất
thanh ghi Timer
Hoạt động của Port nối tiếp
Giới thiệu các Port của vi xử lý 89C51
Thanh ghi điều khiển cổng nối tiếp
Các chế độ hoạt động
Khởi động và truy xuất thanh ghi cổng
nối tiếp
Tốc độ truyền (Baud Rate) nối tiếp
Hoạt động ngắt
Giới thiệu các ngắt
Tổ chức các ngắt
Xử lý ngắt
Các ngắt của 89C51
Thiết kế chương trình dùng ngắt
Tổng quan cấu trúc phần cứng

Tổng
số
13

Thời lượng

Thực
thuyết
hành

7
6

Kiểm
tra

17

7

8

2

20

6

12
2

2

20

4

14

2


20

4

14

2

13

7

6


MH29- 07

Giới thiệu họ vi điều kiển
Sơ lược về các chân của 89C51
Tổ chức bộ nhớ
Các thanh ghi chức năng đặc biệt
Bộ nhớ ngoài
Tập lệnh của 89C51
Các chế độ đánh địa chỉ
Các lệnh của 89C51

3
3
3

2
2
17
7
8

2
2
1
1
1
7
3
4

1
1
2
1
1
8
4
4

2


BÀI MỞ ĐẦU
CÁC HỆ THỐNG ĐẾM – CÁC LOẠI MÃ
CÁC MẠCH ĐIỆN TỬ SỐ CƠ BẢN

MÃ BÀI: MH29-01

Mục tiêu:
- Phân loại được các hệ thống số đếm
- Trình bài các được các loại mã Mã BCD, ASCII .
- Tinh thần tương trợ lẫn nhau trong học tập.
Nội dung chính:
1.Các hệ thống số đếm.
Mục tiêu:
- Phân loại được các hệ thống số đếm.
1.1. Hệ thập phân (Decimal Number System)
Trong thực tế, ta thường dùng hệ thập phân để biểu diễn các giá trị số. Ở
hệ thống này, ta dùng các tổ hợp của các chữ số 0..9 để biểu diễn các giá trị.
Một số trong hệ thập phân được biểu diễn theo các số mũ của 10.
VD: Số 5346,72 biểu diễn như sau:
5346,72 = 5.103 + 3.102 + 4.10 + 6 + 7.10-1 + 2.10-2
Tuy nhiên, trong các mạch điện tử, việc lưu trữ và phân biệt 10 mức điện
áp khác nhau rất khó khăn nhưng việc phân biệt hai mức điện áp thì lại dễ
dàng. Do đó, người ta sử dụng hệ nhị phân để biểu diễn các giá trị trong hệ
thống số.
1.2. Hệ nhị phân (Binary Number System)
Hệ nhị phân chỉ dùng các chữ số 0 và 1 để biểu diễn các giá trị số. Một
số nhị phân (binary digit) thường được gọi là bit. Một chuỗi gồm 4 bit nhị
phân gọi là nibble, chuỗi 8 bit gọi là byte, chuỗi 16 bit gọi là word và chuỗi
32 bit gọi là double word. Chữ số nhị phân bên phải nhất của chuỗi bit gọi là
bit có ý nghĩa nhỏ nhất (least significant bit – LSB) và chữ số nhị phân bên
trái nhất của chuỗi bit gọi là bit có ý nghĩa lớn nhất (most significant bit –
MSB). Một số trong hệ nhị phân được biểu diễn theo số mũ của 2. Ta thường
dùng chữ B cuối chuỗi bit để xác định đó là số nhị phân.
VD: Số 101110.01b biểu diễn giá trị số:

101110.01b = 1x25 + 0x24 + 1x23 +1x22 + 1x21 + 0 + 0x2-1 + 1x2-2
* Chuyển số nhị phân thành số thập phân:
Để chuyển một số nhị phân thành một số thập phân, ta chỉ cần nhân các
chữ số của số nhị phân với giá trị thập phân của nó và cộng tất cả các giá trị
lại.
VD: 1011.11B = 1x23 + 0x22 + 1x21 + 1 + 1x2-1 + 1x2-2 = 11.75
* Chuyển số thập phân thành số nhị phân:
Để chuyển một số thập phân thành số nhị phân, ta dùng 2 phương pháp sau:


* Phương pháp 1: Ta lấy số thập phân cần chuyển trừ đi 2i trong đó 2i là số
lớn nhất nhỏ hơn hay bằng số thập phân cần chuyển. Sau đó, ta lại lấy kết quả
này và thực hiện tương tự cho đến 20 thì dừng. Trong quá trình thực hiện, ta
sẽ ghi lại các giá trị 0 hay 1 cho các bit tuỳ theo trường hợp số thập phân nhỏ
hơn 2i (0) hay lớn hơn 2i (1).

Phương pháp 2: Lấy số cần chuyển chia cho 2, ta nhớ lại số dư và lấy tiếp
thương của kết quả trên chia cho 2 và thực hiện tương tự cho đến khi thương
cuối cùng bằng 0. Kết quả chuyển đổi sẽ là chuỗi các bit là các số dư lấy theo
thứ tự ngược lại.

Để thực hiện chuyển các số thập phân nhỏ hơn 1 sang các số nhị phân, ta
làm như sau: lấy số cần chuyển nhân với 2, giữ lại phần nguyên và lại lấy
phần lẻ nhân với 2. Quá trình tiếp tục cho đến khi phần lẻ bằng 0 thì dừng.
Kết quả chuyển đổi là chuỗi các bit là giá trị các phần nguyên.

1.3. Hệ thập lục phân (Hexadecimal Number System)
Như đã biết ở trên, nếu dùng hệ nhị phân thì sẽ cần một số lượng lớn các
bit để biểu diễn. Giả sử như số 1024 = 210 sẽ cần 10 bit để biểu diễn. Để rút
ngắn kết quả biểu diễn, ta dùng hệ thập lục phân dựa cơ sở trên số mũ của 16.

Khi đó, 4 bit trong hệ nhị phân (1 nibble) sẽ biểu diễn bằng 1 chữ số trong hệ
thập lục phân (gọi là số hex). Trong hệ thống này, ta dùng các số 0..9 và các
kí tự A..F để biểu diễn cho một giá trị số. Thông thường, ta dùng chữ h ở cuối
để xác định đó là số thập lục phân.


2.Mã BCD, ASCII
Mục tiêu:
- Trình bài các được các loại mã Mã BCD, ASCII .
2.1. Mã BCD (Binary Coded Decimal)
Trong thực tế, đối với một số ứng dụng như đếm tần, đo điện áp, … ngõ ra
ở dạng số thập phân, ta dùng mã BCD. Mã BCD dùng 4 bit nhị phân để mã
hoá cho một số thập phân 0..9. Như vậy, các số hex A..F không tồn tại trong
mã BCD.
VD: Số thập phân
5
2
9
Số BCD
0101 0010 1001
2.2. Mã ASCII
Trong thực tế, đối với một ký tự ứng dụng nhập từ bàn phím máy tính ta
dùng mã ASCII. Mã ASCII theo bảng sau.

Ví dụ chữ “A” có mã là 41h
3. Các sơ đồ nguyên lý của mạch số cơ bản
Mục tiêu:
- Trình bày được các sơ đồ nguyên lý của các mạch số cơ bản.
3.1. Cổng AND
a.Chức năng:

Thực hiện phép toán logic VÀ (AND)
Đầu ra chỉ bằng 1 khi tất cả các đầu vào bằng 1
Cổng VÀ 2 đầu vào:
b. Ký hiệu:
A
F

F


B

c.. Bảngtrạng thái:
A

B

out
F

0

0

0

0

1


0

1

0

0

1

1

1

d. Biểu thức và dạng tín hiệu
+ Biểu thức:
F=A.B
+ Dạng tín hiệu:

3.2. Cổng OR:
a. Chức năng:
Thực hiện phép toán logic HOẶC (OR)
Đầu ra chỉ bằng 0 khi tất cả các đầu vào bằng 0
Cổng HOẶC 2 đầu vào:
b. Ký hiệu:

c. Bảngtrạng thái:

d. Biểu thức và dạng sóng:
+ Biểu thức:

F=A+B


+ Dạng sóng

3.3. Cổng NOT:
a. Chức năng:
Thực hiện phép toán logic ĐẢO (NOT)
Cổng ĐẢO chỉ có 1 đầu vào:
b. Ký hiệu:
F

c. Bảng trạng thái :
A
0

F
1

1

0

d. Biểu thức và dạng sóng:
+ Biểu thức F = A
+ Dạng sóng:

3.4. Cổng NAND:
a. Chức năng:
Thực hiện phép ĐẢO của phép toán logic VÀ

Đầu ra chỉ bằng 0 khi tất cả các đầu vào bằng 1. Cổng VÀ ĐẢO 2 đầu
vào:
b. Ký hiệu:

F

c. Bảng trạng thái:
A
0
0
1

B
0
1
0

F
1
1
1


1

1

0

d. Biểu thức và dạng sóng:

+ Biểu thức: F = A . B
+ Dạng sóng:

3.5. Cổng NOR:
a. Chức năng:
Thực hiện phép ĐẢO của phép toán logic HOẶC
Đầu ra chỉ bằng 1 khi tất cả các đầu vào bằng 0. Cổng HOẶC ĐẢO 2
đầu vào:
b.Ký hiệu:

c Bảng trạng thái:
A
0
0
1
1

d. Biểu thức và dạng tín hiệu:
+ Biểu thức: F = A  B
+ Dạng tín hiệu vào ra

3.6.Cổng EX-OR:
a. Chức năng:
Exclusive-OR

B
0
1
0
1


F
1
0
0
0


Thực hiện biểu thức logic HOẶC CÓ LOẠI TRỪ (phép toán XOR - hay
còn là phép cộng module 2). Đầu ra chỉ bằng 0 khi tất cả các đầu vào
giống nhau. Cổng XOR 2 đầu vào:
b. Ký hiệu:

c. Bảng trạng thái:
A
0
0
1
1

B
0
1
0
1

F
0
1
1

0

d. Biểu thức logic và dạng sóng:
F  A  B  A.B  A.B
+ Biểu thức logic:
+ Dạng sóng:

3.7. Cổng EX – NOR:
a. Chức năng:
Exclusive-NOR
Thực hiện phép ĐẢO của phép toán XOR. Đầu ra chỉ bằng 1 khi tất cả
các đầu vào giống nhau. Cổng XNOR 2 đầu vào:
b. Ký hiệu:
F

c. Bảngtrạng thái:


d. Biểu thức logic và dạng sóng:
+ Biểu thức logic
F  AB  AB  A  B
+ Dạng sóng tín hiệu vào ra

3.8. Cổng BUFFER
Còn gọi là cổng đệm. Tín hiệu số qua cổng BUFFER không đổi trạng
thái logic. Cổng BUFFER được dùng với các mục đích sau:
- Sửa dạng tín hiệu.
- Đưa điện thế của tín hiệu về đúng chuẩn của các mức logic.
- Nâng khả năng cấp dòng cho mạch.
- Ký hiệu của cổng BUFFER.


Tuy cổng đệm không làm thay đổi trạng thái logic của tín hiệu vào cổng
nhưng nó giữ vai trò rất quan trọng trong các mạch số.
CHƯƠNG 1
MÁY TÍNH VÀ HỆ THỐNG VI XỬ LÝ
MÃ BÀI: MH29-02
Mục tiêu:
- Phân loại các hệ thống máy tính
- Trình bài các khái niệm liên quan đến hệ thống vi xử lý.
- Tinh thần tương trợ lẫn nhau trong học tập.


Nội dung chính:
1.Phân loại máy tính.
Mục tiêu:
- Phân loại các hệ thống máy tính
Có nhiều cách phân loại máy tính. Có thể phân loại theo công nghệ,
theo tính năng theo bộ xử lý hoặc theo kích thước.
1.1. Phân loại theo công nghệ.
Cho đến nay, nếu xét theo sự phát triển của công nghệ thì máy tính có
thể được phân thành 5 thế hệ khác nhau và mỗi thế hệ thể hiện cho sự một
trình độ công nghệ.
- Thế hệ 1: từ 1950 - 1959. Các máy tính ở thế hệ này được xây dựng
từ các đèn điện tử. Năng lực tính toán chậm, hàng ngàn phép tính/giây, tiêu
thụ điện năng lớn và chiếm nhiều không gian.
- Thế hệ 2: từ 1959 - 1963: Đặc trưng cơ bản của thế hệ này là sử dụng
bóng bán dẫn vào bộ xử lý trung tâm và các mạch điện của máy tính, nhờ vậy
tăng đáng kể tốc độ thực hiện của máy tính tăng lên cỡ chục lần so với máy
thế hệ 1. Ngoài ra kích thước máy tính cũng như độ tin cậy cũng được cải
thiện đáng kể.

- Thế hệ 3: trong khoảng thời gian từ 1964 đến 1974. Thế hệ này gắn
liền với sự xuất hiện và ứng dụng các mạch vi điện tử (IC - Integrated
Circuit). Máy tính đã có kích thước gọn hơn, khả năng tính toán lớn hơn, tốc
độ có thể đạt gấp ngàn lần so với thế hệ 1 (cỡ triệu phép tính/giây). Việc xử lý
song song ngày càng tăng ở thế hệ này.
- Thế hệ 4: từ 1974 đến nay. Là thời kỳ của các máy vi tính với năng
lực tính toán rất lớn. Công nghệ máy tính ở thời kỳ này liên quan tới việc sử
dụng các mạch tích hợp cỡ cực lớn (VLSI - Very Large Scale Integration)
với dung lượng trên 100.000 tranzystor/chip vào những năm 70 cho đến hàng
chục triệu tranzystor/chip ngày nay. Nhờ có công ngệ này mà toàn bộ CPU,
bộ nhớ chính hay các thiết bị tương tự khác có thể được thực hiện gọn trên
một chip. Tốc độ ở thế hệ này có thể đạt tới hàng trăm triệu phép tính/giây trở
lên.
- Thế hệ 5: Máy tính mạng Neuron - Neural Network - Một kỹ thuật
của trí khôn nhân tạo, bắt chước cách thức các tế bào thần kinh nối với bộ não
của người. Người ta cung cấp những thông tin cho mạng thần kinh để huấn
luyện cho nó nhận biết được các sự vật mẫu nhằm có thể đưa ra các dự báo
hoặc giải pháp xử lý thích ứng.
Tuy nhiên cần nhấn mạnh là thế hệ này hiện nay đang trong quá trình
nghiên cứu, một số mẫu máy tính thử nghiệm đầu tiên dạng này mới xuất hiện
trong vài năm trở lại đây và các khái niệm liên quan đang mới hình thành.
Theo sự phát triển của công nghệ, các máy tính hiện nay được thiết kế,
xây dựng theo xu hướng:
- Mạnh hơn về tốc độ tính toán
- Nhỏ hơn về kích thước


- Tiết kiệm hơn về năng lượng
1.2. Phân loại theo tính năng
Các máy tính cũng có thể được phân loại theo tính năng. Cho đến nay

có thể phân máy tính thành 4 nhóm sau:
- Máy tính cực lớn (Super Computer)
- Máy tính lớn (Computer - mainframe)
- Máy tính Mini (MiniComputer)
- Máy vi tính (MicroComputer)
Sự khác biệt về tốc độ xử lý và khả năng lưu trữ của các nhóm máy tính
được nêu ở bảng 1-1
Bảng 1.1 Phân loại máy tính theo tính năng.
Phân loại
Tốc độ xử lý/s
Khả năng lưu trữ
Máy tính cự lớn
100 tỷ
Tetra bytes trở lên
Máy tính lớn
2 tỷ
Giga bytes trở lên
Máy tính mini
32 triệu
Mega bytes trở lên
Máy vi tính
1 triệu
Mega bytes trở lên
1.3. Phân loại theo bộ xử lý
Có thể phân loại các máy vi tính căn cứ vào bộ vi xử lý - bộ não của
máy vi tính. Dưới đây giới thiệu một số dòng máy vi tính.
a. Bộ vi xử lý của hãng Intel như: I8088, 80286, 80386, 80486,
Pentium. Có thể gọi gọn chung cho các bộ vi xử lý này là: X86.
Các máy xử dụng bộ vi xử lý Intel là Olivetti, IBM, Dell,
Gateway, DNA, Compaq

b. Bộ vi xử lý của hãng Motorola M6800, M68000, M68052 (68X)
Các máy xử dụng bộ vi xử lý Motorola là: Machintosh, Apple,
Amiga,
c. Bộ vi xử lý của hãng Zilog như: Z40, Z80
Các máy tính sử dung là Bondwell, NEC, Sony ....
1.4. Phân loại theo kích thước
Có thể dựa theo kích thước máy tính để phân loại:
- Máy tính để bàn (Desktop)
- Máy tính xách tay (Laptop),
- Máy tính kiểu sổ tay (Notebook)
Mỗi cách phân loại trên đều có những ưu điểm riêng. Có thể sử dụng
riêng từng kiểu phân loại hoặc kết hợp tuỳ theo yêu cầu.
2.Các khái niệm cơ bản liên quan đến hệ vi xử lý
Mục tiêu:
- Trình bài các khái niệm liên quan đến hệ thống vi xử lý.
Mọi hệ thống máy tính, dù là máy tính cá nhân nhỏ hay các hệ máy tính
lớn đều có một cấu trúc chung. Một hệ máy Vi tính điển hình gồm có 4 khối
cơ bản: Thiết bị vào, bộ xử lý, bộ nhớ, thiết bị ra.
BUS dữ liệu
BUS điều khiển


Bộ xử lý trung tâm: đóng vai trò chủ đạo nhất trong hệ máy tính. Ở đây
tiến hành toàn bộ các tính toán, các phép tính số học và đại số và biến đổi
các mã tương ứng. Đây chính là đầu não của các máy tính. Khi bắt đầu hoạt
động, nó nhận mã lệnh từ bộ nhớ, sau đó giải mã các lệnh này thành các dãy
xung điều khiển để điều khiển các khối tương ứng thực hiện theo đúng trình
tự và nội dung có trong mã lệnh.
Ở các máy vi tính, bộ xử lý trung tâm là bộ vi xử lý. Sử dụng phổ cập
hiện nay là các bộ vi xử lý của hãng Intel, Motorola, Zilog, AMD.....

Bộ nhớ (memory): Là một bộ phận cũng hết sức quan trọng của hệ máy
tính. Bộ nhớ thự hiện việc lưu trữ thông tin và trao đổi thông tin.
Ở các hệ máy vi tính, người ta sử dụng bộ nhớ bán dẫn bao gồm ROM,
RAM. Trong ROM có thể chứa các chương trình điều khiển hoạt động của
toàn hệ khi bật máy. Còn một phần chương trình điều khiển hệ thống,
chương trình ứng dụng thường được lưu ở RAM.
Bộ nhớ máy tính thực chất là bộ nhớ trong để phân biệt với khái niệm
bộ nhớ ngoài mà nhiều tài liệu hiện vẫn hay sử dụng để chỉ thiết bị từ (Băng,
đĩa từ). Các thiết bị này tuy tốc độ trao đổi chậm so với bộ nhớ trong song có
dung lượng lưu trữ rất lớn (bộ nhớ ngoài cũng có thể gọi là thiết bị ngoài).
Ở các máy vi tính sử dụng phổ cập hiện nay bộ nhớ ngoài là các ổ đĩa
cứng (HDD), ổ đĩa mềm (FDD). Ổ mềm thuận tiện trong việc trao đổi thông
tin vì rất tiện trong việc di chuyển. Nhược điểm là tốc độ chậm (ổ đĩa quay
với tốc độ 360 vòng/phút) và dung lượng nhỏ (thường vài Mb trở lại). Các ổ
đĩa cứng có dung lượng rất lớn (vài trăm cho đến vài Gb) và tốc độ truy cập
cũng lớn hơn ổ đĩa mềm nhiều (tốc độ quay của ổ cứng gấp 10 lần của ổ đĩa
mềm - 3600 vòng/phút).
Khối phối ghép vào/ra (I/O) tạo khả năng giao tiếp máy tính với thế
giới bên ngoài. Các thiết bị ngoại vi như màn hình, bàn phím, máy in, các bộ
biến đổi D/A, A/D.... đều liên hệ với hệ máy tính qua bộ phận này mà cụ thể
cho từng thiết bị là các cổng.
BUS địa chỉ: Khi ghi/đọc bộ nhớ bộ xử lý trung tâm sẽ đưa ra trên bus
này địa chỉ của các ô nhớ có liên quan. Lưu ý là bus địa chỉ là bus một chiều
xuất phát từ CPU.


BUS dữ liệu thường có từ 8, 16, 20, 24, 32 đến 64 đường dây tuỳ thuộc
vào từng CPU cụ thể. BUS dữ liệu là loại 2 chiều. Các phần tử có đầu ra nối
thẳng với bus dữ liệu đều phải được trang bị đầu ra 3 trạng thái để baỏ đảm
cho bus hoạt động được bình thường.

BUS điều khiển thường gồm hàng chục dây tín hiệu khác nhau, và xét
theo cả nhóm thì đó là lọai bus 2 chiều.
Thiết bị vào: biến đổi tín hiệu tự nhiên hoặc cho bởi con người sang
dạng mã máy để bộ vi xử lý thực hiện. Thiết bị vào thông dụng nhất có bàn
phím, con chuột, máy quét scaner, thiết bị phân tích nhận dạng tiếng nói, CDROM.....
Thiết bị ra: biến đổi các mã bên trong máy tính sau khi xử lý để con
người có thể hiểu được hoặc điều khiển các thiết bị khác. Thiết bị ra thông
dụng nhất có màn hình, máy in, faxmodem, máy vẽ, loa hay các thiết bị điều
khiển khác.

Câu hỏi 1: Phân loại các hệ thống máy tính
Câu hỏi 2: Trình bày các khái niệm cơ bản liên quan đến hệ vi xử lý

CHƯƠNG 2
TỔNG QUAN VỀ VI XỬ LÝ
MÃ BÀI: MH29-03
Mục tiêu:
- Trình bày cấu trúc bên trong và hoạt động của hệ vi xử lý
- Trình bày cấu trúc các thanh ghi của hệ vi xử lý.
- Sử dụng tập lệnh Assembly để lập trình điều khiển hệ vi xử lý.
- Khả năng tư duy tốt.
- Tinh thần tương trợ lẫn nhau trong học tập.
Nội dung chính:
1.Cấu trúc bên trong và hoạt động của hệ vi xử lý.


Mục tiêu:
- Trình bày cấu trúc bên trong và hoạt động của hệ vi xử lý



Hình 2.1. Cấu trúc bộ vi xử lý 8086/8088
a. Tổ chức của EU
EU là nơi xẩy ra các quá trình xử lý dữ liệu ở bên trong bộ VXL. Ở đây
có đơn vị số học và lô gich ( ALU - arithmetic and logic unit) cùng với các
thanh ghi để xử lý số liệu và ghi giữ các kết quả trung gian. EU nhận các lệnh
và dữ liệu do BIU thu được rồi xử lý các thông tin đó. Dữ liệu đã được xử lý
trong EU lại được chuyển ra bộ nhớ hoặc các thiết bị ngoại vi thông qua BIU.
Như vậy EU không liên hệ trực tiếp với thế giới bên ngoài mà luôn luôn
thông qua BIU.
Đơn vị thực hiện EU gồm có 2 phần là ALU và khối các thanh ghi.
Các lệnh từ hàng đợi lệnh trong BIU được chuyển vào EU, giải mã và thực
hiện tại đây. Các lệnh được lấy từ trên xuống theo nguyên tắc FIFO (First in
First out)


 Đơn vị số học-lôgic ALU
Đơn vị số học-lôgic ALU gồm các mạch có nhiệm vụ thực hiện các
phép tính số học hoặc logic trên các số nhị phân theo từng cặp bit vào.
 Khối điều khiển của EU
Trong khối điều khiển (CU-Control Unit) của EU có mạch giải mã lệnh.
Mã lệnh đọc vào từ bộ nhớ được đưa đến đầu vào của bộ giải mã, các thông
tin thu được từ đầu ra sẽ được đưa đến mạch tạo xung điều khiển từ đó nhận
được các dãy xung khác nhau tuỳ thuộc vào mã lệnh để điều khiển hoạt động
các bộ phận bên trong và bên ngoài CPU.
b) Tổ chức của BIU
BIU gồm có mạch tạo địa chỉ và điều khiển BUS, nó có nhiệm vụ giúp
khai thác tối đa khả năng của BUS. Để bảo đảm được điều đó, BIU phải thực
hiện 2 chức năng sau:
- Chức năng 1: nhận trước các lệnh, cất tạm vào dãy chứa lệnh nhờ đó
mà MP tăng được tốc độ tính toán.

- Chức năng 2: đảm đương mọi chức năng điều khiển BUS để EU có
thể tập trung vào việc xử lý dữ liệu và thực hiện lệnh. Con trỏ lệnh chứa địa
chỉ của lệnh thực hiện tiếp theo.
BIU được dùng để trực tiếp truy xuất hoặc phối ghép với những bộ
phận khác của máy tính.
BIU gồm 3 khối chức năng sau:
- Đơn vị điều khiển BUS.
- Hàng chứa lệnh.
- Đơn vị điều khiển địa chỉ.
 Đơn vị điều khiển BUS (Bus Control Unit)
Dùng để thực hiện các thao tác Bus đối với MP. Nó tiếp nhận và tạo
các lệnh, dữ liệu và các tín hiệu điều khiển giữa MP và các bộ phận khác của
hệ. Ví dụ, xác định hướng di chuyển của dữ liệu trên BUS dữ liệu bằng đường
dây điều khiển DT/R (Data Transmit/Receive) phát hoặc thu dữ liệu.
 Hàng đợi lệnh (Instruction queue)
Dùng hàng đợi lệnh để làm nơi lưu giữ tạm thời các lệnh sẽ được thực
hiện trong EU. Thông qua đơn vị điều khiển bus, BIU nhận trước các lệnh và
cất tạm chúng vào trong hàng chứa lệnh. Đây là công việc chiếm nhiều thời
gian hơn so với việc tính toán trong EU. Do vậy BIU và EU cùng hoạt động
song song bảo đảm nâng cao hiệu quả làm việc của MP.
Hàng đợi lệnh là bộ nhớ kiểu FIFO (First In First Out), có nghĩa lệnh
được nạp vào trước sẽ được lấy ra trước. Bộ vi xử lý 8088 có hàng đợi lệnh 4
bytes (8 bit) còn 8086 có hàng đợi lệnh 3 từ (mỗi từ 16 bit). Chính vì vậy tại
mỗi thời điểm nó mang 1 từ (16 bit) thông tin. Đây là 1 điểm khác nhau quan
trọng nữa giữa 2 bộ VXL.
 Đơn vị điều khiển địa chỉ (Address Control Unit)
MP 8088/8086 có 20 đường địa chỉ (20 bit) vì vậy có khả năng đánh
địa chỉ đến 1 Mb. Đơn vị điều khiển địa chỉ phối hợp hoạt động với con trỏ



lệnh, các thanh ghi đoạn và mạch tạo địa chỉ để xác định địa chỉ ô nhớ như
được vẽ trong hình 2.3.
* Con trỏ lệnh - IP (Instruction Pointer)
Là một thanh ghi 16 bit dùng để trỏ vào lệnh tiếp theo sẽ được thực
hiện nằm trong đoạn mã CS. Mỗi lần đơn vị thực hiện EU nhận 1 lệnh thì con
trỏ lệnh được tăng lên để chỉ rõ lệnh được thực hiện tiếp theo trong chương
trình. Địa chỉ đầy đủ của lệnh tiếp theo này được xác định bởi cặp CS:IP.
 Cấu trúc chung của bộ vi xử lý 80286
Bộ xử lý 80286 Intel là bộ vi xử lý 16 bit nằm trong họ vi xử lý IAPX
86. Những đặc trưng cơ bản của 80286 là:
- Tần số xung nhịp 16MHz.
- Khả năng địa chỉ hoá được 16MB bộ nhớ vật lý và 1GB nhớ ảo.
- Có khả năng làm việc với các bộ đồng xử lý.
Trong chế độ địa chỉ thực 80286 có mã lệnh tương thích với tập lệnh
của các bộ vi xử lý 8086 và 8088 nhưng tốc độ làm việc nhanh hơn do tần số
xung nhịp đồng bộ của 80286 cao hơn (có thể đạt tới 16MHz). Khả năng địa
chỉ hoá bộ nhớ vật lý lớn nhất là 16MB (224). Tuy nhiên, trong chế độ địa chỉ
thực, 80286 chỉ sử dụng các đường địa chỉ A0 – A19 để đánh địa chỉ nên có thể
quản lý được 1MB (220) ngăn nhớ.
Trong chế độ địa chỉ ảo, bộ vi xử lý 80286 có mã gốc tương thích với
tập lệnh của 8086 và 8088. Khả năng địa chỉ hoá ở chế độ này là 16MB bộ
nhớ vật lý và 1GB nhớ ảo (230). Chế độ này thực hiện được cơ chế bảo vệ bộ
nhớ và sử dụng đơn vị quản lý bộ nhớ ở bên trong bản thân bộ vi xử lý 80286.
Các tín hiệu của 80286 được phân theo nhóm và được tổ chức như ở
hình 2.1. CLK là tín hiệu xung đồng bộ cho bộ vi xử lý. Tần số vào CLK sẽ
được chia đôi ở bên trong 80286. Như vậy, một chu kỳ PCLK được tạo thành
từ hai chu kỳ CLK. Mỗi CLK được gọi là một pha của 80286 ( 1 và 2).
Cap là chân gắn tụ lọc nhiễu. Tụ điện này có trị số 0,047F  20%,
12V được nối giữa chân CAP (chân 52) với đất để khử nhiễu xung có độ rộng
hẹp của nguồn điện nuôi.

D0 – D15 là 16 bit của kênh dữ liệu hai chiều, ba trạng thái và có mức
tích cực là logic1.


Hình 2.2. Tổ chức chân tín hiệu của bộ vi xử lý 80286
A0 - A23 là kênh địa chỉ. Kênh này gồm 24 dãy địa chỉ dùng để địa chỉ hóa
cho các bộ nhở vật lý và cho các cổng vào / ra . Dung lượng bộ nhở có thể địa
chỉ hóa trực tiếp được là 224 = 16M byte. Khi làm việc với các cổng vào / ra
thì các chân địa chỉ quản lý trực tiếp được 64 KB cổng vào / ra.
/BHE là tín hiệu cho phép chọn phần cao của kênh dữ liệu. M/IO được
dùng để phân biệt quá trình quy chiếu bộ nhớ với quá trình quy chiếu cổng
vào / ra. Tín hiệu /BHE kết hợp với A0 cho biết dữ liệu được truyền theo byte
hay từ.
Mã của các phương thức truyền được cho bởi bảng sau:
A0
Chức năng
BHE
0
0
Dữ liệu --WORD từ D15 - D0
0
1
Dữ liệu --BYTE cao từ D15 - D8
1
0
Dữ liệu --BYTE thấp từ D7 - D0
1
1
Không sử dụng
M/ IO là tín hiệu dùng để phân biệt bộ nhớ và cổng vào / ra thông tin

khi mà vi xử lý cần quy chiếu chúng. Nếu quy chiếu bộ nhớ (tương ứng với
chu kỳ đón Shutdown) thì tín hiệu M/ IO = 1. Ngược lại khi bộ vi xử lý
80286 quy chiếu cổng vào/ra thông tin thì tín hiệu này M/ IO = 0 ( kể cả chu
kỳ trả lời ngắt ).
CDO/ INTA

M/ IO

S1

S0

Chu kỳ máy của 80286


0
0
0
0
0
0
0
0
1
1
1
1
1
1
1

1

0
0
0
Trả lời ngắt
0
0
1
Chưa sử dụng
0
1
0
Chưa sử dụng
0
1
1
Không là chu kỳ máy
1
0
0
A1 = 1 dừng A1 = 0 đóng
1
0
1
Chu kỳ máy MR
1
1
0
Chu kỳ máy MW

1
1
1
Không là chu kỳ máy
0
0
0
Chưa sử dụng
0
0
1
Chu kỳ máy IOR
0
1
0
Chu kỳ máy IOW
0
1
1
Chưa sử dụng
1
0
0
Chưa sử dụng
1
0
1
Chu kỳ máy OF
1
1

0
Chưa sử dụng
1
1
1
Không là chu kỳ máy
Cod/ INTA cùng với các tín hiệu M/ IO , /S1 , /S0 cho phép phân biệt
chu kỳ nhận lệnh và chu kỳ đọc dữ liệu từ bộ nhớ. Nó cũng được dùng để xác
định chu kỳ trả lời ngắt, chu kỳ đọc cổng vào / ra và chu kỳ ghi cổng vào / ra.
/S1 và /S0 sẽ xác định thời điểm ban đầu của chu kỳ máy.
Các tín hiệu ra

Trạng thái

1
1
0
Trở kháng cao
D15 - D0
/READY là tín hiệu sẵn sàng làm việc của tín hiệu ngoại vi. INTR là
tín hiệu yêu cầu ngắt của tín hiệu ngoại vi. Yêu cầu ngắt này sẽ bị che nếu bít
IF ở thanh ghi cờ có giá trị logic 0.
Bộ vi xử lý 80286 trả lời ngắt bằng hai chu kỳ /INTA : Một chu kỳ
thông báo cho mạch điều khiển ngắt ( ví dụ 80289) biết là yêu cầu ngắt đã
được chấp nhận và chu kỳ thứ hai sẽ đọc vectơ ngắt từ mạch điều khiển ngắt.
Tín hiệu INTR phải ở mức tích cực ít nhất là hai chu kỳ trước lúc kết thúc
lệnh đang thực hiện và phải duy trì cho đến cuối chu kỳ /INTA thứ nhất.
NMI là tín hiệu ngắt không che được. Nó phản ứng với sườn lên của
xung kích. Lưu ý rằng muốn ngắt bằng tín hiệu này thì xung kích phải kéo dài
mức 0 đúng 4 chu kỳ nhịp rồi mới chuyển sang mức 1 và duy trì mức này 4

chu kỳ nhịp.
HOLD và HLDA là tín hiệu phục vụ cho chế độ thâm nhập trực tiếp
DMA
LOCK là tín hiệu cấm các bộ vi xử lý khác ( trong chế độ làm việc
song song) dành quyền làm chủ kênh hệ thống. Lệnh LOCK khởi động tín
hiệu trên và nó sẽ trở thành mức tích cực một cách tự động khi thực hiện lệnh
S0 , S1 , PEACK , A23 - A0
BHE , LOCK
M/ IO , Cod/ INTA , HLDA


XCHG hoặc ở chu kỳ /INTA hoặc trong thời gian thâm nhập bảng các bộ mô
tả.
PEREQ và /PEACK phục vụ chế độ đối thoại giữa bộ vi xử lý 80286
với các bộ đồng xử lý ví dụ như bộ đồng xử lý 80287. Tín hiệu PEREQ ở
mức logic 1 là tín hiệu yêu cầu 80286 gửi một toán hạng cho bộ đồng xử lý.
Tín hiệu /PEACK thông
báo cho bộ đồng xử lý biết toán hạng mà nó yêu cầu đang được chuyển tới.
/BUSY và /ERROR là tín hiệu điều khiển cho bộ đồng xử lý. /BUSY
thông báo cho 80286 biết rằng bộ đồng xử lý đang bận. Lúc này bộ vi xử lý
80286 thực hiện các lệnh ESC và WAIT để đợi bộ đồng xử lý. tín hiệu
/ERROR sẽ báo cho 80286 biết rằng bộ đồng xử lý phát hiện điều kiện ngoịa
lệ không che được.
RESET là tín hiệu khởi động có mức tích cực là mức logic 1. Tín hiệu
này sẽ lập trạng thái ban đầu cho tất cả các thành phần cần thiết của hệ vi
tính. Khi có RESET thì các tín hiệu ra có mức logic như sau
Các tín hiệu ra

Trạng thái


S0 , S1 , PEACK , A23 - A0
BHE , LOCK
M/ IO , Cod/ INTA , HLDA

1
1
0
Trở kháng cao

D15 - D0

Bộ vi xử lý 80286 được cấu tạo từ 4 đơn vị có thể làm việc song song.
Đó là các đơn vị : BU (BUS UNIT) . IU(INSTRUCTION UNIT), EU (
EXECUTE UNIT ) và AU ( ADDRESSED UNIT ).
Đơn vị BU phát sinh các tín hiệu địa chỉ. Dữ liệu và thông tin điều
khiển để thâm nhập vào bộ nhớ hay vào các cổng vào ra. Nó cho phép thiết
lập các quan hệ với các bộ đồng xử lý hoặc với các bộ xử lý đang làm chủ
kênh. Đơn vị này cho phép quá trình nhận lệnh diễn ra song song với các quá
trình khác nhờ có tệp đệm 6 byte. Nó cho phép loại trừ thời gian chết khi nhận
lệnh từ bộ nhớ
Đơn vị lệnh IU nhận lệnh từ tệp đệm, giải mã rồi đưa vào tệp đợi. Tệp
đợi chứa 3 lệnh.
Đơn vị thực hiện EU sẽ thực hiện lệnh đã được giải mã trong tệp đợi.
nó liên hệ với bộ nhớ và cổng vào / ra thông qua đơn vị BU.
Đơn vị địa chỉ AU bảo đảm việc bảo vệ, quản lý bộ nhớ và chuyển địa
chỉ logic ( địa chỉ ảo) thành địa chỉ vật lý ( địa chỉ thực ) cho đơn vị điều
khiển kênh BU.

2.Cấu trúc các thanh ghi.
Mục tiêu:

- Trình bày cấu trúc các thanh ghi của hệ vi xử lý.
 Các thanh ghi đa năng (General Register):


Bao gồm 4 thanh ghi dữ liệu (data register) 16 bit trong khối EU. Các
thanh ghi này được sử dụng để lưu giữ tạm các kết quả trung gian và được ký
hiệu là AX, BX, CX, DX. Đặc điểm của các thanh ghi này là trong trường
hợp cần chứa dữ liệu 8 bit thì mỗi thanh ghi có thể được chia làm 2 nửa 8 bit:
nửa cao (ứng với ký hiệu H) và nửa thấp (ứng với ký hiệu L). Như vậy các
thanh ghi đa năng có thể dùng nửa 8 bit để lưu theo Byte hoặc kết hợp 2 nửa
để lưu theo Từ. Bảng 2.1 giới thiệu các thanh ghi đa năng.
Chúng ta sẽ xem xét cụ thể hơn từng thanh ghi.
Bảng 2.1 Các thanh ghi đa năng.
AH
AL
AX: Accumulator
BH
BL
BX: Base
CH
CL
CX: Count
DH
DL
DX: Data
8 bits cao (H)
8 bits thấp [L]
- Thanh ghi AX (accumulator - Acc): thanh ghi tích luỹ (thanh chứa), là thanh
ghi chính để thực hiện các phép toán số học, các lệnh xuất nhập cổng. Kết quả
của các thao tác thường được lưu giữ ở đây. Nếu kết quả là 8 bit thì thanh ghi

AL được coi là Acc.
- BX (base): thanh ghi cơ sở, dùng để chỉ đến vị trí 1 ô nhớ trong 1 đoạn.
- CX (count): bộ đếm, dùng để chứa số lần lặp của lệnh lặp LOOP.
- DX (data): Thanh ghi dữ liệu, thường dùng để lưu kết quả của các phép tính
nhân, chia và định địa chỉ cổng trong các lệnh xuất, nhập cổng.
 Các thanh ghi con trỏ và chỉ số.
Trong đơn vị EU có 2 thanh ghi con trỏ (Pointer Register) được ký hiệu
là SP, BP và 2 thanh ghi chỉ số (Index Register) được ký hiệu là SI và DI.
Đây là các thanh ghi 16 bit và khác với thanh ghi đa năng, chúng không thể
chia thành 2 nửa 8 bit được.
Các thanh ghi này thường được dùng chủ yếu là để trỏ hoặc ghi chỉ số
nhằm vào 1 địa chỉ trong bộ nhớ. Các địa chỉ được chứa trong các thanh ghi
này có thể được liên hợp với các thông tin từ BIU để định vị trí thực của dữ
liệu trong bộ nhớ.
Bảng 2.2 Thanh ghi con trỏ và chỉ số trong EU
SP
Stack pointer
BP
Base Pointer
SI
Source Index
DI
Destination Index
- BP (base pointer): con trỏ cơ sở, dùng để trỏ vào dữ liệu nằm trong
đoạn ngăn xếp SS. Địa chỉ đầy đủ của phần tử trong đoạn ngăn xếp là SS:BP.
Trước khi tìm hiểu tiếp về thanh ghi SP, cần đề cập tới khái niệm liên
quan là ngăn xếp. Ngăn xếp (stack) là 1 vùng trong bộ nhớ trong để lưu trữ
các dữ liệu tạm thời. Ngăn xếp được sử dụng khi chương trình thực hiện một
lệnh gọi chương trình con hay 1 ngắt. Lúc đó CPU lưu địa chỉ của lệnh kế tiếp



×