Cấu trúc máy tính và vi xử lý

VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH

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  [524.9 KB, 28 trang ]

BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA : ĐIỆN TỬ
--------------o0o-----------------

BÀI TẬP LỚN
MÔN: VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH

Giáo viên hướng dẫn:

Tống Văn Luyên
Nhóm sv thực hiện:
Lưu Đức Thuận
Nguyễn Duy Hùng
Dương Tiến Dũng

CĐ ĐT7

nhóm SV: Lưu Đức Thuận  Nguyễn Duy Hùng  Dương Tiến Dũng

1


BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI


LỜI NÓI ĐẦU
Ngày nay, khoa học kĩ thuật phát triển ngày càng mạnh mẽ, đời sống con người
ngày càng tăng cao, kéo theo đó là nhu cầu sử dụng những sản phẩm công nghệ trong
mỗi gia đình, xí nghiệp, các nhà máy lớn không thể thiếu. Từ nhu cầu của thực tiễn,
hàng loạt các sản phẩm ứng dụng, các thiết bị hiện đại đã được phát minh và sản xuất
rộng rãi.
Để một thiết bị có thể làm được nhiều công việc với hiệu quả cao, các nhà sản
xuất cũng như những lập trình viên đã ứng dụng những công nghệ hiện đại, những linh
kiện có thể xử lý với tốc độ cao, một trong số đó là công nghệ vi xử lý.
Công nghệ vi xử lý được phát triển kể từ khi hãng sản xuất Intel tung ra thị
trường chip vi xử lý 4004 vào năm 1971 với cấu trúc gồm 2,300 bóng bán dẫn bên
trong. Với những phiên bản tiếp theo, công nghệ vi xử lý ngày càng chứng minh được
tầm quan trọng của nó đối với đời sống thực tiễn.
Một mốc son quan trọng nhất mà Intel đạt được đó là hãng đã sản xuất ra bộ vi
xử lý mang tên 8086 có độ rộng dữ liệu lên đến 16 bit với 29000 bóng bán dẫn được
tích hợp bên trong. đây là bộ vi xử lý mở đầu cho họ vi xử lý x86.

Nhóm sv thực hiện:

CĐ ĐT7



Lưu Đức Thuận

MSV:1231050642



Nguyễn Duy Hùng


MSV:1231050643



Dương Tiến Dũng

MSV:1231050632

nhóm SV: Lưu Đức Thuận  Nguyễn Duy Hùng  Dương Tiến Dũng

2


BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

Nhận xét và đóng góp ý kiến của giáo viên:



































CĐ ĐT7

nhóm SV: Lưu Đức Thuận  Nguyễn Duy Hùng  Dương Tiến Dũng

3



BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI








































Chúng em xin chân thành cảm ơn!
CĐ ĐT7

nhóm SV: Lưu Đức Thuận  Nguyễn Duy Hùng  Dương Tiến Dũng

4


BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

PHỤ LỤC:
BỘ CÔNG THƯƠNG...................................................................................................................1
LỜI NÓI ĐẦU..............................................................................................................................2
I. CƠ SỞ LÝ THUYẾT.............................................................................................................6
1. Cấu trúc máy tính...................................................................................................................6
a. Khái niệm...............................................................................................................................6

b. Các bộ phậncủa cấu trúc máy tính :.....................................................................................6
c. phần cứng và phần mền.........................................................................................................7
2. Cấu tạo và chức năng của 806...............................................................................................7
a. Sơ đồ khối của 8086...............................................................................................................7
b. Sơ đồ chân của 8086............................................................................................................10
c. Các hàm ngắt và tập lệnh của 8086.....................................................................................12
II.
CÁC THIẾT BỊ NGOẠI VI.............................................................................................16
1. Cấu tạo và chức năng của IC 8255A....................................................................................16
2. Cấu tạo ic giải mã 74273.....................................................................................................18
3. IC giải mã địa chỉ 74HC139................................................................................................19
III.
MỘT SỐ VÍ DỤ...............................................................................................................20
1. Ví dụ 1..................................................................................................................................20
a. Sơ đồ thuật toán...................................................................................................................20
b. Code chương trình...............................................................................................................20
2. Ví dụ 2..................................................................................................................................22
3. Ví dụ 3..................................................................................................................................23
a. Sơ đồ thuật toán...................................................................................................................24
b. Code chương trình...............................................................................................................24
c. Ghép nối phần cứng.............................................................................................................25
IV.
KẾT LUẬN......................................................................................................................26

CĐ ĐT7

nhóm SV: Lưu Đức Thuận  Nguyễn Duy Hùng  Dương Tiến Dũng

5



BỘ CÔNG THƯƠNG

I.

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

CƠ SỞ LÝ THUYẾT

1. Cấu trúc máy tính
a. Khái niệm
Vi xử lý là một bộ phận trung tâm của máy tính, nó có nhiệm vụ xử lý thông tin, vào
ra dữ liều, điều khiển các thiết bị ngoại vi, Một máy tính có cấu trúc bao gồm: chip
vi xử lý trung tâm [CPU], bộ nhớ ROM, RAM và các thiết bị ngoại vi có nhiệm vụ giao
tiếp giữa máy tính với con người.
Sơ đồ khối cấu trúc máy tinh như sau:

b. Các bộ phậncủa cấu trúc máy tính :
Bộ vi xử lý [CPU- Central Processin Unit]
Với vai trò là bộ xử lý trung tâm, là đầu não của một máy tính, bộ vi xử lý phải
thực thi nhiều nhiệm vụ từ việc vào/ra dữ liệu, xử lý thông tin, tính toán số liệu, điều
khiển các thiết bị ngoại vi,.
Bộ nhớ
- Bộ nhớ được chia thành RAM và ROM:
+ RAM [Random Access Memory]: là bộ nhớ có thể ghi/đọc, có nghĩa là ta có thể
đọc thông tin từ bộ nhớ, xóa thông tin cũ trong bộ nhớ hoặc ghi thông tin mới vào bộ
nhớ; nội dung thông tin trong RAM sẽ bị mất đi khi bị mất nguồn.
+ ROM [Read Only Memory] :dùng để chứa các chương trình điều khiển hệ thống
như chương trình để kiểm tra các thiết bị mỗi khi bật nguồn, chương trình khởi động
máy Nội dung bên trong ROM không bị mất đi khi bị mất nguồn.

Mạch ghép nối vào/ra
Mạch ghép nối vao/ra có nhiệm vụ tạo ra khả năng giao tiếp giữa hệ vi xử lý với thế
giới bên ngoài. Bao gồm các thiết bị như : thiết bị vào [bàn phím, chuột, máy
quét.].thiết bị ra[màn hình, máy in, ..]

CĐ ĐT7

nhóm SV: Lưu Đức Thuận  Nguyễn Duy Hùng  Dương Tiến Dũng

6


BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

Bus hệ thống
Gồm có:
+ Bus điều khiển:là các đương dây mang các tín hiệu điều khiển hoạt động
hoặc phản ánh trạng thái của các khối như /RD, /WR, /INT
+ Bus dữ liệu là các đường dây mang số liệu mà vi xử lý đang trao đổi với thiết bị
nhớ hoặc thiết bị ra/vào.
+ Bus địa chỉ : mang thông tin về địa chỉ của ô nhowshay một thiết bị vào/ra.
c. phần cứng và phần mền
Phần cứng
Phần cứng [hardware] là thuật ngữ dùng để chỉ toàn bộ những thiết bị cơ khí, điện
tử tạo nên máy tính như các ổ đĩa, màn hình,


Phần mền

Phần mền [software] là thuật ngữ dùng để chỉcác chương trình máy tính, nó được
thực thi trên phần cứng bằng cách điều khiển sự hoạt động của phần cứng.
Các phần mền được chia thành các loại sau:
Hệ điều hành như DOS, Windows,.
Trình tiện ích như NC, NU, BKAV,
Chương trình ứng dụng như MS Word, Protel,
Ngôn ngữ lập trình pascal, C, C++, Java,.

2. Cấu tạo và chức năng của 806
a. Sơ đồ khối của 8086
- Bên trong bộ vi xử lý 8086 bao gồm 2 khối chính:
+ Khối thực hiện lệnh [EU- Execution Unit] là nơi giả mã và thi hành các lệnh
+ giao tiếp bus [BIU- Bus Interface Unit] có nhiệm vụ đẩm bảo việc trao đổi
thông tin giữa 8086 với các linh kiện bên ngoài
- Sau đây chúng ta sẽ tìm hiều cấu tạo bên trong của từng khối.

CĐ ĐT7

nhóm SV: Lưu Đức Thuận  Nguyễn Duy Hùng  Dương Tiến Dũng

7


BỘ CÔNG THƯƠNG



TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

Khối thực hiện lệnh [EU]

Khối thực hiện lệnh [EU- Execution Unit] là nơi giả mã và thi hành các lệnh.
EU bao gồm:

-

Bộ xử lý số học và logic[ALU - Arithmatic Logiccal Unit] là nơi thưc hiện các lệnh
số học và lệnh logic.

-

Các thanh ghi đa năng: Có chứa 4 thanh ghi đa năng 16 bit, mỗi thanh ghi có thể
chứa bất kì các loại dữ liệu, tuy nhiên một số công việc, các thanh ghi này lại có
chức năng đặc biệt của riêng nó mà các thanh ghi khác không thực hiện được.
+ Thanh ghi AX: đây là thanh ghi chứa, kết quả của các thao tác thường được chứa
ở đây. Nếu kết quả là 8 bit thì thanh ghi AL sẽ được sử dụng
+ Thanh ghi BX: đây là thanh ghi cơ sở, thương được chứa địa chỉ cơ sở của một
bảng khi sử dụng lệnh XLAT.
+ Thanh ghi CX: đây là thanh ghi đếm, nó thường được chứa số lần lặp lại trong
trường hợp dùng lênh LÔP, còn CL thì thường được chứa số lần quay hay dịch
bít của các thanh ghi.
+ Thanh ghi DX: đây là thanh ghi dữ liệu, nó thường được sử dụng cùng với
thanh ghi AX để thực hiện các phép nhân hay chia của các số 16 bit. DX còn
được sử dụng để chứa địa chỉ các cổng trong các lệnh vào/ra dữ liệu trực tiếp.

- Thanh ghi cờ F là một đoạn ghi đặc biệt gọi là đoạn ghi cờ hay đoạn ghi trạng thái.
Mỗi bit của đoạn ghi này được dùng để phản ánh một trạng thái nhất định của kết
quả phép toán do ALU thực hiện hoặc một trạng thái hoạt động của CPU. Đoạn ghi
cờ có 16 bit nhưng chỉ dùng hết 9 bit làm bit cờ.

CĐ ĐT7


nhóm SV: Lưu Đức Thuận  Nguyễn Duy Hùng  Dương Tiến Dũng

8


BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

Các bit cờ chia thành hai loại:
* Các cờ trạng thái: có 6 cờ trạng thái là C, P, A, Z, S và O. Các cờ trạng thái
này được thiết lập bằng 1 hoặc xóa bằng 0 sau hầu hết các lệnh toán học và logic.
+ C [Carry]: cờ nhớ;
+ P [Parity]: cờ chẵn lẻ;
+ A [Auxiliary]: cờ nhớ phụ;
+ Z [Zero]: cờ rỗng,
+ S [Sign]: cờ dấu;
+ O [Overflow]: cờ tràn,
* Các cờ điều khiển: có 3 cờ T, I, D. Các cờ này được thiết lập bằng 1 hoặc xóa
bằng 0 thông qua các lệnh để điều khiển chế độ làm việc của bộ vi xử lý.
+ T [Trap]: cờ bẫy,
+ I [Interrupt]: cờ ngắt;
+ D [Direction]: cờ hướng
- Có 3 đoạn ghi con trỏ [IP, BP, SP] và 2 đoạn ghi chỉ số [SI, DI]. Các đoạn ghi này
ngầm định được sử dụng làm các đoạn ghi lệch cho các đoạn tương ứng:
+ IP [Instruction Pointer], BP [Base Pointer ], SP [Stack Ponter], SI [Source
Index]: DI [Destinaton Index].
Bảng tóm tắt sự kết hợp ngầm định giữa đoạn ghi đoạn và đoạn ghi lệch:
Đoạn ghi đoạn

CS

-

Đoạn ghi lệch
IP

DS

BX, DI, SI

SS

SP hoặc BP

ES

DI

Địa chỉ
Địa chỉ lệnh sắp thực hiện
Địa chỉ trong đoạn dữ liệu
Địa chỉ trong đoạn ngăn xếp
Địa chỉ chuỗi đích

Khối điều khiển [CU- Control unit]. Có nhiệm vụ tạo ra các tín hiệu điều khiển các
bộ phận bên trong và bên ngoài CPU.

Khối giao tiếp bus [BIU]
Khối giao tiếp bus [BIU- Bus Interface Unit] có nhiệm vụ đẩm bảo việc trao đổi

thông tin giữa 8086 với các linh kiện bên ngoài. BIU gồm :
CĐ ĐT7

nhóm SV: Lưu Đức Thuận  Nguyễn Duy Hùng  Dương Tiến Dũng

9


BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

-

Một bộ cộng để tạo địa chỉ vật lý 20 bit từ các thanh ghi 16 bit.

-

Bốn thanh ghi đoạn 16 bit gồm CS, DS, SS và ES để giúp 8086 truy cập tới các
đoạn trên bộ nhớ.
+ Thanh ghi đoạn mã CS [Code Segment],.
+ Thanh ghi đoạn dữ liệu DS [Data Segment].
+ Thanh ghi đoạn dữ liệu phụ ES [Extra Segment].
+ Thanh ghi đoạn ngăn xếp SS [Stack Segment]. .

-

Mạch logic điều khiển có nhiệm vụ đảm bảo giao tiếp giữa 8086 với thiết bị bên
ngoài.


-

Hàng đợi lệnh có độ dài 6 byte là nơi chứa các mã lệnh đọc được nằm sẵn để chờ
EU xử lý.
b.

Sơ đồ chân của 8086

Vi xử lý 8086 được thiết kế để hoạt động một trong hai chế độ, tùy thuộc vào mức điện
áp đặt ở chân số 33 [chân MN/MX]:

CĐ ĐT7

nhóm SV: Lưu Đức Thuận  Nguyễn Duy Hùng  Dương Tiến Dũng

10


BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

- Chế độ tối thiểu [chế độ MIN] đươc thiết lập nếu điện áp ở chân số 33 ở mức 5V. là
chế độ tong hệ thống chỉ có 8086 và các vi mạch nhớ , các vi mạch ghép nối vào ra.
- Chế độ tối đa [chế độ MAX] được thiết lập nếu điện áp ở chân số 33 ở mức 0V, là
chế độ áp dụng cho hệ thống đa xử lý, đồng xử lý [8086 và bộ đồng xử lý toán học
8087].
Các chân mang thông tin địa chỉ.
-Vi xử lý 8086 có 20 đường địa chỉ từ A0 đến A19 tong đó 16 đường dây địa chỉ thấp từ A0 đến
A15 được ghép kênh dữ liệu từ D0 đến D15 trên các chân từ AD0 đến AD15 ; còn 4 đường dây

địa chỉ cao nhất từ A16 đến A19 được ghép kênh với tín hiệu trạng thái từ S3 đến S6 trên các
chân A16/S3 đến A19/S6.


-


-

-



Các chân mang thông tin dữ liệu.
Vi xử ly 8086 có 16 đường dây dữ liệu từ Do đến D15 được ghép kênh với 16 đường
địa chỉ thấp từ D0 đến D15. Khi hoạt động ở chu kỳ bus dữ liệu thì các đường dây
này mang thong tin về dữ liệu, là dữ liệu đọc ra hay vào bộ nhớ.
Các chân tín hiệu trang thái.
Bốn đường dây địa chỉ cao nhất từ A16 đến A19 của 8086 cũng được ghép kênh ,
nhưng trong trường hợp này nó được ghép kênh với các tín hiệu trạng thái từ S 3 đén
S6. Các bít trang thái này được đưa ra cùng thời điểm với các dữ liệu được truyền
trên các chân AD0 đén AD15.
READY: Tín hiệu báo cho CPU biết tình trạng sẵn sàng của thiết bị ngoại vi hay bộ
nhớ. Khi READY = 1 thì CPU thực hiện đọc/ghi dữ liệu mà không phải chèn thêm
các chu kỳ đợi. Khi các thiết bị ngoại vi hay bộ nhớ cótốc độ chậm, chúng có thể
đưa tin hiệu READY = 0 để báo cho CPU biết mà chờ chúng. Lúc này CPU tự kéo
dài thời gian thực hiện đọc/ghi bằng cách chèn thêm các chu kỳ đợi.
Các chân tín hiệu điều khiển.

- ALE: [I] Address Latch Enable. Xung cho phép chốt địa chỉ. Khi ALE = 1 có nghĩa

là trên các chân ghép kênh AD có địa chỉ của thiết bị vào/ra hoặc ônhớ. Khi CPU
chấp nhận treo chân này không ở trạng thái trở kháng cao mà ALE = 0.
: [O] Data bus Enable. Kích hoạt các bộ đệm bus dữ liệu.
: Chọn bộ nhớ [= 0] hoặc thiếtbị vào/ra [= 1] làm việc với CPU. Khi đó trên
bus địa chỉ sẽ có địa chỉtương ứng của các thiết bị đó. Chân này ở trạng thái trở
kháng cao khi CPU chấp nhận treo.
:[O] Data Transmit/Receive. Tín hiệu này cho biết bus dữ liệu đang vận
chuyển dữ liệu vào CPU hay ra khỏi CPU. Tín hiệu này cũng dùng để điều khiển
các bộ đệm 2 chiều của bus dữ liệu.
CĐ ĐT7

nhóm SV: Lưu Đức Thuận  Nguyễn Duy Hùng  Dương Tiến Dũng

11


BỘ CÔNG THƯƠNG

-

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

: Dùng để báo răng đang truy cập năng cao hay băng thấp của bộ nhớ
:[O] Read signal. Xung cho phép đọc. Khi RD = 0 thì bus dữ liệu nhận dữ liệu
từ bộ nhớ hoặc thiết bị ngoại vi. Chân này ở trạng thái trở kháng caokhi CPU chấp
nhận treo



Các chân tín hiệu ngắt:

- INTR: [I] Interrupt request. Tín hiệu yêu cầu ngắt che được. Khi có yêu cầu ngắt
[INTR = 1] mà cờ cho phép ngắt IF = 1 thì CPU kết thúc lệnh đang làm dở, sau đó
đi vào chu kỳ chấp nhận ngắt và đưa ra bên ngoài tín hiệu INTA = 0.
:[I] Tín hiệu tại chân này được kiểm tra bởi lệnh WAIT. Khi CPU thực hiện
lệnh WAIT mà lúc đó tín hiệu TEST = 1 thì nó sẽ chờ cho đến khi tín hiệu TEST = 0
thì mới thực hiện lệnh tiếp theo.
- NMI: [I] None-Maskable Interrupt. Tín hiệu yêu cầu ngắt không che được. Tín hiệu
này không bị khống chế bởi cờ IF và nó sẽ được CPU nhận biết bằng tác động của
sườn lên của xung yêu cầu ngắt. Nhận được yêu cầu ngắt này [NMI = 1] CPU kết
thúc lệnh đạng làm dở,sau đó chuyển sang thực hiện chương trình phục vụ ngắt kiểu
INT2.
- RESET: Dùng để thiết lập lại phần cứng cho CPU. Chuyển RESET xuống mức
logic 0 dùng để khởi tạo các thanh ghi nội của vi xử lý và khởi tạo chương trình con
phục vụ thiết lập hệ thống.

Các chân mang tín hiệu phục vụ DMA :
Ở chế độ MIN của 8086 gồm hai tín hiệu HOLD và HLDA. Khi một thiết bị ngoài
muốn giành quyền điều khiển bus hệ thống thực hiện truy cập bộ nhớ trực tiếp , nó báo
yêu cầu này cho CPU bằng cách chuyển HOLD lên mức logic 1.Sau đó CPU chuyển
sang trạng thái cô lập sau khi chu kỳ bus hiện tại thực hiện xong. Khi ở trạng thái cô lập
, các đường dây tín hiệu AD0- AD15, A16/S3- A19/S6, BHE/S7,
,
,
,
và INTR.
c. Các hàm ngắt và tập lệnh của 8086
Tập lệnh của 8086
+ Lệnh XCHG: toán hạng đích và nguồn được đổi lẫn cho nhau
XHCG đich, nguồn
+ Lệnh XLAT: XLAT nhan_nguồn

+ Lệnh ADD, SUB: ADD dich,nguon - cong nguon vao dich
CĐ ĐT7

nhóm SV: Lưu Đức Thuận  Nguyễn Duy Hùng  Dương Tiến Dũng

12


BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

+ Lệnh ADC: cờ nhớ được cộng vào toán hạng đích và nguồn
ADC dich,nguon
+ Lệnh DIV: thực hiện phép chia không dấu, toán hạng nguồn có thể là một ô nhớ
hay đoạn ghi. Nếu toán hạng nguồn là 8 bit thì thương số nằm trong AL, số dư nằm
trong AH; nếu toán hạng nguồn là 16 bit, thì thương số nằm trong AX còn số dư nằm
trong DX
DIV nguon;
+ Lệnh IDIV [integer divide]: thực hiện phép chia có dấu.
IDIV nguon;
+ Lệnh IMUL: thực hiện phép nhân có dấu.
IMUL nguon;
+ Lệnh INT : dùng để gọi các hàm của DOS và BIOS ;
Cú pháp : int 21h
+ Lệnh MOV: chuyển dữ liệu từ toán hạng nguồn vào toán hạng đích
MOV dich, nguon
+ Lệnh OUT: xuất dữ liệu từ đoạn chứa ra cổng
OUT cong,đoạn_chua
+ Lệnh IN: đọc dữ liệu từ cổng vào đoạn ghi.


IN đoạnghi, cong
+ Lệnh NEG [NEGate]: toán hạng đích bị trừ đi từ số toàn chữ số 1 [0FFH với kiểu
byte và 0FFFFH với kiểu từ].
NEG dich;
+ Lệnh SBB [SuBtract with Borrow]: Trừ có nhớ. Trừ toán hạng đích cho toán hạng
nguồn và nếu CF=1 thì trừ kết quả nhận được cho 1.
SBB dich, nguon;
+ Lệnh MUL[Multiply]: thực hiện phép nhân không dấu. Nhân nội dung của đoạn
AL với toán hạng nguồn. Nếu nguồn kiểu byte thì tích chứa trong AX, nếu nguồn là
kiểu từ thi tích chứa trong DX:AX
MUL nguon;
+ Lệnh JNZ: nếu KQ của lệnh trước đó khác 0 thi thực hiện lệnh nhảy đến
nhãn_đích, ngược lại thì thực hiện lệnh kế tiếp sau đó.
JNZ nhan_dich;
+ Lệnh JA, JG: nhảy nếu lớn hơn
+ Lệnh JB, JL : nhảy nếu nhỏ hơn.
+ Lệnh JNA, JNG: nhảy nếu không lớn hơn.
+ Lệnh JE: nhảy nếu bằng.
CĐ ĐT7

nhóm SV: Lưu Đức Thuận  Nguyễn Duy Hùng  Dương Tiến Dũng

13


BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI


+ Lệnh JC : nhảy nếu cờ CF=1.
+ Lệnh nhảy không điều kiện [JuMP] : nhảy đến nhãn_nguồn khi gặp lệnh này.
JMP nhan_nguon ;
+ Lệnh CMP [CoMPare] : so sánh 2 toán hạng bằng cách trừ 2 toán hạng cho nhau
mà không lưu lại két quả.
CMP dich, nguon ;
+ Lệnh lặp : lặp lại nhãn_nguồn khi gặp lệnh này.
LOOP nhan_nguon ;
+ Các lệnh AND, OR, XOR và TEST
AND dich,nguon
OR dich,nguon

;AND đích với nguồn, kết quả lưu ở đích
;OR đích với nguồn, kết quả lưu ở đích

XOR dich,nguon ;XOR đích với nguồn, kết quả lưu ở đích
TEST dich,nguon ;AND đích với nguồn, kết quả không lưu lại
+ Lệnh dịch: SHL/SAL dich,1 ;dich sang trai 1 bit
SHL/SAL dich,CL ; dich sang trai nhieu bit
SHR dich,1 ; dich sang phai 1 bit
SHR dich,CLL ; dich sang phai nhieu bit
+ Lệnh quay:

ROL/ROR dich,1 ; quay đích sang trái/phải 1 bit
ROL/ROR dich,CL ; quay đích sang trái/phải n bit, với CL=n
RCL/RCR dich,1 ; quay đích sang trái/phải 1 bit
RCL/RCR dich,CL ; quay đích sang trái/phải n bit, với CL=n

+ Lệnh HLT [HaLT]: đưa bộ vi xử lý vào trạng thai dừng để chờ ngắt ngoài. Dạng
lệnh: HLT

+ Lệnh LOCK: khóa bus trong môi trường có nhiều bộ vi xử lý.
+ Lệnh NOP: không thực hiện một thao tác nào.
+ Lệnh STI: IF được thiết lập 1.
+ Lệnh WAIT: Bộ vi xử lý ở trạng thái chờ cho đến khi ngắt ngoài
+ Lệnh PUSH: cất dữ liệu vào ngăn xếp, giảm SP đi 2.
PUSH nguon;

+ Lệnh PUSHF: chuyển đoạn ghi cờ vào ngăn xếp.
PUSHF;

+ Lệnh POP: lấy dữ liệu ra khỏi ngăn xếp và đưa vào toán hạng đích.
POP dich;
CĐ ĐT7

nhóm SV: Lưu Đức Thuận  Nguyễn Duy Hùng  Dương Tiến Dũng

14


BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

+ Lệnh POPF: chuyển nội dung của 2 byte từ đinh ngăn xếp vào đoạn ghi cờ, sau
đó tăng con trỏ ngăn xếp lên 2.
POPF;

+ Lệnh CALL: gọi thủ tục.
CALL nhan;


+ Lệnh RET: trả lại điều khiển khi thủ tục được thực hiện xong.
RET;

Các hàm ngắt 21h của 8086
- Hàm 1: là hàm chờ đọc vào 1 ký tự từ thiết bị vào ra chuẩn[bàn phím]. Kết quả được
lưu vào trong AL.
MOV AH,1

cú pháp :

INT 21H
- Hàm 2 : là hàm hiển thị nội dung thanh ghi DL lên màn hình hoặc thi hành các chức
năng điều khiển.
Cú pháp : MOV AH,2
MOV DL,A
Int 21H

- Hàm 4CH : là hàm kết thúc chương trình hiện tại và trả điều khiển về cho chương
trình gọi nó.
Cú pháp :

MOV AH,4CH
INT 21H

- Hàm 9 : Là hàm hiển thị ra màn hình một chuỗi kí tự
Cú pháp :

MOV AX,@DATA
MOV DS,AX ;khoi tao thanh ghi doan du lieu DS
MOV AH,9

LEA DX,chuoi ki tu
INT 21H

Cấu trúc chương trình lập trình cho 8086
model small ;khai bao kieu bo nho la small
.stack 100h ;khai bao kich thuoc ngan xep la 100h
.data
;khai bao doan du lieu
;khai báo các biến, các hằng ở đây
.code
;khai bao doan ma
Main proc
;các lệnh chương trình chính
CĐ ĐT7

nhóm SV: Lưu Đức Thuận  Nguyễn Duy Hùng  Dương Tiến Dũng

15


BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

Main endp
;các hàm và thủ tục
End main

II.


CÁC THIẾT BỊ NGOẠI VI

1. Cấu tạo và chức năng của IC 8255A
Sơ đồ chân và chức năng của mỗi chân

-

Trên thị trường và nghiên cứu chúng ta chỉ nghiên cứu loại đóng gói dạng DIP 40
chân của IC 8255A:
- Các chân 14, 15, 16, 17, 13, 12, 11, 10: tương ứng theo thứ tự từ PC0 đến PC7.
Đây là cổng giao tiếp dữ liệu 8 bít PC, khi cần thiết, nó có thể tách thành 2 phần PC
cao từ bít PC7 đến PC4 và PC thấp từ bít PC0 đến PC3.đặc biệt, hai phần này có thể
hoạt động độc lập với nhau nếu cần. tùy thuộc vào thanh ghi điều khiển được cài đặt mà
các cổng này có thể vào/ ra dữ liệu.
- Các chân 4, 3, 2, 1, 40, 39, 38, 37: tương ứng với cổng PA từ PA0 đến PA7. Đây là
cổng giao tiếp dữ liệu 8 bit vào/ ra PA. tùy theo thanh ghi điều khiển được cài đặt mà
cổng này có thể xuất dữ liệu ra hoặc nhận dữ liệu vào. Cổng này khác với cổng PC, nó
không thể tách làm 2 độc lập với nhau được.
- Các chân từ 18 đến 25: tương ứng với cổng PB từ PB0 đến PB7 . Tương tự như
cổng PA, cổng PB cũng có thể đưa dữ lieu 8 bít ra hoặc vào bằng cách thiết lập giá trị
của thanh ghi điều khiển.

CĐ ĐT7

nhóm SV: Lưu Đức Thuận  Nguyễn Duy Hùng  Dương Tiến Dũng

16


BỘ CÔNG THƯƠNG


TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

- Các chân từ 27 đến 34 : tương ứng theo thứ tự từ D7 đến D0 - Bus dữ liêu[2 chiều].
Bus dữ liệu 2 chiều này được nối tới các tín hiệu tương ứng của Vi xử lý để trao đổi dữ
liệu vào/ra do chip 8086 xử lý
- Chân 35: là chân Reset - khởi tạo trạng thái ban đầu của IC 8255. Nếu đặt mức này
lên mức 1 thì IC bị RESET lại từ đầu. để mạch có thể chạy được, chúng ta phải đặt chân
này về mức 0V  GND.
- Chân 6: chân /CS - Tín hiệu chọn vi mạch. Đây là tín hiệu tích cực ở mức thấp 0v,
vì vây chúng ta phải đặt chân này ở mức thấp để chọn IC 8255 hoạt động. nhơ vậy, chân
này được sử dụng để kết hợp với mạch giải mã địa chỉ để Vi xử lý điều khiển nó hoạt
động đúng yêu cầu.
- Chân 5: chân /RD [Read]- là chân tín hiệu cho phép đọc.
- Chân 36: chân /WR[Write]  là chân tín hiệu cho phép ghi.
- Chân 9 và 8: tương ứng với chân tín hiệu địa chỉ A0  A1, 2 chân này được nối với
2 bít được tách ra từ bộ tách địa chỉ của 8086, 2 chân này dùng để giải mã cho các cổng
của 8255 với quy luật sau:
+ A1A0 là 00: mã hóa cho cổng PA
+ A1A0 là 01: mã hóa cho cổng PB
+ A1A0 là 10: mã hóa cho cổng PC
+ A1A0 là 11: mã hóa cho thanh ghi điều khiển
Chính vì vậy, để chọn đúng vị trí cổng chúng ta phải đưa 2 bít bất kì được tách ra từ
bộ tách tín hiệu địa chỉ sao cho 2 chân này cũng được mã hóa đúng như quy luật của
A1, A0 trên 8255


chế độ hoạt động

Tuy thuộc vào đoạn ghi điều khiển khi khởi tạo mà vi mạch có thể hoạt động ở các

chế độ 0, 1, 2 khác nhau, chiều của các cổng A, B, C có thể ra hoặc vào.
Thanh ghi điều khiển gồm có 8 bit, mỗi bít có các chức năng khác nhau :
1

D6

D5

PA

PC cao

D2 PB

PC thấp

+ Bit D6 và D5 dùng để chọn chế độ nhóm A
Nếu D6D5 là 00 thì chọn chế độ 0
Nếu D6D5 là 01 thì chọn chế độ 1
Các trường hợp khác sẽ không xác định
+ Bít PA: chọn chiều cho cổng PA,
Nếu PA=0: cổng PA sẽ xuất dữ liệu ra.
Nếu PA=1: cổng PA sẽ nhận dự liệu bên ngoài vào
+ Bít PC cao: chọn chiều ra/vào cho 4 bit cao của cổng PC
CĐ ĐT7

nhóm SV: Lưu Đức Thuận  Nguyễn Duy Hùng  Dương Tiến Dũng

17



BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

Nếu PC=0 thì cho phép cổng PC cao xuất dữ liệu ra
Nếu PC=1 thì cho phép cổng PC ca0 nhận dữ liệu
+ Bít D2: chọn chế độ nhóm B
Nếu D2=0 thì chọn chế độ 0
Nếu D2=1 thì chọn chế độ 1
+ Bít PB: chọn chiều ra/vào cho cổng PB
Nếu PB=0 thì cho phép cổng PB xuất dữ liệu ra
Nếu PB=1 thì cho phép cổng PB nhận dữ liệu
+ Bít PC thấp: chọn chiều ra/vào cho 4 bit thấp của cổng PC
Nếu PC=0 thì cho phép cổng PC thấp xuất dữ liệu ra
Nếu PC=1 thì cho phép cổng PC thấp nhận dữ liệu
VD: để chọn chọn chế độ nhóm A là chế độ 0, nhóm B là chế độ 0, cổng PA, PB xuất
dữ liệu, cổng PC nhận dữ liệu , ta cài đặt thanh ghi điều khiển như sau:
Mov al, 100010001B
Out DK, al
Chế độ 0:
+ các cổng A, B, C được sử dụng đọc lập với nhau.
+ Cổng A, B, C có thể vào hoặc ra tùy vào đoạn ghi điều khiển
- Chế độ 1: chế độ này được gọi là chế độ vào/ra đột cửa hay ddooid thoại với các bit
của cổng C. Các cổng A, B, C được chia thành 2 nhóm:
+ Nhóm A gồm cổng A để trao đổi dữ liệu và cổng C cao để đồi thoại với Vi Xử Lý và
thiếu bị ngoài.
+ Nhóm B gồm cổng B để trao đổi dữ liệu và cổng C thấp để đồi thoại với Vi Xử Lý và
thiếu bị ngoài


2. Cấu tạo ic giải mã 74273
Cấu tạo bên trong và chức năng các chân :

CĐ ĐT7

nhóm SV: Lưu Đức Thuận  Nguyễn Duy Hùng  Dương Tiến Dũng

18


BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

IC 74273 là IC số được tích hợp bỏi 8 con flip-flop loại D lắp theo kiểu đồng bộ
xung đồng hồ và chân clear. IC gồm có 20 chân trong đó:
+ Chân 20 nối với Vcc nằm ở dải 4,75 đến 5,25 Volt
+ Chân 10 nối với Mass
+ Chân 1 là chân Clear [MR]
+ Chân 11 là chân xung đồng hồ [CP]
+ Các chân 3, 4, 7, 8, 13, 14, 17, 18 là chân tín hiệu vào nối với các dây tín hiệu
đa hợp của Vi Xử Lý.
+ Các chân 2, 5, 6, 9, 12, 15, 16, 19 là các chân tín hiệu địa chỉ được tách ra.
Do nó được tích hợp bởi 8 con FF_D nên mỗi IC chỉ có thể tách được 8 đương địa
chỉ đa hợp cua 8086. Vì vậy mạch cần 2 con IC 74273 để tách hết 16 đường địa chỉ của
8086.
Tùy theo đề bài yêu cầu mà các đầu ra này được sử dụng với mục đích khác nhau,
các chân này được nối với mạch giải mã địa chỉ đưa vào chân CS của 8255 và dành ra 2
bit để mã hóa cho các cổng của 8255, 2 chân này được nối vào chân A1, A0 của 8255


3. IC giải mã địa chỉ 74HC139
sơ đồ cấu tạo bên trong và chức năng các chân của IC 74LS139

CĐ ĐT7

nhóm SV: Lưu Đức Thuận  Nguyễn Duy Hùng  Dương Tiến Dũng

19


BỘ CÔNG THƯƠNG

-

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

IC 74HC139 là IC giải mã 2 bít với các đầu ra tích cực ở mức âm. IC này được đóng
gới dạng DIP 16 chân. Bên trong IC này được tích hợp 2 bộ giải mã 2 bit với chức
năng các chân như sau:
o Chân 1 [1G] và 15[2G]: là 2 chân chọn chip của 2 bộ giải mã tích cực
ở mức thấp, nghĩa là, để cho phép bộ giải mã nào hoạt động thì chân G
tương ứng của bộ đó đặt ở mức 0V.
o Chân 2, 3 và 14, 13: là 2 chân tín hiệu cần giải mã vào tương ứng của
2 bộ giải mã.
o Chân 4, 5, 6, 7: là các chân tín hiệu ra Y0, Y1, Y2, Y3 của bộ giải mã
thứ nhất
o Chân 12, 11, 10, 9: là các chân tín hiệu ra của bộ giải mã thứ hai
o Chân 8 [GND] và chân 16 [Vcc]: là 2 chân nguồn nuôi chip.

-


Cơ chế mã hóa như sau: nếu 2 chân tín hiệu đầu vào B,A được đặt mưc logic tương
ứng là:
o 00: thì chân Y0 ở mức logic thấp[0v], các chân ra còn lại ở mức cao.
o 01: thì chân Y1 ở mức logic thấp[0v], các chân ra còn lại ở mức cao.
o 10: thì chân Y2 ở mức logic thấp[0v], các chân ra còn lại ở mức cao.
o 11: thì chân Y3 ở mức logic thấp[0v], các chân ra còn lại ở mức cao

III.

MỘT SỐ VÍ DỤ

1. Ví dụ 1
CHỦ ĐỀ: Nhập vào từ bàn phím 3 số có hai chữ số không bằng nhau, tìm số có giá
trị nhỏ trong 3 số đó và hiển thị kết quả dưới dạng cơ số 16

CĐ ĐT7

nhóm SV: Lưu Đức Thuận  Nguyễn Duy Hùng  Dương Tiến Dũng

20


BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

a. Sơ đồ thuật toán
Bắt đầu


3
lần

Nhập vào chữ số thứ nhất

Lấy ngăn xếp vào BX

AND AX với 000Fh
Gán BX = 10
AX = AX x BX
Gán BX = AX

Lấy ngăn xếp vào AX

AX >
BX ?

S

Nhập vào chữ số thứ hai
AND AX với 000Fh
Cộng AX = AX + BX
Cất AX vào ngăn xếp

thoát

Hiển thị DL

Đ


1lầ
n

BX = AX

4 lần

Quay trái BX 4 bit
Gán DL=BL
And DL với 0Fh
Cộng DL với 30h

DL > 39h ?
DL = DL+07h

b. Code chương trình
.model small

.stack 100h
.data
tb1 db 10,13,"nhap so thu $" ; xuong dong,ve dau dong
tb2 db 10,13," so nho nhat dang hexa la: $"
j db 0 ; khai bao bien j
.code
main proc
mov ax,@data
mov ds,ax
mov cx,3 ; cho phep nhap 3 lan
nhap:
; --- hien thi thong bao so lan nhap ----add j,1

mov ah,9
lea dx,tb1;
int 21h ;moi lan nhap dua ra thong bao thu 1
mov ah,2

CĐ ĐT7

nhóm SV: Lưu Đức Thuận  Nguyễn Duy Hùng  Dương Tiến Dũng

21


BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

mov dl,j ; gan dl=j
add dl,30h ; gan dl=dl+30h=j+30h
int 21h ; ham ngat cho phep hien thi
mov dl,3ah; hien thi dau ":" sau vi tri
int 21h
; - -- nhap vao so thap phan co 2 chu so -----------mov ah,1 ; goi ham nhap
int 21h ; cho phep nhap
and ax,0fh ; lay 4 bit thap cua thanh ghi al
mov BX, 10 ; gan bx=10
mul bx
; chia ax cho bx=10
mov bx,ax ; gan bx=ax
mov ah,1 ; nhap so thu 2
int 21h

and ax,0fh ; lay 4 bit thap cua al
add ax,bx ; cong ax= ax+bx
push ax ; cat ax vao ngan xep
loop nhap ; lap lai vong nhap
;-----------pop BX
; lay du lieu cuoi vao bien min
mov cx,2 ; gan cx=2
kk:
pop ax
; lay du lieu tu ngan xep vao t.ghi AX
cmp ax,BX ; so sanh AX voi min
jg ii
; neu AX > min thi nhay toi ii
mov BX,ax ; neu ax m= 4
Vậy chúng ta sẽ sử dụng 4 vi mạch RAM 16Kx8
- Từ yêu cầu đó,chúng ta sẽ ghép nối các vi mạch nhớ thành bộ nhớ có dung lượng là
96Kx8 với địa chỉ đầu là 00000
Giải mã địa chỉ của từng vi mạch nhớ là :
Vi mạch
nhớ

AAAA
1 1 1 1
9 8 7 6

AAAA
11 1 1
5 4 3 2

AAAA

1 1 9 8
1 0

AAAA
7 6 5 4

AAAA
3 2 1 0

Địa chỉ

ROM1
8Kx8

0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0001
0001
0001
0001

0000

0001
0010
0011
0100
0111
1000
1011
1100
1111
0000
0011
0100
0111

0000
1111
0000
1111
0000
1111
0000
1111
0000
1111
0000
1111
0000
1111

0000

1111
0000
1111
0000
1111
0000
1111
0000
1111
0000
1111
0000
1111

0000
1111
0000
1111
0000
1111
0000
1111
0000
1111
0000
1111
0000
1111

00000

01FFF
02000
03FFF
04000
07FFF
08000
0BFFF
0C000
0FFFF
10000
13FFF
14000
17FFF

ROM2
8Kx8
ROM3
16Kx8
RAM1
16Kx8
RAM2
16Kx8
RAM3
16Kx8
RAM4
16Kx8

-

Từ bảng giải mã địa chỉ của từng vi mạch nhớ, chúng ta nhận thấy đối với 4 vi mạch nhớ

đầu tiên có 4 bit từ A16 đến A19 đều có mức logic 0 không thay đổi trong toàn bộ giải địa

CĐ ĐT7

nhóm SV: Lưu Đức Thuận  Nguyễn Duy Hùng  Dương Tiến Dũng

23


BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

chỉ của mỗi vi mạch nhớ. Chúng ta sẽ sử dụng 4 bit này để đưa vào mạch mã hóa chọn 4 bộ
nhớ đầu hoạt đông.
+ đối với 2 bit tiếp theo A15 và A14 ở mỗi vi mạch nhớ đều có mỗi giá trị trạng thái khác
nhau, tương ứng với 4 trạng thái số đếm nhị phân 2 bit. Từ đó chúng ta sẽ sử dụng 2 bit này
để mã hóa cho mỗi vi mạch nhớ. 2 bit này sẽ đưa vào 2 đầu vào B, A tương ứng.
+ riêng với 2 vi mạch nhớ ROM đầu tiên, 2 bit A15 và A14 đều có 1 giá trị là 00 tuy nhiên
do bit A13 của ROM1 là 0 và ROM 2 là 1, vì vậy ta sẽ kết hợp bít này với 2 bít A14 và A15
để chọn 2 vi mạch ROM này hoạt động.

-

Đối với 2 vi mạch RAM 16K cuối cùng, ta để ý thấy 5 bit đầu từ A15 đến A19 cũng có giá
trị logic không đổi, chúng ta cũng sử dụng 5 bit này kết hợp để chọn cho 2 vi mạch cuối
hoạt động. ngoài ra, do bit A14 ở mỗi vi mạch có mỗi giá trị khác nhau, vì vậy ta sử dụng
bít này để chọn mỗi vi mạch hoạt động.

Mạch ghép nối bộ nhớ như sau:


3. Ví dụ 3
Đề bài: Thiết kế mạch ghép nối giữa bộ vi xử lý 8086 và 8255 với các địa chỉ của
cổng PA, PB, PC, thanh ghi điều khiển lần lượt là 10,12,14,16. Ghép 8 đèn với
cổng PB, theo kiểu Cathodes chung. Viết chương trình điều khiển các led sáng
tuần tự theo vòng tròn với thời gian trễ là 1s. Chuỗi LED sang tuần tự sẽ dừng
lại khi ấn một nút điều khiển
a.

Sơ đồ thuật toán

CĐ ĐT7

nhóm SV: Lưu Đức Thuận  Nguyễn Duy Hùng  Dương Tiến Dũng

24


BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

Bắt đầu
Gán i=0000 0001
Gán AL = i
Xuất AL ra PC
Lấy dữ liệu từ PC vào AL

30,000
lần


AL=0F
h?

Đ

Quay trái i 1 bit

S

Trễ một thời gian

Lấy dữ liệu từ PC và

S

AL=70
h? Đ
Trễ một thời
gian

b. Code chương trình
data segment
pa equ 10h ; dia chi cong PA la 10h
pb equ 12h ; dia chi cong PB la 12h
pc equ 14h ; dia chi cong PC la 14h
creg equ 16h ; dia chi thanh gi dieu khien la 16h
i db 0
ends
stack segment

dw 128 dup[0]
ends
code segment
start:
mov ax, data
mov ds, ax
CĐ ĐT7

nhóm SV: Lưu Đức Thuận  Nguyễn Duy Hùng  Dương Tiến Dũng

25


Chủ Đề