
TRƯỜNG ĐẠI HỌC KỸ THUẬT
KHOA CÔNG NGHỆ THÔNG TIN
LUẬN VĂN TỐT NGHIỆP
Đề tài:
Thiết kế, thi công và viết chương trình điều khiển
mạch thực hành cho Z80 CPU.
Giao tiếp với máy tính qua ngõ máy in.
Giáo viên hướng dẫn: Thầy Nguyễn Xuân Minh.
Sinh viên thực hiện : Hoàng Lê Bình.
Lưu Đình Dũng.
Lớp : KSII_K6_T.

2
Đề tài:
Thiết kế, thi công và viết chương trình điều khiển mạch thực hành cho Z80 CPU với các đặc điểm
sau:
- Giao tiếp với máy tính qua ngõ máy in.
- Giả lập ROM để nhận chương trình từ máy tính.
- Có khả năng chạy từng bước từ bên máy tính.
- Có khả năng thông báo trạng thái các thanh ghi về bên máy tính.
- Có khả năng điều khiển một số cổng xuất nhập đơn giản.
- Thi công mạch, thử mạch.
- Viết chương trình và thử chạy theo từng chức năng.

3
MỤC LỤC
Mở đầu ........................................................................................................... trang 4
Chương I Phân tích yêu cầu
1.1 Phân tích yêu cầu ....................................................................................... trang 5
1.2 Phương hướng giải quyết vấn đề ................................................................ trang 5
Chương II Thiết kế phần cứng
2.1. Phân tích các chức năng của cổng ghép nối với máy in ........................... trang 8
2.2. Kiến trúc Z80 CPU. ............................................................................... trang 10
2.3. Thiết kế chi tiết. ..................................................................................... trang 48
2.4. Nguyên lý hoạt động. ............................................................................. trang 49
Chương III. Giới thiệu phần soạn thảo văn bản
3.1. Các thành phần chính của main menu ......................................................... trang 55
3.2. Hướng dẫn sử dụng trong màn hình soạn thảo ........................................... trang 55
Chương IV. Giải thuật ................................................................................. trang 57
Chương V. Chương trình nguồn
5.1. Chương trình đưa data ra RAM chung, Debug, Dump, Run ...................... trang 71
5.2. Chương trình con viết bằng ngôn ngữ con Assembler Z80 dùng
đọc trạng thái các thanh ghi ...................................................................... trang 109
5.3. Chương trình con viết bằng ngôn ngữ con Assembler Z80 dùng
dump memory ........................................................................................... trang 111
5.4. Chương trình tạo tiện ích soạn thảo văn bản vàhỗ trợ chế độ chạy
debug Z80 ................................................................................................. trang 111
5.5. Các chương trình ví dụ .............................................................................. trang 133
Phụ lục A: Các thông báo lỗi. ...................................................................... trang 142
Phụ lục B: Vi mạch 8255. ............................................................................ trang 143
Tài liệu tham khảo. ...................................................................................... trang 145

4
Lời nói đầu
Sự phát triển đi lên vượt bậc của ngành kỹ thuật máy tính và điện tử hiện nay đã được minh chứng
cụ thể qua cuộc sống hằng ngày của chúng ta trong tất cả các lĩnh vực.
Việc ứng dụng máy vi tính vào kỹ thuật đo lường và điều khiển đã đem lại những kết quả đầy tính
ưu việt. Các thiết bị, hệ thống đo lường và điều khiển ghép nối với máy tính có độ chính xác cao, thời
gian thu thập số liệu ngắn, nhưng đáng quan tâm hơn là mức độ tự động hoá trong việc thu nhận và
xử lý dữ liệu.
Kỹ thuật số ra đời đã khắc phục được các khuyết điểm của kỹ thuật tương tự, làm cho các bộ phận
máy móc trở nên đơn giản, gọn nhẹ, ít tốn kém năng lượng và xử lý thông tin nhanh, chính xác hơn so
với kỹ thuật tương tự.
Tuy vậy, nếu sử dụng các bộ điều khiển dùng các IC số chúng vẫn còn mắc một số khuyết điểm
mà so với kỹ thuật vi xử lý nó vẫn tồn tại như:
- Kích thước lớn.
- Năng lượng tiêu thụ lớn.
- Tính mềm dẽo thấp, khó thay đổi.
- Khó sửa chữa, bảo trì.
Vi xử lý là một vi mạch điện tử có mật độ tích hợp cao, trong đó gồm các mạch số có khả năng
nhận, xử lý và xuất dữ liệu. Đặc biệt là quá trình xử lý dữ liệu được điều khiển theo một chương trình
gồm tập hợp các lệnh từ bên ngoài mà người sử dụng có thể thay đổi được một cách dễ dàng. Một vi
xử lý có thể thực hiện rất nhiều yêu cầu điều khiển khác nhau.
Kỹ thuật vi xử lý ra đời với sự kết hợp giữa phần cứng và phần mềm đã làm cho hoạt động của các
mạch điện trở nên mềm dẽo hơn với những phần mềm rất linh hoạt mà ta có thể sửa chữa, thay đổi
hoặc bổ sung làm cho chương trình điều khiển thêm phong phú tùy theo nhu cầu của người sử dụng.
Kỹ thuật vi xử lý có tính phức tạp trong hoạt động, thiết kế nhưng lại rất kinh tế vì giá thành hạ và
kích thước chiếm chỗ không nhiều, có dung lượng cao. Ngoài ra về mặt kỹ thuật cũng hơn hẳn kỹ
thuật số vì quá trình hoạt động rất mềm dẽo, tốc độ xử lý cao và lại có thể mở rộng tính năng hoạt
động sau này cho mạch điện. Đây là ưu điểm rất thuận lợi mà kỹ thuật vi xử lý mang lại.
Chúng em xin chân thành cảm ơn Thầy Nguyễn Xuân Minh đã tận tình hướng dẫn để hoàn thành
luận văn này. Chúng tôi cũng xin chân thành cảm ơn các bạn bè đã đóng góp ý kiến và chỉ dẫn trong
khi thực hiện đề tài.
Vì trình độ có hạn và đây làđề tài đầu tiên thực hiện một cách có hệ thống cho nên chắc chắn
không thể tránh khỏi nhiều thiếu sót.

5
Chương I. Phân tích yêu cầu
1.1. Phân tích yêu cầu.
1.1.1. Đặc điểm của cổng ghép nối với máy in.
Việc nối máy in với máy tính được thực hiện qua ổ cắm 25 chân ở phiá sau máy tính. Nhưng đây
không chỉ là chỗ nối với máy in mà khi sử dụng máy tính vào mục đích đo lường và điều khiển thì
việc ghép nối cũng thực hiện qua ổ cắm này. Qua cổng này dữ liệu được truyền đi song song nên đôi
khi còn được gọi là cổng ghép nối song song và tốc độ truyền dữ liệu cũng đạt đến mức lớn đáng kể.
Tất cả các đường dẫn của cổng này đều tương thích TTL, nghĩa là chúng đều cung cấp một mức điện
áp nằm giữa 0V và 5V. Do đó ta còn cần phải lưu ý là ở các đường dẫn lối vào cổng này không được
đặt các mức điện áp quá lớn.
1.1.2. Đặc điểm chung của Z80 CPU.
Z80 CPU là một vi xử lý 8 bit của hãng ZILOG được thiết kế để có thể làm việc một cách độc lập,
có thể giao tiếp với các bộ xử lý khác thông qua các thiết bị ngoại vi.
Đặc điểm chung:
- Data bus: 8 bits.
- Addr bus: 16 bits.
- Tập thanh ghi được phân thành 3 loại:
. Tập thanh ghi chính (8 bit).
. Tập thanh ghi phụ (8 bit).
. Tập thanh ghi chuyên dụng (16 bits)
- Tập lệnh CPU Z80 có thể chia làm nhiều nhóm khác nhau theo nhiều cách. Ở đây có
thể chia thành 4 nhóm sau:
. Nhóm lệnh xử lý dữ kiện.
. Nhóm lệnh truyền dữ kiện.
. Nhóm lệnh kiểm soát chương trình.
. Nhóm lệnh kiểm soát trạng thái.
Phần mô tả chi tiết Z80 CPU sẽ được nói kỹ trong chương II.
1.2. Phương hướng giải quyết vấn đề.
1.2.1. Giao tiếp giữa PC & KIT Z80.
Để có thể thực hiện việc giao tiếp giữa máy tính và một KIT Z80 có thể dùng một trong hai
phương pháp sau:
Phương pháp thứ nhất: Thực hiện việc bắt tay giữa máy tính và KIT Z80 khi thao tác truyền dữ
liệu. Muốn thực hiện được điều này thì máy tính và KIT Z80 sẽ ở trong trạng thái sẵn sàng hoạt động
trước khi thực hiện thao tác bắt tay để truyền dữ liệu. Như vậy trên KIT Z80 sẽ có một chương trình
để có thể thực hiện thao tác này, việc ghép nối bus cùng với việc phát các tín hiệu bắt tay giữa máy
tính và KIT Z80 sẽ do chương trình bên trong KIT Z80 và chương trình bên trong máy tính đảm