Tải bản đầy đủ (.doc) (28 trang)

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

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 (530.39 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:
• Nhóm sv thực hiện:


VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 1
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
LỜI NÓI ĐẦU
Công nghệ Vi xử lý là một trong những thành tựu khoa học đánh dấu bước ngoặt
trong lịch sử về sự phát triển của ngành khoa học – công nghệ. Nó đã đóng góp hàng
loạt các ứng dụng và sản phẩm vào đời sống thực tiễn của con người, trên hầu hết tất cả
các lĩnh vực. Đặc biệt trong nền công nghiệp hóa và hiện đại hóa của nước ta.
Với những ưu điểm mà công nghệ Vi xử lý mang lại, chúng ta cần phải khai thác
và phát triển nó rộng rãi hơn, để hiểu và sử dụng công nghệ này vào thực tiễn, nhóm
em xin trình bày một vài ví dụ về lập trình cho xi xử lý và cách kết nối cơ bản của nó
với các thiết bị ngoại vi.
Một trong những thế hệ chíp thành công nhất của hãng phát triển Intel là bộ vi xử
lý 16 bít được mang tên 8086. Nó đã mở đầu cho một thế hệ vi xử lý x86. 8086 có thể
quản lý đươc 1MB bộ nhớ, với tốc đô xử lý lên tới 2,5 triệu lệnh trên một giây.
Sau đây chúng em xin trình bày chi tiết các bước để mọi người có thể hiểu và lợi
dụng những tính năng mà Vi xử lý 8086 mang lại. trong quá trình trình bày, có gì sai sót
mong các thầy cô bỏ qua và góp ý để chúng em được hoàn thiện hơn trong những bài
báo cáo lần sau.
.Chúng em xin chân thành cảm ơn!
• Nhóm sv thực hiện:


VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 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:
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………

……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 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!
VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 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
PHỤ LỤC: 5
I. NỘI DUNG THỰC HIỆN 6
II.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 8
a.Sơ đồ khối của 8086 8

Khối thực hiện lệnh (EU) 8
Khối giao tiếp bus (BIU) 10
b.Sơ đồ chân của 8086 10
c.Các hàm ngắt và tập lệnh của 8086 12
Tập lệnh của 8086 12
Các hàm ngắt 21h của 8086 14
3.Cấu tạo và chức năng của IC 8255A 15
4.Cấu tạo bộ giải mã 17
5.Cấu tạo và chức năng cửa IC 74LS138 19
III.BÀI TẬP 20
1.Ví dụ 1 20
a.Sơ đồ thuật toán 20
b.Code chương trình 21
2.Ví dụ 2 – ghép nối bộ nhớ 22
a.Xây dựng mạch 22
b.Mạch ghép nối bộ nhớ 24
3.Thiết kế sản phẩm 24
a.Phân tích đề bài và cách chọn cách ghép nối 24
b.mạch ghép nối 25
c.sơ đồ thuật toán 26
d. Code chương trình 26
IV. KẾT LUẬN 27
VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 5
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
I. NỘI DUNG THỰC HIỆN
1. Viết chương trình thực hiện phép toán AX = n! (0 < n < 10), n được nhập vào từ
bàn phím, sau đó hiển thị kết quả dưới dạng số thập phân.
2. Xây dựng bộ nhớ dung lượng 16KB từ các vi mạch nhớ RAM (1Kx4) và 6 vi
mạch nhớ ROM(2Kx8)
3. 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à 46h,44h,42h,40h. Ghép các đèn led
đơn (LED-GREEN, BLUE, …) với cổng PC theo kiểu Anodes chung. Viết
chương trình điều khiển các led sáng lan với thời gian trễ là 0.5s.
II. 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 thành phần không thể thiếu của máy tính, ngoài ra để tạo ra một hệ
hoàn chỉnh phải cần có các bộ phận khác như bôn nhớ, thiết bị vào/ra như bàn phím,
màn hình
b. Các bộ phậncủa cấu trúc máy tính :
• Bộ vi xử lý (CPU- Central Processin Unit)
Đóng vai trò như một bộ não của máy tính. Đây là một vi mạch số với mức độ tích
hợp cực lớn, bên trong nó bao gồm nhiều khối chức năng khác nhau như đơn vị số
nguyên để thao tác tính toán với các số nguyên,
VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 6
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
Các thông số quan trọng của một bộ vi xử lý :
+ Tần số làm việc
+ Độ rộng bus dữ liệu m
+ Độ rộng bus địa chỉ n
• 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, … )
• 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,….
VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 7
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
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.
• 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.
VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 8
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
- 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á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 Đoạn ghi lệch Địa chỉ
CS IP Địa chỉ lệnh sắp thực hiện
DS BX, DI, SI Địa chỉ trong đoạn dữ liệu
SS SP hoặc BP Địa chỉ trong đoạn ngăn xếp
ES DI Địa chỉ chuỗi đích
VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 9
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
- 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 :
- 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
c
VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 10
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
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):
- 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).
• Chức năng của các chân như sau:
+ Chân ALE của 8086 là chân cho phép chốt địa chỉ, là một xung nâng lên mức 1 để
báo cho mạch ngoài biết có một địa chỉ hợp lệ trên bus. Vì vây nó sử dụng làm xung
clock cho mạch tách tín hiệu địa chỉ. Do IC tách tín hiệu địa chỉ có xung clock tích cực
sườn âm, vì vậy trước khi đưa vào chân clk của IC 74LS273, ta phải cho qua cổng
NOT để đảo tín hiệu
+ Chân M/IO: báo cho mạch điện bên ngoài biết bộ nhớ hoặc thiết bị vào ra được nối
với bus. Múc 0 báo cho các mạch ngoài biết thiết bị vào ra đang được sử dụng. vì vậy,
chân này được nối với mạch giải mã địa chỉ.
+ Chân RD và WR: điều khiển việc đọc dữ liệu từ thiết bị ngoại vi vào VI Xử LÝ hay
la lấy dữ liệu từ bộ vi xử lý ra ngoài của 8255A.
+ Chân MN/MAX: nối với Vcc để chọn chế độ MN cho vi xử lý.

+ Chân DEN: dùng để báo có dữ liệu hợp lệ trên BUS bởi mức Logic 0. Nó thường
được đưa tới điều khiển vi mạch đệm dữ liệu.
+ chân DT/R: dùng để báo hướng truyền dữ liệu trên BUS. Khi nó ở mức kogic 1 trong
suốt một phần truyền dữ liệu của BUS sữ liệu thì BUS dữ liệu ở chế độ truyền. Ngược
lại, mức logic 0 thì chân này báo hiệu rằng BUS đang ở chế độ nhận.
+ Chân BHE: đùng để bảo rằng đang truy cao hay băng thấp. BHE=0 báo hiệu đang
truy cập băng cao của bộ nhớ. Ngược lại mưc logic 1 đang báo đang truy cập băng
thấp của bộ nhớ.
+ chân INTR: là chân đầu vào của 8086. Nếu nó có mức logic 1 thì báo hiệu cho một
yêu cầu ngắt tích cực. khi yêu cầu được CPU biết, nó sẽ báo cho thiết bị ngoài với mức
logic 0 ở đầu ra INTA đảo.
+ chân TEST: khi mức logic ở chân này ở mức 1, CPU sẽ treo hoạt động của mình và
chuyển đến một trạng thái có thể hiểu là trạng thái nghỉ - nó sẽ không thực hiện lệnh –
cho đến khi đầu vào này trở về mức 0.
+ chân RESET: đầu vào RESET được sử dụng để thiết lập lại phần cứng cho CPU.
Chuyển chân này xuống mức logic 0 để khởi tạo lại các thanh ghi nội của vi xử lý và
khởi tạo lại các chương trình con phục vị thiết lập hệ thống.
+ 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
VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 11
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
.
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

+ 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
VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 12
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

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.
+ 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 ;AND đích với nguồn, kết quả lưu ở đích
OR dich,nguon ;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.
VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 13
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
+ 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;
+ 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.
cú pháp : MOV AH,1
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
VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 14
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
.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
Main endp
;các hàm và thủ tục
End main
3. 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á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ý
VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 15
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
- 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
• 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
VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 16
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
+ 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
4. Cấu tạo bộ giải mã
Cấu tạo bên trong và chức năng các chân :
VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 17
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
VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 18
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
5. Cấu tạo và chức năng cửa IC 74LS138
sơ đồ cấu tạo bên trong và chức năng các chân của IC 74LS138
- Từ bảng các mức Logic hoạt động của IC 74LS138, ta thấy vai trò của các chân như
sau:
+ chân G2A, G2B và G1: là các chân cho phép IC hoạt động, 2 chân G2A và G2B
tích cực ở mức logic 0 và chân G1 tích cực ở mức logic 1.
+ chân A, B, C tương ứng với chân số 1,2 và 3 trên IC: là các chân điều khiển cho
phép chọn đầu ra ở mức thấp. chi tiết về cách điều khiển đầu ra được ghi trên bảng
sự thật.
+ các chân 15, 14, 13, 12, 11, 10, 9, 7 tương ứng với 8 đầu ra từ Y0 đến Y7, các đầu
ra này tích cực ở mức logic thấp 0V.
- Để IC giải mã được 3 bit đầu vào thì chân G1 cần được đưa lên mức logic 1 và chân
G2 được chuyển xuống mức logic thấp.
- Cơ chế giải mã 3 bit và đầu ra tương ứng như sau: nếu 3 bít C, B ,A nhận các giá trị
tương ứng:
+ 000: thì đầu ra Y0 ở mức logic thấp, các đầu ra còn lại đề ở mức logic cao
+ 001: thì đầu ra Y1 ở mức logic thấp, các đầu ra còn lại đề ở mức logic cao
+ 010: thì đầu ra Y2 ở mức logic thấp, các đầu ra còn lại đề ở mức logic cao
+ 011: thì đầu ra Y3 ở mức logic thấp, các đầu ra còn lại đề ở mức logic cao
+ 100: thì đầu ra Y4 ở mức logic thấp, các đầu ra còn lại đề ở mức logic cao
+ 101: thì đầu ra Y5 ở mức logic thấp, các đầu ra còn lại đề ở mức logic cao
+ 110: thì đầu ra Y6 ở mức logic thấp, các đầu ra còn lại đề ở mức logic cao
+ 111: thì đầu ra Y7 ở mức logic thấp, các đầu ra còn lại đề ở mức logic cao
VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 19
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI


III. BÀI TẬP
1. Ví dụ 1
CHỦ ĐỀ: Viết chương trình thực hiện phép toán AX = n! (0 < n < 10), n được nhập
vào từ bàn phím, sau đó hiển thị kết quả dưới dạng số thập phân.
a. Sơ đồ thuật toán

VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 20
Begin
Nhập vào 1 số n
Gán CX= AX
Gán AX=1
Nhân CX với AX
Giảm CX đi 1
CX
lần
Thoá
t
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
b. Code chương trình
.model small
.stack 100h
.data
tb1 db " nhap vao so n (0<n<10) n= $"
tb2 db 10,13," n!= $" ; dua thong bao xuong dong va ve
dau dong
i dw 0; khai bao bien 2 byte i=0
.code
main proc
mov ax,@data

mov ds,ax

;
mov ah,9 ; goi ham hien thi chuoi
lea dx,tb1 ; xuat tb1 ra man hinh
int 21h ;
;
mov ah,1 ; goi ham nhap
int 21h ; ngat cho phep nhap vao 1 so
;
and ax,000fh; lay 4 bit thap cua al
mov cx,ax ; gan cx=ax
mov ax,1 ; gan ax,1
tinh:
mul cx ; nhan AX=AXxCX
loop tinh ; lap lai dong thoi CX giam di 1
mov bx,ax ; gan BX=AX
; hien thi dang thap phan
mov ah,9
lea dx,tb2 ; xuat tb2 ra man hinh
int 21h
;
mov ax,bx ; gan lai AX=BX
mov bx, 10 ; gan bx=10
mov CX,0 ; gan CX=0
h1:
cmp AX,0 ; so sanh AX=0 ?
je h2 ; bang thi nhay toi h2
mov dx,0 ; gan dx=0
div BX ; chia ax cho bx=10

push Dx ; cat so du vao ngan xep
inc CX ; cx bang so lan cat du lieu
jmp h1 ;lap lai h1
h2:
mov AH, 2h ; ham hien thi
h3:
pop dx ; lay du lieu tu ngan xep vao dl
add dl,30h ; cong dl voi 30h
int 21h ; hien thi noi dung dl ra man hinh
loop h3 ; tiep tuc hien thi ket qua

exit:
mov ah,4ch ; lenh thoat chuong trinh,
int 21h
main endp
end main

VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 21
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI


2. Ví dụ 2 – ghép nối bộ nhớ.
Đề Bài: Xây dựng bộ nhớ dung lượng 16KB từ các vi mạch nhớ RAM (1Kx4) và 6
vi mạch nhớ ROM(2Kx8)
a. Xây dựng mạch
- Theo giả thiết của đề bài, chúng ta cần ghép nối bộ nhớ có dung lượng 16Kx8 từ:
o 6 vi mạch nhớ ROM (2Kx8) – có tổng dung lượng 12Kx8
o Cần 4 vi mạch nhớ RAM 1Kx8 – có tổng dung lượng là 4Kx8
- Do chúng ta chỉ có thanh ROM 1Kx4 vì vậy chúng ta cần ghép nối 2 thanh ROM
1Kx4 thành 1 thanh 1Kx8, ghép nối như sau:


 Như vậy chúng ta sẽ cần tới 8 thanh RAM 1Kx4 để tạo thành 4 vi mạch nhớ
RAM 1Kx8
- Để có thể ghép nối các vi mạch nhớ này thành một bộ nhớ hoàn chính, chúng ta cần
phải hiểu được dải địa chỉ của mỗi vi mạch nhớ. Dải địa chỉ của mỗi vi mạch nhớ
như sau:
Vi mạch
nhớ
A A A A A A A A A A A A A A A A A A A A
1 1 1 1 1 1 1 1 1 1 9 8 7 6 5 4 3 2 1 0
9 8 7 6 5 4 3 2 1 0
Địa chỉ
RAM1
1Kx8
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00000
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0FFFF
RAM2
1Kx8
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 10000
0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1FFFF
RAM3
1Kx8
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 20000
0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 2FFFF
RAM4
1Kx8
0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 30000
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 3FFFF
ROM1
2Kx8

0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 40000
0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 4FFFF
VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 22
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
ROM2
2Kx8
0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 50000
0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 57FFF
ROM3
2Kx8
0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 58000
0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 5FFFF
ROM4
2Kx8
0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 60000
0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 67FFF
ROM5
2Kx8
0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 68000
0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 6FFFF
ROM6
2Kx8
0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 70000
0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 77FFF
- Từ bảng giải mã địa chỉ, ta thấy đối với 4 thanh RAM đầu tiên (màu vàng) có 8 bít cao nhất
từ A12 đến A19 đều có mức logic không đổi là 0, 8 bit này sẽ sử dụng để chọn cho 4 vi
mạch RAM đầu tiên hoạt đông, bằng cách đưa vào cổng OR và đầu ra cổng OR sẽ đưa vào
chân Enable của IC giải mã 74139. Mặt khác, mỗi vi mạch đều có 2 bit A11 và A10 tương
ứng có 4 giá trị logic khác nhau, vì vậy ta sẽ sử dụng 2 bit này đưa vào 2 đầu vào IC giải
mã 74139. 4 Đầu ra của IC giải mã sẽ đưa vào 4 chân chọn chip CE của 4 vi mạch nhớ

RAM 1Kx8.
- Nếu giá trị logic tương ứng của 2 bit A11 A10 là:
+ 00: thì chọn vi mạch nhớ RAM1
+ 01: thì chọn vi mạch nhớ RAM2
+ 10: thì chọn vi mạch nhớ RAM3
+ 11: thì chọn vi mạch nhớ RAM4
- Đối với 6 vi mạch nhớ ROM 2Kx8 tiếp theo, ta cũng nhận thấy trong 8 bit cao nhất này
luôn có ít nhất 1 bit 1 – khi qua cổng OR thì đầu ra luôn ở mức cao, vì vậy lợi dụng 8 bit
này để mã hóa cho 6 vi mạch nhớ ROM 2K.
- Mặt khác, chúng ta để ý thấy, ở mỗi vi mạch nhớ ROM 2 Kx8 này có 3 bit từ A11 đến A13
đều nhận các giá trị logic khác nhau, vi vậy ta sẽ sử dụng 3 bit này để mã hóa cho từng vi
mạch nhớ ROM tương ứng với các giá trị của A13A12A11 là:
o 010: thì mã hóa cho vi mạch nhớ ROM1 hoạt động
o 011: thì mã hóa cho vi mạch nhớ ROM2 hoạt động
o 100: thì mã hóa cho vi mạch nhớ ROM3 hoạt động
o 101: thì mã hóa cho vi mạch nhớ ROM4 hoạt động
o 110: thì mã hóa cho vi mạch nhớ ROM5 hoạt động
o 111: thì mã hóa cho vi mạch nhớ ROM6 hoạt động
VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 23
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
b. Mạch ghép nối bộ nhớ
3. Thiết kế sản phẩm.
Đề 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à 2,0,6,4. Ghép các đèn led
đơn (LED-GREEN, BLUE, …) với cổng PC theo kiểu Anodes chung. Viết
chương trình điều khiển các led sáng lan với thời gian trễ là 0.5s.
a. Phân tích đề bài và cách chọn cách ghép nối.
- Theo giả thiết, chúng ta sẽ ghép nối 8086 và 8255 với địa chỉ cổng cổng PA, PB,
PC, thanh ghi điều khiển lần lượt là 2, 0, 6, 4. chúng ta phải chọn ra 2 bit của 8086
để làm 2 bit chọn cổng cho 8255. Mặt khác, 2 bít để chọn cổng cho 8255 phải tuân

theo quy tắc biến đổi của 2 bit A1 và A0 của 8255:
+ Nếu A1A0 có mức logic 00 thì chọn cổng A
+ Nếu A1A0 có mức logic 01 thì chọn cổng B
+ Nếu A1A0 có mức logic 10 thì chọn cổng C
+ Nếu A1A0 có mức logic 11 thì chọn thanh ghi điều khiển
- Để chọn được 2 bit chính xác, ta sẽ dựa vào bảng giải mã địa chỉ sau:
VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 24
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
Cổng
A15 A14 A13 A12 A11 A10 A9
A8
A7 A6 A5 A4 A3 A2 A1 A0 Địa chỉ
PA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 18h
PB 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1Ah
PC 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1Ch
ĐK 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1Eh
+ Từ bảng giải mã địa chỉ, ta nhận thấy 2 bít A2,A1 có quy tắc biến đổi gần giống
với quy tắc biến đổi 2 bit A1 và A0 của 8255 để chọn cổng. đối chiếu với quy tắc
biến đổi của IC 8255, ta thầy bit A1 của vi xử lý có trạng thái logic ngược với
trạng thái logic bit A0 của 8255. Vì vậy, để sử dụng 2 bit A2 và A1 của 8086 mã
hóa cho các cổng của 8255, ta sẽ nối A2 với chân A1 của 8255 và chân A1 nối với
chân A0 của 8255 thông qua cổng NOT
+ Riêng các bit A0 và A3 đến A15 đều có một mức logic không đổi nên chúng ta sẽ
đưa các bít này vào mạch chọn chip 8255 hoạt động. dể chọn chíp 8255 hoạt động
thì chân CS của nó phải ở mức logic 0, nên các bít ở mức logic 0 này được đưa
trực tiếp vào cổng OR. đầu ra của cổng OR sẽ được đưa tới chân CS của 8255.
b. mạch ghép nối
VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 25

×