Chương3 : Tập lệnh của vi xử
lý
Mỗi vi xử lý có một tập lệnh riêng tùy thuộc vào cấu trúc
bên trong của nó. Tập lệnh gồm nhiều lệnh.
Lệnh của vi xử lý là dữ liệu ở dạng số nhò phân, với vi xử
lý 8085 chiều dài một lệnh là 8 bit.
Một lệnh luôn luôn bao gồm hai phần chính:
mã lệnh và
đòa chỉ, nếu một lệnh mà phần sau của nó là dữ liệu thì phần đòa
chỉ đã được hiểu ngầm.
Để việc viết chương trình dễ dàng hơn, người ta dùng các
từ gọi nhớ để lệnh dễ viết và dễ đọc hơn, việc này làm người
viết chương trình có thể nhớ được nhiều lệnh hơn.
Tập lệnh của vi xử lý được chia làm 9 nhóm lệnh cơ bản sau:
- Nhóm lệnh truyền dữ liệu.
- Nhóm lệnh số học và logic.
- Nhóm lệnh trao đổi, truyền khối dữ liệu và tìm
kiếm.
- Nhóm lệnh xoay và dòch.
- Nhóm lệnh điều khiển.
- Nhóm lệnh về bit.
- Nhóm lệnh nhảy.
- Nhóm lệnh gọi, trở về và nhóm lệnh bắt đầu.
- Nhóm lệnh xuất/nhập.
4. Các kiểu đònh đòa chỉ trong vi xử lý:
Trong vi xử lý sử dụng rất nhiều kiểu đònh đòa chỉ, sau đây
là một số kiểu đònh đòa chỉ thông dụng.
* Kiểu đònh đòa chỉ tức thời:
Với kiểu đònh đòa chỉ tức thời thì trong mã lệnh không đề cập
tới đòa chỉ mà chỉ đề cập tới dữ liệu, đòa chỉ ở đây đã được hiểu
ngầm.
* Kiểu đònh đòa chỉ trực tiếp:
Trong mã lệnh có chứa đòa chỉ trực tiếp của ô nhớ cần xử
lý, vi xử lý 8085A có 16 đường đòa chỉ nên đòa chỉ trực tiếp cũng
có độ dài 16 bit.
* Kiểu đònh đòa chỉ ngầm:
Trong cách đònh đòa chỉ này, vò trí hoặc giá trò của số liệu
được hiểu ngầm nhờ mã lệnh.
* Kiểu đònh đòa chỉ gián tiếp dùng thanh ghi:
Yếu tố thứ hai trong cấu trúc lệnh không phải là đòa chỉ
của dữ liệu mà chỉ là dấu hiệu cho biết vò trí, nơi chứa đòa chỉ
của số liệu.
* Kiểu đònh đòa chỉ trực tiếp bằng thanh ghi:
Yếu tố thứ hai của cấu trúc lệnh là ký hiệu của các thanh ghi,
dữ liệu xử lý là dữ liệu chư
I. SƠ ĐỒ CẤU TRÚC BÊN NGOÀI VÀ CHỨC NĂNG
CÁC CHÂN CỦA VI XỬ LÝ 8085:
1. Đặc tính của vi xử lý 8085A
:
- Nguồn cung cấp: 5 V
10%.
- Dòng điện cực đại: I
max
= 170 mA.
- Tần số xung clock chuẩn: 6,134 Mhz.
- Độ dài dữ liệu là 8 bit.
- Khả năng truy xuất ô nhớ trực tiếp là 64 Kbytes.
- Vi xử lý có thể tính số nhò phân, thập phân.
- Vi xử lý có 8 đươðng dữ liệu và 16 đường đòa chỉ.
- Các đường điều khiển : RD\, WR\, IO/M\, Clock Out, Reset
Out và 4 ngắt.
2. Sơ đồ chân và sơ đồ logic:
Hình 1.3
: Sơ đồ chân và sơ đồ logic của 8085A
3. Chức năng các chân:
* Chân 1, 2 – X
1
, X
2
(Input):
- Chân X
1
, X
2
là hai ngõ vào, đây cũng là nơi đặt thạch
anh. Nhiệm vụ của nó là tạo dao động cho các khối bên trong vi
xử lý.
- Vi xử lý khác nhau có tần số làm việc khác nhau, sau đây
là tần số làm việc cực đại của một vài vi xử lý do Intel sản xuất:
6MHz đối với 8085A.
10MHz đối với 8085A-2.
12 MHz đối với 8085A-1.
* Chân 3: Reset Out (Output):
- Cho biết vi xử lý đang đặt ở trạng thái ban đầu. Ta có thể
Ready
Hold
Intr
RST 7.5
RST 6.5
RST 5.5
Trap
Reset in
X
1
X
2
SID
V
cc
V
ss
A
8
–
A
15
AD
0
–
AD
7
ALE
S
0
S
1
RD
\
WR
\
HLDA
INTA
Reset out
Clock out
SOD
8085A
X
1
X
2
Reset out
SOD
SID
Trap
RST 7.5
RST 6.5
RST 5.5
INTR
INTA
\
AD
0
AD
1
AD
2
AD
3
AD
4
AD
5
AD
6
AD
7
V
ss
V
cc
HOLD
HLDA
Clock out
Reset in
READY
IO/M
\
S
1
RD
\
WR
\
ALE
S
0
A
15
A
14
A
13
A
12
A
11
A
10
A
9
A
8
1
20
21
40
8085A
sử dụng tín hiệu từ chân này làm tín hiệu reset cho các vi mạch
khác trong hệ thống.
- Chân này nếu không sử dụng thì để trống.
- Tín hiệu luôn ở mức [0], khi tác động thì lên [1].
* Chân 4: SOD (Output):
- SOD (Serial Output Data): đây là ngõ ra dữ liệu nối tiếp,
dữ liệu được xuất ra ở chân này tại bit A
7
của thanh ghi A. ngõ
ra này được thực hiện bởi lệnh SIM.
- Chân này nếu không sử dụng thì để trống.
* Chân 5: SID (Input):
- SID (Serial Input Data): đây l ngõ vào dữ liệu vào nối
tiếp, dữ liệu từ hệ thống khác gửi đến từng bit một khi vi xử lý
có lệnh nhận tín hiệu, dữ liệu ở ngõ vào này được nạp vào bit A
7
của thanh ghi A.
- Vi xử lý thực hiện công việc này khi nhận lệnh RIM.
* Chân 6: TRAP (Input):
- Ở chân này, tín hiệu ngắt không ngăn được. Tín hiệu yêu
cầu ngắt có bậc ưu tiên cao, không bò ngăn lại bởi chương trình
(phần mềm).
- Ngõ vào này do hệ thống khác điều khiển.
Hình 1.4 : Sơ đồ tác động ngắt của vi xử lý.
- Ngõ vào này được kích bởi cạnh lên.
- Khi chân TRAP ở mức [1], trạng thái này được lưu vào 1
Hệ
thống
khác
8085A
6
8085A
6
o
Trap
VXL
Hoặc
bit bên trong vi xử lý, lúc đó chương trình thứ I sẽ ngưng lại khi
thực hiện xong và nhảy đến đòa chỉ 0024
H
để thực hiện chương
trình tại đòa chỉ này cho đến khi gặp lệnh trở về thì mới quay lại
chương trình chính.
-
Ứng dụng của ngắt : Một trong những ứng dụng là quét
bàn phím. Khi có một phím tác động, IC quét bàn phím sẽ báo
cho vi xử lý tín hiệu ngắt vi xử lý sẽ chuyển sang nhận và xử lý
phím đó. Sau khi xử lý xong mới trở về chương trình chính.
* Chân 7, 8, 9 – RST 7.5, RST 6.5, RST 5.5: (Input):
- RST (Restart Interrupt Request): Tån hiệu ngắt có thể
ngăn được. Đây là ba ngõ vào điều khiển vi xử lý.
- Ba ngõ vào này được kích bằng cạnh lên hoặc bằng mức,
tín hiệu đưa vào chân RST 7.5 có thể là một xung.
- Khi gặp tín hiệu ngắt, vi xử lý sẽ thực hiện chương trình
tại đòa chỉ được quy đònh quy đònh trước.
* Chân RST 7.5 có đòa chỉ chương trình phục vụ ngắt
là: 003C.
* Chân RST 6.5 có đòa chỉ chương trình phục vụ ngắt
là: 0034.
* Chân RST 5.5 có đòa chỉ chương trình phục vụ ngắt
là: 002C.
- Khi đoạn chương trình chính có lệnh cho phép ngắt DI tín
hiệu ngắt từ các chân này sẽ không được thực hiện.
- Khi đoạn chương trình chính có lệnh cho phép ngắt EI, thì
các lệnh ngắt này sẽ được thực hiện kể từ khi gặp lệnh EI trong
chương trình chính.
- Nếu các chân này không sử dụng thì sẽ nối đất (GND).
* Chân 10: INTR (Input):
- INTR (Interrupt) : tín hiệu báo ngắt vi xử lý sẽ nhận ra sau
khi thi hành xong một chỉ thò.
- Khi không sử dụng chân 10 nối GND.
* Chân 11: INTA\ (Output):
- INTA (Interrupt Acknowledge): Tín hiệu trả lời ngắt. Tín
hiệu sẽ báo cho thiết bò yêu cầu ngắt bởi tín hiệu INTA biết
rằng vi xử lý đã chấp nhận yêu cầu ngắt và thiết bò yêu cầu ngắt
hãy đặt lệnh lên đường dữ liệu (Data Bus).
- Chân 10 và 11 thường được liên kết với các IC DMA
(dùng trong máy tính).
- Khi không sử dụng chân 11 bỏ trống.
* Chân 12
19 – AD0
AD7 (Input/Output):
- AD (Address Data): đây là các đường đòa chỉ và các đường
dữ liệu được tích hợp chung với nhau tạo thành đường dữ liệu –
đòa chỉ.
- Ở chu kỳ máy T
1
, các ngõ AD này đóng vai trò là các
ngõ ra đòa chỉ, ở các chu kỳ sau thì bus này đóng vai trò là các
đường dữ liệu. Vi xử lý xuất hay nhập dữ liệu đều thông qua các
đường này.
- Các đường dữ liệu và đòa chỉ trong bus này có thể được
tách ra hẳn bởi một IC chốt (74LS373, 74LS573) được điều
khiển bởi chân ALE của vi xử lý.
* Chân 20 – V
ss
: Chân GND của vi xử lý.
* Chân 21
28 – A
8
A
15
(Output) Address bus:
Các ngõ ra này được dùng để xuất 8 bit đòa chỉ cao.
Như vậy, vi xử lý 8085A có 16 đường đòa chỉ và 8 đường
dữ liệu.
* Chân 29, 33, 34 – S
0
, S
1
, IO/M\ (Output).
- Ba ngõ này cho biết trạng thái hoạt động của vi xử lý,
trạng thái hoạt động có thể xem ở bảng sau:
IO/M\ S
1
S
0
Trạng thái
0 0 1 Viết vào bộ nhớ (Memory
Write)
0 1 0 Đọc bộ nhớ (Memory Read)
0 1 1 Xuất dữ liệu ra cổng (Op-
Code Fetch)
1 0 1 Xuất dữ liệu ra cổng (I/0
Write)
1 1 0 Đọc dữ liệu từ cổng (I/0
Read)
1 1 1 Interrup Acknowledge
* Chân 30 – ALE (Output):
- ALE (Address Latch Enable) là chân điều khiển, dùng
xác đònh vai trò của đường AD7
AD0. Ngõ này tạo ra một
xung ở chu kỳ máy T
1
nhằm xác đònh lúc đó đường
AD7
AD0 đóng vai trò là đường đòa chỉ (A
7
A
0
).
- Bình thường thì ALE ở mức [0], ở chu kỳ T
1
thì ALE ở
mức [1].
- Chân này dùng làm chân điều khiển cho IC chốt.
* Chân 31: WR\ (Output):
- WR\ (Write) dùng để xác đònh vi xử lý 8085A đang thực
hiện lệnh ghi dữ liệu lên bộ nhớ hay I/O.
- Chân WR\ của vi xử lý 8085A thường được nối với các
chân WR của các IC khác (bộ nhớ hay I/O).
* Chân 32: RD\ (Output):
- RD\ (Read): dùng để xác đònh vi xử lý đang thực hiện
lệnh đọc dữ liệu từ bộ nhớ hay I/0 và vi xử lý.
- Chân RD\ của vi xử lý 8085A thường được nối với các
chân RD của các IC khác (bộ nhớ hay I/0).
* Chân 35: Ready (Input):
- Ready: Tức tín hiệu trả lời cho vi xử lý. Bộ nhớ hay thiết
bò ngoại vi I/0 báo cho vi xử lý biết là đã sẵn sàng gửi hoặc
nhận dữ liệu. Vi xử lý chưa thể hoàn thành chu kỳ máy nếu
Ready có giá trò thấp.
- Nếu hết 3 chu kỳ xung clock mà bộ nhớ chưa gửi dữ liệu
ra thì chương trình sẽ sai. Do đó để đồng bộ người thiết kế dùng
chân Ready này (bình thường Ready ở mức [1]).
* Chân 36: Reset In (Input):
- Reset In: ngõ vào này dùng để reset vi xử lý. Khi thực
hiện reset tín hiệu này phải ở mức logic [0] trong khoảng 3 chu
kỳ xung clock.
- Khi reset thanh ghi PC = 0000
H
nghóa là vi xử lý trở về
trạng thái ban đầu. Sau đó vi xử lý sẽ đón lệnh tại đòa chỉ này.
- Khi chân Reset In tác động thì chân Reset Out của vi xử
lý cũng tác động theo. Nếu các IC khác được nối với chân Reset
Out thì khi reset vi xử lý, các IC khác cũng được reset theo.
Hình 1.5 : Sơ đồ reset 8085A.
* Chân 37: CLK (Output):
- CLK (Clock): ngõ ra tín hiệu xung clock để cung cấp cho
các thiết bò khác khi có yêu cầu. Tần số của nó bằng tần số ngõ
vào chia 2.
- Nếu không sử dụng thì chân này để trống.
* Chân 38: HLDA (Output):
- HLDA (Hold Acknowledge): Tín hiệu ngõ ra cho biết tín
hiệu HOLD đã được chấp nhận và vi xử lý sẽ ở trạng thái
HOLD ở chu kỳ xung clock tiếp theo.
* Chân 39: HOLD (Input):
- HOLD: nhận tín hiệu yêu cầu ngưng bộ điều khiển
DMA.
- Nếu không sử dụng, chân HOLD nối GND.
Tóm lại, với chân HOLD và HLDA: khi DMA ngưng thì vi
xử lý làm việc và ngược lại vì DMA kết nối thông qua bus.
* Chân 40 – Vcc : Năng lượng nguồn 5V cung cấp
cho vi xử lý hoạt động.
8085A
36
R
C
. là dữ liệu thì phần đòa
chỉ đã được hiểu ngầm.
Để vi c vi t chương trình dễ dàng hơn, người ta dùng các
từ gọi nhớ để lệnh dễ vi t và dễ đọc hơn, vi c. dùng để xuất 8 bit đòa chỉ cao.
Như vậy, vi xử lý 8085A có 16 đường đòa chỉ và 8 đường
dữ liệu.
* Chân 29, 33 , 34 – S
0
, S
1
, IO/M (Output).
- Ba ngõ