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 - Pdf 65

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.
Đề 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.

  
2
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

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.
  
4
Chương I. Phân tích yêu cầu

5
Jack 25
pin
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 nhiệm. Phương pháp này có ưu điểm là việc thu và nhận data sẽ diễn
ra đồng bộ, nhanh chóng và chính xác nhưng lại hơi phức tạp trong việc thực hiện các thao tác
bắt tay.
Phương pháp thứ hai: Mọi thao tác truyền dữ liệu sẽ do máy tính chủ động, dữ liệu truyền sẽ
được chứa trong RAM (được gọi là RAM chung). RAM này giả lập ROM để chạy chương trình
từ máy tính.
Để đơn giản cho việc thiết kế (cả phần cứng và phần mềm) và phù hợp với nội dung của
yêu cầu đặt ra, người thiết kế lựa chọn phương pháp thứ hai để thực hiện yêu cầu của bài toán
đặt ra.
1.2.2. Dừng và cho chạy Z80 CPU.
Sử dụng các mức logic thích hợp đưa vào chân WAIT để tạm thời dừng hoạt động của Z80
CPU, đặt Z80 CPU vào trạng thái chờ hoặc cho Z80 CPU hoạt động ở chế độ bình thường.
Khi chân WAIT ở mức logic '1', Z80 CPU hoạt động bình thư ờng.
Khi mức logic tại chân WAIT là '0', Z80 CPU sẽ được đặt vào trạng thái chờ. Ở trạng thái
này dữ liệu trên đường đòa chỉ và data được giữ ổn đònh, đồng thời CPU liên tục đọc vào mức
logic trên chân WAIT cho đến khi chân này đạt trở lại mức logic '1'. Sau khi thoát khỏi trạng
thái WAIT Z80 CPU sẽ dành 2 chu kỳ xung clock để làm tươi bộ nhớ Ram động, sau đó thi
hành bước kế tiếp của lệnh hoặc thi hành lệnh kế.
Như vậy khi đặt Z80 CPU vào trạng thái chờ ta có thể đọc được dữ liệu trên data bus,
address bus hoặc có thể can thiệp vào hoạt động của CPU bằng cách đặt một giá trò khác lên
data bus trong thời gian CPU lấy mã lệnh hoặc truy xuất bộ nhớ chương trình (lúc này cần thiết
phải cấm CS bộ nhớ chương trình (ROM chương trình)).

CPU
Các
linh
kiện
khác
Adrres bus
Data bus
Ctrl bus
PC
Jack 25
pin
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.
Sự sắp xếp các chân ra ở cổng máy in với tất cả các đường dẫn được mô tả trên hình 2.1.
Chân Ký hiệu Vào/Ra Mô tả
1 STB Output Bit 0 của thanh ghi điều khiển
2 D0 Output Đường dữ liệu D0
3 D1 Output Đường dữ liệu D1
4 D2 Output Đường dữ liệu D2
5 D3 Output Đường dữ liệu D3
6 D4 Output Đường dữ liệu D4
7 D5 Output Đường dữ liệu D5
8 D6 Output Đường dữ liệu D6
9 D7 Output Đường dữ liệu D7
10 ACK Input Bit 6 của thanh ghi trạng thái
11 BUSY Input Bit 7 của thanh ghi trạng thái
12 PE Input Bit 5 của thanh ghi trạng thái
13 SLCT Input Bit 4 của thang ghi trạng thái
14 AF Output Bit 1 của thanh ghi điều khiển
15 ERROR Input Bit 3 của thanh ghi trạng thái

D6 (pin 8)
D7 (pin 9)
Thanh ghi trạng thái (Đòa chỉ9cơ bản + 1)
D7 D6 D5 D4 D3 0 0 0
ERROR (pin 15)
SLCT (pin 13)
PE (pin 12)
ACK (pin 10)
BUSY (pin 11)
Thanh ghi điều khiển (Đòa chỉ cơ bản + 2)
D7 D6 D5 D4 D3 D2 D1 D0
STB (pin 1)
AF (pin 14)
INIT (pin 16)
SLCTIN (pin 17)
IRQ-Enable
Hình 2.2. Thanh ghi ở cổng máy in của máy tính PC.
Đòa chỉ đầu tiên đạt đến được của cổng máy in được xem như là đòa chỉ cơ bản. Ở các máy
tính PC đòa chỉ cơ bản của cổng máy in được sắp xếp như sau:
LPT1 (Cổng máy in thứ nhất) => Đòa chỉ cơ bản = 378H
Hoặc là 3BCH ở máy Laptop
LPT2 (Cổng máy in thứ hai) => Đòa chỉ cơ bản = 278H
Đòa chỉ cơ bản đồng nhất với thanh ghi dữ liệu. Thanh ghi trạng thái có đòa chỉ = đòa chỉ cơ
bản + 1. Cần chú ý rằng mức logic của BUSY (chân 11) được sắp xếp ngược với bit D7 của
thanh ghi trạng thái. Thanh ghi điều khiển với 4 đường dẫn lối ra của nó có đòa chỉ = đòa chỉ cơ
bản + 2. Ở đây lại cần chú ý tới sự đảo ngược của các tín hiệu: STB, AF, SLCTIN.
2.2. Kiến trúc Z80 CPU.
9
2.2.1. Sơ đồ khối Z80 CPU. Bus dữ kiện 8 bits
Bus nội

Thanh
ghi
lệnh
Kiểm soát dữ kiện
ALU
Thanh ghi
Kiểm soát đòa chỉ
cho phép đơn giản hóa việc thi hành các loại ngắt quãng không giới hạn các chương trình con
lồng nhau và đơn giản hóa nhiều kiểu thao tác trên dữ liệu.
Hai thanh ghi chỉ mục (IX và IY): Hai thanh ghi chỉ mục độc lập giữ đòa chỉ cơ bản 16 bit
được dùng trong chế độ đònh đòa chỉ chỉ mục. Trong chế độ này, một thanh ghi chỉ mục được
dùng như là một vò trí cơ bản chỉ đến một vùng trong bộ nhớ nơi mà dữ liệu bắt đầu được chứa
hay được khôi phục. Byte được thêm trong câu lệnh chỉ mục để xác đònh khoảng cách đến vò trí
cơ bản. Khoảng cách này được xác đònh bằng phép bù 2 một số nguyên có dấu. Chế độ này
làm đơn giản đi rất nhiều cho chương trình. Đặc biệt cho các bảng dữ liệu được sử dụng.
Thanh ghi đòa chỉ trang ngắt (I) Z80 CPU có thể được điều khiển trong 1 chế độ mà ở đó
một lệnh gọi trực tiếp đến bất kỳ vùng nào của bộ nhớ có thể được thực hiện bằng cách đáp
ứng ngắt. Thanh ghi I được dùng cho mục đích này để chứa 8 bit cao của đòa chỉ trực tiếp trong
khi thiết bò ngắt cung cấp 8 bit đòa chỉ thấp. Đặc điểm này cho phép chương trình phục vụ ngắt
đònh vò nhanh tới bất kỳ vùng nhớ nào với thời gian truy xuất đến chương trình là nhỏ nhất.
Thanh ghi làm tươi bộ nhớ (R): Z80 CPU chứa 1 bộ đếm làm tươi bộ nhớ để cho phép bộ
nhớ động được dùng dễ dàng như bộ nhớ tónh. Bảy trong 8 bit của thanh ghi này được tự động
tăng sau mỗi lần lấy lệnh. Bit thứ 8 còn lại được lập trình như là kết quả của lệnh LD R,A. Data
trong bộ đếm làm tươi được gởi lên phần thấp của bus đòa chỉ kèm theo một tín hiệu làm tươi
trong khi CPU giải mã và thực thi lệnh vừa được lấy về. Cách thức làm tươi này hoàn toàn dễ
hiểu đối với người lập trình và không làm chậm hoạt động của CPU. Người lập trình có thể lấy
thanh ghi R cho mục đích kiểm tra, nhưng thanh ghi này thì thường không được người lập trình
dùng. Trong thời gian làm tươi, nội dung của thanh ghi I được đặt lên 8 bit cao của bus đòa chỉ.
Thanh ghi tích lũy và thanh ghi cờ: CPU bao gồm hai thanh ghi tích lũy độc lập và được kết
hợp với các thanh ghi cờ 8 bit. Thanh ghi tích lũy lưu giữ kết quả của phép toán logic và số học

Con trỏ ngăn xếp SP
Đếm chương trình PC
2.2.3. Đơn vò logic số học (ALU):
Các lệnh logic và số học 8 bit của CPU được thực hiện trong ALU. Giao tiếp giữa ALU với
các thanh ghi và data bus bên ngoài được thực hiện trên data bus bên trong. Các chức năng
ALU gồm:
 Cộng
 Trừ
 Logic AND
 Logic OR
 Logic XOR
 So sánh
 Dòch trái, dòch phải hay quay ( Số
học và logic)
 Phép toán tăng
 Phép toán giảm
 Set bit
 Reset bit
 Test bit
2.2.4. Điều khiển CPU và thanh ghi lệnh.
Mỗi 1 lệnh được lấy về từ bộ nhớ, nó được đặt vào trong thanh ghi lệnh và được giải mã.
Các phần điều khiển thi hành chức năng này, phát và cấp các tín hiệu điều khiển cần thiết để
đọc hoặc ghi data từ (hoặc đến) các thanh ghi, điều khiển ALU và đáp ứng các yêu cầu của tín
hiệu điều khiển bên ngoài.
2.2.5. Chức năng các chân của Z80.
12
Tập thanh ghi chính
Tập thanh ghi phụ
Thanh ghi đa
dụng

2
A13
3
A14
4
A15
5
D0
14
D1
15
D2
12
D3
8
D4
7
D5
9
D6
10
D7
13
/M1
27
/MREQ
19
/IORQ
20
/RD

• Busack: Bus acknowledge (output, active low) báo cho thiết bò yêu cầu biết đòa chỉ bus, data
bus và các tín hiệu điều khiển: /MREQ, /IORQ, /RD, /WR đã ở trạng thái trở kháng cao.
Mạch ngoài có thể dùng những đường này ngay lúc này.
• /BUSREQ: Bus request (input, active low) bus request có độ ưu tiên cao hơn /NMI và nó
luôn được nhận diện vào cuối chu kỳ máy hiện tại. /Busreq đòi hỏi address bus, data bus và
các tín hiệu điều khiển: /MREQ, /IORQ, /RD, /WR phải ở trạng thái trở kháng cao để các
thiết bò khác có thể điều khiển các đường này. Bus request thường được nối vào cổng OR
và yêu cầu điện trở kéo lên bên ngoài cho các ứng dụng kiểu này.
• D7 ÷ D0: Data bus (input / output, active high, 3 trạng thái) D7 ÷ D0 tạo thành data bus 8 bit
hai chiều, sử dụng để trao đổi data với bộ nhớ và I/O.
• /HALT: Halt (output, active low) báo rằng CPU đang thực thi 1 lệnh Halt và sẽ chờ 1 trong
hai tín hiệu: /NMI hoặc /INT (với mask cho phép) trước khi sự điều khiển được khôi phục.
Trong thời gian Halt, CPU thực thi các lệnh NOP để duy trì việc làm tươi bộ nhớ.
• /INT: Interrup request (input, active low) Interrup request được thiết bò I/O phát ra. CPU
chấp nhận yêu cầu ngắt tại thời điểm cuối của lệnh hiện tại nếu được phần mềm cho
phép. /INT thường được nối vào các cổng OR và cần một trở kéo lên cho các ứng dụng loại
này.
• /IORQ: Input/ Output Request (output, active low, 3 trạng thái) báo nửa thấp của address bus
giữ 1 đòa chỉ I/O hợp lệ cho hoạt động đọc hay ghi I/O. /IORQ cũng được phát đồng thời với
/M1 trong 1 chu kỳ công nhận ngắt để báo rằng 1 vertor đáp ứng ngắt có thể được đặt lên
data bus.
• /M1: Machine cycle one (output, active low) /M1 cùng với /MREQ báo rằng chu kỳ máy
hiện tại là chu kỳ lấy mã lệnh. /M1 cùng với /IORQ báo cho biết rằng đang ở chu kỳ công
nhận ngắt.
• /MREQ: Memory request (output, active low, 3 trạng thái) /MREQ báo rằng address bus
đang giữ một đòa chỉ hợp lệ cho việc đọc ghi bộ nhớ.
• /NMI: Non Maskable Interrup (input, tích cực cạnh xuống) /NMI có độ ưu tiên cao hơn
/INT. /NMI luôn luôn được chấp nhận tại chu kỳ cuối của lệnh hiện hành, độc lập với trạng
thái của Flip-Flop interrupt và tự động đưa CPU đến vò trí 0066h.
• /RD: Read (output, active low, 3 trạng thái) báo rằng CPU muốn đọc data từ bộ nhớ hay

hay thiết bi I/O và chúng có thể có từ 3 đến 5 chu kỳ T (trừ khi bò kéo dài bởi trạng thái Wait
để đồng bộ với tốc độ thiết bò bên ngoài). Đoạn sau đây mô tả việc đònh thời (xảy ra trong bất
kỳ chu kỳ máy nào). Trong khoảng thời gian T
2
và mỗi T
W
sau đó, CPU lấy mẫu đường Wait tại
sườn xuống của xung clock. Nếu đường Wait được tích cực tại thời điểm này, một trạng thái
Wait khác sẽ được thêm vào trong chu kỳ sau. Dùng kỹ thuật này thì việc đọc có thể kéo dài
để phù hợp với thời gian truy xuất của bất kỳ kiểu thiết bò bộ nhớ nào.
b. Lấy lệnh.
Hình 3-2 là giản đồ thời gian của chu kỳ M1 (lấy mã lệnh). PC được đặt trên bus đòa chỉ tại
điểm bắt đầu của chu kỳ M1. Nửa chu kỳ clock sau đó tín hiệu /MREQ được tích cực. Tại thời
điểm này đòa chỉ tới bộ nhớ có đủ thời gian để ổn đònh do đó cạnh xuống của /MREQ có thể
được dùng như là một tín hiệu cho phép bộ nhớ RAM động. Đường /RD sẽ tích cực để chỉ ra
rằng data được đọc từ bộ nhớ sẽ được đưa lên data bus. CPU lấy mẫu data từ bộ nhớ trên bus
data tại sườn lên xung Clock của chu kỳ T3 và CPU dùng cạnh lên này để tắt tín hiệu /RD
và /MREQ. Như vậy, data đã sẵn sàng được CPU lấy mẫu trước khi tín hiệu /RD trở thành
không tích cực. Tại T3, T4 của chu kỳ lấy lệnh được dùng để làm tươi bộ nhớ RAM động.
16
Chu kỳ T
/Clk
T1 T2 T3 T4 T1 T2 T3 T1 T2 T3
Chu kỳ máy M1
Đọc bộ nhớ M2
Chu kỳ lệnh
Hình 3 -1 : Giản đồ thời gian cơ bản
Ghi bộ nhớ M3
(CPU dùng thời gian này để giải mã và thực thi các lệnh khác đã được lấy về, do đó sẽ không
có hoạt động nào khác được thực hiện trong thời gian này). Trong suốt T3 và T4, bảy bit thấp

d. Chu kỳ nhập/xuất.
Hình 3-4 minh họa hoạt động đọc hay ghi I/O. Chú ý rằng trong thời gian hoạt động I/O thì
một trạng thái đợi được tự động thêm vào. Lý do là trong quá trình hoạt động I/O, thời gian từ
khi tín hiệu /IORQ trở nên tích cực cho đến khi CPU lấy mẫu đường /WAIT thì rất ngắn do đó
nếu không thêm trạng thái này vào thì không đủ thời gian để cổng I/O giải mã đòa chỉ của nó.
Ngoài ra, nếu không có trạng thái đợi thì sẽ khó khăn trong việc thiết kế các linh kiện I/O loại
MOS để có thể hoạt động tương ứng với tốc độ CPU. Trong thời gian xảy ra trạng thái đợi, tín
hiệu /WAIT luôn được lấy mẫu.
Trong quá trình đọc I/O, đường /RD được dùng để cho phép cổng được chọn đưa data lên data
bus giống như trong trường hợp đọc bộ nhớ. Trường hợp ghi I/O, đường /WR được dùng như là
Clock tới cổng I/O.
18
Hình 3-2: Chu kỳ đọc ghi bộ nhớ.
MEMORY ADDR
D7÷D0
/WAIT
/RD
/MREQ
A15÷A0
MEMORY ADDR
T
1
T2
T3
T1 T2
Chu kỳ đọc bộ nhớ
/Clk
I
N
T3

OUT
CHU KỲ
GHI
CHU KỲ
ĐỌC
/RD
f. Chu kỳ interrupt req/ack
Hình 3-6 minh họa giản đồ thời gian kết hợp với một chu kỳ ngắt quãng. Tín hiệu ngắt /INT
được CPU lấy mẫu ở cạnh lên của clock cuối tại điểm kết thúc của lệnh bất kỳ. Tín hiệu sẽ
không được chấp nhận nếu F-F điều khiển ngắt không được phần mềm trong CPU khởi tạo lên
mức logic ‘1’ hay nếu tín hiệu /BUSREQ là tích cực. Khi tín hiệu được chấp nhận, chu kỳ đặc
biệt M1 được tạo ra. Trong suốt chu kỳ đặc biệt M1, tín hiệu /IORQ trở nên tích cực ( thay
vì /MREQ bình thường ) để chỉ ra rằng thiết bòï yêu cầu ngắt có thể đặt 1 vector 8 bit lên bus dữ
liệu. Chú ý rằng hai trạng thái đợi được thêm vào chu kỳ này một cách tự động.
20
/BUSACK
Hình 3-5: CHU KỲ BUS REQ/ACK
D7÷D0
/MERQ
/RD, /WR
/IORQ
/RFSH
/BUSRQ
A15÷A0
Trạng thái
T cuối
Tx Tx
/Clk
CHU KỲ M BẤT KỲ
Tx T1

CHU KỲ M CUỐI LỆNH
Tw’ T3
M1
T1
/
INT
A15÷A0
PC
D7÷D0
/WAIT
I
N
/RD
T2
A15÷A0
PC
h. Thoát khỏi trạng thái HALT.
Bất cứ khi nào một lệnh halt được thực thi, CPU sẽ thực hiện 1 chuỗi lệnh NOP cho đến khi
nhận được một tín hiệu ngắt (cả hai loại ngắt che được và không che được nếu F-F được cho
phép ). Hai đường ngắt được lấy mẫu ở cạnh lên của chu kỳ T4 như được minh họa dưới hình 3-
8. Nếu nhận được ngắt không che hay ngắt che được và interrupt F-F đang được set ở mức
logic ‘1’, thì CPU sẽ thoát khỏi trạng thái HALT ở cạnh lên của chu kỳ clock kế tiếp. Chu kỳ
sau sẽ là một chu kỳ đáp ứng ngắt tương ứng với loại của ngắt thu được. Nếu cả hai được thu
tại cùng một thời điểm, thì ngắt không che được sẽ được đáp ứng vì nó có độ ưu tiên cao nhất.
Mục đích của việc thực thi lệnh NOP trong khi CPU ở trạng thái HALT là để giữ cho việc làm
tươi bộ nhớ RAM động được thực hiện. Mỗi chu kỳ trong trạng thái HALT là chu kỳ M1 bình
thường ( lấy lệnh ).Tín hiệu trả lời HALT tích cực trong thời gian này để chỉ ra rằng bộ xử lý
đang ở trong trạng thái HALT.
22
/MREQ

T2
T3
T4
/M1
Hình 3-9: Power – Down Acknowledge
Hình 3-8: Thoát khỏi trạng thái HALT
/HALT
T2 T3
/Clk
M
1
T4 T1
M1
T1
/INT
HAY
/NMI
M1
Lệnh Halt được nhận tại thời điểm này.
j. Chu kỳ thoát khỏi trạng thái Power-Down (Power-Down Release Cycle)
Clock hệ thống phải được cung cấp cho CMOS Z80 CPU để thoát khỏi trạng thái power-down.
Khi Clock hệ thống được cung cấp cho ngõ vào, CMOS Z80 CPU sẽ khởi động lại hoạt động từ
điểm mà tại đó trạng thái power-down đã được thi hành. Giản đồ thời gian cho việc thoát khỏi
chế độ power-down được chỉ ra trong hình 3-10, 3-11, 3-12. Khi lệnh HALT được thực thi để
đi vào trạng thái power-down, CMOS Z80 CPU sẽ được đưa vào trạng thái HALT. Một tín hiệu
ngắt ( /NMI hay /INT ) hay một tín hiệu /RESET được cấp cho CPU sau khi xung clock hệ
thống được đưa vào để thoát khỏi trạng thái power-down.
24
/HALT
/Clk

2.2.7.TẬP LỆNH Z80 CPU.
a. Giới thiệu.
Z80 CPU có thể thực thi 158 lệnh khác nhau bao gồm cả 78 lệnh của 8080A CPU. Các lệnh
có thể được chia thành các nhóm chính sau :
• Load và Exchange
• Block transfer và Search
• Arithmetic và Logical
• Rotate và shift
• Bit manipulation ( set, reset, test )
• Jump, call, và Return
• Input hay Out put
• Basic CPU control
b. Các kiểu lệnh.
Lệnh Load chuyển data giữa các thanh ghi CPU với nhau và giữa thanh ghi CPU với bộ nhớ
ngoài. Tất cả các lệnh phải xác đònh nguồn và đích. Ví dụ như việc truyền data từ thanh ghi C
đến thanh ghi B. Nhóm này bao gồm cả Load tức thời tới thanh ghi CPU hoặc bộ nhớ ngoài bất
kỳ. Các kiểu khác của lệnh Load cho phép truyền giữa các thanh ghi CPU và bộ nhớ. Lệnh
exchange có thể chuyển nội dung của hai thanh ghi.
Một tập duy nhất của nhóm lệnh truyền khối được cung cấp bên trong Z80. Với một lệnh đơn
giản, một khối bộ nhớ với kích thước bất kỳ có thể được chuyển đến vò trí khác trong bộ nhớ.
Các lệnh chuyển khối có lợi khi phải xử lý một chuỗi dữ liệu lớn. Với 1 lệnh đơn, khối bộ nhớ
ngoài với chiều dài tùy thích có thể tìm được 1 ký tự 8 bit bất kỳ. Khi ký tự được tìm thấy hay
gặp cuối khối , lệnh sẽ tự động chấm dứt. Cả hai lệnh chuyển và tìm khối đều có thể bò ngắt
trong lúc thực thi do đó không chiếm giữ CPU trong chuỗi thời gian dài.
Lệnh logic và số học tác động lên data trong thanh ghi tích lũy, thanh ghi đa dụng và bộ nhớ
ngoài. Kết quả của các phép toán được đặt trong thanh ghi tích lũy và cờ đặc trưng được set
tùy theo kết quả của các phép toán. Một ví dụ về phép toán số học là cộng nội dung thanh ghi
tích lũy với nội dung bộ nhớ ngoài. Kết quả của phép cộng được đặt vào thanh ghi tích lũy.
Nhóm này gồm phép cộng và trừ các thanh ghi 16 bit.
Nhóm lệnh rotate và shift cho phép quay phải(trái) hay dòch phải(trái) bất kỳ thanh ghi hay bộ


Nhờ tải bản gốc

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

Music ♫

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