1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

chuyên đề vi xử lý giới thiệu vi xử lý z80

64 805 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 64
Dung lượng 1,36 MB

Nội dung

Phương pháp định vị tức thời Immediate : Định nghĩa: Trong phương pháp định vị này Operand dài 1 hoặc 2 bytes và được sửdụng như số liệu đem vào thanh ghi hoặc để làm phép toán với than

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

KHOA ĐIỆN - ĐIỆN TỬ

CHUYÊN ĐỀ VI XỬ LÝ

(GIỚI THIỆU VI XỬ LÝ Z80)

Trang 2

BÀI 1 :

CẤU TRÚC HỆ VI XỬ LÝ VÀ TỔ CHỨC

BÊN TRONG CỦA CPU.

I SƠ ĐỒ KHỐI CỦA 1 HỆ  P :

1 CPU và các thành phần chính:

- Bộ nhớ chính gồm ROM & RAM

- Các bộ giao tiếp (Input / Output Adapter)

- Các Thiết bị ngoại vi ( Peripheral)

Bus : Data Addr Ctrl

Peripheral

 CPU : Là khối liên kết trung tâm, thực hiện các phép toán và điều khiển các

liên kết còn lại thông qua việc thi hành Lệnh

Vậy: Lệnh là một giá trị nhị phân tượng trưng (mã hóa) cho 1 phép tính mà CPU

thực hiện được, giá trị này do nhà sản xuất qui định.

 Bộ nhớ chính : Chứa số liệu và Lệnh của CPU

 Các bộ giao tiếp : Là những phần tử mạch trung gian cho phép CPU điều khiểncác Thiết bị ngoại vi (bàn phím, máy in, đèn chỉ thị, … )

2 Hệ thống Bus :

Address Bus : Là Bus 1 chiều do CPU gởi ra Số bit của Addr sẽ qui định số ô nhớ

mà CPU truy xuất được hay còn gọi là khả năng định vị (mapping) của CPU

Data Bus : Là Bus 2 chiều, là nơi chuyển lệnh hoặc số liệu trong quá trình hoạt

động của CPU

Control Bus : Mỗi đường là 1 chiều (nhưng quan điểm theo kiểu tổng quát là 2

chiều), nó chứa các tín hiệu của CPU để điều khiển các linh kiện xung quanh

II CẤU TRÚC CỦA CPU:

Trang 3

 Dựa vào số bit của Data Bus để phân loại CPU:

- CPU 8 bit: 8080, 8085 của Intel

- CISC ( Complete Instruction Set Computer)

- RISC ( Reduced Instruction Set Computer)

2 Cấu trúc :

Gồm 3 phần chính:

- Tập thanh ghi ( Register Set)

- Bộ số học và Logic ( Arithmetic & Logic Unit)

- Khối điều khiển và giải mã lệnh

a Tập thanh ghi:

Chức năng : Đóng vai trò là những ô nhớ nằm bên trong CPU Mỗi thanh ghi

được nhà sản xuất qui định cho người sử dụng bằng 1 tên gọi (A, B, C, …) Cácthanh ghi là cơ sở (nơi chứa số liệu) cho đa số các phép toán mà CPU thựchiện

Phân loại :

+ Các thanh ghi địa chỉ: liên quan đến Addr Bus

+ Các thanh ghi dữ liệu: liên quan đến Data Bus

 Các thanh ghi thường gặp trong CPU 8 bit :

a1 Thanh ghi PC ( Program Counter)

+ Số bit của PC = Số bit của Addr Bus

+ PC chứa địa chỉ của Lệnh mà CPU đang thực hiện

+ PC tự động tăng ghi lên 1 sau mỗi byte thực hiện

Thường khi mới Reset CPU giá trị thanh ghi PC = Hằng số

***Nhận xét:

- Các lệnh mà người sử dụng muốn CPU thực hiện tuần tự theo thời gian phảiđược đặt theo thứ tự tăng dần của địa chỉ trong bộ nhớ

- Sự thay đổi giá trị của thanh ghi PC bởi một nguyên nhân nào đó chúng sẽ

làm chuyển hướng việc thi hành Lệnh của CPU

a2 Các thanh ghi đa năng ( General Purpose):

- Số bit bằng độ rộng của Data Bus

- Các thanh ghi này thường được dùng trong các lệnh của CPU (tính toán,chuyển dời dữ liệu, …)

- Trong số các thanh ghi đa năng, có 1 thanh ghi đặc biệt gọi là bộ tích lũy

(gọi là thanh ghi A) – Accumulator Đặc biệt ở chỗ là những phép toán chỉtiến hành được trên thanh ghi A mà không thực hiện được trên các thanh ghikhác

Trang 4

a3 Thanh ghi Cờ ( Flag – Condition):

- Thanh ghi này thường không tham gia vào các phép toán nhưng nó phản ánhmột giá trị đặc biệt của kết quả thu được sau phép toán đó

- Mỗi bit trong thanh ghi có ý nghĩa độc lập và thường được gọi là 1 cờ

+ Các Cờ thường gặp:

Quan điểm về số (+) và (-) trong hệ P:

Định nghĩa: Nếu xem các số đang thao tác là 1 số có dấu và nếu xét trong

một độ dài hữu hạn bit thì 2 số đối nhau được định nghĩa như sau: X + Y = 0.

Ví dụ : Nếu xét theo quan điểm trên thì FF = - 1

vì FF + 01 = 00Người ta chứng minh được : - X = X + 1Nhận xét:

Ví dụ: 00  7F:F: biểu diễn số +0  +127F:

80  FF: biểu diễn số -128  -1Giá trị của Cờ S thực chất là giá trị MSB của kết quả, do đó nếu trongtrường hợp tính toán với số có dấu thì Cờ S được dùng để xác định xem sốđó thuộc tầm (+) hay (-)

*Cờ O (OverFlow):

Cờ O chỉ sử dụng trong các phương trình tính toán với số có dấu

1 : Phản ánh hiện tượng tràn (quá tầm vực của số đó)

Trang 5

a4 Thanh ghi chỉ số:

- Nó được dùng trong phép định vị chỉ số

a5 Nhà hầm và thanh ghi con trỏ nhà hầm Stack Pointer (SP):

 Khái niệm : Nhà hầm là một vùng nhớ RAM được CPU chọn làm nơi chứatạm các giá trị của các thanh ghi khi cần thiết (Khi thi hành lệnh cất thanh ghi)và khi phục hồi lại chúng

 Cơ chế hoạt động :

+ Nhà hầm được quản lý theo cơ chế địa chỉ: Địa chỉ của vùng nhớ RAM đượcdùng làm nhà hầm phải được nạp vào thanh ghi SP Do đó 1 lệnh nào đó cóliên quan đến nhà hầm sẽ được thực hiện theo địa chỉ này

Ví dụ: lệnh cất thanh ghi A thì CPU sẽ đem nội dung của thanh ghi A vào ô

nhớ có địa chỉ nằm trong SP (ký hiệu là [SP] )

+ Nhà hầm hoạt động theo nguyên tắc giảm, nghĩa là sau lệnh cất nội dung củamột thanh ghi 8 bit giá trị của thanh ghi SP sẽ giảm 1

+ Phục hồi lại giá trị của thanh ghi đem cất trước đó bằng cách đem nội dung ônhớ có địa chỉ chứa trong SP +1 về lại thanh ghi A sau đó tăng SP lên 1

+ Nhà hầm hoạt động theo nguyên tắc LIFO ( Last In First Out), nghĩa là thanhghi nào cất vào trước sẽ được lấy ra sau

b Nguyên tắc tổ chức của ALU :

AB

SC

AB

Ctr

Trang 6

 Mạch cộng toàn phần n bit mở rộng:

Trang 7

8 bit

Reg1(A)

Reg2

S0 S1 S2 S3

BộTíchLũy(Acc)

Cờ

Các tín hiệu từ khốigiải mã lệnh

Trang 8

c Nguyên lý khối giải mã lệnh :

III KHẢO SÁT 1 SỐ CPU ĐIỂN HÌNH:

1 Z.80 CPU của Zilog :

Thanh ghi lệnh (chứa mã lệnh)

ROM Built In

(chứa Micro Code)

Các tín hiệu điều khiển

Trang 9

 A0  A15 : 16 bit của Addr Bus (3 trạng thái)  Có 216B = 64 KB ô nhớ.

 D0  D7F: : 8 bit của Data Bus (2 chiều – 3 trạng thái)

 Điều kiện về điện :

+ CK (Clock): Sóng vuông (biên độ TTL) f  4 MHz

+ RESET: có độ rộng khoảng vài chục s, lúc reset thì PC = 0000h

 CPU điều khiển các linh kiện ngoài:

+ RD (ReaD)= 0: Data Bus là vào đối với CPU

+ WR (WRite) :

WR = 0 : Data Bus là ra đối với CPU

Lưu ý : Đọc lệnh RD = 0

Xác định

Thi hành lệnh : RD = 0 hoặc WR = 0

 MERQ (MEmory ReQuest):

+ Khi MERQ = 0 đảm bảo 1 giá trị ổn định trên Addr Bus

MERQ = 0: Đọc lệnh từ bộ nhớ

+ Cụ thể

MERQ = 1: Thi hành lệnh thuộc nhóm LD

+ IORQ ( In Out ReQuest):

- Chân này = 0: Báo hiệu 1 giá trị ổn định trên Addr Bus

= 0: Thi hành lệnh thuộc nhóm IN / OUT

- Cụ thể

= 1: Trạng thái phục vụ ngắt

 Nhóm chân thông báo trạng thái CPU:

+ M1 ( Machine Cycle 1 ):

16 States

M1 = 0 : Nếu CPU đang ở chu kỳ máy 1

Nhận xét: M1 và MERQ có thể cùng = 0

+ HALT = 0: Báo hiệu CPU ngưng hoạt động

Lúc này CPU chỉ hoạt động lại khi có tín hiệu Reset hoặc có một hiện tượng ngắt xảy ra

+ RFSH ( ReFreSH): Xem giản đồ thời gian

 Nhóm chân điều khiển trạng thái của CPU:

+ WAIT = 0 : CPU sẽ kéo dài việc thi hành hoặc đọc lệnh hiện tại cho đến khi WAIT = 1

+ INT ( Interrupt)

+ NMI ( Non Maskable Int )

Trang 10

+ BUSRQ ( BUS ReQuest) = 0: CPU sẽ đưa tất cả các chân lên 3 trạng thái và thông báo bằng tín hiệu BUSACK ( ACKnownlegde) = 0.

* Tập thanh ghi của Z-80:

- Tập thanh ghi phụ ( có dấu phẩy): A’, B’, … Cất hết dữ liệu của các thanh ghi

đa năng khi cần thiết ( như một nhà hầm nhỏ )

- Thanh ghi chỉ số: IX, IY

- Thanh ghi I: Dùng trong cơ chế xử lý ngắt

- Thanh ghi R: Làm tươi RAM động

2 6802 của Motorola :

- A0  A15

- D0  D7F:

- Điều kiện về điện:

+ Không có chân Clock mà có mạch Clock bên trong, có thể mắc mạch dao độngthạch anh tại X1, X2 như sau:

+ Reset: tích cực ở mức logic 0

- Nhóm chân CPU điều khiển linh kiện bên ngoài

Giống với Z80IX

X1

X2

Fc = 4fclk  Tclk = 4Tc

Trang 11

+ VMA (Valid Memory Address):

Khi WMA = 1: Giá trị ổn định trên Addr Bus

- Nhóm chân điều khiển CPU:

 HALT giống như BUSRQ của Z80

 BA ( Bus Available) tương đươngBUSACK của Z80

 MR ( Memory Ready): Tương tự WAIT của Z80

- Đặc biệät trong 6802 có 32 bytes RAM mang địa chỉ từ 0000 đến 001F (cố định) vàđược cho phép bởi RE ( Ram Enable) = 1 Trong đó 16 bytes đầu tiên có chânnguồn riêng là Vcc Standby

Tập thanh ghi :

A

B

Định nghĩa: Một vectơ là 2 ô nhớ được sử dụng làm địa chỉ của 1 ô nhớ khác

+ Chú ý: Khi mới Reset giá trị PC của 6802 là nội dung của 2 ô nhớ có địa chỉ là

FFFF và FFFE Cơ chế này gọi là cơ chế Vectơ Reset

(Bộ nhớ)

R/WRD

Trang 12

Top View

VMA

BAMR

Gnd

Trang 13

BÀI 2:

TẬP LỆNH CỦA CPU VÀ HỢP NGỮ

(Assembly Language)

************

I CÁC THÀNH PHẦN CỦA 1 LỆNH:

 Dưới dạng mã số, 1 lệnh gồm 2 trường:

- Do nhà sản xuất qui định - Do người sử dụng qui định

 Ví dụ :

Mã gợi nhớ Ý nghĩa Op_ Code Operand

LD A, n Nạp vào A một 3E n( 00  FF)

byte có giá trị n

II CÁC PHƯƠNG PHÁP ĐỊNH VỊ ĐỊA CHỈ (Address Methods):

1 Khái niệm về định vị địa chỉ:

Phép định vị địa chỉ là các cách thức mà CPU sử dụng Operand trong 1 lệnh(Ví dụ như 1 số liệu hoặc như 1 địa chỉ)

2 Các phương pháp định vị địa chỉ:

2.1 Phương pháp định vị tức thời ( Immediate) :

Định nghĩa: Trong phương pháp định vị này Operand dài 1 hoặc 2 bytes và được sửdụng như số liệu đem vào thanh ghi hoặc để làm phép toán với thanh ghi

Ví dụ : LD A, 06h

LD HL, 2000h2.2 Phương pháp định vị thanh ghi ( Register ):

Định nghĩa: Trong phương pháp định vị này không có Operand vì chỉ là những thaotác liên quan giữa các thanh ghi với nhau

Ví dụ : LD A, B

ADD A, C2.3 Phương pháp định vị trang 0:

Định nghĩa: Là phương pháp định vị trong đó Operand dài 1 byte và là byte thấp của

1 địa chỉ một ô nhớ cần truy xuất Byte cao của địa chỉ này được CPU xem như =00

Ví dụ : - Định vị thường: LD A, ( 0060h)

- Định vị trang 0: LD A, ( 60h)Định vị này không có trong CPU Z80

2.4 Phương pháp định vị trực tiếp mở rộng ( Extended Direct):

Định nghĩa : Trong phương pháp định vị này Operand dài 2 byte và được sử dụngnhư 1 địa chỉ của 1 ô nhớ cần truy xuất

Ví dụ : LD A, ( 0060h)

LD BC, (2000h)Lưuý : Phương pháp định vị này chỉ áp dụng cho 1 số thanh ghi nào đó (xem phần

nhận xét về sau cho từng CPU)

2.5 Phương pháp định vị gián tiếp qua thanh ghi ( Indirect Reg):

- Tượng trưng cho

thao tác của lệnh - Là số liệu cụ thể (nếucó) của lệnh

Trang 14

Định nghĩa : Trong phương pháp định vị này địa chỉ của ô nhớ cần truy xuất là nội dung của 1 cặp thanh ghi 8 bit hoặc 1 thanh ghi 16 bit mà không phải là thanh ghi chỉsố Lệnh thuộc loại này không có Operand.

Ví dụ : LD B, ( HL)

LD (DE) , A

2.6 Phương pháp định vị ẩn ( Implied):

Định nghĩa : Người ta xem những lệnh mà ở dạng gợi nhớ phép toán dường như thiếu 1 toán hạng là phương pháp định vị ẩn

Ví dụ : SUB (HL)

AND DToán hạng còn lại được hiểu là thanh ghi A

2.7F: Phương pháp định vị theo bit (Bit):

Định nghĩa : Là phương pháp định vị của những lệnh mà đối tượng thao tác là 1 bit của một thanh ghi hoặc một ô nhớ

Ví dụ : SET 4, D  b4 của D = 1

RES 5, C  b5 của C = 0

2.8 Phương pháp định vị chuỗi ( String) :

Định nghĩa : Là phương pháp định vị của những lệnh có khả năng tự lặp lại

HL + 1  HL

DE + 1  DE

BC – 1  BC LDIR : Lặp lại LDI cho đến khi BC = 0

2.9 Phương pháp định vị chỉ số ( Index):

Định nghĩa: Là phép định vị trong đó Operand dài một byte và được sử dụng để cộng với thanh ghi chữ số IX, IY để tạo thành địa chỉ của ô nhớ cần truy xuất

Ví dụ :

IX = 2304h

LD A, ( IX + 00FEh)

 LD A, (2302h): Địa chỉ lùi lại so với IX

2.10 Phương pháp định vị tương đối:

 Khái niệm về các lệnh chuyển điều khiển chương trình :

Lệnh chuyển điều khiển chương trình là những lệnh mà sau khi thi hành, giátrị của thanh ghi PC có thể bị thay đổi một cách đột ngột

Ví dụ : Lấy giá trị tuyệt đối của 1 giá trị chứa trong bộ tích lũy (A):

Trang 15

 Phương pháp định vị tương đối :

Định nghĩa : phương pháp định vị này dùng cho những lệnh chuyển điều khiểnchương trình trong đó Operand dài một byte và dùng để tính giá trị mới cho thanhghi PC theo công thức sau:

PC mới = PC cũ + 2 + OperandChú ý:Việc cộng Operand trong công thức này giống như trong phép định vị chỉ số

Ví dụ : Cũng ví dụ trên nhưng chỉ thay đổi một lệnh

0000 : CB 7F:F BIT 7F:, A

0002 : 2802 JP Z, kt ( Khác JR NZ, kt)

0004 : ED 44 NEG

0006 : 7F:6 kt : HALTTừ : PC mới = PC cũ + 2 + Operand bỏ đi byte cao này

 Operand = 0006 – 0002 – 2 = 00 02

 Nhận xét : Như vậy trong phương pháp định vị tương đối Operand diiễn tảkhoảng cách về địa chỉ từ lệnh nhảy đến lệnh muốn nhảy đến, khoảng cách nàykhông được > + 127F: và < - 128 so với địa chỉ của lệnh nhảy

3.Các bước thi hành 1 lệnh:

Ví dụ: Xét lệnh sau:

Mã gợi nhớ Ý nghĩa Mã máy Trong bộ nhớ (Địa chỉ đầu là 0000h)

LD (2000h),A Nạp nội dung 32 2000 0000 32

của A vào ô nhớ 0001 00 có địa chỉ là 2000h 0002 20

Giai đoạn 1: Đọc lệnh ( Op – Code Fetch)

- B1 : Giá trị của thanh ghi PC được gởi ra Addr Bus

- B2 : Sau một khoảng thời gian tín hiệu (đường) Read (RD) được đưa xuống thấp

- B3 : Sau đó giá trị của Data Bus được đưa vào thanh ghi lệnh

- B4 : Byte thấp của PC được gởi đến ALU

- B5 : Giá trị ở ALU được tăng 1

Trang 16

- B6 : Giá trị ở ALU được đem về byte thấp của PC

- B7F: : Byte cao của PC được gởi đến ALU

- B8 : Nếu cộng ở B5 không có nhớ thì nhảy đến B.10

- B9 : / Phép / ghi ở ALU được tăng 1

- B.10 : Giá trị ở ALU được đem về byte cao của PC

Sau đó CPU sẽ tiếp tục đọc 2 byte nữa do ý ngfhĩa của byte ở B3 (Byte đại diện cho lệnh) sinh ra

- B.11  B.20 : Cũng gống như từ B1  B.10 nhưng giá trị đọc về không chứa vào thanh ghi lệnh

- B.21  B.30: Giống như B.11  B.20

Giai đoạn 2:

- B.31 : 2 bytes đọc được trong B.11  B.30 được gởi ra Addr Bus

- B.32 : Giá trị của thanh ghi A sẽ được ghi vào ô nhớ có địa chỉ đã chứa

IV PHÂN TÍCH TẬP LỆNH :

 Nhóm 1 : Chuyển dời dữ liệu 8 bit

Dạng : LD Dest, Source

Chú ý :

-Phép định vị trực tiếp mở rộng chỉ dùng được cho thanh ghi A

-Nếu dùng cặp BC hoặc DE làm địa chỉ của 1 ô nhớ thì toán hạng còn lại chỉ có thểlà A

-Đa số các lệnh này không tác động đến Cờ trạng thái

 Nhóm 2 : Chuyển dời dữ liệu 16 bit

Dạng : LD Dest, Source

16 bit (hoặc địa chỉ của 1 ô nhớ)Nhận xét : Nhóm này chỉ sử dụng cho định vị tức thời và định vị trực tiếp (mở rộng)

 Nhóm 3 : Cất và phục hồi thanh ghi

Cặp 8Dạng : POP, PUSH

Thanh 16

B  [ Sp – 1]

C  [Sp – 2 ]

Sp – 2  Sp[Sp]  C[Sp – n]  B

Sp + 2  Sp

 Nhóm 4 : Số học và Logic 8 bit

+ Nhóm số học :

- Dạng cộng ADD A, s  A + s  A

Với s là 1 thanh 8, (HL), (IX + d), (IR + d), 1 giá trị 8 bit

- Dạng cộng ADC A, s  A + s + Cờ C  A

- Dạng trừ :

SUB s  A – s  ASBC s  A – s – Cờ C  A

- PUSH BC 

- POP BC 

Trang 17

Chú ý : Hầu hết các lệnh trên đều tự động tác động đến Cờ

 Nhóm lệnh số học 16 bit :

Với S : BC, AL, DE, IX, IY hoặc SP

Nhận xét : Cẩn thận với sự tác động đến Cờ của các lệnh thuộc nhóm này

 Nhóm Shift và Rotate :

+ Phép Shift và Rotate :

C C

Trang 18

+ Shift trái 1 bit  nhân 2

Shift phải 1 bit  chia 2

+ Lệnh Shift và Rotate :

SLA s A : Anthmatic

- Shift : SRA s L : Logic

SRL sVới s là thanh ghi 8 bit, (HL), (IX+d), (IY+d)

- Rotate : RLC s

+ Không qua C : RCC s

Với s như đã nói ở trên

+ Có qua Cờ C : RL s

RR s

Nhóm lệnh nhảy :

- Không điều kiện : JP nn

+ Định vị không tương đối : JP (IX)

+ Định vị tương đối : JR nn

- Có điều kiện : JP Z, nn JP NZ, nn

+ Không tương đối : JP C, nn JP NC, nn

JR NZ, nn JR C, nn + Tương đối : JR NC, nn JR Z, nn

- Đặc biệt : DEC B

DINZ nn  JR NZ, nn

Ví dụ 1 : Viết chương trình nhân 2 giá trị

trong A & B, kết quả chứa trong HL

D   E B

HL  HL + DE

A  A - 1

A =  Stop

A = 

NYY

N

Trang 19

Ví dụ 2 : Viết chương trình chia 2 giá trị

trong A cho B (giả sử B  0), thương số

đặt ở H và số dư đặt ở L

Nhóm các lệnh đặc biệt :

RLD (Rotate Left Digit)

- Ý nghĩa:

.

- RRD :

Các lệnh kiểm tra bit :

BIT b, s  Bit b của s đưa vào Cờ ZSET b, s  Bit b của s = 1

RES b, s  Bit b của s = 0Trong đó : s là thanh ghi 8 bit, (HL), (IX + d), (IY + d) và b từ 0 đến 7F:

Nhóm lệnh CALL và RET :

 Chương trình con (Subroutine, Procedure) Là một đoạn lệnh riêng biệt thựchiện một bài toán nào đó được đặt rời chương trình chính Khi cần sử dụng,chương trình chính dùng lệnh CALL để thực hiện chương trình con tương ứng,chương trình con phgải kết thúc bằng lệnh RET để có thể quay về chương trìnhchính

 CALL Địa chỉ Ctc  PUSH PC

JP nn (Địa chỉ CTC)

 RET (Không có Operand)  POP PC

- Lưu ý : Lệnh RET chính là POP PC  trong đoạn chương trình chính SPphải cố định, nghĩa là không có sự vi phạm nào ở Stack

Trang 20

Nhóm lệnh chuỗi :

(HL)  (DE)

- LDI  HL  HL + 1 & DE  DE + 1

BC  BC – 1

- LDIR : Lặp lại LDI đến khi BC = 0

 chuyển dữ liệu (từ) vùng nhớ từ (HL) sang (DE) với chiều dài BC

Nhận xét :

- Sau lệnh CPIR thì ô nhớ có địa chỉ (HL) –1 là ô nhớ đầu tiên = A

Và lưu ý:

Nếu BC > 1 và ô nhớ cuối cùng là ô cần tìm thì kết quả không đúng

- Tương tự cho 2 lệnh CPD và CPDR

Các lệnh Restart :

- Dạng : RST p  CALL p

Với p có thể là : (00,08,10,18,20,28,30,38)h

- Nó có ưu điểm là mã lệnh chỉ có 1 byte

Ví dụ : Cho một bảng tra mã 7F: đoạn có địa chỉ đầu là table Viết chương trình đổi 1byte số Hexa trong thanh ghi A ra 2 byte mã 7F: đoạn chứa vào H và L

Trang 21

+ Xét trường hợp đổi 1 Nibble ra mã 7F: đoạn

Lập lại 2 lần cho việc đổi 1 nibble trong A ra mã 7F: đoạn

Tra dò bảng

IX  IX + A

Trang 22

BÀI 3:

GIẢI MÃ ĐỊA CHỈ

*********

I ĐẶT VẤN ĐỀ :

Khi ghép nhiều linh kiện vào một CPU người thiết kế phải kiểm soát sao cho: Vớimột giá trị trên Addr Bus thì chỉ cho phép 1 trong các chân CE của các linh kiện làbằng mức logic tích cực (thường là mức 0) Vấn đề này được giải quyết bằng cáchdùng những đường chỉ cao (còn dư) để điều khiển các chân CE

II CÁC PHƯƠNG PHÁP:

Ví dụ: Xét vấn đề ghép 1 ROM 2K (27F:16) và

1 RAM 2K (6116) vào CPU Z80

 Cách 1 : Dùng 1 đường địa chỉ cao để kiểm soát 1 chân CE

Y7F:

CE

A

A10D0D7F:

OE

A

A10D0D7F:

RD

Trang 23

-Đối với ROM:

 Khái niệm về bản đồ địa chỉ ( Memory Map) :

Một cách khác :

2K - ROM

2K - RAM

: 0000h: 07F:FFh

: 2000h: 27F:FFh: FFFFh

WR

MERQ RD

RAM

C

ABC

Trang 24

Một cách linh hoạt khác :

Nhờ 7F:4 LS85 mà ta có thể thay đổi giá trị của B3 … B0 do đó dẫn đến thay đổi được các địa chỉ A3 …A0

CE

Trang 25

- Phân loại :

+ Dựa vào dạng tín hiệu gởi ra thiết bị ngoài (và ngược lại):

song song (Parallel)nối tiếp ( serial)+ Dựa vào phương pháp làm việc với CPU

Ngắt (Interupt)

DMA ( Direct Memory Access)

II KHẢO SÁT MỘT SỐ BỘ GIAO TIẾP THÔNG DỤNG :

1 Giao tiếp song song :

(1) PPI 8255 của Intel

Sơ đồ chân :

Nhóm giao tiếp với CPU

- A0, A1 : Các đường địa chỉ ( Addr Bus)

- D0 …… D7F: : Các đường dữ liệu (Data Bus)

- RD, WR : Các chân đọc , viết

Từ mạch Reset

Từ

PPI 8255

Trang 26

Nhóm chân Poot : Gồm 3 Port

- Port A : PA0  PA7F:

- Port B : PB0  PB7F:

- Port C : PC0  PC7F:

Các chân điều khiển :

- Reset : Ở mức cao

Lưu ý : Khi mới Reset thì cả 3 Port đều ở trạng thái ra

- CS (Chip Select) : Giống như chân CE của ROM – RAM  định địa chỉ chọn

Vai trò của thanh ghi điều khiển :

Giá trị trong thanh ghi điều khiển sẽ quyết định chiều vào, ra của các Port(giá trị này còn gọi là từ điều khiển (Control Word)) do đó về mặt chương trìnhtrước khi đọc hoặc gởi dữ liệu ra các Port phải nạp vào thanh ghi điều khiển 1 giátrị thích hợp với mạch đã thiết kế Công việc này gọi là khởi tạo ( Initialization)cho 8255

PAPBPCCSChân Y2

của 7F:4138

Địa chỉ:

Port A: 4000hPort B: 4001hPort C: 4002h

CR : 4003hCR

1: IN0: OUT1: IN0: OUT

Trang 27

CPL ; đảo giá trị

LD (4000h), A

JP ReadKey

Ví dụ 2 :

- Cho sẵn : * Chương trình Delay

* Bảng tra mã 7F: đoạn có địa chỉ đầu là table

- Viết chương trình tăng đến theo qui luật thập phân

Từ

CPU

Y2 của

74138

Trang 28

Giải:

Start: LD HL, table

LD B,10h

LD a, (HL)Cont : LD (4000h) , A

CALL DelayINC HLDBC B

JP NZ , Cont

JP StartBài tập 1 :

Tương tự như vcí dụ 2 nhưng mở rộng cho 2 đèn Led và cộng tăng theo qui luậtthập phân

JP NZ , L1

LD HL , Table

LD B ,10hINC IXDEC C

Trang 30

Sơ đồ Kit – Z 80

2 Giải mã địa chỉ cho Port :

So sánh 2 mạch giải mã (Ghép vào cùng 1 CPU)

Y7F:

Y7F:

VCC

CS8255

Tương ứng

LD

Tương ứng IN/OUT

CS8255

Trang 31

Trong mạch thứ nhất 8255 sẽ được điều khiển bởi dạng lệnh LD trong khi đó ở mạchthứ hai 8255 lại bị điều khiển bởi lệnh IN/OUT Do đó người ta gọi mạch dạng 1 là: I/Omapped memory, và dạng mạch hai là: I/Oø mapped.

PIA 6821 của Motorola

* Sơ đồ chân :

* Lập trình cho 6821:

-Ý nghĩa của RS0 và RS1 :

Chỉ với 22 = 4 đường địa chỉ mà trong IC này có tới 6 thanh ghi:

Nhóm A

Nhóm B

PIA 6821

RS1

PBE

Trang 32

-Vai trò của CRA và CRB :

Bit b2 của CRA (B) dùng để phân định địa chỉ cho DDRA (B) và Port A (B)

b2 = 0 : Địa chỉ thuộc về DDRA (B)

b2 = 1 : Địa chỉ thuộc về Port A (B)

-Vai trò của DDR :

DDRA (B)

Port A (B) Mỗi bit trong thanh ghi DDR sẽ qui định chiều vào ra cho chân Port tương ứng

Ví dụ : Viết đoạn lệnh khởi tạo 6821 để mỗi Port có các đường vào ra xen kẻ Giả

sử địa chỉ đầu của 6821 là 4000h

Ngày đăng: 12/10/2014, 20:54

HÌNH ẢNH LIÊN QUAN

Sơ đồ chân CPU - chuyên đề vi xử lý giới thiệu vi xử lý z80
Sơ đồ ch ân CPU (Trang 8)
Sơ đồ Kit – Z 80 - chuyên đề vi xử lý giới thiệu vi xử lý z80
it – Z 80 (Trang 30)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w