VI xử lý và cấu TRÚC máy TÍNH - Pdf 13

BÀI TẬP LỚN MÔN: VI XỬ
LÝ VÀ CẤU TRÚC MÁY
TÍNH
1
LỜI GIỚI THIỆU
Sự ra đời và phát triển nhanh chóng của kỹ thuật vi điện tử mà đặc trưng
là kỹ thuật vi xử lý đã tạo ra một bước ngoặt quan trọng trong sự phát triển của
khoa học tính toán, điều khiển và xử lý thông tin. Kỹ thuật vi xử lí đóng một
vai trò rất quan trọng trong tất cả các lĩnh vực của cuộc sống và khoa học kỹ
thuật, đặc biệt là lĩnh vực Tin học và Tự động hóa.
Bộ vi xử lí 8086 – 16-bit là thế hệ tiếp theo sau bộ vi xử lí 8-bit đầu tiên
của Intel mang tên Intel-8008. 8086- với những tính chất và sự cải tiến vượt
trội, nó đã được sử dụng rộng rãi với rất nhiều ứng dụng trong thực tiễn
Đây là lần đầu tiên nhóm em tiếp xúc và làm quen với môn học vi xử lý,
cũng như với cách làm bài tập lớn. Chính vị vậy, trong quá trình thực hiện sẽ
gặp không ít những sai sót, mong thầy cô bỏ qua và cho nhóm em những nhận
xét, ý kiến đóng góp để nhóm em rút kinh nghiệm cho những bài tập lớn sau
nay đươc hoàn thiện và đạt kết quả tốt hơn.
Tài liệu tham khảo:kỹ thuật vi xử lý(văn thế minh).
Nhóm sinh viên thực hiện:
Nguyễn Văn Chuyền MSV 1231050120
Đỗ Bá Duy MSV 1231050147
Lê Tất Đại MSV 1231050151
Chúng em xin chân thành cảm ơn!
2
Nhận xét và đóng góp ý kiến của giáo viên
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………

.
Chúng em xin chân thành cảm ơn!
3
PHỤC LỤC
BÀI TẬP LỚN MÔN: VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 1
LỜI GIỚI THIỆU 2
Nhận xét và đóng góp ý kiến của giáo viên 3
PHỤC LỤC 4
HỆ VI XỬ LÝ VÀ TỔNG QUAN VI XỬ LÝ CỦA MÁY TÍNH 4
I-TỔNG QUAN CỦA VI XỬ LÝ 4
1. Các hệ đếm và việc mã hóa thông tin 5
1.1- Các bộ phậncủa cấu trúc máy tính : 7
PHẦN III: CƠ SỞ LÝ THUYẾT 8
I-Bộ vi xử lý 8086 của intel 8
1.1- Tổng quan về 8086 8
1-Sơ đồ của 8086 10
PHẦN IV: LẬP TRÌNH HỢP NGỮ 16
I - SƠ LƯỢC VỀ NGÔN NGỮ ASM 16
II- CẤU TRÚC CHƯƠNG TRÌNH VÀ CÁC TẬP LỆNH CHO 8086 16
1- Cấu trúc chương trình 16
PHẦN V: MỘT SỐ BÀI TẬP 20
I.BÀI TẬP 1 20
1.Sơ đồ thuật toán 20
2.Code chương trình 20
II.BÀI TẬP 2 22
1.Nguyên lý hoạt động 23
1.Phân tích đề bài và cách chọn cách ghép nối 24
25
4. Code chương trình 26
PHẦN II.

+4.10
0
1.1.2- Hệ nhị phân
Trong hệ nhị phân, cơ số đếm là 2 nên chỉ sử dụng hai số 0 và 1 đẻ biể diễn các trị số.
Ví dụ : 101011=1.2
5
+0.2
4
+1.2
3
+0.2
2
+1.2
1
+1.2
5
+1.2
0
1.1.3- Hệ thập lục phân
Hệ thập lục phân là hệ đếm cơ số 16
Nên ta thường sử dụng các số từ 0 đến 9 và các chữ cái từ A đến F để biểu diễn các số.
Bảng sau chỉ mối quan hệ giữa số hệ thập phân và hệ thập lục phân.
Hệ thập phân Hệ thập lục phân Hệ thập phân Hệ thập lục
phân
0 0 9 9
1 1 10 A
2 2 11 B
3 3 12 C
4 4 13 D
5 5 14 E

1.2.2- Chuyển từ hệ thập phân sang hệ nhị phân
Ta sử dụng phương pháp sau :
Lấy số cần chuyển chia cho 2 và ghi nhớ phần dư, tiếp theo lấy thương của phép
chia trước đó chia cho 2 và ghi nhớ phần dư cứ tiếp tục cho đến khi thương bằng 0.
kết quả của phép chuyển đổi chính là dãy các số dư lấy theo thứ tự đảo ngược.
Ví dụ : Đổi số 25 sang hệ nhị phân .
25 1 25 chia 2 được 12 dư 1
12 0 12 chia 2 được 6 dư 0
6 0 6chia 2 được 3 dư 0
3 1 3 chia 2 được 1 dư 1
5
1
0
1 1 chia 2 được 0 dư 1

1.3-các phép toán số học
1.3.1- phép cộng
Phép cộng tương tự như với các số hệ thập phân theo quy tắc sau :
0+0=0
0+1=1
1+0=1
1+1=0 nhớ 1
1.3.2- phép trừ
Phép trừ được thực hiện tương tự như với các số hệ thập phân.
1.3.3- phép nhân
Phép nhân được thực hiện tương tự như nhân hai số với hệ thập phân theo quy tắc sau :
0*0=0
0*1=0
1*0=0
1*1=1

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.
1.1.3- 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, … )
1.1.4- 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.
2- phần cứng và phần mền
2.2.1- 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,…
2.2.2- 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,……
7
Ngôn ngữ lập trình pascal, C, C++, Java,….
PHẦN III: CƠ SỞ LÝ THUYẾT
I-Bộ vi xử lý 8086 của intel

8 bit thì mỗi đoạn nghi này có thể tách ra thành hai đoạn ghi 8 bit cao và 8 bit thấp, đó
là các cặp AH và AL, BH và BL, CH và CL, DH và DL.
2.2- Các thanh ghi đoạn
Để quản lý các đoạn nhớ trên, bộ vi xử lý 8088 có 4 đoạn ghi đoạn xác định địa chỉ bắt
đầu của 4 đoạn nhớ 64 KB:
CS (Code Segment), DS (Data Segment), ES (Extra Segment), SS (Stack Segment).
2.3- Thanh ghi con trỏ và chỉ số.
Bộ vi xử lý 8086 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).
2.4- Thanh ghi cờ (Flag registor).
Bên trong bộ vi xử lý 8088 có 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ờ.
2.5- Thanh ghi cờ (Flag registor).
Bên trong bộ vi xử lý 8088 có 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:
9
Địa chỉ vật lý = Nội dung thanh ghi đoạn * 16 + Nội dung thanh ghi đoạn.
- 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ý.

- Bốn đường dây địa chỉ cao nhất từ A
16
đến A
19
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 S
6
. 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
AD
0
đén AD
15.
- 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
10
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.

15
, A
16
/S
3
- A
19
/S
6
, BHE/S7, , , ,
và INTR.
III-CÁC THIẾT BỊ NGOẠI VI
1. IC 8255A
1.1.1. sơ đồ 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
- 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. 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ữ liệu 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).

• Nếu D4=0: cổng A sẽ xuất dữ liệu ra.
• Nếu D4=1: cổng A sẽ nhận dự liệu bên ngoài vào
+ Bít D3: chọn chiều ra/vào cho 4 bit cao của cổng C
• Nếu D3=0 thì cho phép cổng C cao xuất dữ liệu ra
• Nếu D3=1 thì cho phép cổng C 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 D1: chọn chiều ra/vào cho cổng B
• Nếu D1=0 thì cho phép cổng B xuất dữ liệu ra
• Nếu D1=1 thì cho phép cổng B nhận dữ liệu
+ Bít D0: chọn chiều ra/vào cho 4 bit thấp của cổng C
• Nếu D0=0 thì cho phép cổng C thấp xuất dữ liệu ra
• Nếu D0=1 thì cho phép cổng C thấp nhận dữ liệu
13
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 đối 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
1. IC giải mã địa chỉ 74273

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à:
15
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
PHẦN IV: LẬP TRÌNH HỢP NGỮ
I - SƠ LƯỢC VỀ NGÔN NGỮ ASM
Lập trình hợp ngữ (Assembly) là một ngôn ngữ lập trình bậc thấp, nó sử dụng chính
các câu lệnh trong tập lệnh của bộ vi xử lý tương ứng để viết nên một chương trình.
Ưu điểm: là tính hiệu quả vì chương trình viết bằng hợp ngữ chạy nhanh và chiếm
bộ nhớ chương trinh ít hơn so với các chương trình viết bằng ngôn ngữ bậc cao. Lập
trình bằng hợp ngữ cho phép đọc hoặc ghi trực tiếp vào các ô nhớ, đoạn ghi hay các cổng
vào/ra một cách dễ dàng.
Nhược điểm: chương trình viết bằng hợp ngữ dài nên khó kiểm soát lỗi, khó bảo trì
hơn là sử dụng ngôn ngữ lập trinh bậc cao. Chương trình viết bằng hợp ngữ chỉ thực thi
trên hệ thống máy tương ứng, không thực thi trên hệ thống máy có kiến trúc và tệp lệnh
khác.
II- CẤU TRÚC CHƯƠNG TRÌNH VÀ CÁC TẬP LỆNH CHO 8086
1- Cấu trúc chương trình
.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

- 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 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
17
SUB dich,nguon ; tru dich cho nguon
-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 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 IMUL: thực hiện phép nhân có dấu.
IMUL nguon;
- 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.

SHR dich,CLL ; dich sang phai nhieu bit
+Lệnh quay: ROL/ROR dich,1 ; quay sang trai/phai 1 bit
ROL/ROR dich,CL ;quay sang trai/phai nhieu
;bit khong qua co nho CF
RCL/RCR dich,1 ; quay sang trai/phai 1 bit
RCL/RCR dich,CL ;quay sang trai/phai nhieu
;bit qua co nho CF
3.5 Nhóm lệnh xử lý điều khiể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 tong 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
4 - Ngăn xếp và thủ tục:
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;
19
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 name;
PHẦN V: MỘT SỐ BÀI TẬP
I. BÀI TẬP 1
- Đề bài: Viết chương trình thực hiện phép toán AX = 7!, sau đó hiển thị kết quả

int 21h
loop lap1
jmp thapphan
ht1:
mov dl,'1'
int 21h
loop lap1
thapphan:
mov ah,9
lea dx,tb2
int 21h
mov ax,bx
mov bx, 10
mov cx,0
lap2:
cmp ax,0
je ht2
mov dx,0
div bx
push dx
inc cx
jmp lap2
ht2:
mov ah,2
ht3:
pop dx
21
add dl,30h
int 21h
loop ht3

ROM2
16Kx8
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 08000
0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0BFF
ROM3
4Kx8
0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0C000
0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0CFFF
ROM4
4Kx8
0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0D000
0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0DFFF
ROM5
4Kx8
0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0E000
0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0EFFF
RAM1
1Kx8
0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0F000
0 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0F3FF
RAM2
1Kx8
0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0F400
0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0F7FF
RAM3
1Kx8
0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0F800
0 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0FB00
RAM4
1Kx8

A9
A10
A11
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
D0
D1
D2
D3
D4
D5
D6

D2
D3
D4
D5
D6
D7
A9
A0
A9
A0
A1
A2
A3
A4
A5
A6
A7
A8
A1
A2
A3
A4
A5
A6
A7
A8
D7
D4
D3
D0

ROM5
ROM5
ROM1
A9
A0
A9
A0
A1
A2
A3
A4
A5
A6
A7
A8
A1
A2
A3
A4
A5
A6
A7
A8
D7
D4
D3
D0
D5
D6
D1

A0
A9
A0
A1
A2
A3
A4
A5
A6
A7
A8
A1
A2
A3
A4
A5
A6
A7
A8
D7
D4
D3
D0
D5
D6
D1
D2
RAM3
RAM3
RAM3

6
A3
5
A4
4
A5
3
A6
2
A7
1
A8
23
A9
22
A10
19
A11
21
CE
18
OE/VPP
20
D0
9
D1
10
D2
11
D3

22
A10
19
A11
21
CE
18
OE/VPP
20
D0
9
D1
10
D2
11
D3
13
D4
14
D5
15
D6
16
D7
17
ROM2(4KX8)
2732
A0
8
A1

11
D3
13
D4
14
D5
15
D6
16
D7
17
ROM3(4KX8)
2732
A0
10
A1
9
A2
8
A3
7
A4
6
A5
5
A6
4
A7
3
A8

17
D6
18
D7
19
ROM(32KX8)
27256
A0
10
A1
9
A2
8
A3
7
A4
6
A5
5
A6
4
A7
3
A8
25
A9
24
A10
21
A11

27128
RD
RD
RD
RD
RD
A0
5
A1
6
A2
7
A3
4
A4
3
A5
2
A6
1
A7
17
A8
16
A9
15
CE
8
WE
10

CE
8
WE
10
D0
14
D1
13
D2
12
D3
11
U1
2114
WR
WR
A
1
B
2
C
3
E1
6
E2
4
E3
5
Y0
15

M/IO
E
U5
NOT
A15
U19
OR
A15
E
ROM1
A0
5
A1
6
A2
7
A3
4
A4
3
A5
2
A6
1
A7
17
A8
16
A9
15

A8
16
A9
15
CE
8
WE
10
D0
14
D1
13
D2
12
D3
11
U3
2114
WR
WR
A0
5
A1
6
A2
7
A3
4
A4
3

A3
4
A4
3
A5
2
A6
1
A7
17
A8
16
A9
15
CE
8
WE
10
D0
14
D1
13
D2
12
D3
11
U5
2114
WR
WR

D3
11
U8
2114
A0
5
A1
6
A2
7
A3
4
A4
3
A5
2
A6
1
A7
17
A8
16
A9
15
CE
8
WE
10
D0
14

1. 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à 80h, 82h, 84h, 86h. 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.
Bảng giải mã địa chỉ cho các cổng của IC 8255A:
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 1 0 0 0 0 0 0 0 80h
PB 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 82h
PC 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 84h
ĐK 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 86h
-Từ bảng giải mã địa chỉ của các cổng của 8255, chúng ta sẽ chọn ra 2 bit để đưa vào 2
chân A1 và A0 của 8255 để mã hóa cho các cổng. Từ quy tắc mã hóa cho cổng PA, PB,
PC và thanh ghi điều khiển, ta nhận thấy 2 bit A2 và A1 cũng có quy tắc biến đổi tương
tự với A1 và A0 của 8255. Vì vậy chúng ta sẽ đưa 2 bit A2, A1 vào 2 đầu vào tương
ứng A1, A0 để mã hóa cho các cổng của 8255.
- Nhận thấy các bit A0 và A3 đến A15 đều có một mức logic cố định, vì vậy chúng ta
sẽ đưa các chân này qua cổng OR với đầu ra đưa vào chân CS của Chip 8255 để chọn
24
chip, nếu 1 trong các bit này thay đổi mức logic, nghĩa là địa chỉ này bị lệch thì chip
8255 sẽ không được chọn.
- Để điều khiển đóng ngắt cho 3 thiết bị, chúng ta sẽ dùng nút bấm để điều khiển. Do
dòng điện và điện áp mà mỗi chân Vi xử lý tạo ra rất nhỏ so với công suật mà thiết bị
tiêu thụ, vì vậy chúng ta sẽ sử dụng các transistor để làm khóa điện tử đóng ngắt các
thiết bị này.
2. mạch ghép nối
RD
WR
RD

A14
A15
M/IO
A4
A5
A7
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
AD0
AD1
AD2
AD3
AD4
AD5
AD6
AD7
AD14
AD13
AD12
AD11
AD10
AD9
AD8
AD[0 15]

26
RD
32
WR/LOCK
29
U1
8086
LOAD_SEG=0x0800
D0
34
D1
33
D2
32
D3
31
D4
30
D5
29
D6
28
D7
27
RD
5
WR
36
A0
9

PB4
22
PB5
23
PB6
24
PB7
25
PC0
14
PC1
15
PC2
16
PC3
17
PC4
13
PC5
12
PC6
11
PC7
10
U4
8255A
D0
3
D1
4

Q7
19
U2
74LS273
D0
3
D1
4
D2
7
D3
8
D4
13
D5
14
D6
17
D7
18
CLK
11
MR
1
Q0
2
Q1
5
Q2
6

D1
thiêt bi 1
D2
thiet bi 2
D3
thiet bi 3
Q1
NPN
Q2
NPN
Q3
NPN
R7
100
R8
10k
R9
10k
U7
NOT
3. Sơ đồ thuật toán
Với nội dung mà đề bài đưa ra, chúng ta sẽ lập trình theo sơ đồ thuật toán sau:
Đ
S
25
Bắt
đầu
Lấy g.trị PC vào AL
AL=70h
?


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status