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

ĐỒ ÁN GIAO TIẾP GIỮA MÁY TÍNH VỚI VI XỬ LÝ 8086

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 (421.09 KB, 98 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
ĐẠI HỌC SƯ PHẠM KỸ THUẬT
KHOA ĐIỆN – ĐIỆN TỬ

LUẬN VĂN TỐT NGHIỆP
Đề tài:

GIAO TIẾP MÁY TÍNH VỚI KIT VI
XỬ LÝ 8086

Giáo viên hướng dẫn : Thầy NGUYỄN ĐÌNH PHÚ
Sinh viên thực hiện : PHẠM XUÂN HƯNG
Lớp

: 95 KĐĐ

TP.HỒ CHÍ MINH
2 – 2000


ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
ĐẠI HỌC SƯ PHẠM KỸ THUẬT
KHOA ĐIỆN - ĐIỆN TỬ

LUẬN VĂN TỐT NGHIỆP
Đề tài:

GIAO TIẾP MÁY TÍNH VỚI
KIT VI XỬ LÝ 8086
PHẦN 1: GIỚI THIỆU CHUNG
CHƯƠNG DẨN NHẬP


CHƯƠNG CƠ SỞ LÝ LUẬN
CHƯƠNG I: CẤU TRÚC VI XỬ LÝ 8086
CHƯƠNG II: KHẢO SÁT TỔNG QUÁT TẬP LỆNH 8086
CHƯƠNG III: GIAO TIẾP VỚI MÁY TÍNH
PHẦN 2 : PHẦN CỨNG VÀ PHẦN MỀM CỦA MẠCH GIAO TIẾP
CHƯƠNG IV: GIỚI THIỆU KIT VXL 8086
CHƯƠNG V: GIAO TIẾP NỐI TIẾP DÙNG VI MẠCH 8251A
CHƯƠNG VI: CHƯƠNG TRÌNH GIAO TIẾP ( CHƯƠNG TRÌNH
TRUYỀN, NHẬN DỮ LIỆU)
HƯỚNG PHÁT TRIỂN ĐỀ TÀI
KẾT LUẬN ĐÁNH GIÁ
PHỤ LỤC
TÀI LIỆU THAM KHẢO

Giáo viên hướng dẫn: NGUYỄN ĐÌNH PHÚ
Sinh viên thực hiện: PHẠM XUÂN HƯNG


BỘ GIÁO DỤC& ĐÀO TẠO
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
ĐỘC LẬP – TỰ DO – HẠNH PHÚC
ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH_____________

KHOA ĐIỆN
BỘ MÔN ĐIỆN – ĐIỆN TỬ

NHIỆM VỤ LUẬN VĂN TỐT NGHIỆP

Họ và tên sinh viên

Lớp
Ngành
1.
2.

: PHẠM XUÂN HƯNG
: 95KĐĐ
: Kỹ thuật Điện – Điện tử

Tên đề tài: GIAO TIẾP MÁY TÍNH VỚI KIT VI XỬ LÝ 8086
Các số liệu ban đầu:
……………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
………………………………………………………………………………
3.
Nội dung các phần thuyết minh tính toán:
……………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
4.
Các bản vẽ:
……………………………………………………………………………

……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
………………
5.
Giáo viên hướng dẫn : NGUYỄN ĐÌNH PHÚ
6.
Ngày giao nhiệm vụ :
7.
Ngày hoàn thành nhiệm vụ: 25/2/2000
Giáo viên hướng dẫn:
Thông qua Bộ môn
Ngày tháng
năm 1999


NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………

……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………


……………………………………………………………………………

……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………

……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………


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


NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN

………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………

……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………

……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………


……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………

……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………


……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………

………………………………………………………………
Giáo viên phản biện


Lời cảm tạ

Trong thời gian thực hiện đề tài sinh viên thực hiện đã học hỏi được
nhiều điều bổ ích từ thầy hướng hẫn, các thầy cô và các bạn.
Sinh viên thực hiện xin bày tỏ lòng biết ơn đến thầy Nguyễn Đình Phú
trên cương vị là người hướng dẫn đề tài đã tận tình hướng dẫn và tạo
điều kiện thuận lợi cho em hoàn thành tốt đề tài.
Sinh viên thực hiện cũng xin chân thành cảm ơn các thầy, các cô
trong khoa cùng các bạn đã đóng góp ý kiến và kinh ngiệm qúy báu trong
qúa trình thực hiện đề tài này.
TP.HỒ CHÍ MINH Ngày 25 tháng 2 năm 2000
Sinh viên thực hiện
Phạm Xuân Hưng


MỤC LỤC
Phần 1: Phần giới thiệu
Chương dẫn nhập
Chương cơ sở lý luận
I.
Xây dựng đề cương luận văn
II.
Kế hoạch nghiên cứu
Chương I: Cấu trúc bên trong của VXL 8086
I.
Cấu tạo bên trong

1. khối thực hiện
2. khối phối phối ghép bus
3. sơ đồ khối bên trong
II.
Cấu trúc bên trong và chức năng của VXL 8086
1. sơ đồ chân của VXL 8086
2. chức năng các chân
III.
Các phương pháp định địa chỉ của 8086
Chương II: Khảo sát tổng quát tập lệnh của VXL 8086
I.
cách mã hóa lệnh
II.
khảo sát tổng quát tập lệnh
Chương III: Giao tiếp với máy tính
I.
Giao tiếp song song
1. Giao tiếp qua cổng máy in
2. Giao tiếp qua Slot card
II.
Giao tiếp nối tiếp qua cổng COM
1. Vài nét cơ bản về cổng nối tiếp
2. Sự trao đổi của các đường dẫn tín hiệu
Phần 2: Phần cứng của mạch giao tiếp
Chương IV: Giới thiệu kit VXL 8086
I.
Các linh kiện bán dẫn liên quan
1. vi mạch MAX 232
2. IC đệm 74LS244
3. Mạch tạo xung nhịp 8284

4. Tổng quát về bộ nhớ
II.
Giới thiệu kit VXL 8086.
Chương V: Giao tiếp nối tiếp dùng 8251A.
I.
truyền thông tin nối tiếp
II.
Vi mạch USART 8251A
III.
Ứng dụng 8251A để truyền thông tin nối tiếp
1. Truyền thông tin nối tiếp giữa 2 kit VXL
2. Truyền thông tin nối tiếp giữa kit VXL và máy tính
Phần 3 : Phần mềm của mạch giao tiếp
Chương VI: Các chương trình truyền dữ liệu
I.
Chương trình truyền, nhận dữ liệu dữ liệu trên kit
1. Giải thuật
2. Chương trình
II.
Chương trình truyền dữ liệu trên máy tính
Phần 4: Tổng kết, đánh giá


Hướng phát triển đề tài
Kết luận đánh giá
Tài liệu tham khảo


LỜI NÓI ĐẦU
Đất nước ta đang trên con đương tiến lên một đất nước công ngiệp hóa hiện

đại hóa. Để đạt được mục tiêu đó thì ngành công ngiệp máy tính là một ngành
then chốt để tiến lên con đường công ngiệp hoá và hiện đại hóa đất nước.
Ngày nay trong các nhà máy xí nghiệp hay công xưởng đều sử dụng máy vi
tính vào việc đo lường điều khiển, tính toán và trong quản lý hành chính, nhờ
có đặc tính gọn nhẹ, độ tin cậy cao linh hoạt và đơn giản trong sử dụng. Đặc
biệt trong các ngành công nghiệp hiện đại, máy tính điện tử không những góp
phần vào việc nâng cao năng suất lao động mà còn góp phần vào việc bảo vệ
sức khoẻ và an toàn lao động cho con người.
Đễ hoàn thành những công việc kể trên chúng ta cần phải kết nối các máy vi
tính với nhau, hoặc kết nối chúng với các thiết bị ngoại vi nhận dữ liệu để xử lý
hay gửi dữ liệu đi cho các thiết bị khác xử lý. Để thực hiện được công việc này
thì điều đầu tiên chúng ta phải làm đó là chúng ta phải kết nối phần cứng cho
phù hợp và viết các chương trình truyền dữ liệu.
Trước yêu cầu đó sinh viên thực hiện đề tài quyết định thực hiện đề tài
“Giao tiếp máy tính với kit VXL 8086” nhằm mục đích tìm hiểu, học hỏi thêm
và ứng dụng các kiến thức đã học ra thực tế.
Sinh viên thực hiện xin chân thành cảm ơn thầy Nguyễn Đình Phú cùng
các thầy cô trong khoa đã tận tình hướng dẫn em hoàn thành tốt đề tài này.
Vì thời gian và kiến thức có hạn nên tập luận văn này chắc chắn không tránh
khỏi sai sót, rất mong những ý kiến đóng góp của qúy thầy cô và các bạn.
TP.Hồ Chí Minh, ngày 25 tháng 2 năm 2000
Sinh viên thực hiện
Phạm Xuân Hưng


Phần 1

GIỚI THIỆU CHUNG



CHƯƠNG DẪN NHẬP
oOo
Cùng với sự phát triển của khoa học kỹ thuật thì ngành công nghiệp máy
tính cũng được phát triển rất mạnh mẽ và ngày càng được ứng dụng rộng rãi
trong mọi công việc như các công việc trong công nghiệp cũng như trong thông
tin liên lạc.
Để thực hiện được những công việc nhận dữ liệu từ các thiết bị khác để xử
lý hoặc gửi dữ liệu đi để điều khiển các thiết bị khác thì công việc giao tiếp
giữa hai hệ vi xử lý với nhau hay giữa vi xử lý với máy tính là một công việc
chủ yếu trong việc truyền dữ liệu vì thế sinh viên quyết định thực hiện đề tài
“Giao tiếp máy tính với kit VXL 8086”. Mục đích để học hỏi và tìm hiểu thêm
các ứng dụng của VXL và các IC giao tiếp ngoại vi trong thực tế, làm quen với
các chương trình truyền dữ liệu để hoàn thành tốt luận văn tốt nghiệp này.
Trong phạm vi chuyên ngành thì đề tài đã hoàn thành tốt phần cứng và phần
mềm giao tiếp. Riêng trong lĩnh vực giao tiếp thì đó cũng là tài liệu tham khảo
ban đầu cho những người muốn đi sâu vào lĩnh vực giao tiếp.
Đề tài này không chỉ giúp cho sinh viên hòan thành luận văn tốt nghiệp
mà còn hình thành trong mỗi sinh viên những kinh nghiệm, sáng tạo và năng
động. Sau này đề tài sẽ kết hợp với các ngành chuyên môn khác để phát triển
mô hình này được hoàn thiện hơn.


CHƯƠNG CƠ SỞ LÝ LUẬN
___ oOo ___
XÂY DỰNG ĐỀ CƯƠNG LUẬN VĂN:
1). Xác định nhiệm vụ nghiên cứu:
Việc chọn đề tài xuất phát từ hai lý do:
- Khách quan: hiện nay các nền công nghiệp có nhu cầu hiện đại hóa
các thiết bị theo xu hướng cải tiến hóa các thiết bị bằng cơ khí sang
thiết bị điều khiển tự động ứng dụng kỹ thuật điện tử.

- Chủ quan: do nhu cầu học tập, nghiên cứu, rèn luyện kỹ năng thực
hành, ứng dụng vốn kiến thức khoa học kỹ thuật tiên tiến trực tiếp vào
lĩnh vực sản xuất.
Nhiệm vụ nghiên cứu nhằm đạt được các mục đích chủ yếu:
+
Mục đích trước mắt: thỏa mãn về cơ bản các yêu cầu đề ra theo
phương châm “Học đi đôi với hành“.
+
Mục đích sau cùng: Tích lũy kinh nghiệm, rèn luyện và nâng cao
năng lực, tạo bản lĩnh để sẵn sàng tham gia lao động sản xuất, hòa nhập vào
bước tiến của thế hệ.
2). Phân tích tài liệu liên hệ:
Trong thời gian nghiên cứu đề tài, sinh viên thực hiện đã thống nhất tham
khảo một số tài liệu có liên quan trong khoảng thời gian cho phép.
- Phương pháp luận nghiên cứu khoa học: tìm hiểu về cấu trúc hình thức
của một đề tài nghiên cứu khoa học và phương pháp tư duy để giải
quyết vấn đề.
- Kỹ thuật Vi xử lý - Trần Văn Trọng: Tài liệu cung cấp về cấu trúc của
vi xử lý 8086.
- Sơ đồ chân linh kiện bán dẫn - Dương Minh Trí: cung cấp sơ đồ chân
và bảng trạng thái họat động của các IC và các linh kiện bán dẫn.
- Cấu trúc máy tính - Lê Anh Việt: Tài liệu cung cấp kiến thức cơ bản
về cấu trúc máy tính, tổ chức CPU, hợp ngữ và cách lập trình.
- The 8086/8088 - Family Design Programming and Interfacing – John
Uffenbeck: tài liệu cung cấp những kỹ thuật kết nối vi xử lý và những
phần mềm ứng dụng.
- Kỹ thuật vi xử lý – Văn Thế Minh: tài liệu cung cấp kỹ thuật giao tiếp
với các thiết bị ngoại vi.
I.



II.
1).

KẾ HOẠCH NGHIÊN CỨU:
Dàn ý nghiên cứu:
Phần I: Giới thiệu chung.
Phần II: Phần cứng và phần mềm cuả mạch giao tiếp.
Phần III : Tổng kết và đánh giá

2). Đối tượng nghiên cứu:
Vi xử lý là trung tâm điều khiển các đối tượng, điều khiển hệ thống như
máy tự động, dây chuyền sản xuất… Để hệ thống xử lý thi hành các chức năng
điều khiển như mong muốn, chúng ta phải lập trình bằng ngôn ngữ tương ứng
và trao đổi dữ liệu giữa các hệ vi xử lý. Vì thế đối tượng nghiên cứu chính là
thiết kế mạch giao tiếp để truyền dữ liệu đi xa.


CHƯƠNG I
CẤU TRÚC BÊN TRONG CỦA VI XỬ LÝ 8086
___ oOo ___
Đây là bộ vi xử lý nổi tiếng một thời của hãng Intel, nó được sử dụng
trong nhiều lĩnh vực khác nhau, nhất là trong các máy IBM PC/XT. Các bộ vi
xử lý thuộc họ này sẽ còn được sử dụng rộng rãi trong hàng chục năm nữa.
I . CẤU TẠO BÊN TRONG:
Bên trong gồm hai khối chính:
Khối thực hiện EU (Execution Unit)
Khối giap tiếp bus (Bus Interface Unit)
1 .Khối thực hiện EU
Ở hình 1.1 ta thấy trong khối EU ta thấy có một khối điều khiền

(Control Unit, CU) chính tại bền trong khối điều khiển này có mạch giải mã
lệnh. Mã lệnh đọc vào từ bộ nhớ đưa đến đầu của bộ giải mã, các thông tin thu
được từ đầu ra củc nó sẽ được đưa đến mạch tạo xung điều khiển, kết quả là thu
được các dãy xung khác nhau (tùy theo mã lệnh) để điều khiển hoạt động của
các bộ phận bên trong và bên ngoài CPU. Trong khối EU còn có khối số học và
logic (Arithmetic and Logic Unit ALU) dùng để thực hiện các thao tác khác
nhau với các toán hạng cuả lệnh. Tóm lại khi CPU hoạt động EU sẽ cung cấp
thông tin về điạ chỉ cho BIU để khối này đọc lệnh và dữ liệu, còn bản thân nó
thì giải mã lệnh và thực hiện lệnh
2. Khối phối ghép bus (Bus Interface Unit BIU)
Khối BIU có nhiệm vụ đưa ra điạ chỉ, đọc mã lệnh từ bộ nhớ. Nói cách
khác BIU chiu trách nhiệm đưa điạ chỉ ra bus và trao đổi dữ liệu với bus.
Trong BIU còn có bộ nhớ đệm lệnh với dung lượng 4 byte dùng để đưa
các mã lệnh đọc được nằm sẵn sàng chờ EU xử lý (trong tài liệu cuả Intel bộ
lệnh này còn được gọi là hàng đợi lệnh. Đây là một cấu trúc mới được đưa vào
bộ VXL 8086/8088 cho việc Intel đưa chế độ xử lý xen kẽ liên tục dùng mã
lệnh vào ứng dụng vào trong các bộ VXL thế hệ mới.


3. Sơ đồ khối bền trongvà chức năng các khối cuả VXL 8086:
Bus địa
chỉ

Bus dữ
liệu

Các bus hệ
thống

Điều khiển bus

và tạo địa chỉ


AHALBHBL
CHCLDHDL
BPDISISP

65432
1
CSESSSDSI
P

Bus dữ liệu nội

Arithmetic
logic unit
(ALU)

Các
cờ

Excution
Unit
(EU)

Bus Interface
Unit
(BIU)
Hình 1.1: Sơ đồ khối
8086


Các
thanh
ghi đoạn

Hàng
đợi
lệnh


Bộ vi xử lý thực hiện các lệnh theo các bước sau:
Lấy lệnh từ bộ nhớ.
Đọc toán hạng (nếu lệnh yêu cầu).
Thực hiện lệnh.
Ghi kết quả.
3.1).
Khối thực hiện:
Nhiệm vụ của khối thực hiện lệnh là thực hiện các lệnh của chương trình.
Nó gồm có khối số học – logic (ALU) cho phép thực hiện các phép tính số học
(+ , - , * , /) và các phép logic (AND, OR, NOT…). Trong khối thực hiện còn
có một số ô nhớ gọi là thanh ghi dùng để chứa dữ liệu cho các phép tính. Mỗi
thanh ghi giống như một ô nhớ ngoại trừ chúng được đặt tên thay vì dùng số để
chỉ địa chỉ. EU (Execution Unit) có các thanh ghi công dụng chung chia thành
hai nhóm: nhóm thanh ghi dữ liệu và nhóm thanh ghi chỉ số.
 Các thanh ghi dữ liệu (Data Register):



AHALBHBLCHCLDHDL AX
(Accumulator)

BX (Base)
CX (Count)
DX (Data)

Các thanh ghi chỉ số và con trỏ (Index & Pointer Register):
SPBPSIDI



Con trỏ Stack (Stack Pointer)
Con trỏ nền (Base Pointer)
Chỉ số nguồn (Source Index)
Chỉ số đích (Destnation Index)

Các thanh ghi đoạn (Segment Register):

CSDSSSES
Đoạn mã (Code Segment)
Đoạn dữ liệu (Data
Segment)
Đoạn Stack (Stack
Segment)
Đoạn
 Các thanh ghi trạng thái
và thêm
điều (Extra
khiển (Status & Control
Segment)
Register):
IPFlagCon trỏ lệnh (Intruction

Pointer)
Cờ


 Các thanh ghi dữ liệu:
Có bốn thanh ghi dữ liệu ký hiệu lần lượt là: AX, BX, CX, DX, được
người lập trình sử dụng cho các thao tác với dữ liệu. Mặc dù vi xử lý có thể
thao tác với dữ liệu trong bộ nhớ, nhưng một lệnh như vậy sẽ được thực hiện
nhanh hơn trong thanh ghi (cần ít chu kỳ đồng hồ hơn). Đó cũng là nguyên
nhân tại sao các bộ vi xử lý hiện đại có xu hướng nhiều thanh ghi.
Các byte cao và byte thấp trong thanh ghi được truy cập độc lập: Byte cao
của thanh ghi AX được gọi là AH và byte thấp được gọi là AL. Tương tự như
vậy cho các byte cao và byte thấp của các thanh ghi BX, CX, DX lần lượt là
BH & BL, CH & CL, DH & DL. Nhờ điều này mà ta có nhiều thanh ghi hơn
khi làm việc với các số liệu có kích thước byte dài. Trong đa số lệnh các thanh
ghi dữ liệu được chọn tùy ý nhưng các thanh ghi này lại có chức năng riêng cố
định trong một số ít lệnh.

Thanh ghi tích lũy AX (Accumulator):
Là thanh ghi được sử dụng nhiều nhất trong các lệnh số học – logic và
truyền dữ liệu bởi vì việc sử dụng thanh ghi này tạo ra mã máy ngắn nhất.
Trong các thao tác nhân hoặc chia một trong các số hạn tham gia phải
chứa trong AH hoặc AL, các thao tác vào ra cũng sử dụng thanh ghi AH hoặc
AL.

Thanh ghi cơ sở BX (Base):
Thanh ghi BX được dùng cho tính toán địa chỉ trong phương pháp định
địa chỉ gián tiếp.

Thanh ghi đếm CX (Count):

Việc thực hiện các chương trình lập được thực hiện dễ dàng nhờ thanh ghi
CX, trong đó CX đóng vai trò là bộ đếm vòng lập. Một thí dụ khác của việc sử
dụng thanh ghi CX đó là lệnh REP (Repeat) lệnh này điều khiển một lớp các
lệnh chuyên về các thao tác chuỗi. CL cũng được sử dụng là một biến đếm
trong các lệnh dịch hay quay các bit.

Thanh ghi dữ liệu DX (Data):
DX dùng để định địa chỉ gián tiếp trong các thao tác vào ra, nó cũng còn
được sử dụng chứa toán hạn, kết quả trong phép nhân và chia.

Thanh ghi con trỏ và chỉ số:
Các thanh ghi SP, BP, SI, DI thường trỏ tới các ô nhớ (tức là chứa các địa
chỉ offset của các ô nhớ đó). Khác với thanh ghi đoạn, các thanh ghi con trỏ và
ngăn xếp được sử dụng trong các thao tác số học và một số thao tác khác nhau.

Thanh ghi con trỏ – ngăn xếp SP (Stack Pointer):
Di chuyển từ địa chỉ cao đến địa chỉ thấp, dùng để kết hợp với thanh ghi
đoạn Stack SS (Stack Segment)để lưu trử địa chỉ trở về hoặc dữ liệu vào trong
ngăn xếp.

Thanh ghi con trỏ cơ sở BP (Base Pointer):
Thanh ghi này được dùng để truy cập dữ liệu trong ngăn xếp mà không
làm thay đổi SP. Tuy nhiên, khác với SP thanh ghi BP cũng còn được sử dụng
đễ truy cập dữ liệu ở các đoạn khác.

Thanh ghi chỉ số nguồn SI (Source Index):


Thanh ghi SI được sử dụng để trỏ tới các ô nhớ trong đoạn dữ liệu được
định bởi thanh ghi đoạn dữ liệu DS (Data Segment), có thể truy cập dễ dàng

các ô nhớ liên tiếp bằng cách tăng SI.

Thanh ghi chỉ số đích DI (Destination Index):
Thanh ghi DI có chức năng tương tự như thanh ghi SI và được dùng kết
hợp với thanh ghi đoạn thêm ES (Extra Segment). Cả hai DI và SI thích hợp
trong các thao tác sao chép, di chuyển hoặc so sánh các khối dữ liệu có dung
lượng đến 64kB.

Thanh ghi con trỏ lệnh IP (Intruction Pointer):
8086 không thực hiện lệnh trực tiếp trong bộ nhớ mà lệnh được lấy ở
hàng đợi lệnh có cấu tạo giống như một thanh ghi dịch (FIFO: First In First
Out: vào trước ra trước) chứa các mã lệnh cung cấp bởi khối BIU. Thanh ghi IP
chỉ đến lệnh tiếp theo chưa được nhập vào hàng đợi lệnh và được dùng kết hợp
với thanh ghi CS. Thanh ghi IP được cập nhật mỗi khi có một lệnh được thực
hiện xong, khác với các thanh ghi khác, IP không bị tác động trực tiếp bởi các
lệnh.

Thanh ghi cờ (Flag Register):
Thanh ghi cờ của 8086 có độ dài 16bit (2byte) byte thấp chứa các bit
trạng thái giống như trong 8085 phản ánh trạng thái của vi xử lý, byte cao chứa
1 bit trạng thái đó là bit 11 và 3 bit điều khiển dùng để điều khiển hoạt động
của vi xử lý. Sau đây là cấu tạo của thanh ghi cờ trong 8086:
15
8 7
0
O D I T S Z
A
P
C
Thanh ghi cờ của 8086

C: carry flag.
P: parity flag.
A: auxiliary flag.
Z: zero flag.
S: sign flag.
T: trap flag.
I: interrupt enable flag.
D: direction flag.
O: overflow flag.
+ Cờ nhớ CF :
Cờ nhớ CF được thiết lập khi có số nhớ từ bit MSB. Trong phép cộng
hoặc số thiếu trong phép trừ (MSB trong các lệnh byte là bit 7 và trong các lệnh
word là bit 15) cờ CF cũng bị ảnh hưởng bởi các lệnh quay và dịch.
+ Cờ chẵn lẻ PF :
Sau các lệnh số học hoặc logic đối với các lệnh byte nếu số lượng số ‘1’
trong byte kết quả là chẵn thì cờ PF được thiết lập là ‘1’ ngược lại là ‘0’ nếu là
lẻ, đối với các lệnh word chỉ xét các byte thấp.
+ Cờ nhớ phụ AF:
Cờ nhớ phụ được thiết lập nếu có nhớ (cộng) hoặc có thiếu (trừ) từ phân
nửa dưới đến phân nửa trên của toán hạn (đối với lệnh byte đó là bit 3 và đối
với lệnh word là bit 7) cờ AF được sử dụng trong các thao tác với số BCD.
+ Cờ zero ZF:


Cờ zero được thiết lập khi kết quả bằng 0.
+ Cờ dấu SF:
Cờ dấu là ‘1’ khi bit MSB của kết quả bằng ‘1’ tức là số âm, đối với lệnh
byte MSB là bit 7 và trong lệnh word là bit 15.
+ Cờ bẫy TF:
Tạo khả năng thực hiện chương trình theo từng bước, khi TF bằng ‘1’

8086 phát sinh ngắt loại 1 (ngắt cứng). Chương trình DEBUG sử dụng khi thi
hành lệnh T (trace) để chạy từng bước một lệnh. Đầu tiên DEBUG thiết lập cờ
TF rồi mới chuyển điều khiển cho lệnh đó. Sau khi lệnh được thi hành vi xử lý
sẽ phát sinh một ngắt do TF được lập DEBUG sử dụng chính phục vụ ngắt này
để lấy quyền điều khiển từ vi xử lý.
+ Cờ ngắt IF:
Cờ ngắt được sử dụng để điều khiển các ngắt phần cứng bên ngoài, nếu
cờ này được thiết lập các ngắt phần cứng có thể ngắt 8086. Khi xóa IF, các ngắt
bên ngoài không còn tác dụng nửa (bị che). Thực ra vẫn còn một ngắt cứng
không che được NMI (Non Maskable Interrupt).
Trước khi vi xử lý trao quyền điều khiển cho một phục ngắt nó xóa cả IF
và TF, như vậy phục ngắt đó sẽ không bị ngắt. Tất nhiên một phục vụ ngắt có
thể đổi cờ để cho phép ngắt khi nó đang thi hành.
+ Cờ tràn OF:
Cờ tràn là ‘1’ khi có hiện tượng tràn và ngược lại nó bằng ‘0’. Hiện tượng
tràn cho thấy một sự thật là phạm vi biểu diễn các số trong máy tính là có giới
hạn.
Phạm vi biểu diển các số có dấu trong một word từ –32768 đến +32767
và trong một byte từ –126 đến +127.
Đối với các số không dấu từ 0 đến 65535 cho một word và từ 0 đến 255
cho một byte. Nếu kết quả của một phép tính vượt ra ngoài phạm vi này thì
hiện tượng tràn sẽ xảy ra và kết quả nhận được bị cắt bớt sẽ không phải là kết
quả đúng.
+ Cờ điều khiển DF:
Là một trong ba cờ điều khiển dùng điều khiển các thao tác của vi xử lý
công dụng của DF là dịch hướng cho các thao tác chuỗi, các thao tác này được
thực hiện bởi hai thanh ghi chỉ số SI & DI, nội dung của hai thanh ghi này sẽ tự
động tăng lên khi DF = 0 và giảm xuống khi DF =1.
3.2). Khối giao tiếp (BIU):
Khối giao tiếp làm đơn giản việc liên lạc giữa EU và bộ nhớ hoặc các vi

mạch vào ra. Nó có nhiệm vụ gởi các địa chỉ, số liệu và tín hiệu điều khiển vào
các bus, BUI & EU liên hệ với nhau bằng các bus nội bộ, khi EU đang thi hành
một lệnh, BIU nạp 6 byte mã lệnh tiếp theo vào và đặt chúng vào hàng đợi
lệnh, mục đích của việc này là làm tăng tốc độ của vi xử lý. Nếu EU cần liên
lạc với bộ nhớ hay thiết bị ngoại vi, BIU sẽ treo các lệnh nhận trước và thực
hiện thực hiện các thao tác cần thiết. BIU cấu tạo gồm các thanh ghi đoạn và
con trỏ lệnh dùng để chứa địa chỉ các ô nhớ.
a). Các thanh ghi đoạn:
Được dùng để lưu trử địa chỉ của các lệnh và dữ liệu trong bộ nhớ, vi xử
lý dựa trên các giá trị này để truy cập bộ nhớ.


Bộ nhớ là tập hợp các byte ô nhớ, mỗi byte có một địa chỉ xác định bắt
đầu từ 0. 8086 gán cho mỗi ô nhớ một địa chỉ vật lý 20 bit. Như vậy, nó có thể
định địa chỉ đến byte (tương đương 1MB) ô nhớ, các byte đầu tiên của bộ nhớ
có địa chỉ như sau:
0000
0000 0000 0000 0000
0000
0000 0000 0000 0001
0000
0000 0000 0000 0010
0000
0000 0000 0000 0011
0000
0000 0000 0000 0100
Để đơn giản, các địa chỉ trên thường được biểu diển bằng số thập lục phân
như sau:
00000H
00001H

00002H
………… H
và cứ tiếp tục cho đến giá trị lớn nhất là FFFFFH
Do các địa chỉ quá lớn (20 bit) không thể chứa trong một thanh ghi của
8086 (16 bit) nên 8086 chia bộ nhớ thành các đoạn bộ nhớ (Memory Segment).
Một đoạn bộ nhớ là một khối gồm 2 16 (64K) ô nhớ liên tiếp nhau, mỗi
đoạn được xác định bằng một địa chỉ đoạn bắt đầu từ địa chỉ 0, địa chỉ đoạn là
một số 16 bit nên địa chỉ đoạn lớn nhất là FFFF. Bên trong mỗi đoạn số ô nhớ
được xác định bằng địa chỉ tương đối (offset), đó là số byte tính từ đầu đoạn,
với một đoạn 64K thì offset cũng là một số 16 bit, byte đầu tiên trong đoạn có
offset bằng 0 và byte cuối cùng bằng FFFF.
Một ô nhớ có thể được xác định bằng địa chỉ đoạn:địa chỉ tương đối trong
đoạn (segment:offset) và được gọi là địa chỉ logic.
Thí dụ: ô nhớ A4FB: 4872 có địa chỉ đoạn là A4FB và địa chỉ offset là
4872. Để tìm địa chỉ vật lý của ô nhớ trước tiên ta dịch địa chỉ đoạn về bên trái
4 bit và sau đó cộng với địa chỉ offset, như vậy địa chỉ vật lý của ô nhớ
A4FB:4872 được tính như sau: A4FB0
4872
A9822
b). Sắp xếp đoạn:
Trong bộ nhớ đoạn 0 bắt đầu từ địa chỉ 0000:0000 = 00000 và kết thúc ở
0000:FFFF = 0FFFF, đoạn 1 bắt đầu từ địa chỉ 0001:0000 = 00010 và kết thúc
ở địa chỉ 0001:FFFF = 1000F. Như vậy, có rất nhiều sự chồng nhau giữa các
đoạn. Các đoạn bắt đầu từ các địa chỉ cách nhau 16byte và địa chỉ đầu của mỗi
đoạn luôn kết thúc bằng các số 0. 16byte được gọi là một khúc (Paragraph), các
địa chỉ chia hết cho 16 ( các địa chỉ kết thúc bằng 0) là các biên giới khúc
(Paragraph Boundary)
c). Các đoạn của chương trình:
Mỗi đoạn chương trình ngôn ngữ máy bao gồm các lệnh và dữ liệu, còn
một vùng đặc biệt trong RAM gọi là ngăn xếp (stack). Mã lệnh, dữ liệu và ngăn

xếp của chương trình được nạp vào các đoạn bộ nhớ khác nhau đó là đoạn mã
(code segment), đoạn dữ liệu (data segment), đoạn ngăn xếp (stack segment).


Để theo dõi các đoạn khác nhau của chương trình 8086 được cung cấp 4
thanh ghi đoạn để chứa các địa chỉ đoạn, các thanh ghi CS, DS, SS lần lược
chứa các địa chỉ đoạn mã, đoạn dữ liệu, và đoạn ngăn xếp. Nếu chương trình
muốn truy cập đến một dữ liệu thứ hai nó có thể sử dụng thanh ghi đoạn thêm
ES (extra segment).
Một chương trình không phải bao giờ cũng cần chiếm hết một đoạn
64KB, do đặc điểm chồng nhau giữa các đoạn cho phép các đoạn của một
chương trình nhỏ hơn 64KB có thể đặt gần lại với nhau. Tại một thời điểm, chỉ
có các ô nhớ được định địa chỉ bởi 4 thanh ghi đoạn mới có thể truy cập, nghĩa
là chỉ có 4 đoạn bộ nhớ là tác động. Tuy nhiên nội dung của các thanh ghi đoạn
có thể thay đổi bởi chương trình để truy cập đến các đoạn khác nhau.
d).
Hàng đợi lệnh:
Như ta đã biết, để tăng tốc độ vi xử lý khối BIU tiếp nhận các lệnh và
đưa vào hàng đợi lệnh (Queue) trong khi đó khối EU đang thi hành lệnh. Hàng
đợi lệnh có thể nhận 6 byte mã lệnh, các lệnh của 8086 có độ dài từ 1 đến 6
byte, nếu lệnh chưa vào đầy đủ trong hàng đợi lệnh thì khối EU sẽ chờ cho đến
khi lệnh nạp hết vào hàng đợi lệnh.
II. CẤU TRÚC BÊN NGOÀI VÀ CHỨC NĂNG CỦA VXL 8086.
1).
Sơ đồ chân của 8086:
8086 là vi xử lý 16 bit nó gồm 16 đường dữ liệu và 20 đường địa chỉ, các
đường dữ liệu từ D0 đến D15 và các đường địa chỉ từ A0 đến A15 hoạt động
theo phương pháp đa lộ thời gian.
8086 có thể làm việc ở hai chế độ:
Chế dộ Minimum.

Chế độ Maximum.
Trong chế độ minimum, 8086 điều khiển các thiết bị bằng các tín hiệu
điều khiển của chính nó, trong chế độ này hỗ trợ bộ xử lý toán học 8087
Trong chế độ maximum cần thiết phải kết hợp với vi mạch điều khiển bus
8288 để tạo ra các tín hiệu đọc – ghi cho bộ nhớ và các thiết bị ngoại vi và chế
độ này cho phép làm việc với 8087.
Sau đây là sơ đồ chânGND
của 8086
ở cả hai chế
40 độ
1
Vccminimum và maximum:
AD14

2

39

AD15

AD13

3

38

A16/S3

AD12


4

37

A17/S4

AD11

5

36

A18/S5

AD10

6

35

A17/S6

AD9

7

34

BHE/S7


AD8

8

33

MN/MX

32
31

RD
HOLD

(RQ/GT0)

30

HLDA

(RQ/GT1)
(LOCK)
(S2)

AD7

9

AD6


10

8086
CPU

AD5

11

AD4

12

29

AD3

13

28

WR
M/IO

AD2

14

27


DT/R

(S1)
(S0)

AD1

15

26

DEN

AD0

16

25

ALE

(QS0)
(QS1)

NMI

17

24


INTA

INTR

18

23

TEST

CLK

19

22

READY

GND

20

21

RESET

Hình 1.2: Sơ đồ chân



×