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

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

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 (601.39 KB, 27 trang )

BỘ CÔNG THƯƠNG TRƯỜNG ĐH 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:
Hằng
• Nhóm sv thực hiện:
Đới Sỹ Phúc
Phạm Đức Tự
Nguyễn Thị Thắm
CĐ ĐIỆN TỬ 2 – K12 VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 1
BỘ CÔNG THƯƠNG TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI


LỜI NÓI ĐẦU
Trước đây, từ khi con người đã tìm ra được công nghệ lập trình vi xử lý, tiểu
biểu là hang Intel đã chế tạo thành công chip vi xử lý mang tên 8086 vào năm 1987, đã
mở đầu cho họ vi xử lý x86, nó 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. Để rồi cho tới bây giờ, hang loạt các thế hệ vi xử lý ra
đời vơi công nghệ cao hơn, tốc độ xử lý cao hơn, xử lý đồng thới được nhiều lệnh hơn
và đặc biệt có thể xử lý dữ liệu lên tới 64 bit.
Với sự phát triển đó, hang loạt các sản phẩm ứng dụng ra đời, với những các
công việc mà chúng làm được rất đa dạng, từ các ứng dụng trong nên công nghiệp hiện
đại, cho tới các ứng dụng trong nền nông nghiệp và tới cả đời sống của mỗi con người.
nó đã giúp con người giải quyết được rất nhiều khó khăn mà con người không thể làm
được.
Để hiểu rõ hơn về vai trò của kĩ thuật vi xử lý, nhóm chúng em xin trình bày một
vài ví dụ đơn giản mà học Vi xử lý 8086 có thể làm được. trong quá trình trình bày có gì


sai sót mong các thầy cô bỏ qua và đóng góp những ý kiến để chúng em rút kinh
nghiệm và làm tốt các bài báo cáo sau này.
.Chúng em xin chân thành cảm ơn!
Nhóm sv thực hiện:
• Đới Sỹ Phúc MSV: 1231050164
• Phạm Đức Tự MSV: 1231050110
• Nguyễn Thị Thắm MSV:
1231050178
CĐ ĐIỆN TỬ 2 – K12 VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 2
BỘ CÔNG THƯƠNG TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI
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!
CĐ ĐIỆN TỬ 2 – K12 VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 3
BỘ CÔNG THƯƠNG TRƯỜNG ĐH 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: 4
A. NỘI DUNG 5
B. CƠ SỞ LÝ THUYẾT 6
I. CẤU TẠO VÀ TẬP LỆNH CỦA 8086 6
1.Sơ đồ khối của 8086 6
a.Khối thực hiện lệnh (EU) 6
b.Khối giao tiếp bus (BIU) 8
2.Sơ đồ chân của 8086 8
3.Các hàm ngắt và tập lệnh của 8086 9
a.Các hàm ngắt 21h của 8086 9

b.Tập lệnh của 8086 10
II. CẤU TẠO VÀ CHỨC NĂNG IC 8255A 13
1.Sơ đồ chân và chức năng của mỗi chân 13
2.chế độ hoạt động 15
III.CẤU TẠO IC GIẢI MÃ 74273 16
IV.CẤU TẠO CỦA IC GIẢI MÃ 74LS138 17
C. PHẦN VÍ DỤ 19
1.Ví dụ 1 19
Sơ đồ thuật toán 19
Code chương trình 20
2.Ví dụ 2 22
3. Ví dụ 3 23
a.Ghép nối 8086 với 8255 và các thiết bị ngoại vi 23
b.Chức năng các chân 24
c.Sơ đồ thuật toán 25
d.Code chương trình 25
D. KẾT LUẬN 27
CĐ ĐIỆN TỬ 2 – K12 VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 4
BỘ CÔNG THƯƠNG TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI
A. NỘI DUNG
1. Viết chương trình thực hiện phép toán cộng dưới đây và hiển thị kết quả dưới
dạng số nhị phân và dạng hexa.
BX=0+ 1 +5+….+255
2. Xây dựng mạch giải mã địa chỉ cho bộ nhớ gồm các vi mạch nhớ được bố trí như
sau:
ROM(16K x 8 bit) E0000H (Địa chỉ đầu của ROM)
Khoảng trống 32 Kb
ROM(32K x 8 bit)
Khoảng trống 32 Kb
RAM(16K x 8 bit)

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à 6,4,2,0. Ghép 1 đèn LED-GREEN
và 1 đèn LED-RED với cổng PB, một nút bấm (Button) với cổng PA. Viết
chương trình điều khiển để bấm Button thì LED-RED sáng thời gian 1s, không
bấm thì LED-GREEN sáng nhấp nháy.
CĐ ĐIỆN TỬ 2 – K12 VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 5
BỘ CÔNG THƯƠNG TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI
B. CƠ SỞ LÝ THUYẾT
I. CẤU TẠO VÀ TẬP LỆNH CỦA 8086
1. 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
thong 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.
a. 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.
CĐ ĐIỆN TỬ 2 – K12 VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 6
BỘ CÔNG THƯƠNG TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI

+ 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á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).
CĐ ĐIỆN TỬ 2 – K12 VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 7

BỘ CÔNG THƯƠNG TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI
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
- 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.
b. 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ý.
2. Sơ đồ chân của 8086
CĐ ĐIỆN TỬ 2 – K12 VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 8
BỘ CÔNG THƯƠNG TRƯỜNG ĐH 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, ảnh bên trái) đươ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, ảnh bên phải) đượ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).
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.
3. Các hàm ngắt và tập lệnh của 8086
a. 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
CĐ ĐIỆN TỬ 2 – K12 VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 9
BỘ CÔNG THƯƠNG TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI
- 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
b. Tập lệnh của 8086
- 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 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
CĐ ĐIỆN TỬ 2 – K12 VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 10
BỘ CÔNG THƯƠNG TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI
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 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.
- 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Đ ĐIỆN TỬ 2 – K12 VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 11
BỘ CÔNG THƯƠNG TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI
- 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.
- 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.
CĐ ĐIỆN TỬ 2 – K12 VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 12
BỘ CÔNG THƯƠNG TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI
POPF;
Chú ý: quá trình cất dữ liệu và lấy ra từ ngăn xếp thực
hiện theo nguyên tắc:
Vào sau ra trước – nghĩa là thanh ghi nào đươc cất vào
ngăn xếp đầu tiên thì sẽ lấy nó ra sau, còn thanh ghi nào
được đưa vào cất sau thì được lấy ra trước
- 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;
II. CẤU TẠO VÀ CHỨC NĂNG IC 8255A
1. Sơ đồ chân và chức năng của mỗi chân
IC 8255 có 2 kiểu đóng gói chân dạng DIP và SOIC:
Đóng gói dạng SOIC đóng gói dang DIP 40 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Đ ĐIỆN TỬ 2 – K12 VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 13
BỘ CÔNG THƯƠNG TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI
- 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ý
- 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
CĐ ĐIỆN TỬ 2 – K12 VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 14
BỘ CÔNG THƯƠNG TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI
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
2. 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
+ 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Đ ĐIỆN TỬ 2 – K12 VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 15
BỘ CÔNG THƯƠNG TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI
+ 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
III. 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 :

Bảng chân lý của IC 74273 cấu tạo
bên trong IC 74273
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Đ ĐIỆN TỬ 2 – K12 VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 16
BỘ CÔNG THƯƠNG TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI
+ 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
IV. CẤU TẠO CỦA IC GIẢI MÃ 74LS138
sơ đồ cấu tạo bên trong và chức năng các chân của IC
74LS138
CĐ ĐIỆN TỬ 2 – K12 VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 17
BỘ CÔNG THƯƠNG TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI
- 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
CĐ ĐIỆN TỬ 2 – K12 VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 18
BỘ CÔNG THƯƠNG TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI
+ 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
C. PHẦN VÍ DỤ
1.Ví dụ 1.
CHỦ ĐỀ : Viết chương trình thực hiện phép toán cộng dưới đây
và hiển thị kết quả dưới dạng số nhị phân và dạng hexa.

BX= 1 + 5 + 10+ + 255.
• Sơ đồ thuật toán.
CĐ ĐIỆN TỬ 2 – K12 VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 19
BỘ CÔNG THƯƠNG TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI

Hiển thị số nhị phân
hiển thị
số hexa
• Code chương trình
.model small
.stack 100h
.data
msg1 db " ket qua dang nhi phan: $"
msg2 db 10,13," ket qua dang hexa: $" ; 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 bx,1
mov cx,51 ; lcho phep lap lai 51 lan
tong:
add i,5 ;moi lan bx tang len 5 don
vi
add bx,i ; gan BX=BX+ i
CĐ ĐIỆN TỬ 2 – K12 VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 20
Thoát
BỘ CÔNG THƯƠNG TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI
loop tong ; lap lai qua trinh


mov ah,9 ; lenh dua ra thong bao
lea dx,msg1 ; dua ra thong bao 1 ra man
hinh
int 21h ; ngat 21h cho phep xuat ra
man hjh
;
mov ah,2 ;
mov cx,16 ; cho phep quay 16 lan
lap1:
rol bx,1 ; quay bx sang trai 1 don vi
jc ht1 ; neu co nho CF=1 thi nhay
toi ht1
mov dl,'0' ; neu CF=0, hien thi 0 ra man
hinh
int 21h
loop lap1 ; lap lai vong lap1
jmp hexa
ht1:
mov dl,'1' ; hien thi 1 ra man hinh
int 21h
loop lap1 l ;lap lai vong lap1
; tong 2 lan lap la 16 lan tuong ung 16
bit
Hexa:
mov ah,9
lea dx,msg2 ; xuat thong bao 2 ra man
hinh
int 21h ; cho pep hien thi
; hien thi thap phan

mov dh,4 ; cho quay vong 4 lan
mov ah,02 ; lenh hien thi ra man hinh
mov cl,4 ; moi lan 4bit
lan1:
ROL bx,cl ; quay trai bx 4 bit
mov dl,bl ;gan bl vao bl
and dl,0fh ; chon lay 4 bit thap cua dl
add dl,30h ; cong them dl nhan duoc voi
30H
cmp dl,39h ; so sanh dl nhan duoc voi
39h
jng lan2 ; neu khong lon hon 39 thi
nhay toi lan2
add dl,07h ; neu lon hon 39H thi cong dl
voi 07h de hien thi chu tuong ung
lan2:
int 21h ; ngat 21h cho xuat dl ra man
hinh
dec dh ; giam dh di 1 don vi
jnz lan1 ; neu dh khac 0 thi lap laij
lan1
CĐ ĐIỆN TỬ 2 – K12 VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 21
BỘ CÔNG THƯƠNG TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI
exit:
mov ah,4ch ; lenh thoat chuong trinh,
tra ve dieu khien
int 21h
main endp
end main
2. Ví dụ 2

CHỦ ĐỀ: Xây dựng mạch giải mã địa chỉ cho bộ nhớ gồm các vi
mạch nhớ được bố trí như sau:
ROM(16K x 8 bit) E0000H (Địa chỉ đầu của ROM)
Khoảng trống 32 Kb
ROM(32K x 8 bit)
Khoảng trống 32 Kb
RAM(16K x 8 bit)
- Bộ nhớ chúng ta cần xây dựng có dung lượng: 128KB trong đó
ROM1 chiếm 16KB, ROM2 chiếm 16KB và RAM chiếm
32KB, ngoài ra 2 khoảng trống chiếm 64KB.
- Tử cơ cấu bộ nhớ đó, chúng ta có bảng giải mã địa chỉ như sau:
Vi mạch
nhớ
A
19
A
18
A
17
A
16
A
15
A
14
A
13
A
12
A

11
A
10
A
9
A
8
A
7
A
6
A
5
A
4
A
3
A
2
A
1
A
0
Địa chỉ
ROM1
16Kx8
1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 E0000
1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 E3FFF
Khoảng
trông 32K

1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 E4000
1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 EBFFF
ROM2
32Kx8
1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 EC000
1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 F3FFF
Khoảng
trống 32K
1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 F4000
1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 FBFFF
RAM
16Kx8
1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 FC000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 FFFFF
Từ bảng giải mã địa chỉ ta nhận thấy, để giải mã cho từng vi mạch
nhớ chúng ta sẽ chọn 3 bít A14, A15 và A16 đê đưa vào IC giải mã
74HC138 để chọn vi mạch hoạt động. riêng các bít A19, A18, A17 được
dùng để chọn bộ nhớ ngoài làm việc.
- Các bít A16, A15, A14 tương ứng với giá trị:
CĐ ĐIỆN TỬ 2 – K12 VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 22
BỘ CÔNG THƯƠNG TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI
+ 000: sẽ chọn ROM1 để chứa dữ liệu.
+ 001 và 010: sẽ bỏ qua do địa chỉ này bỏ trống.
+ 011 và 100: sử dụng ROM2 (32KBx8) chứa dữ liệu.
+ 101 và 110: sẽ bỏ qua do địa chỉ này bỏ trống.
+ 111: sẽ chọn RAM 16KB hoạt động và chứa dữ liệu.
- Sử dụng 3 bit A19, A18 và A17 để chọn bộ nhớ hoạt động, chúng ta
đưa trực tiếp 3 bit này vào cổng NAND 3 đầu vào, đầu ra sẽ được
đưa vào chân E2 hoặc E3. Nếu 1 trong 3 bit này thay đổi mức logic
khác thì bộ nhớ sẽ không được chọn.

- Sơ đồi kết nối bộ nhớ như sau:
3. Ví dụ 3
CHỦ ĐỀ : 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à 6h, 4h,2h,0h. Ghép 1 đèn LED-GREEN và 1 đèn
LED-RED với cổng PA, một nút bấm (Button) với cổng PC
hoặc PB. Viết chương trình điều khiển để bấm Button thì
LED-RED sáng thời gian 1s, không bấm thì LED-GREEN
sáng nhấp nháy.
a. Ghép nối 8086 với 8255 và các thiết bị ngoại vi
Sơ đồ tổng quát ghép nối 8086 với 8255 và thiết bị ngoại vi:
CĐ ĐIỆN TỬ 2 – K12 VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 23
BỘ CÔNG THƯƠNG TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI
b. Chức năng các chân
- Để hiểu được quá trình hoạt động, chúng ta sẽ tìm hiều chức năng của
các chân:
• 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ý.
• Các chân từ D0 – D7 của 8255A được nối với các chân dữ liệu đa

hợp AD0 – AD7 của bộ Vi xử lý . Có tác dụng trao đổi dữ liệu vào
ra giữa 8255A và 8086.
• Các chân từ PA0 – PA7: là 8 bit cổng ra PA. Trong ví dụ này
chúng ta sẽ kết nối nút bấm (button) với bít thấp nhất PA0 để lấy dữ
liệu vào.
• Các chân PB0 đến PB7: là các đầu ra của cổng b. trong ví dụ này
chúng ta sẽ ghép LED xanh vào bit cao nhất PB7, với LED đỏ thì
ghép với bit thấp nhất PB0
• Mạch giải mã địa chỉ cho 8255A: để chọn các bít để đưa vào mạch
giải mã địa chỉ cho 8255 , và dựa vào yêu cầu đề bài với địa chỉ công
PA, PB, PC và thanh ghi điều khiển lần lượt là 6h, 4h, 2h, 0h.
Chúng ta sẽ tìm hiểu giải địa chỉ được mã hóa như sau:
CĐ ĐIỆN TỬ 2 – K12 VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 24
BỘ CÔNG THƯƠNG TRƯỜNG ĐH 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 1 1 0 6h
PB 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 4h
PC 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 2h
ĐK 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0h
- Từ bảng giải mã địa chỉ, ta nhận thấy 2 bít A2,A1 biến đổi
ngược với quy tắc chọn cổng của 8255, vì vậy ta sẽ chọn 2 bit
này để mã hóa cho các cổng của IC 8255 hoạt động. bằng cách
chúng ta sẽ nối 2 chân A1 và A2 tương ứng với 2 chân chân A0,
A1 của 8255 thông qua cổng NOT để đảo trạng thái của 2 bit
A1, A2 của 8086 lại.
- Riêng các bit A0 và A3 đến A15 đều có một mức logic 0
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 này được đưa

trực tiếp vào cổng OR với đầu ra nối với chân CS của 8255.
c. 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:
Đúng
Sai
d. Code chương trình
data segment
pa equ 6h ; dia chi cong PA la 6h
pb equ 4h ; dia chi cong PB la 4h
pc equ 2h ; dia chi cong PC la 2h
CĐ ĐIỆN TỬ 2 – K12 VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH 25
Bắt
đầu
LED xanh nháy
nút
bấm?
LED đỏ sáng
Trễ 1 giây

×