BỘ LAO ĐỘNG – THƯƠNG BINH VÀ XÃ HỘI
TỔNG CỤC DẠY NGHỀ
Dự án giáo dục kỹ thuật và dạy nghề (VTEP)
GIÁO TRÌNH
VI XỬ LÝ
Mả số : CIO 02 31 00
NGHỀ : SỬA CHỬA ĐIỆN TỬ CÔNG NGHIỆP
Trình độ : 3
HÀ NỘI – 2004
2
Mã tài liệu :
Mã quốc tế ISBN :
Tuyên bố bản quyền
Tài liệu này thuộc loạI sách giáo trình
Cho nên các nguồn thông tin có thể được
phép dùng nguyên bản hoặc trích dùng
cho các mục đích về đào tạo và tham khảo
MọI mục đích khác có ý đồ lệch lạc hoặc
sử dụng vớI mục đích kinh doanh thiếu
lành mạnh sẻ bị nghiêm cấm
Tổng cục dạy nghề sẻ làm mọI cách để
bảo vệ bản quyền củ
a mình
Tổng cục dạy nghề cám ơn và hoan
nghênh các thông tin giúp cho việc tu sửa
và hoàn thiện tốt hơn tài liệu này
Địa chỉ liên hệ
Dự án giáo dục kỹ thuật và nghề nghiệp
Tiểu ban phát triển chương trình học liệu
3
LỜI TỰA
Tài liệu này là một trong các kết quả của dự án GDKT – DN được tài trợ bởi ngân
hàng phát triển Á châu cho các trường kỹ thuật trọng điễm toàn quốc trực thuộc tổng cục
dạy nghề.
Tài liệu được soạn là một giáo trình phục vụ cho đối tượng công nhân nghề sửa
chửa điện tử công nghiệp. Do đó, trình tự nội dung được sắp xếp từ dể đến khó nhằm
giúp người học tiếp thu một cách dể dàng. Đồng thời đi kèm với tài liệu còn có sổ tay
hướng dẩn dành riêng cho giáo viên trong đó đề nghị các bước thực hiện quá trình giãng
dạy một cách nhất quán từ đó tạo điều kiện cho giáo viên khai thác nội dung giá trình một
cách tốt nhất
Đội ngủ biên soạn là nhóm CDC của trường công nhân kỹ thuật cần thơ, nội dung
của tài liệu là sự kết hợp giữa yêu c
ầu đào tạo với tình hình công nghệ hiện tại trong thực
tế sản xuất và cũng được tham khảo theo tình hình giãng dạy tại các trường kỹ thuật
cũng như các cơ sở đào tạo nghề có liên quan.
Tài liệu này được thiết kế theo từng mô đun/ môn học thuộc hệ thống mô đun/ môn
học của một chương trình đào tạo hoàn chỉnh nghề sửa chửa thiết bị
điện tử công
nghiệp ở cấp trình độ 3 và được dùng làm giáo trình cho học viên trong các khóa đào tạo,
cũng có thể được sử dụng cho đào tạo ngắn hạn hoặc cho các công nhân kỹ thuật, các
nhà quản lý và người sử dụng nhân lực tham khảo.
Đây là tài liệu thử nghiệm sẻ được hoàn chỉnh để trở thành chính thức trong hệ
thống dạy nghề.
Hà Nội, ngày tháng năm 2005
Giám đốc D
ự án quốc gia
4
MỤC LỤC
LỜI TỰA 3
MỤC LỤC 4
GIỚI THIỆU VỀ MÔ ĐUN 6
Vị trí, ý nghĩa, vai trò mô đun 6
Mục tiêu của môdun 6
Mục tiêu thực hiện của mô đun 6
Nội dung chính của mô đun 6
SƠ ĐỒ QUAN HỆ THEO TRÌNH TỰ HỌC NGHỀ 7
CÁC HÌNH THỨC HỌC TẬP CHÍNH TRONG MÔ ĐUN 8
YÊU CẦU VỀ ĐÁNH GIÁ HOÀN THÀNH MÔ ĐUN 8
BÀI 1: CẤU TRÚC HỌ VI XỬ LÝ MCS-80/85 9
GIỚI THIỆU 9
MỤC TIÊU THỰC HIỆN 9
NỘI DUNG CHÍNH 9
1. GIỚI THIỆU CHUNG 10
1.1 Cấu trúc chung 10
1.2 Đặc tính chung của vi xử lý 11
2. VI XỬ LÝ 8085A 13
2.1 Chức năng các chân ra 13
2.2 Mô tả nguyên lý hoạt động 17
BÀI 2: TẬP LỆNH 8085A 23
GIỚI THIỆU 23
MỤC TIÊU THỰC HIỆN 23
NỘI DUNG CHÍNH 23
1. GIỚI THIỆU 24
2. TẬP LỆNH 24
2.1 Nhóm lệnh truyền dữ liệu 24
2.2 Nhóm lệnh số học – logic 26
2.3 Nhóm lệnh so sánh 35
2.4 Nhóm lệnh nhảy 35
2.5 Nhóm lệnh về ngăn xếp 37
2.6 Nhóm lệnh điều khiển 39
BÀI 3: GIAO TIẾP I/O 40
GIỚI THIỆU 40
MỤC TIÊU THỰC HIỆN 40
NỘI DUNG CHÍNH 40
1. TỔNG QUAN 41
1.1 Thiết bị ngoại vi có không gian địa chỉ riêng 41
1.2 Thiết bị ngoại vi dùng chung địa chỉ với bộ nhớ 41
2. GIẢI MÃ ĐỊA CHỈ CHO THIẾT BỊ NGOẠI VI 41
3. CÁC MẠCH CỔNG ĐƠN GIẢN 42
4. VI MẠCH GIAO TIẾP SONG SONG LẬP TRÌNH ĐƯƠC 8255A 43
4.1 Mô tả chức năng 44
4.2 Các chế độ hoạt động 47
4.3 Ứng dụng 82C55A 56
5. VI MẠCH GIAO TIẾP NỐI TIẾP LẬP TRÌNH ĐƯỢC 8251A 60
5.1 Đặc tính 60
5.2 Mô tả chức năng 61
5.3 Hoạt động chi tiết 66
5.4 Ứng dụng 8251A 73
5
BÀI 4: NGẮT VÀ CHƯƠNG TRÌNH PHỤC VỤ NGẮT 81
GIỚI THIỆU 81
MỤC TIÊU THỰC HIỆN 81
NỘI DUNG CHÍNH 81
1. TỔNG QUAN 82
1.1 Nguyên lý vào/ra dử liệu theo phương pháp thăm dò 82
1.2 Các phương pháp thông dụng 82
2. TRAO ĐỔI DỬ LIỆU BẰNG NGẮT 84
2.1 Tổ chức ngắt 84
2.2 Quy trình xử lý yêu cầu ngắt 86
3. VI MẠCH XỬ LÝ NGẮT 8259A 87
3.1 Tóm tắt đặc tính 8259A 87
3.2 Sơ đồ khối 88
3.3 Mô tả chức năng 89
3.4 Lập trình 8259A 94
TÀI LIỆU THAM KHẢO 106
6
GIỚI THIỆU VỀ MÔ ĐUN
Vị trí, ý nghĩa, vai trò mô đun
• Đây là một mô đun chuyên ngành được học vào năm thứ hai của trình
độ 3 sau khi học viên đã hoàn tất các mô đun hổ trợ trước đó như: Linh
kiện điện tử, mạch điện tử, kỹ thuật số.
• Trong các dây chuyền sản xuất, cung như các thiết bị tự động đơn lẻ
hiện nay việc ứng dụng vi xử lý trong các lỉnh vực này là rất phổ
biến
nhằm tăng tính linh hoạt, độ chính xác cũng như độ ổn định của hệ
thống. Do đó, kiến thức về vi xử lý rất cần thiết cho công nhân ngành
sửa chửa thiết bị điện tử công nghiệp.
Mục tiêu của môdun
Sau khi hoàn tất mô-đun này, học viên có năng lực:
• Hiểu, giải thích được nguyên lý làm việc các hệ điều khiển ứng dụng vi
xử lý
• Cải tiến được chức năng của hệ vi xử lý theo yêu cầu
• Phảt triển được các hệ điều khiển trên cơ sở khối trung tâm là vi xử lý
Mục tiêu thực hiện của mô đun
• Vận hành, kiểm tra được các hệ điều khiển ứng dụng vi xử lý
• Sửa chửa được phần mềm và thay thế được linh kiện phần cứng
• Thi công, lắp ráp thiết bị theo sơ đồ có sẳn.
Nội dung chính của mô đun
Mô đun này bao gồm 4 bài học như sau :
1. Cấu trúc họ vi xử lý MCS-80/85
2. Tập lệnh 8085A
3. Giao tiếp I/O
4. Ngắt và chương trình phục vụ ngắt
7
S QUAN H THEO TRèNH T HC NGH
Chính trị
PHáP LU
ậ
T
Q
uốC òNG
THể
C
HấT
TIN H
ọC
ANH VĂN
Atlđ
T chc sn
Chế tạo
MạCH ĐIệN T
ử
Đ
O L
ệ
L kiện điện t
ử
Đ
iện Kỹ Thuật
. t cụng sut
Vi iu khin 1, 2
kh l tr plc
Thc hnh PLC
X lý li
profibus
ĐầU VO
U RA
Các môn học chung
Hai môđun b
ổ
tr
ợ
V
ẽ ĐIệN
Đ
IÊN CƠ BảN
Mch T nõng
cao
Mỏy in
Trang b in
K.T. Cóm bin
Vi mch PLD
K thut s
K thut xung
Vi mch tng t
TKM in-in t
Vi x lý
Tớnh toỏn mch
in t c bn
8
CÁC HÌNH THỨC HỌC TẬP CHÍNH TRONG MÔ ĐUN
Hình thức 1: Học lý thuyết trên lớp
- Tất cả các bài học từ 1 đến 4
- Giải các câu hỏi và bài tập phần lý thuyết
- Viết chương trinh điều khiển
- Phân tích chương trình có sẳn
Hình thức 2: Học thực hành trong xưởng
- Chạy thử các chương trình đả viết trên lớp
- Ráp mô hình thiết bị ngoại vi
- Ráp toàn bộ mạch điều khiển kết hợp mô hình thiết bị ngoại vi và kiểm tra hoạ
t
động
Hình thức 3: Tự nghiên cứu
- Tự đề ra yêu cầu và thực hiện
- Tham khảo các vấn đề liên quan trên sách báo, internet
YÊU CẦU VỀ ĐÁNH GIÁ HOÀN THÀNH MÔ ĐUN
Hiểu và thực hiện được các nội dung sau
- Phân tích được chương trình trên hệ thống thực.
- Phát triển được phần mềm theo yêu cầu
- Lắp ráp, vận hành và sửa chửa được hệ điều khiển dùng vi xử lý
Về thái độ
- Chuyên cần, sáng tạo
- Luôn kiểm tra kết quả bằng nhiều phương pháp khác nhau để tăng mức độ tin
cậy, chính xác.
9
BÀI 1
Tên bài:
Cấu trúc họ vi xử lý MCS-80/85
Mã bài:
CIO 02 31 01
GIỚI THIỆU
Bài học này tập trung giới thiệu về cấu trúc, đặc tính và nguyên lý hoạt động của
một bộ vi xử lý rất cơ bản của hãng INTEL đó là họ 8085, từ những kiến thức cơ sở đó
người học có thể tự nghiên cứu để hiểu các vi xử lý khác.
Bài học thuần túy lý thuyết chỉ cần nắm được những nội dung cần thiết nhất trong
thời gian học trên l
ớp.
MỤC TIÊU THỰC HIỆN
• Hiểu được cấu túc chung của vi xử lý, phân biệt vi xử lý dựa trên các đặc điễm
cơ bản
• Hiểu cấu trúc cụ thể của bộ vi xử lý 8085A
• Hiểu nguyên lý hoạt động các khối chức năng, giải thích được giản đồ thời gian
hệ thống của 8085A
NỘI DUNG CHÍNH
Nội dung bài học tập trung về các chủ đề chính như sau:
• Khái niệm cơ bản về vi xử lý: Các khối cấu tạo chính, các kiểu định địa chỉ dử
liệu
• Đặc tính và cấu tạo bộ vi xử lý 8085A.
• Sơ đồ chân và ý nghĩa các chân ra của 8085A.
• Cấu tạo hệ thống thanh ghi, ý nghĩa các bít trong thanh ghi cờ.
• Chế độ RESET, cách RESET tự động khi mở máy
• Đặc điễ
m các ngỏ vào ngắt.
• Phương pháp tạo xung đồng hồ hệ thống
• Tạo trạng thái wait cho mỗi chu kỳ máy
• Phân tích thời gian hệ thống, giản đồ thời gian hệ thống.
10
1. GIỚI THIỆU CHUNG
Vi xử lý là một vi mạch 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ý được điều khiển theo một
chương trình gồm tập hợp các lệnh mà người xử dụng có thể thay đổi một cách dể dàng.
Một vi xử lý có thể hiểu được từ một vài trăm cho đến hàng ngàn lệnh. Vì vậy, nó có khả
năng thực hiện được rất nhiều yêu cầu điều khiển khác nhau.
1.1 Cấu trúc chung
Cấu trúc của vi xử lý thường được biểu diển dưới dạng sơ đồ khối. Qua đó, người
xử dụng có thể thấy được các đặc điễm cần thiết để phục vụ cho việc lập trình. Về cơ
bản có thể xem vi xử lý gồm có ba khối chính:
Hình 1.1 Sơ đồ khối cấu tạo vi xử lý
Đơn vị số học -logic (arithmatic-logic unit)
Cơ sở của đơn vị số học-logic là một mạch cộng n bít, mạch cộng này còn được
mở rộng thêm để thực hiện các phép xử lý khác như: Tính số bù bậc 2, phép trừ, các
hàm logic
Các thanh ghi (registers)
Thanh ghi giống như ô nhớ bên trong vi xử lý, điểm khác biệt ở chổ là thanh ghi
được phân biệt bằng tên thay vì bằng địa chỉ như ô nhớ. Thanh ghi dùng để chứa dữ li
ệu,
các kết quả trung gian của phép tính, số lượng thanh ghi ảnh hưỡng rất lớn đến tốc độ xử
lý vì số lần truy xuất bộ nhớ sẽ ít đi. Vì vây, các vi xử lý hiện đại thường có nhiều thanh
ghi.
Đơn vị điều khiển (control unit)
Là phần quan trọng nhất trong vi xử lý, mọi hoạt động của máy tính được phối hợp
một cách chặt chẻ bới các tín hiệu đượ
c tạo ra từ đơn vị điều khiển.
Máy tính thi hành tuần tự từng chỉ thị của chương trình cho đến khi có lệnh dừng
hoặc thao tác vòng lặp. Chương trình điều khiển được chứa trong bộ nhớ dưới dạng tổ
hợp các bít gọi là mã đối tượng (object code). Nhưng để dể viết chương trình một lệnh
điều khiển thường được viết dưới dạ
ng gợi nhớ (mnemonic).
Ví dụ:
Đối với vi xử lý 8085A, chỉ thị truyền dữ liệu từ thanh ghi B sang thanh ghi A
được viết như sau:
Address Register
Data Register
ALU
Instruction Decoder
Program Counter
Logic Control
11
- Dạng mã đối tượng: 78h
- Dạng gợi nhớ: MOV A, B
Ở dạng gợi nhớ, một lệnh điều khiển được chia làm hai phần:
Mã công tác (operation code)
Cho biết thao tác mà vi xử lý phái thực hiện (MOV)
Toán hạng (operand)
Được viết theo sau mã công tác, cho biết vị trí dữ liệu hoặc dử liệu cần
phải xử lý.
Ở dạng mã đối tượng, một lệnh điều khiển đượ
c tạo nên từ một hoặc nhiều byte:
Byte đầu tiên chính là mã công tác: Quá trình thi hành một lệnh được chia làm hai giai
đoạn:
Giai đoạn 1: Nhập mã công tác vào thanh ghi lệnh bằng một chu kỳ đọc dữ liệu
của ô nhớ có địa chỉ là nội dung của bộ đếm chương trình (program counter)
Giai đoạn 2: Thi hành lệnh bao gồm cả việc đọc các byte kế tiếp trong bộ nhớ (đối
với các lệnh nhiều byte). Sau đó, các toán hạng đượ
c xử lý theo quy định của mã công
tác
Trong thực tế hai giai đoạn thi hành nêu trên lại được chia làm nhiều bước nhỏ gọi
là vi lệnh. Đơn vị điều khiển phát ra tín hiệu để điều khiển các vi lệnh theo một chương
trình gọi là chương trình vi mô (micro program).
1.2 Đặc tính chung của vi xử lý
Độ dài từ dử liệu (data word)
Đây là đặc điểm quan trọng của vi xử lý, nói lên khả năng trao đổi dử liệu giữa vi
xử lý với các thiết bị khác. Hiện nay có nhiều vi xử lý với độ dài từ dữ liệu là: 8 bít, 16 bít,
32 bít và 64 bít. Bảng dưới đây liệt kê một số vi xử lý 8 bít thông dụng
Tên Hảng sản xuất
8080, 8085 Intel
MC6800, MC6802 Motorola
Z80 Zilog
F8 Fairchild
TMS9985 Texas Instrument
Ưu điểm của loại vi xử lý nhiều bít là:
• Cùng thời gian truy xuất bộ nhớ thì lượng thông tin truyền đi nhiều hơn
• Độ chính xác cũng tăng mà không làm tăng thời gian tính toán.
Tuy nhiên, độ dài từ dữ liệu tăng thì cũng làm tăng số lượng dây dẩn trong bus dữ
liệu. Do đó, số chân của vi xử lý cũng phải nhiều. Điều này đưọc giải quyết bằng cách
dùng phươ
ng pháp đa hợp thời gian (time multiplexer), phương pháp này làm giãm vận
tốc truyền dữ liệu. Dưới đây là các vi xử lý 16 bít thông dụng
Tên Hảng sản xuất
8086 Intel
MC68000 Motorola
Z8000 Zilog
LSI11 Digital Equipment
12
Độ dài từ địa chỉ (address Word)
Độ dài từ địa chỉ cho biết số lượng ô nhớ mà vi xử lý có thể liên hệ trực tiếp, độ dài
của các thanh ghi cần thiết cho việc định địa chỉ (thanh ghi địa chỉ, bộ đếm chương trình)
cũng phải có kích thước tương ứng. Thông thường độ dài từ địa chỉ ít nhất là 16 bít
tương đương với 64K địa chỉ (65536 địa chỉ
).
Tên Từ địa chỉ Số lượng ô nhớ
8086 20 1 Meg (1.048.576)
MC68000 23 8 Meg (8.388.608)
Z8000 24 16 Meg (16.777.216)
Tập lệnh (Instruction Set)
Tập lệnh là tập hợp tất cả các lệnh điều khiển vi xử lý. Do cấu tạo phần cứng khác
nhau nên mỗi vi xử lý có một tập lệnh khác nhau: Số lượng các lệnh cơ sở (không kể các
khả năng định địa chỉ khác nhau) đối với vi xử lý 8 bít khoãng từ 50 đến 80, vi xử lý 16 bít
còn có thêm các lệnh phức tạp cho đơn vị số học-logic và khối xuấ
t-nhập nên có vào
khoãng 90 lệnh.
Các kiểu định địa chỉ (addressing modes)
Như đã biết, cấu tạo một lệnh gồm hai phần: Mã công tác cho biết thao tác mà máy
phải thực hiện, và toán hạng cho biết vị trí của dử liệu cần xử lý. Có nhiều cách để chỉ vị
trí của dử liệu được trình bày như sau:
Trực tiếp bằng thanh ghi (register direct)
Trong phương pháp này, toán hạng là ký hiệu của các thanh ghi và dữ liệu cầ
n xử
lý chính là nội dung chứa trong thanh ghi đó.
Ví dụ:
ADD register ;
(A) + (register) → A ; Thực hiện phép cộng giữa nội dung của bộ
tích lủy với nội dung của thanh ghi sau ghi kết quả vào A.
Gián tiếp bằng thanh ghi (register indirect)
Trong trường hợp này toán hạng không phải là dử liệu mà chỉ là dấu hiệu cho biết vị
trí nơi chứa dử liệu
Ví dụ
: MOV A, M ;
((HL)) → A : Chuyển dử liệu của ô nhớ có địa chỉ là nội dung
của cặp thanh ghi HL vào thanh ghi A
Định địa chỉ trực tiếp (direct addressing)
Toán hạng là địa chỉ của dử liệu cần được xử lý
Ví dụ:
STA addr ;
(A) → addr : Lưu trử dử liệu chứa trong thanh ghi A vào ô nhớ
có địa chỉ ghi trong câu lệnh.
hoặc IN port ;
(port) → A : Nhập nội dung từ cổng vào A
hoặc LDA addr ;
(addr) → A : Nạp dử liệu chứa tại địa chỉ vào thanh ghi A
13
Định địa chỉ tức thời (immediately addressing)
Toán hạng trong câu lệnh chính là dử liệu cần xử lý
Ví dụ:
MVI reg, data ;
data → reg : chuyển dử liệu data vào thanh ghi reg
hoặc ADI data ;
(A) + data → A : Cộng dử liệu với nội dung của A và ghi kết
quả vào A.
Địa chỉ ngầm định (implied addressing)
Trong phương pháp này vị trí hoặc giá trị của dử liệu cần xử lý được hiểu ngầm
nhờ mả công tác
Ví dụ:
ADD reg ;
(A) + (reg) → A : Cộng nội dung của thanh ghi A với nội
dung chứa trong thanh ghi reg và ghi kết quả vào A.
Ngoài các đặc điểm trên, mạch vi xử lý còn có một số đặc điểm khác cần lưu ý như:
- Công nghệ chế tạo.
- Số lượng nguồn cung cấp.
- Tần số xung đồng hồ.
2. VI XỬ LÝ 8085A
8085A là vi xử lý 8 bít được sản xuất bởi hảng INTEL theo công nghệ NMOS, có tốc
độ nhanh hơn và tập lệnh tương thích 100% với 8080A, nhờ khả năng tích hợp hệ thống
cao 8085b cho phép thực hiện một hệ thống với số linh kiện tối thiểu chỉ gồm ba IC:
8085A (CPU), 8516 (RAM) và 8355/8755A (ROM/PROM). Đặc điểm chính của 8085A
được tóm tắt như sau:
• Nguồn nuôi đơn cực +5v ±10%; I
max
= 170 mA
• Tần số xung đồng hồ 6MHz
• Mạch tạo xung đồng hồ được tích hợp, có thể dùng thạch anh, RC hoặc
LC ráp thêm bên ngoài
• Chức năng điều khiển hệ thống được tích hợp trên mạch
• Có 4 vectơ ngắt: Trong đó có một yêu cầu ngắt không che được (Non-
maskable interupt) và một tương thích với 8080A
• Có cổng I/O nối tiếp
• Phần mềm tương thích 100% với 8080A
• Thực hiện
được các phép tính số hoc: Thập phân, nhị phân và số 16 bít
• Định địa chỉ trực tiếp 64K ô nhớ
2.1 Chức năng các chân ra
A8 - A15 (output - 3 trạng thái)
Là byte cao địa chỉ của bộ nhớ 8 bít hoặc địa chỉ cổng I/O 8 bít, các chân này ở
trạng thái Z cao trong các chế độ HOLD và HALT.
ALE (output)
Ngỏ ra chốt địa chỉ, tín hiệu này ở mức cao trong khoảng thời gian chu kỳ đồng hồ
đầu tiên (lúc này các chân AD0-AD7 là byte thấp địa chỉ), cho phép địa chỉ được đưa vào
IC chốt bên ngoài.
14
AD0 - AD7 (input/output - 3 trạng thái)
Bus đa hợp địa chỉ/dữ liệu, là byte thấp địa chỉ bộ nhớ hoặc địa chỉ cổng I/O trong
khoảng thời gian chu kỳ xung đồng hồ đầu tiên và là 8 bít dử liệu trong khoảng thời gian
chu kỳ đồng hồ thứ hai và thứ ba, các chân này ở trạng thái Z cao trong chế độ HOLD và
HALT.
Hình 1.2 Sơ đồ chân 8085A
Hình 1.3 Phương pháp tách địa chỉ và dử liệu
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
Tín
hiệu
ắ
Bus đi
ềukhiển
Bus dử
liệu
Bus địa chỉ
Chốt
15
Hình 1.4 Nguyên lý đa hợp dử liệu / địa chỉ trong 8085A
S0, S1, MIO/ (output)
Cho biết trạng thái bus dử liệu
S1 S0
0 0 HALT
0 1 WRITE
1 0 READ
1 1 FETCH
MIO/ = 0 : truy cập dử liệu bộ nhớ
MIO/ = 1 : truy cập dử liệu cổng
RD (output - 3 trạng thái)
READ, đọc dử liệu từ bộ nhớ hoặc cổng I/O và truyền trên bus dử liệu, chân này ở
trạng thái Z cao trong chế độ HOLD và HALT.
WR (output - 3 trạng thái)
WRITE, dử liệu trên bus dử liệu được ghi vào bộ nhớ hoặc cổng I/O, dử liệu được
thiết lập tại cạnh xuống của xung WR , chân này treo lên trạng thái Z cao ở chế độ HOLD
và HALT
READY (input)
Nếu chân READY ở mức cao trong suốt chu kỳ đọc hoặc ghi có nghĩa là bộ nhớ
hoặc thiết bị ngoại vi đã sẳn sàng để gởi hoặc nhận dử liệu. Khi READY ở mức thấp CPU
sẻ chờ chân này lên mức cao trước khi hoàn tất chu kỳ đọc/ghi
HOLD (input)
Một linh kiện tác động nào đó dùng tín hiệu này để yêu cầu CPU nhường quyền xử
dụng bus địa chỉ và dử liệu, khi nhận được yêu cầu này CPU sẻ nhường bus ngay sau
khi hoàn tất chu kỳ máy hiện hành. CPU chỉ có thể chiếm lại bus khi không còn tín hiệu
HOLD, khi chấp nhận lệnh HOLD các đường địa chỉ, dử liệu, RD, WR, IO/M được treo
lên trạng thái Z cao.
16
HLDA
(output)
HOLD ACKNOWLEDGE, tín hiệu ra cho biết CPU đã chấp nhận yêu cầu HOLD và
nó sẻ nhường bus trong chu kỳ đồng hồ kế tiếp, HOLDA về mức thấp khi không còn yêu
cầu HOLD, CPU chiếm lại bus trong vòng nữa chu kỳ đồng hồ sau khi HOLDA ở mức
thấp.
INTR (input)
INTERRUPT REQUEST, được dùng như một ngắt công dụng chung, ngắt chỉ được
lấy mẫu trong suốt chu kỳ đồng hồ cuối cùng của lệnh. Khi ngắt tác động bộ đếm chương
trình sẻ không tăng nội dung và tín hiệu
INTA sẻ được tạo ra, trong suốt chu kỳ lệnh
RESTART hoặc CALL có thể được chèn vào để nhảy đến chương trình phục vụ ngắt,
INTR được cho phép và ngăn bằng phần mềm. Ngắt này mất hiệu lực khi reset và được
chấp nhận tức thời sau một ngắt khác
INTA (output)
INTERRUPT ACKNOWLEDGE, được dùng thay cho
RD trong chu kỳ lệnh sau khi
một INTR được chấp nhận, tín hiệu này có thể được dùng để tác động vi mạch xử lý ngắt
8259 hoặc các cổng ngắt khác.
RST 5.5; RST 6.5; RST 7.5 (input)
RESTART INTERRUPT, ba ngỏ vào này có cùng biểu đồ thời gian như INTR
nhưng chúng sẻ tự động tạo ra một RESTART nội bộ, RST 7.5 có mức ưu tiên cao nhất
và RST 5.5 có mức ưu tiên thấp nhất, các ngắt này ưu tiên hơn INTR
TRAP (input)
Trap là một yêu cầu ngắt không ngăn được, nó được nhận dạng cùng lúc như INTR
và có mức ưu tiên cao nhất trong các yêu cầu ngắt.
Tên ngắt Mức ưu tiên Địa chỉ ngắt Tín hiệu kích
TRAP 1 24H Cạnh lên và mức cao
RST 7.5 2 3CH Cạnh lên (chốt)
RST 6.5 3 34H Mức cao
RST 5.5 4 2CH Mức cao
INTR 5 - Mức cao
INRESET (input)
Tín hiệu vào đặt bộ đếm chương trình về 0, xóa cờ cho phép ngắt và FF HOLDA,
các cờ và thanh ghi khác không ảnh hưởng (ngoại trừ thanh ghi lệnh), bus dử liệu, bus
địa chỉ và các đường điều khiển ở trạng thái Z cao. Vì ngỏ vào này có cấu tạo Schmitt
trigger nên có thể ghép với một mạch RC để tự động reset hệ thống khi mở máy. CPU sẻ
duy trì trạng thái reset khi chân này còn ở mức thấp.
17
RESET OUT (output)
Tín hiệu ra đồng bộ với xung đồng hồ cho biết CPU đang trong trạng thái reset, có
thể dùng để đặt lại hệ thống
X1, X2 (input)
Ngỏ vào đặt thạch anh, mạch RC hoặc LC để xác định tần số xung đồng hồ, có thể
đưa xung dao động ngoài vào X1 thay cho thạch anh
CLK OUT (output)
Ngỏ ra đồng hồ có tần số bằng phân nữa tần số dao động tại X1
SID (input)
Ngỏ vào dử liệu nối tiếp được nạp vào bít 7 của thanh ghi A khi thi hành lệnh RIM
SOD (output)
Ngỏ ra dử liệu nối tiếp được điều khiển bởi lệnh SIM
VCC
Nguồn nuôi +5 V
GND
Chân masse 0 V
2.2 Mô tả nguyên lý hoạt động
8085A là bộ vi xử lý 8 bít song song đầy đủ, nguồn nuôi đơn cực 5 V, tần số tối đa 6
MHz. 8085A được thiết kế để thích ứng với các hệ thống yêu cầu tối thiểu linh kiện.
8085A có 12 thanh ghi 8 bít, bốn trong số này chỉ làm việc như hai cặp thanh ghi 16
bít, 6 thanh ghi khác có thể xử dụng như thanh ghi 8 bít hoặc 3 cặp thanh ghi 16 bít.
Gợi nhớ Thanh ghi Nội dung
ACC hoặc A Bộ tích lủy 8 bít
PC Bộ đếm chương trình 16 bít địa chỉ
BC, DE, HL Thanh ghi chung; con trỏ dử
liệu (HL)
8 bít x 6 hoặc 16 bít x 3
SP Con trỏ ngăn xếp 16 bít địa chỉ
Flags hoặc F Thanh ghi cờ 5 cờ
Thanh ghi cờ cho biết trạng thái của vi xử lý sau khi thực hiện xong một lệnh, cấu
tạo thanh ghi này được trình bày như sau:
S Z X AC X P x CY
INRESET
Hình 1.5 Mạch reset tự động
khi mở máy
18
S -Sign (bít dấu)
S =1 Khi kết quả là số âm
S =0 Khi kết quả là số dương
Z -Zero (bít zero)
Z =1 Khi kết quả bằng 0
Z =0 Khi kết quả khác 0
AC -Auxiliary Carry (bít số nhớ phụ)
AC =1 Khi phép tính bị tràn trên bít 3
AC =0 Khi phép tính không tràn trên bít 3
P -Parity (bít chẳn-lẻ)
P =1 Khi kết quả là số chẳn
P =0 Khi kết quả là số lẻ
Cy -Carry (bít số nhớ)
Cy =1 Khi kết quả có số nhớ
Cy =0 Khi kết quả không có số nhớ
8085A dùng một bus dử liệu đa hợp, địa chỉ 16 bít được tách ra thành bus 8 bít địa
chỉ cao và 8 bít địa chỉ thấp kết hợp với dử liệu. Trong suốt trạng thái ( chu kỳ đồng hồ)
đầu tiên của 1 chu kỳ máy byte địa chỉ thấp được gởi ra bus đa hợp địa chỉ/dử liệu. Byte
thấ
p địa chỉ này có thể được chốt ra bên ngoài bởi tín hiệu ALE. Trong khoảng thời gian
còn lại của chu kỳ máy tín hiệu trên bus đa hợp là dử liệu cho bộ nhớ hoặc cổng I/O.
8085A cung cấp các tín hiệu
RD , WR , S0, S1 và MIO/ để điều khiển bus và còn
có tín hiệu
INTA . HOLD và tất cả các ngắt được đồng bộ với xung đồng hồ hệ thống.
8085 còn có các ngỏ SID và SOD phục vụ cho yêu cầu giao tiếp dử liệu nối tiếp.
Ngoài các đặc tính trên, 8085 còn có 3 chân vào tín hiệu ngắt che được, một ngắt
TRAP không che được và một ngắt bus định địa chỉ được INTR.
Ngắt và cổng nối tiếp
8085 có 5 ngỏ vào ngắt: ỈNT, RST 5.5, RST 6.5, RST 7.5 và TRAP. Ngắt INTR có
chức năng giống như ngắt INT của 8080A. Các ngắt RESTART 5.5, 6.6, 7.5 che được
bằng phần mềm, TRAP cũng là 1 ngắt nhưng không che được.
Ba ngắt che được tạo ra một sự thực hiện RESTART bên trong (bằng cách lưu nội
dung thanh ghi PC vào ngăn xếp và nhảy đến địa chỉ RESTART) nếu các ngắt được cho
phép và mặt nạ che không được thiết lập.
Ngắt TRAP sẻ thực hiện vi
ệc RESTART một cách độc lập với mặt nạ che và tín
hiệu cho phép ngắt.
Có hai kiểu tác động ngắt khác nhau: RST 5.5 và RST 6.5 tác động theo mức cao
giống như INTR (và INT trong 8080) và được nhận ra trong cùng khoảng thời gian như
INTR, RST 7.5 tác động cạnh lên
Đối với RST 7.5 chỉ cần một xung để đặt FF phát sinh yêu cầu ngắt. RST 7.5 duy trì
FF này ở trạng thái set cho đến khi yêu cầu ngắt được phục vụ, sau đó nó sẻ tự động bị
xóa. Cũng có thể xóa FF này bằ
ng lệnh SIM hoặc bằng tín hiệu đưa vào chân INRESET .
FF RST 7.5 sẻ được set bởi xung đưa vào chân RST 7.5 khi ngắt này không bị che.
Trạng thái của 3 mặt nạ che ngắt chỉ thay đổi được bằng lệnh SIM và tín hiệu
INRESET .
Mức ưu tiên của các ngắt là cố định như đả giới thiệu ở phần trên. Thư tự ưu tiên
này không được áp dụng cho một chương trình phục vụ ngắt đã được khởi động bởi một
ngắt có ưu tiên cao hơn. Ngắt RST 5.5 có thể dừng chương trình phục vụ của RST 7.5
nếu các ngắt được cho phép trở lại trước khi kết thúc chương trình này.
19
TRAP thường được dùng trong những trường hợp xảy ra sự cố hệ thống, TRAP
được tác động theo cả mức lẩn cạnh. Ngỏ vào TRAP phải lên mức cao và duy trì cho đến
khi nó được chấp nhận và sẻ không được nhận dạng trở lại cho đến khi nó trở về mức
thấp sau đó lại lên mức cao. Điều này ngăn các nguồn kích không mong muốn như nhiểu
hoặc các glitch. Sơ đồ 1.6 mô tả
mạch ngắt TRAP. Lưu ý là chương trình phục vụ một
ngắt bất kỳ (TRAP, RST 7.5, RST 6.5, RST 5.5, INTR) sẻ ngăn các ngắt khác (ngoại trừ
TRAP) cho đến khi một lệnh EI được thực hiện.
Điễm đặc biệt của TRAP là ngăn các ngắt nhưng bảo vệ trạng thái cho phép của
ngắt trước đó. Việc thực hiện lệnh RIM đầu tiên theo sau TRAP cho phép xác định được
các ngắt nào đã được cho phép cũng như không cho phép tr
ước khi xảy ra TRAP. Tất cả
các lệnh RIM tiếp theo cung cấp trạng thái cho phép ngắt hiện hành. Khi lệnh RIM được
thực thi sau INTR hoặc RST 5.5-7.5 sẻ cho biết trạng thái cho phép của ngắt hiện hành
cho thấy các ngắt bị ngăn
Hệ thống cổng giao tiêớ nối tiếp cũng được điều khiển bởi lệnh RIM và SIM, bít SID
được đọc bởi RIM và SIM đặt bít SOD.
Các ngỏ vào X1 và X2
Xung đồng hồ được tạo ra bằng cách đặt vào hai ngỏ này một thạch anh, , mạch
cộmg hưởng LC, mạch RC hoặc một xung dao động ngoài.
Tần số thạch anh thấp nhất phải là 1 MHz và phải gấp đôi tần số xung đồng hồ
mong muốn. 8085AH được thiết kế hoạt động với thạch anh 6 MHz (tần số đồng hồ 3
MHz), 8085AH-2 với thạch anh 10 MHz (đồng hồ 5 MHz) và 8085AH-1 với thạch anh 12
MHz (đồ
ng hồ 6 MHz), nên dùng thạch anh có đặc tính như sau:
Tần số cộng hưởng song song bằng hai lần tần số xung đồng hồ cần thiết
Điện dung nạp C
L
≤ 30 pF.
Điện dung song song C
S
≤ 7 pF
RS điện trở tương đương song song R
S
≤ 75 Ω
Công suất điều khiển 10 mW
Độ dịch tần
±0,005%
Nên nối thêm một tụ 20 pF từ X2 xuống GND, tụ này cần thiết với các thạch anh có
tần số thấp hơn 4 MHz để bảo đảm dao động khởi động đúng tần số. Có thể dùng mạch
cộng hưởng song song LC để xác định tần số dao động cho 8085AH với dung sai
±10%,
giá trị các linh kiện được chọn theo công thức.
Hình 1.6 TRAP và RESET
Yêu cầu
ngắt
ngoài
Yêu cầu
ngắt
Chấp nhận
ngắt trong
20
()
INTEXT CCL2π
1
f
+
=
Để sự biến thiên tần số là ít nhất nên chọn giá trị C
EXT
ít nhất bằng hai lần C
INT
hoặc
30 pF. Không nên dùng mạch LC khi tần số cao hơn 5 MHz.
Tần số dao động có thể được xác định bằng mạch RC cho 8085AH khi không cần
độ chính xác cao. Các dạng mạch dao động tích hợp trong IC có thể tạo nên một thay đổi
lớn về tần số khi dùng RC. Ưu điễm của phương pháp là rẻ tiền và tần số vào khoảng 3
MHz.
Hình 1.7 trình bày các mạch tạo dao động, lưu ý là trong hình (d) và (e) cần thiết
phải có các điện trở kéo lên
để bảo đãm mức cao tại ngỏ ít nhất là 4 V và mức thấp lớn
nhất là 0,8 V
Để điều khiển các tần số lên đến 6 MHz, có thể đưa dao động ngoài vào X1 và để
hở X2 (h 5.d)> Nếu tần số điều khiển từ 6 MHz đến 12 MHz, đổn định tần số được cải
thiện bằng cách điều khiển cả 2 ngỏ X1 và X2 theo sơ đồ đẩy-kéo (h 5.e). Để tránh hiện
tượng dao động tự kích trong 8085AH phải bảo đãm sao cho X2 không được hồi tiếp về
X1 thông qua mạch điều khiển.
Hình 1.7 Sơ đồ mạch tạo dao đông
Tạo trạng thái chờ
Nếu trong hệ thống xử dụng bộ nhớ và các thiết bị ngoại vi có tốc độ chậm. Mạch
điện hình 1.8 sẻ giải quyết vấn đề này bằng cách thêm một trạng thái chờ vào mỗi chu kỳ
máy của 8085A.
21
Đặc tính của D-FF:
•
CLK tác động cạnh lên.
• CLEAR tác động mức thấp.
Cũng giống như 8080, tín hiệu READY để kéo dài thời gian đọc-ghi để thích hợp
với các bộ nhớ tốc độ chậm. HOLD sẻ buộc CPU thả nổi bus dử liệu và địa chỉ.
Thời gian hệ thống
Bộ vi xư lý 8085AH có một bus dử liệu đa hợp. Tín hiệu ALE được dùng để tách lấy
byte thấp địa chỉ trên bus dử liệu. Hình 1.9 cho thấy chu trình nạp lệnh, đọc bộ nhớ và
ghi ra cổng I/O (như xảy ra trong khoảng thời gian thực hiện lệnh OUT). Lưu ý là trong
suốt chu kỳ ghi-đọc I/O địa chỉ cổng I/O được sao chép trên cả hai nửa cao và thấp của
địa chỉ.
Có 7 loại chu kỳ máy có thể xảy ra
được xác định bởi 3 tín hiệu trạng thái: MIO/ ,
S1, S0 và ba tín hiệu điều khiển: RD , WR và INTA các tín hiệu trạng thái có thể dùng
như tín hiệu điều khiển mở rộng VD: Chọn chíp…vì chúng trở nên tích cực tại trạng thái
T1 là lúc khởi đầu của mỗi chu kỳ máy. Các đường điều khiển
RD và WR trở nên tích
cực sau đó và đóng vai trò là lệnh điều khiển trong khi truyền dử liệu.
Thông thường một chu kỳ máy bao gồm 3 trạng thái T với ngoại lệ OPCODE
FETCH gồm 4 hoặc 6 trạng thái T, trạng thái T bất kỳ có thể là 1 trong 10 trạng thái như
trình bày trong bảng dưới đây.
BẢNG CHU KỲ MÁY
Trạng thái Điều khiển
Chu kỳ máy
MIO/
S1 S0
RD WR INTA
OPCODE FETCH (OF) 0 1 1 0 1 1
MEMORY READ (MR) 0 1 0 0 1 1
MEMORY WRITE (MW) 0 0 1 1 0 1
I/O READ (IOR) 1 1 0 0 1 1
I/O WRITE (IOW) 1 0 1 1 0 1
ACKNOWLEDGE
OF INTR (INA)
1 1 1 1 1 0
BUS IDLE (BI) DAD 0 1 0 1 1 1
ACK OF RST, TRAP 1 1 1 1 1 1
HALT TS 0 0 TS TS 1
BẢNG TRẠNG THÁI
Trạng thái & Bus Điều khiển Trạng
thái
S1,S0
MIO/
A
8
-A
15
AD
0
-AD
7
RD , WR
INTA
ALE
T1 X X X X 1 1 1*
T2 X X X X X X 0
Twait X X X X X X 0
Hình 1.8 Mạch tạo trạng thái chờ
22
T3 X X X X X X 0
T4 1 0* X TS 1 1 0
T5 1 0* X TS 1 1 0
T6 1 0* X TS 1 1 0
T
RESET
X TS TS TS TS 1 0
T
HALT
0 TS TS TS TS 1 0
T
HOLD
X TS TS TS TS 1 0
23
BÀI 2
Tên bài:
Tập lệnh 8085A
Mã bài:
CIO 02 31 02
GIỚI THIỆU
Bài học này trình bày đầy đủ về tập lệnh điều khiển của bộ vi xử lý 8085A, đặc tính
chi tiết của từng lệnh: Độ lớn, mả lệnh, thời gian thực hiện, chức năng Kèm theo các ví
dụ nếu cần để làm rỏ hơn tác dụng của lệnh.
Các bài thực tập viết chương trình trong bài học này được nạp và cho chạy kiểm tra
trên KIT thực tập 8085A, hướng dẩn x
ử dụng tham khảo trong tài liệu kèm theo
MỤC TIÊU THỰC HIỆN
• Hiểu được tác dụng các lệnh điều khiển của họ vi xử lý 8085A
• Ứng dụng để viết được các chương trình theo yêu cầu
• Phân tích và hiểu được các chương trình có sẳn
• Thực hiện các ứng dụng thực tế thông qua các mô hình
NỘI DUNG CHÍNH
Nội dung bài học tập trung về các chủ đề chính như sau:
• Khái niệm chung về tập lệnh
• Nhóm lệnh truyền dử liệu
• Nhóm lệnh số học: Công, trừ
• Nhóm lệnh logic: AND, OR, XOR
• Nhóm lệnh so sánh
• Nhóm lệnh nhảy
• Nhóm lệnh CALL, RET
• Nhóm lệnh về ngăn xếp
• Nhóm lệnh điều khiển
24
1. GIỚI THIỆU
Tập lệnh của 8085A gồm tất cả 244 lệnh, được chia thành các nhóm như sau:
Nhóm lệnh truyền dữ liệu
Nhóm lệnh số học-logic
Nhóm lệnh so sánh
Nhóm lệnh nhảy
Nhóm lệnh về ngăn xếp
Nhóm lệnh điều khiển
2. TẬP LỆNH
2.1 Nhóm lệnh truyền dữ liệu
MOV ds, sr
Chức năng Truyền dử liệu giữa các thanh ghi
Mô tả Nội dung trong thanh ghi nguồn (source) được đưa vào
thanh ghi đích (destination), nội dung thanh ghi nguồn
không thay đổi
Bytes: 1
Số trạng thái 4
Mã lệnh 01dddsss
Kết quả
(sr)
→ ds
SrABCDEHL
sss 111 000 001 010 011 100 101
dsABCDEHL
ddd 111 000 001 010 011 100 101
MOV ds, M
Chức năng Truyền dữ liệu từ ô nhớ vào thanh ghi
Mô tả
không thay đổi
Bytes: 1
Số trạng thái 7
Mã lệnh 01ddd110
Kết quả
((HL))
→ ds
MOV M, sr
Chức năng Truyền dữ liệu từ thanh ghi vào ô nhớ
Mô tả
không thay đổi
Bytes: 1
Số trạng thái 7
Mã lệnh 01110sss
Kết quả
(sr)
→ (HL)
MVI ds, data
Chức năng Truyền tức thời dữ liệu 8 bít vào thanh ghi
Mô tả
không thay đổi
25
Bytes: 2
Số trạng thái 7
Mã lệnh 00ddd110
Kết quả
data
→ ds
MVI M, data
Chức năng Truyền tức thời dữ liệu 8 bít vào ơ nhớ
Mơ tả
khơng thay đổi
Bytes: 2
Số trạng thái 10
Mã lệnh 00110110
Kết quả
data
→ (HL)
Ví dụ:
Đòa chỉ Mả đối tượng Chỉ thò Ghi chú
8000 3E 00 MVI A, 00 0
→
A
8002 06 3F MVI B, 3F 3F
→
B
8004 78 MOV A, B (B)
→
A
8005 76 HLT Chấm dứt
Kết quả sau khi thực hiện chương trình: (A) = 3F; (B) = 3F
LXI r
1
, dw
Chức năng Nạp tức thời dữ liệu 16 bít vào cặp thanh ghi
Mơ tả
khơng thay đổi
Bytes: 2
Số trạng thái 10
Mã lệnh 00rr0001
Kết quả
dw
→ rp
R
1
BDHSP
rp BC DE HL SP
rr 00 01 10 11
LDA addr (load accumulator direct)
Chức năng Nạp trực tiếp nội dung ơ nhớ vào A
Mơ tả
khơng thay đổi
Bytes: 2
Số trạng thái 13
Mã lệnh 00111010
Kết quả
(addr)
→ A
LDAX r
1
Chức năng Nạp gián tiếp nội dung ơ nhớ vào A
Mơ tả
khơng thay đổi
Bytes: 1
Số trạng thái 7
Mã lệnh 00rr1010