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

Đây là phiên bản tài liệu đơn giản

Xem phiên bản đầy đủ của tài liệu BÀI TẬP LỚN MÔN: VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH docx

TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI MÔN VI XỬ LÝ
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:
DƯƠNG THỊ HẰNG
• Nhóm sv thực hiện:
1.NGUYỄN VĂN HOÀNG
2.LÊ VĂN PHÚC
3.CẤN NGỌC VIỆT

Lớp Điện Tử 2 – K12 1
TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI MÔN VI XỬ LÝ

GIỚI THIỆU
Ngày nay, nhu cầu học tập và nghiên cứu ứng dụng công nghệ Vi xử ký ngày
càng tăng trưởng mạnh mẽ, các công trình nghiên cứu và ứng dụng công nghệ vi xử lý
ngày càng phong phú và đa dạng. đặc biệt là từ khi có sự có mặt của họ vi xử lý 8086
của Intel
Bộ vi xử lý 8086, được giới thiệu năm 1978, là bộ vi xử lý 16 bit đầu tiên của
Intel, 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. Chính vì vậy, bộ vi xử lý 8086 đã thu hút được các
nhà lập trình viên cũng như các nhà phát triển phần cứng ngày càng lơn, với những sản
phẩm hết sức cần thiết cho đời sống thực tiễn.
Từ những sự cần thiết đó, để giúp cho mọi người hiểu thêm về vai trò và ứng
dụng của nó, nhóm em xin trình bày một số ví dụ cụ thể với việc sử dụng bộ vi xử lý
8086. Trong quá trình trình bày, không tránh những sai sót, mong các thầy cô giáo bỏ
qua và đóng góp với chúng em những ý kiến, nhận xét thiết thực để chúng em hoàn
thiện bản thân hơn, cũng như hoàn thành tốt các bài bào cáo tiếp theo. Chúng em xin
cảm ơn.
.Chúng em xin chân thành cảm ơn!
Lớp Điện Tử 2 – K12 2
TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI MÔN VI XỬ LÝ
Nhận xét và đóng góp ý kiến của giáo viên:
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
Lớp Điện Tử 2 – K12 3
TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI MÔN VI XỬ LÝ
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
Chúng em xin chân thành cảm ơn!
Lớp Điện Tử 2 – K12 4
TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI MÔN VI XỬ LÝ
PHỤ LỤC:
BỘ CÔNG THƯƠNG 1
GIỚI THIỆU 2
PHỤ LỤC: 5
I.NỘI DUNG 6
II.MỤC ĐÍCH VÀ YÊU CẦU 6
III. CƠ SỞ LÝ THUYẾT 6
1. Cấu tạo của bộ vi xử lý 8086 6
1.1.Các thanh ghi của 8086 7
1.2Sơ đồ chân của 8086 8
1.3 Các hàm ngắt 21h của 8086 9
1.4Tập lệnh của 8086 9
2.IC 8255A 12
2.1Sơ đồ chân và chức năng của mỗi chân 12
2.2 Ghép nối với vi xử lý 13
2.3 chế độ hoạt động 13
3.Cấu tạo IC giải mã địa chỉ 14
4.Cấu tạo và hoạt động của LED 7 đoạn 15
IV.PHẦN LẬP TRÌNH HỢP NGỮ 16
1.Sơ đồ thuật toán 16
2.Code chương trình 17
V. PHẦN GHÉP NỐI BỘ NHỚ 18
1.Giải mã địa chỉ 18
2.Cơ chế chọn địa chỉ 19
VI.GHÉP NỐI 8086 VỚI 8255 20
1.Ghép nối phần cứng 20
2.Sơ đồ thuật toán 21
3.Code chương trình 22
VII.KẾT LUẬN 23
Lớp Điện Tử 2 – K12 5
TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI MÔN VI XỬ LÝ
I. NỘI DUNG
Để thấy được sự tiện lợi và ưu điểm mà Vi xử lý 8086 mang lại, nhóm em xin
trình bày các ví dụ sau:
1. Viết chương trình thực hiện nhập liên tiếp một dãy các ký tự khi nào gặp enter
thì kết thúc. Hiển thị dãy ký tự theo chiều ngược lại.
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(64K x 8 bit) 00000H (Địa chỉ đầu của ROM)
Khoảng trống
RAM(32K x 8 bit)
RAM (32K x 8 bit)
FFFFFH (Địa chỉ đầu cuối RAM)
3. Ghép 1 Led 7 đoạn Anodes chung (7SEG) với cổng PA, một nút bấm (Button)
với cổng PC. Viết chương trình điều khiển để bấm Button thì Led sáng nhấp
nháy số 8, bình thường LED sáng số 0
II. MỤC ĐÍCH VÀ YÊU CẦU
- Câu 1: lâp trình bằng ngôn ngữ ASM – hợp ngữ, ngắn gọn, dễ hiểu hiển thị
các thông báo khi chạy chương trình.
- Câu 2: đây là phần thiết kế bộ nhớ, vẽ bằng phần mềm Proteus
- Câu 3: phần lập trình viết bằng hợp ngữ, mạch được mô phỏng bằng phần
mêm Protues, mạch trình bày gòn gàng, hoạt động đúng yêu cầu đề bài.
III. CƠ SỞ LÝ THUYẾT
1. Cấu tạo của bộ vi xử lý 8086
Bộ vi xử lý 8086 là bộ vi xử lý 16 bit đầu tiên của Intel, bên trong bao gồm 8086
gồm 29000 transistor, được sản xuất bằng công nghệ NMOS hoặc CMOS với 3 phiên
bản: 8086 hoạt động ở tần số 4,77MHZ.; 8086-8 hoạt động ở tần số 8MHZ và 8086-10
hoạt động ở tần số 10MHZ.
Bên trong bộ Vi xử lý 8086 cố các thanh ghi 16 bit và 8 bít, sau đây chúng ta sẽ tìm
hiểu về cấu trúc và chức năng của từng thanh ghi
Lớp Điện Tử 2 – K12 6
TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI MÔN VI XỬ LÝ
1.1. Các thanh ghi của 8086
• Các thanh ghi đa năng.
Trong khối EU của bộ Vi xử lý 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.
• Các thanh ghi đoạn.
Để quản lý các đoạn nhớ trên, bộ vi xử lý 8086 có 4 đoạn ghi đoạn xác định địa chỉ
bắt đầu của 4 đoạn nhớ 64 KB:
- 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).
• 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).
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
Lớp Điện Tử 2 – K12 7
TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI MÔN VI XỬ LÝ
• Thanh ghi cờ F (Flag registor)
Bên trong bộ vi xử lý 8086 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:
* 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,
1.2 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):
- 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).
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.
Lớp Điện Tử 2 – K12 8
TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI MÔN VI XỬ LÝ
1.3 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
1.4 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
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ớp Điện Tử 2 – K12 9
TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI MÔN VI XỬ LÝ
- 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 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ác lệnh AND, OR, XOR và TEST
AND dich,nguon ;AND đích với nguồn, kết quả lưu ở đích
Lớp Điện Tử 2 – K12 10
TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI MÔN VI XỬ LÝ
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.
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:
“last in - first out”
- 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;
Lớp Điện Tử 2 – K12 11
TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI MÔN VI XỬ LÝ
2. IC 8255A
2.1 Sơ đồ chân và chức năng của mỗi chân
- 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
Lớp Điện Tử 2 – K12 12
TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI MÔN VI XỬ LÝ
+ 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
2.2 Ghép nối với vi xử lý
Phần ghép nối với VI Xử LÝ gồm:
- Bộ đệm dữ liệu: để trao đổi thong tin về dữ liệu hai chiều (vào/ra) giữa đường dây
của vi xử lý và đường bus nội của 8255A.
- Bộ logic điều khển đọc/ghi: là bộ giải mã địa chỉ lệnh cho các đoạn ghi đệm và đoạn
ghi điều khiển
2.3 chế độ hoạt động
Tùy 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.

D7 D6
D5
D4 D3 D2
D1 D0
chiều cổng C thấp
1 1: vào
Chế độ nhóm A 0: ra
00: chế độ 0 Chiều cổng B
01: chế độ 1 1: vào
1x: chế độ 2 chiều cổng A 0: ra
1: vào chiêu cổng C Chế độ nhóm B
0: ra 1: Vào 1: chế độ 1
0: Ra 0: chế độ 0
+ 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 D4: chọn chiều cho cổng PA,
• Nếu D4=0: cổng PA sẽ xuất dữ liệu ra.
• Nếu D4=1: cổng PA 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 PC
• Nếu D3=0 thì cho phép cổng PC cao xuất dữ liệu ra
• Nếu D3=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
Lớp Điện Tử 2 – K12 13
TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI MÔN VI XỬ LÝ
+ Bít D1: chọn chiều ra/vào cho cổng PB
• Nếu D1=0 thì cho phép cổng PB xuất dữ liệu ra
• Nếu D1=1 thì cho phép cổng PB nhận dữ liệu
+ Bít D0: chọn chiều ra/vào cho 4 bit thấp của cổng PC
• Nếu D0=0 thì cho phép cổng PC thấp xuất dữ liệu ra
• Nếu D0=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, PC
cao xuất dữ liệu, cổng PC thấp nhận dữ liệu , ta cài đặt thanh ghi điều khiển như sau:
Mov al, 100000001B
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
3. Cấu tạo IC giải mã địa chỉ
Trong số các đường tín hiêu phục vụ việc trao đổi dữ liệu của 8086 có một số
đương là tín hiệu đa hợp (từ AD0  AD15), để sử dụng đúng mục đích các đường tín
hiệu này thì cần có một mạch chốt tách riêng các tín hiệu trên chân đa hợp.
Trong bài tập lớn lần này, chúng em sử dụng IC 74273 làm mạch chốt , mạch có ưu
điểm gọn gang, dễ làm, linh kiện dễ kiếm và giá thành rẻ.
Đây là sơ đồ cấu tạo bên trong của IC 74273:

Lớp Điện Tử 2 – K12 14
TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI MÔN VI XỬ LÝ
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
4. Cấu tạo và hoạt động của LED 7 đoạn
- LED 7 đoạn là loại LED được tích hợp bởi 8 LED đơn sắc sắp xếp thành hình số 8
và 1 dấu chấm phía dưới.
Có 2 loại LED 7 đoạn:
+ chung Anode: các LED tích hợp bên trong được mắc nối chung cực Anot (CA).
+ chung Cathode: các LED tích hợp bên trong mắc nối chung cực Katot (CC).

Chung cathode chung Anode LED 7 đoạn loại CA
Lớp Điện Tử 2 – K12 15
TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI MÔN VI XỬ LÝ
Hoat động:
- Đối với loai LED mắc theo kiểu Anot chung thì chúng ta cấp nguồn Vcc vào chân
Anot (chân 8). Để có thể hiển thị các chữ số như mong muốn thì chúng ta phải nối các
chân a, b, c, d, e, f, g với mass tương ứng với chữ số đó.
VD: số 1 thì chúng ta nối chân b(6) và c(4) với mass
Số 2 thi chúng ta nối chân a(7), b(6), g(10), e(1) và d(2) với mass.
- Đối với loai mắc theo kiểu Katot chung thi chúng ta nối chân Katot (8) với mass. Để
có thể hiển thị các chữ số như mong muốn thì chúng ta phải nối các chân a, b, c, d,
e, f, g với Vcc tương ứng với chữ số đó.
VD: số 1 thì chúng ta nối chân b(6) và c(4) với Vcc
Số 2 thi chúng ta nối chân a(7), b(6), g(10), e(1) và d(2) với Vcc
IV. PHẦN LẬP TRÌNH HỢP NGỮ
CHỦ ĐỀ: Viết chương trình thực hiện nhập liên tiếp một dãy các ký tự khi nào
gặp enter thì kết thúc. Hiển thị dãy ký tự theo chiều ngược lại.
1. Sơ đồ thuật toán.
Lớp Điện Tử 2 – K12 16
TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI MÔN VI XỬ LÝ
2. Code chương trình
.model small
.stack 100h
.data
Tb1 DB "Nhap vao xau ky tu: $"
Tb DB 10,13,"Ban chua nhap ky tu nao: $"
Tb2 DB 10,13," hien thi theo chieu nguoc lai: $"

.code
Main proc
; Khoi dau doan DS
Mov AX,@data
Mov DS,AX
Mov Ah,9
Lea DX,Tb1
Int 21h

Xor CX,CX
Input:
Mov Ah,1
Int 21h
Cmp AL,13
JE Disp
Inc CX
Push AX
Jmp Input
Disp:

cmp cx,0
je thongbao

Mov Ah,9
Lea DX,Tb2
Int 21h

Mov Ah,2
Display:
Pop DX
;Mov ah,2
Int 21h
loop Display
jmp quit
thongbao:
mov ah,9
lea dx,tb
Lớp Điện Tử 2 – K12 17
TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI MÔN VI XỬ LÝ
int 21h
; Thoat khoi chuong trinh
quit:
Mov AH,4Ch
Int 21h
Main Endp
End Main
V. PHẦN GHÉP NỐI BỘ NHỚ
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(64K x 8 bit) 00000H (Địa chỉ đầu của ROM)
FFFFFH ( địa chỉ đầu cuối của
RAM)
Khoảng trống
RAM(32K x 8 bit)
RAM (32K x 8 bit)
1. Giải mã địa chỉ
Theo giả thiết, từ địa chỉ đầu là 00000H đến địa chỉ cuối là FFFFFH ta suy
ra, bộ nhớ cần thiết kế có dung lượng 1MB. Mặt khác, bộ nhớ có cấu trúc 1
ROM (64Kx8), 2 RAM (32Kx8) , tổng dung lượng ROM và RAM là 128KB
nên khoảng trống cần tìm có dung lượng 896KB.
Từ giả thiết đó ta thiết lập bảng giải mã địa chỉ cho từng vi mạch nhơ như
sau
Dung
lượng
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ỉ
ROM
64Kx8
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 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0FFF
Khoảng
trông
0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 10000
1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 EFFFF
RAM1
32Kx8
1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 F0000
1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 F7FFF
RAM2
32Kx8
1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 F8000
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ỉ cho từng vi mạch nhớ, ta để ý 4 bít A19, A18, A17 và
A16 có giá trị là:
Lớp Điện Tử 2 – K12 18
TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI MÔN VI XỬ LÝ
+ 0000 : thì chọn vi mạch nhớ ROM 64K hoạt động.
+ 0001 đến 1110: thì bỏ qua – do địa chỉ này thuộc khoảng trống.
+ 1111: thì 2 RAM cuối được chọn
 Chúng ta sẽ dùng 4 bít này đưa vào mạch giải mã 74154 để chọn ROM hoặc
RAM hoạt động. tuy nhiên do chúng ta có tới 2 vi mạch RAM 32k nên chúng ta
sẽ chọn thêm một bit nữa để chọn 2 vi mạch này, ta thấy bít A15 thỏa mãn yêu
cầu, nếu Bít A15=0 thì chọn RAM1, A15=1 thì chọn RAM2. Từ đó chúng ta sẽ
xây dựng mạch giải mã như hình dưới:
2. Cơ chế chọn địa chỉ
Chúng ta chọn 4 bit A19, A18, A17, A16 để đưa vào mạch giải mã, nếu 4 bít này
nhận giá trị là 0000 thì ROM 64K được chọn - chân 1 của 74154 sẽ xuống 0V cho
phép ROM hoạt động, các chân còn lại nâng lên mức cao làm vô hiệu hóa các vi
mạch đó ; nếu 4 bit này nhận giá trị từ 0001 đến 1110 thì các vi mạch nhớ đều bị vô
hiệu hóa – 2 đầu ra ở chân 1 và chân 17 đều ở mức cao. Nếu 4 bít này nhận giá trị
1111 thì chân 17 của 74154 ở mức thấp (0V), chân này sẽ đưa vào 2 cổng OR để
Lớp Điện Tử 2 – K12 19
TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI MÔN VI XỬ LÝ
kết hợp với bit A15 để chọn RAM hoạt động.lúc này, nếu bit A15 = 0V thì chân
CE1 sẽ ở mức thấp, CE2 ở mức cao => cho phép RAM1 hoạt động, RAM2 vô
hiệu hóa. Ngược lại, nếu bit A15 = 5V, thì chân CE1 lại ở mức cao 5V, chân CE2 ở
mức thấp 0V , RAM1 bị vô hiệu hóa và RAM 2 hoạt động. lúc này các đầu ra trên
các chân tử 1 đến 16 của IC 74154 đều ở mức cao.
VI. GHÉP NỐI 8086 VỚI 8255
CHỦ ĐỀ : Ghép 1 Led 7 đoạn Anodes chung (7SEG) với cổng PA, một nút bấm
(Button) với cổng PC. Viết chương trình điều khiển để bấm Button thì Led
sáng nhấp nháy số 8, bình thường LED sáng số 0
1. Ghép nối phần cứng
Sơ đồ tổng quát ghép nối 8086 với 8255 và thiết bị ngoại vi:
- Từ yêu cầu mà đề bài đưa ra, chúng ta sẽ kết nối LED 7 thanh với các chân tín hiệu dữ liệu
đưa tới cổng PA của 8255, và một nút bấm đưa vào cổng C, ở đây mình đưa vào chân PC7
- Để 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
Lớp Điện Tử 2 – K12 20
TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI MÔN VI XỬ LÝ
• 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 được nối trực tiếp tương ứng với các chân từ a đến g của LED
7 thanh để đưa dữ liệu hiển thị số
• Mạch giải mã địa chỉ cho 8255A: do yêu cầu đề bài không có vì vậy chúng ta sẽ chọn
địa chỉ cổng PA, PB, PC và thanh ghi điều khiển bất kì. ở đây mình chọn đia chỉ của các
cổng lần lượt là 0h, 2h, 4h và 6h, để chọn được 2 bít mã hóa cho các cổng của IC 8255 ta
sẽ tìm hiểu bảng giải mã địa chỉ cổng như sau:
Cổng
A19 A18 A17 A16 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 0 0 0 0 0 0
0h
PB
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
2h
PC
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
4h
ĐK
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0
6h
- Từ bảng giải mã địa chỉ, ta chọn chân A1, A2 đưa vào đầu vào A0, A1 của IC 8255A,
các chân còn lại được đưa trực tiếp vào cổng OR để cho phép 8255 hoạt động bằng
cách đưa đầu ra của cổng OR tới đầu vào CS của 8255
2. 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:
Lớp Điện Tử 2 – K12 21
Bắt
đầu
Kiểm
tra nút
bấm
TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI MÔN VI XỬ LÝ

Đ Sai
3. Code chương trình
data segment
pa equ 0 ; dia chi cong PA la 0h
pb equ 2 ; dia chi cong PB la 2h
pc equ 4 ; dia chi cong PC la 4h
dk equ 6 ; dia chi thanh gi dieu khien la 06h
ends
stack segment
dw 128 dup(0)
ends
code segment
start:
mov al,89h ; cho pep xuat du lieu ra PA,Pb
out dk,al ; va lay du lieu vao tu cong PC
;
sangso0:
in al,pc ; lay du lieu tren PC vao thanh ghi al
cmp al,7fh ; so sanh al voi 7f de kiem tra xem nut
da bam chua
je nhayso8 ; nut da nhan thi nhay toi chuong trinh
nhayso8
mov al,0c0h ;gan al=0c0h- ma led 7 thanh de sang so 0
out pa,al ; xuat pa=al; hien thi so 0
jmp sangso0 ; lap vo han - sang so 0 lien tuc
;
nhayso8:
mov al,0ffh ; gan al=ff
out pa,al ; cong PA=FFh - led khong sang
call delay ;lam tre thoi gian tat
mov al,80h ; gan al=80h
out pa,al ; xuat pa=al, hien so 8
call delay ; lam tre thoi gian sang
jmp sangso0 ; quay lai sangso0 de kiem tr xem co nhan
nut nua ko
;
delay: ; ctrinh gay tre
mov cx,15000 ; bien dem 15,000 lan
k: nop ;
nop ;
nop ; khong lam gi
loop k ; lap lai k 15,000 lan
ret ; ham tra ve chuong trinh dang chay
ends
end start
Lớp Điện Tử 2 – K12 22
Hiển thị số 0Nháy số 8
TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI MÔN VI XỬ LÝ
VII. KẾT LUẬN
Nói chung, vi xử lý là một trong những thành tựu khoa học được phát minh mang
tầm chiến lược cho sau này. Là một thiết bị điều khiển – chip – có thể lập trình được các
tín hiệu đầu ra tùy theo người lập trình, đồng thời với tập lệnh đơ giản đã mang lại sự dễ
dàng lập trình cho các lập trình viên
Vi xử lý và cấu trúc máy tính là một môn học thực sự rất hấp dẫn, cuốn hút đối với
sinh viên nói riêng cũng như với những người đam mê công nghệ nói chung. Chúng
giúp chúng được khám phá và tư duy tốt hơn.
Dươi sự hướng dẫn nhiệt tình của cô Hằng, cùng với sự hợp sức tư duy của cả nhóm,
nhóm chúng em đã trình bày hoàn thành tốt bài tập lớn mà chúng em được giao. Tuy
nhiên, trong quá trình trình bày còn có nhiều sai sót, mong các thầy cô đóng góp những
nhận xét thiết thực để chúng em rút kinh nghiệm lần sau. Một lần nữa nhóm chúng em
xin cảm ơn cô Hằng nói riêng và toàn thể các thầy cố trong khoa cũng như nhà trường
nói chung.
Lớp Điện Tử 2 – K12 23

Đây là phiên bản tài liệu đơn giản

Xem phiên bản đầy đủ của tài liệu BÀI TẬP LỚN MÔN: VI XỬ LÝ VÀ CẤU TRÚC MÁY TÍNH docx