Tải bản đầy đủ (.doc) (48 trang)

đồ án vi mạch hệ vi xử lý 8085a

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (392.89 KB, 48 trang )

Đồ án Vi mạch Trang
BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM

KHOA ĐIỆN
BỘ MÔN ĐIỆN TỬ
Giáo viên hướng dẫn : NGUYỄN ĐÌNH PHÚ
Sinh viên thực hiện: NGUYỄN KIM HUY
2
Đồ án Vi mạch Trang
TP. HCM
1 – …
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM
oOo
KHOA ĐIỆN
ĐỒ ÁN VI MẠCH
HỆ VI XỬ LÝ 8085A
Giáo viên hướng dẫn : NGUYỄN ĐÌNH PHÚ
Sinh viên thực hiện: NGUYỄN KIM HUY
1 – ….
3
Đồ án Vi mạch Trang
Lời mở đầu
òch sử phát triển của Vi xử lý gắn liền với sự phát triển của các vi mạch điện tử
cùng với những công nghệ chế tạo nên chúng. Ngày nay, công nghệ Vi điện tử
phát triển rất mạnh mẽ, sự ra đời của những vi mạch tích hợp cỡ lớn (LSI- Large
Scale Integration) đến cực lớn (VLSI- Very Large Scale Integration) đã mang lại những
thay đổi sâu sắc trong lónh vực kỹ thuật và dân dụng, đặc biệt trong lónh vực điều khiển tự
động. Kỹ thuật Vi xử lý đã phát triển tạo nên sự bùng nổ công nghệ thông tin với sự ra đời


các thế hệ máy tính hiện đại, các trang bò tối tân trong các ngành viễn thông, truyền hình,
đặc biệt là sự ra đời của mạng siêu xa lộ thông tin INTERNET.
L
Để bắt kòp với công nghệ khoa học kỹ thuật tiên tiến, việc học tập và nghiên cứu
Vi xử lý là công việc hết sức cần thiết đối với sinh viên chuyên ngành Kỹ thuật Điện-
Điện tử. Với xu hướng đó, em thực hiện đề tài HỆ VI XỬ LÝ 8085A nhằm đáp ứng nhu
cầu học hỏi của bản thân cũng như kiểm nghiệm lại các kiến thức lý thuyết đã học.
Bộ vi xử lý đầu tiên có khả năng xử lý 4 bit dữ liệu, theo thời gian cũng với sự phát
triển của công nghệ chế tạo bán dẫn, ngày nay đã có các bộ vi xử lý 8 bit, 16 bit, 32 bit.
Sự phát triển về khả năng xử lý dữ liệu của Vi xử lý làm tăng thêm số lượng lệnh điều
khiển và tính toán phức tạp. Đề tài thực hiện việc tìm hiểu, khảo sát cơ chế hoạt động của
bộ Vi xử lý 8 bit, từ đó làm cơ sở cho việc khảo sát các bộ Vi xử lý 16 bit, 32 bit.
Đề tài được thực hiện gồm ba phần chính:
Phần I: Giới thiệu về Hệ thống Vi xử lý.
Phần II: Giới thiệu về Vi xử lý 8085A.
Phần III: Thiết kế Hệ vi xử lý 8085A.
Trong khi thực hiện đề tài này, vì là lần đầu và khả năng cũng như kinh nghiệm
bản thân còn hạn chế do đó khó tránh khỏi thiếu sót, em mong thầy cô và các bạn góp ý
để đồ án này thêm hoàn thiện.
Em xin chân thành cảm ơn thầy NGUYỄN ĐÌNH PHÚ-giáo viên trực tiếp hướng
dẫn, các thầy cô-những người đã từng giảng dạy cung cấp những kiến thức q giá cho em,
và các bạn sinh viên cùng khóa đã đóng góp những ý kiến cho em trong thời gian thực
hiện đồ án này.
TP. HCM, tháng 1 năm ….
Sinh viên thực hiện
NGUYỄN KIM HUY
4
Đồ án Vi mạch Trang
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
oOo






























5

Đồ án Vi mạch Trang
Mục Lục
Trang
Lời mở đầu 1
Phần I: Giới thiệu về Hệ Vi xử lý
I. Sơ lược về Hệ thống Vi xử lý
1. Khối xử lý trung tâm 2
2. Bộ nhớ 2
3. Khối giao tiếp vào ra 3
4. Hệ thống Bus 3
II. Giới thiệu về Vi xử lý 3ù
III. Cấu trúc và họat động của Vi xử lý
1. Cấu trúc cơ bản của một Vi xử lý 4
2. Các đặc điểm bên trong Vi xử lý 4
3. Vi xử lý 8 bit 5
4. Tập lệnh của Vi xử lý 8
Phần II: Vi xử lý 8085A
I. Giới thiệu
1. Đặc tính 10
2. Sơ đồ chân và sơ đồ logic 10
II. Tập lệnh 8085A 16
Phần III: Thiết kế Hệ Vi xử lý 8085
I. Phương án thiết kế 22
II. Phần cứng 22
1. Khảo sát các IC dùng trong thiết kế 22
2. Kết nối 31
III. Phần mềm
1. Chương trình quét phím 36
2. Chương trình quét đèn 36
3. Chương trình minh họa 36

Phụ lục 43
Mục lục 49
6
Đồ án Vi mạch Trang
PHỤ LỤC
1. TÀI LIỆU THAM KHẢO
2. SƠ ĐỒ KHỐI
3. SƠ ĐỒ NGUYÊN LÝ
4. MẠCH IN LỚP TRÊN
5. MẠCH IN LỚP DƯỚI
6. SƠ ĐỒ LẮP LINH KIỆN
7
Đồ án Vi mạch Trang
TÀI LIỆU THAM KHẢO
1. Kỹ thuật Vi xử lý 8085A Trần Văn Trọng
Đại Học Sư Phạm Kỹ Thuật TP.HCM – 1995
2. Sơ đồ chân linh kiện bán dẫn Dương Minh Trí
Sở Giáo Dục và Đào Tạo TP.HCM – 1992
3. Kỹ thuật Vi xử lý Văn Thế Minh
NXB Giáo Dục – 1997
4. Thiết kế và lắp ráp máy vi tính CPU Z80 Hồng Minh Nhựt
NXB Giáo Dục
5. Các đồ án/luận văn tốt nghiệp của sinh viên khóa trước.
8
Đồ án Vi mạch Trang
PHẦN I: Giới thiệu về Hệ vi xử lý
I. Sơ lược về Hệ thống Vi xử lý:
Hệ thống Vi xử lý bao gồm: bộ xử lý trung tâm (CPU: Central Processing Unit), bộ
nhớ và bộ giao tiếp thiết bò ngoại vi. Các khối này liên lạc với nhau thông qua các bus đòa
chỉ, bus dữ liệu và bus điều khiển.

Sơ đồ khối của một hệ Vi xử lý
Chức năng của từng khối:
1. Khối xử lý trung tâm (CPU:Central Processing Unit):
Là khối quan trọng nhất và được xem là bộ não của cả hệ thống. Các hệ Vi xử lý,
các máy tính sử dụng các bộ Vi xử lý làm đơn vò trung tâm xử lý dữ liệu (CPU). CPU điều
khiển tất cả các linh kiện còn lại trong hệ thống thông qua mã lệnh. CPU có rất nhiều
chức năng như thực hiện giao tiếp với bên ngoài, thực hiện các phép toán số học-logic,
vận chuyển số liệu, xuất kết quả, điều khiển giao tiếp với các thiết bò khác.
2. Bộ nhớ (Memory):
Có vai trò quan trọng trong một hệ vi xử lý, là nơi lưu trữ chương trình điều khiển,
các dữ liệu, kết quả trung gian trong qúa trình tính toán, xử lý. Được chia thành hai loại:
- ROM (Read Only Memory): chứa chương trình điều khiển của hệ thống, các dữ
liệu nạp trong ROM không bò xóa đi khi hệ Vi xử lý hoạt động và không bò mất đi khi hệ
thống bò mất nguồn điện cung cấp.
- RAM (Random Access Memory): khi hệ Vi xử lý hoạt động thì chương trình hệ
thống sẽ thiết lập trong RAM những vùng nhớ cần thiết cho hoạt động của hệ thống để
chứa một phần chương trình ứng dụng và các kết quả của chương trình.
9
Bộ xử lý trung tâm
CPU
Bộ nhớ
(Memory)
ROM-RAM
Bộ giao tiếp
vào ra
(I/O)
Các thiết bò
vào ra
Bus đòa chỉ
Bus điều khiển

Bus dữ liệu
Đồ án Vi mạch Trang
3. Khối giao tiếp vào-ra (I/O Interface):
Đây là chiếc cầu nối giữa CPU với thế giới bên ngoài. Một hệ thống Vi xử lý muốn
đưa dữ liệu ra để điều khiển các thiết bò bên ngoài hoặc muốn nhận các dữ liệu từ bên
ngoài vào để xử lý thì phải thông qua bộ giao tiếp vào ra. Các bộ giao tiếp còn được gọi là
các bộ xử lý ngoại vi (PPU: Peripheral Processing Unit).
4. Hệ thống Bus:
Hệ thống các Bus (nhóm nhiều dây hay tín hiệu có cùng chức năng liên lạc) đảm
bảo cho sự liên lạc được thông suốt giữa CPU, các bộ nhớ và bộ giao tiếp ngoại vi.
Có ba loại bus:
- Bus đòa chỉ (address bus): dùng để xác đònh vò trí, dò tìm thông tin trên bộ nhớ, bộ
giao tiếp ngoại vi, chỉ có một chiều là truyền từ CPU ra.
- Bus dữ liệu (data bus): được nối song song từ CPU ra các bộ nhớ và bộ giao tiếp
ngoại vi. Bus này là hai chiều nhưng tại một thời điểm chỉ là thu hoặc phát thông tin.
- Bus điều khiển (control bus): là bus chỉ đònh cho nhiều động tác khác nhau. CPU
dùng để điều khiển trạng thái các linh kiện bên ngoài. Mỗi đường trong Control bus chỉ là
hoặc ra hoặc vào đối với CPU.
II. Giới thiệu về Vi xử lý:
Vi xử lý là một vi mạch điện tử có mật độ tích hợp cao, trong đó bao gồm các vi
mạch số có khả năng nhận, xử lý và xuất dữ liệu. Vi xử lý có chức năng hoạt động như là
một đơn vò xử lý trung tâm (CPU - Central Processing Unit) trong máy tính số. Hoạt động
chính của Vi xử lý là xử lý dữ liệu, quá trình này đượ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 tùy theo yêu cầu của
công việc. Một Vi xử lý có khả năng hiểu và thực hiện rất nhiều yêu cầu điều khiển khác
nhau một cách chính xác trong thời gian rất ngắn. Vi xử lý phải nằm trong một Hệ thống
Vi xử lý thì nó mới phát huy được tác dụng, có nghóa là Vi xử lý phải được kết nối với các
mạch điện bên ngoài và các thiết bò giao tiếp khác.
Chức năng chính của Vi xử lý là xử lý dữ liệu. Để thực hiện được công việc này,
Vi xử lý phải có các mạch logic cho việc xử lý, điều khiển dữ liệu và các mạch logic điều

khiển khác. Các mạch logic sẽ chuyển dữ liệu từ nơi này đến nơi khác và thực hiện các
phép toán trên dữ liệu còn mạch điều khiển sẽ quyết đònh mạch điện nào cho việc xử lý
dữ liệu. Các công việc mà Vi xử lý thực hiện được điều khiển bằng một hay nhiều lệnh.
Tập hợp các lệnh để thực hiện xong một yêu cầu đặt ra được gọi là một chương trình.
Quá trình thực hiện một lệnh của Vi xử lý là đầu tiên Vi xử lý sẽ đón lệnh từ bộ
nhớ, sau đó các mạch logic điều khiển sẽ giải mã lệnh nhằm xác đònh xem lệnh này yêu
cầu Vi xử lý thực hiện công việc gì, cuối cùng Vi xử lý sẽ thực hiện đúng công việc của
các lệnh đã yêu cầu.
10
Đồ án Vi mạch Trang
III. Cấu trúc và hoạt động của Vi xử lý:
1. Cấu trúc cơ bản của một Vi xử lý:
Một Vi xử lý về cơ bản gồm có ba khối chức năng: Đơn vò thực thi, bộ điều khiển
tuần tự và bus giao tiếp.
Sơ đồ khối cấu trúc cơ bản của một Vi xử lý.
2. Các đặc điểm bên trong của Vi xử lý:
a. Chiều dài từ dữ liệu:
Đặc điểm quan trọng nhất của Vi xử lý là chiều dài từ dữ liệu. Vi xử lý đầu tiên có
chiều dài từ dữ liệu là 4 bit, các Vi xử lý sau này có chiều dài từ dữ liệu là 8 bit, 16 bit,
32 bit và 64 bit. Độ dài của từ dữ liệu nói lên tốc độ làm việc và khả năng truy xuất bộ
nhớ của Vi xử lý. Nếu Vi xử lý có chiều dài từ dữ liệu lớn thì tốc độ xử lý công việc nhanh
và khả năng truy xuất bộ nhớ lớn, được dùng trong các công việc xử lý dữ liệu, điều khiển
phức tạp. Nếu Vi xử lý có chiều dài từ dữ liệu nhỏ hơn thì sẽ có tốc độ xử lý công việc
chậm hơn và khả năng truy xuất bộ nhớ cũng bò hạn chế hơn, được dùng trong các công
việc điều khiển và xử lý đơn giản. Các Vi xử lý 8 bit như: 8080A, 8085A của Intel;
MC6800, MC6802 của Motorola; Z80 của Zilog; TMS9985 của Texas Instrument;
Các Vi xử lý 16 bit như 8086, 8088 của Intel; MC68000 của Motorola; Z8000 của Zilog;
b. Độ dài từ đòa chỉ:
Dung lượng bộ nhớ mà Vi xử lý có thể truy xuất là một phần trong cấu trúc của Vi
xử lý. Để truy xuất được bộ nhớ thì Vi xử lý phải biết được đòa chỉ của từng ô nhớ cụ thể,

đòa chỉ của ô nhớ được xác đònh bằng từ đòa chỉ. Độ dài của 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 rất cần thiết cho việc
đònh đòa chỉ cũng phải có khả năng tương ứng.
c. Tốc độ làm việc:
Tần số xung clock cung cấp cho Vi xử lý làm việc quyết đònh tốc độ làm việc của Vi
xử lý, tốc độ này được cho bởi nhà chế tạo. Tốc độ xung clock càng cao thì Vi xử lý làm
việc với tốc độ càng lớn và khả năng xử lý lệnh càng nhanh.
11
Data Register
Address Register
ALU
Instruction Decoder
Program Counter
Control Logic
Đồ án Vi mạch Trang
d. Các thanh ghi:
Trong cấu trúc củaVi xử lý, các thanh ghi giữ một vai trò quan trọng, chúng được
dùng để xử lý dữ liệu. Có nhiều loại thanh ghi trong Vi xử lý với các chức năng khác
nhau, số lượng thanh ghi đóng vai trò rất quan trọng đối với Vi xử lý và người lập trình.
Nếu Vi xử lý có số lượng thanh ghi càng nhiều thì người lập trình có thể viết các chương
trình điều khiển Vi xử lý đơn giản hơn bởi việc sử dụng các thanh ghi được linh động và
đa dạng, điều này làm tăng tốc độ và khả năng xử lý chương trình của Vi xử lý.
e. Tập lệnh:
Bất kì một Vi xử lý nào muốn hoạt động được thì phải có tập lệnh. Do cấu tạo phần
cứng khác nhau nên mỗi Vi xử lý có tập lệnh khác nhau. Tập lệnh của Vi xử lý là một
trong những yếu tố cơ bản để đánh giá tốc độ làm việc của Vi xử lý. Nếu Vi xử lý có
nhiều mạch điện logic bên trong để thực hiện thì số lượng lệnh điều khiển của Vi xử lý
càng nhiều, khi đó Vi xử lý càng lớn và độ phức tạp càng lớn. Tập lệnh của Vi xử lý càng
nhiều thì rất có ích cho người lập trình khi viết chương trình điều khiển cho Vi xử lý.
3. Vi xử lý 8 bit:

Mỗi loại Vi xử lý sẽ có cấu trúc khác nhau nhưng thường có các khối chính như sau:
- Khối đơn vò số học/logic (ALU - Arithmetic Logic Unit).
- Các thanh ghi (Registers).
- Khối điều khiển logic (Control Logic).
Chức năng và nguyên lý hoạt động của các khối như sau:
a. Khối Đơn vò số học-logic (ALU - Arithmetic Logic Unit):
Đây là khối quan trọng nhất của Vi xử lý, khối này chứa các mạch điện logic có
chức năng chính là làm thay đổi dữ liệu. ALU có hai ngõ vào là IN, đó chính là các ngõ
vào dữ liệu cho ALU xử lý và một ngõ ra OUT là ngõ ra kết quả dữ liệu đã được ALU xử
lý. Dữ liệu trước khi đưa vào ALU được chứa ở thanh ghi đệm là TEMP1 và TEMP2.
Thông thường, ALU luôn lấy dữ liệu từ một thanh ghi đặc biệt có tên gọi là Bộ tích lũy
(Accumulator). Ngõ ra OUT cho phép ALU có thể gởi dữ liệu đã được xử lý lên bus dữ
liệu bên trong Vi xử lý, do đó thiết bò nào kết nối với bus đều có thể nhận dữ liệu này,
thường thì ALU gởi dữ liệu đã được xử lý tới Bộ tích lũy. Khối ALU có thể thực hiện các
phép tính và xử lý sau:
Add Subtract And Or Exclusive Or
Shift right Shift left Increment Decrement Complement
12
Đồ án Vi mạch Trang
Sơ đồ khối của một Vi xử lý 8 bit.
b. Các thanh ghi (Registers):
Các thanh ghi cơ bản luôn có trong một Vi xử lý là A, PC, SP, F, các thanh ghi thông
dụng là B, C, D, E, thanh ghi lệnh, thanh ghi đòa chỉ.
Thanh ghi A (Accumulator): hay bộ tích lũy, đây là thanh ghi quan trọng của Vi xử
lý, nó có chức năng là lưu trữ dữ liệu khi tính toán. Hầu hết các phép tính logic và số học
đều diễn ra giữa thanh ghi này và ALU. Nó có chức năng quan trọng khác là truyền dữ
liệu từ ô nhớ hay từ các thanh ghi bên trong ra các thiết bò ngoại vi.
Thanh ghi PC (Program Counter): hay bộ đếm chương trình, là thanh ghi cơ bản của
Vi xử lý. Chức năng của thanh ghi PC là quản lý lệnh đang thực hiện và lệnh sẽ được thực
hiện tiếp theo. Trước khi Vi xử lý thực hiện một chương trình thì thanh ghi PC phải được

nạp một con số, đó chính là đòa chỉ của ô nhớ chứa lệnh đầu tiên của chương trình. Sau
thực hiện việc đón lệnh từ bộ nhớ, Vi xử lý sẽ tự động tăng nội dung PC để chuẩn bò đón
lệnh kế, PC chỉ tăng khi Vi xử lý bắt đầu thực hiện lệnh đón trước đó.
13
Control
logic
Memory Address
Register
High | Low
SP
PC
Accumulator
(A)
Status
Register
Register B Register C
Register D Register E
Register H Register L
TEMP1 TEMP2
8 bit
Data
Bus
16 bit
Address Bus
8-bit internal data bus
External input & output
control lines
IN IN
OUT
ALU

Instruction
Register
Instruction
Decoder
Đồ án Vi mạch Trang
Thanh ghi trạng thái (Status Register): còn được gọi là thanh ghi cờ (Flag Register),
dùng để lưu trữ kết quả của một số lệnh kiểm tra có ảnh hưởng đến thanh ghi này. Các bit
thường có trong thanh ghi cờ là:
- Bit Carry “C”: khi kết quả tràn thì C = 1, ngược lại C = 0.
- Bit Zero “Z” : kết quả bằng 0 thì Z = 1, ngược lại Z = 0.
- Bit Negative “N”: khi bit MSB của thanh ghi là 1 thì N = 1, ngược lại N = 0.
- Bit Intermediate Carry “I”: giống như bit Carry nhưng chỉ có tác dụng với phép
cộng hay trừ trên 4 bit thấp.
- Bit Interupt Flag “IF”: IF = 1 khi người lập trình cho phép ngắt, ngược lại IF = 0.
- Bit Overflow “O”: O = 1 khi bit Carry của phép toán cộng với bit dấu của dữ liệu.
- Bit Parity “P”: P = 1 khi kết quả phép toán là số chẵn, ngược lại P = 0.
Thanh ghi con trỏ ngăn xếp SP (Stack Pointer): chức năng của thanh ghi con trỏ ngăn
xếp là quản lý bộ nhớ ngăn xếp khi có dữ liệu được lưu trữ tạm thời vào ngăn xếp. Cũng
giống như PC, SP cũng tự động chỉ đến ô nhớ kế. Các dữ liệu chứa trong ngăn xếp được tổ
chức theo nguyên tắc vào sau ra trước (LIFO: Last In First Out). Trong hầu hết các Vi xử
lý, SP tự giảm sau khi thực hiện lệnh cất giữ dữ liệu vào ngăn xếp và ngược lại SP sẽ tự
tăng lên để chỉ đến ô nhớ tiếp theo trong ngăn xếp sau khi Vi xử lý thực hiện lệnh lấy dữ
liệu ra khỏi ngăn xếp. Vì thế giá trò cho SP khi thiết lập thường là đòa chỉ cuối cùng của bộ
nhớ. Quá trình này do người lập trình thiết lập được gọi là khởi tạo con trỏ ngăn xếp. Nếu
không được khởi tạo, con trỏ ngăn xếp sẽ chỉ đến một ô nhớ ngẫu nhiên. Khi đó dữ liệu
cất vào ngăn xếp có thể ghi đè lên dữ liệu khác làm chương trình xử lý sai.
Thanh ghi đòa chỉ (Address Register): khi Vi xử lý cần truy xuất bộ nhớ, thanh ghi
đòa chỉ phải tạo ra đúng đòa chỉ mà Vi xử lý mong muốn. Ngõ ra của thanh ghi đòa chỉ được
đặt lên bus đòa chỉ, bus đòa chỉ dùng để lựa chọn một ô nhớ hay một port I/O cần truy xuất.
Thanh ghi lệnh (Instruction Register): dùng để chứa lệnh Vi xử lý đang thực hiện.

Thanh ghi này do Vi xử lý sử dụng, người lập trình không sử dụng.
Thanh ghi chứa dữ liệu tạm thời (Temporary Register): dùng để ALU thực hiện các
phép toán xử lý dữ liệu, người lập trình không sử dụng thanh ghi này.
c. Khối giải mã lệnh và khối điều khiển logic:
Chức năng của khối giải mã lệnh là nhận lệnh từ thanh ghi lệnh sau đó tiến hành
giải mã lệnh rồi đưa tín hiệu điều khiển đến khối điều khiển logic.
d. Các đường bus:
Các khối bên trong Vi xử lý liên hệ với nhau thông qua tập hợp các đường dây để
truyền dữ liệu gọi là bus hệ thống. Chúng được chia ra làm ba loại:
14
Đồ án Vi mạch Trang
- Bus đòa chỉ: có nhiệm vụ đònh ra đòa chỉ của thiết bò cần truy xuất nên mang tính
một chiều, chỉ có Vi xử lý mới đưa dữ liệu lên bus đòa chỉ.
- Bus dữ liệu: dùng để kết nối các thanh ghi bên trong Vi xử lý và ALU, tất cả dữ
liệu di chuyển bên trong Vi xử lý từ khối này đến khối khác đều thông qua bus dữ liệu, do
đó bus dữ liệu mang tính hai chiều. Khi Vi xử lý cần truy xuất dữ liệu từ bộ nhớ hay các
thiết bò I/O bên ngoài thì bus dữ liệu bên trong phải được nối với bus dữ liệu bên ngoài.
- Bus điều khiển: gồm các tín hiệu điều khiển để đảm bảo sự hoạt động đồng bộ
giữa các khối, mỗi tín hiệu điều khiển có một chiều nhất đònh. Khi hoạt động, Vi xử lý đưa
các tín hiệu điều khiển tới các khối khác trong hệ thống, đồng thời Vi xử lý cũng nhận tín
hiệu từ các khối khác gởi về. Điều này không có nghóa bus điều khiển là hai chiều vì Vi
xử lý gởi tín hiệu đi hay nhận tín hiệu về trên các đường tín hiệu khác nhau bên trong bus
điều khiển.
4. Tập lệnh (Instructions) của Vi xử lý:
Mỗi loại Vi xử lý có tập lệnh riêng, số lượng lệnh cũng tùy thuộc vào từng loại Vi
xử lý. Tập lệnh của Vi xử lý có thể được chia làm các nhóm 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ề.
- Nhóm lệnh xuất, nhập.
Mỗi lệnh của Vi xử lý là dữ liệu ở dạng số nhò phân. Khi Vi xử lý nhận được một
lệnh thì từ dữ liệu nhò phân này yêu cầu Vi xử lý thực hiện công việc mà lệnh yêu cầu.
Chiều dài của một lệnh bằng với chiều dài từ dữ liệu của Vi xử lý. Mỗi lệnh mà Vi xử lý
thực hiện gồm hai yếu tố:
- Mã công tác: cho biết thao tác mà Vi xử lý phải thực hiện.
- Toán hạng: được viết theo sau mã công tác, cho biết vò trí dữ liệu cần phải xử lý.
Có nhiều cách để chỉ vò trí của số liệu:
- Đònh đòa chỉ trực tiếp bằng thanh ghi: 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 đó.
15
Đồ án Vi mạch Trang
- Đònh đòa chỉ gián tiếp bằng thanh ghi: toán hạng không phải là đòa chỉ của số
liệu mà chỉ là dấu hiệu cho biết nơi chứa dữ liệu.
- Đònh đòa chỉ trực tiếp: toán hạng là đòa chỉ của dữ liệu cần được xử lý.
- Đònh đòa chỉ tức thời: toán hạng chính là dữ liệu cần được xử lý.
- Đònh đòa chỉ ngầm đònh: vò trí hoặc giá trò của dữ liệu cần được xử lý được hiểu
ngầm nhờ mã công tác.
16
Đồ án Vi mạch Trang
PHẦN II: Vi xử lý 8085A
I. Giới thiệu:
Vi xử lý 8085A được hãng Intel chế tạo vào năm 1974. Đây là một Vi xử lý 8 bit,
có chiều dài từ dữ liệu là 8 bit, chiều dài từ đòa chỉ là 16 bit.
1. Đặc tính:
- Nguồn cung cấp : 5V ± 10%.

- Dòng điện cực đại: I
max
= 170mA.
- Tần số xung clock chuẩn 6MHz.
- Mạch tạo xung clock được tích hợp, có thể dùng thạch anh, RC hay RC bên ngoài.
- Có 5 yêu cầu ngắt: Trong đó có một yêu cầu ngắt không che được (NMI - Non
Maskable Interrupt) và một tương thích với 8080A.
- Có cổng Input/Output nối tiếp.
- Phần mềm tương thích 100% với 8080A.
2. Sơ đồ chân và sơ đồ logic:
Sơ đồ chân
A
8
A
15
- Address bus (output)
Byte cao của đòa chỉ ô nhớ 16 bit hoặc đòa chỉ cổng 8 bit, có cấu tạo ngõ ra 3 trạng
thái. Trạng thái Hi-Z ở chế độ HOLD, HALT và trong lúc RESET.
17
8085A
Ready
Hold
Intr
RST 7.5
RST 6.5
RST 5.5
Trap
Reset In
X
1

X
2
SID
Vcc
Vss
A
15
- A
8
AD
7
- AD
0
ALE
S
0
S
1
RD\
WR\
HLDA
INTA
Reset Out
SOD
CLK Out
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
Vss
Vcc
HOLD
HLDA
CLK 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
Đồ án Vi mạch Trang
AD
0
AD

7
- Address/Data bus (input/output)
Bus đòa chỉ/dữ liệu, làm việc theo phương pháp đa lộ thời gian: Ở chu kỳ đồng hồ
đầu tiên là byte thấp của đòa chỉ ô nhớ hoặc khối xuất nhập, ở hai chu kỳ tiếp theo là dữ
liệu, cấu tạo ngõ ra 3 trạng thái. Trạng thái Hi-Z ở chế độ HOLD, HALT và trong lúc
RESET.
ALE - Address Latch Enable (output)
Ở chu kỳ đầu tiên của xung đồng hồ, ALE = [1] cho biết AD
0
AD
7
là bus đòa chỉ.
Phương pháp đa lộ thời gian
Vi xử lý và chốt đòa chỉ
18
Bus đòa chỉ
Chốt
S
0
S
1
HLDA HOLD
8085A
RESET
RDY CLK INTA ALE RD WR IO/M\ OUT AD
7
- AD
0
A
15

- A
8
RESET IN
Bus điều khiển
Bus dữ
liệu
Tín hiệu ngắt
Address A
15
-A
8
Address A
15
-A
8
A
7
-A
0
A
7
-A
0
Data D
7
-D
0
Data D
7
-D

0
T
1
T
2
T
3
T
1
T
2
T
3
xung clock
A
15
-A
8
AD
7
-AD
0
ALE
RD\
WR\
Chu kỳ viếtChu kỳ đọc
Đồ án Vi mạch Trang
RD\ - Read control (output)
Tác động mức thấp cho biết dữ liệu đang được đọc từ bộ nhớ hoặc cổng. Cấu tạo
ngõ ra 3 trạng thái. Trạng thái Hi-Z ở chế độ HOLD, HALT và trong lúc RESET.

WR\ - Write control (output)
Tác động mức thấp cho biết dữ liệu đang được viết vào bộ nhớ hoặc cổng. Cấu tạo
ngõ ra 3 trạng thái. Trạng thái Hi-Z ở chế độ HOLD, HALT và trong lúc RESET.
READY (input)
Mức cao trong chu kỳ đọc hoặc viết cho biết bộ nhớ hoặc thiết bò ngoại vi đã sẵn
sàng gởi hoặc nhận dữ liệu, Vi xử lý sẽ đợi nếu ngõ này ở mức thấp.
S
0
, S
1
, IO/M\ - status (output)
Ba ngõ ra cho biết trạng thái hoạt động của Vi xử lý.
IO/M\ S
1
S
0
Trạng thái
0 0 1 Viết vào bộ nhớ
0 1 0 Đọc vào bộ nhớ
1 0 1 Viết ra cổng
1 1 0 Đọc từ cổng
0 1 1 Nhận lệnh
1 1 1 Nhận lệnh
1 1 1 Nhận yêu cầu ngắt
* 0 0 HALT
* x x HOLD
* x x RESET
HLDA - Hold Acknowledge (output)
Tín hiệu ra cho biết Vi xử lý chấp nhận quyền sử dụng bus đòa chỉ và bus dữ liệu ở
chu kỳ kế tiếp, ngõ này trở về mức thấp khi không còn yêu cầu HOLD.

INTR - Interrupt Request (input)
Được dùng cho các yêu cầu ngắt công dụng chung, Vi xử lý sẽ nhận ra sau khi thực
hiện xong một chỉ thò, ngắt này có thể được che bằng phần mềm và không có hiệu lực
trong lúc RESET hoặc trong khi Vi xử lý đang thi hành một chương trình phục vụ ngắt.
19
* trạng thái Hi-Z
x không xác đònh
Đồ án Vi mạch Trang
INTA - Interrupt Acknowledge (output)
Ngõ ra mức thấp cho biết Vi xử lý chấp thuận yêu cầu ngắt.
RST 5.5, RST 6.5, RST 7.5 - Restart Interrupt (input)
Ba yêu cầu ngắt có mức độ ưu tiên cao hơn INTR, được điều khiển bởi lệnh SIM.
TRAP (input)
Yêu cầu ngắt có mức độ ưu tiên cao nhất và không che được bằng phần mềm.
Tên Mức ưu tiên Đòa chỉ ngắt (1) Tín hiệu tác động
TRAP 1 24h Cạnh lên và mức cao
RST 7.5 2 3Ch Cạnh lên
RST 6.5 3 34h Mức cao
RST 5.5 4 2Ch Mức cao
INTR 5 (2) Mức cao
(1) Vi xử lý cất PC vào ngăn xếp trước khi nhảy đến đòa chỉ ngắt.
(2) Phụ thuộc vào đòa chỉ gọi ngắt.
Các ngắt được gọi bằng lệnh RST
20
INT0
INT1
INT2
INT3
INT4
INT5

INT6
INT7
Đệm
ba
trạng
thái
1 1 1
INTR\ INTA
Vi xử lý
1 1
D0
D1
D2
D3
D4
D5
D6
D7
A
8
A
15
AD
0
AD
7
74148
Đồ án Vi mạch Trang
INTERRUPT
INT

RESTART
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
Đòa chỉ bộ nhớ
(Hex)
0 1 1 0 0 0 1 1 1 0 0 0 0
1 1 1 0 0 1 1 1 1 0 0 0 8
2 1 1 0 1 0 1 1 1 0 0 1 0
3 1 1 0 1 1 1 1 1 0 0 1 8
4 1 1 1 0 0 1 1 1 0 0 2 0
5 1 1 1 0 1 1 1 1 0 0 2 8
6 1 1 1 1 0 1 1 1 0 0 3 0
7 1 1 1 1 1 1 1 1 0 0 3 8
RESET IN\ (input)
Mức thấp đặt lại bộ đếm chương trình về 0000
H

, xóa FF cho phép ngắt và HLDA.
Bus đòa chỉ, bus dữ liệu và bus điều khiển ở trạng thái Hi-Z trong lúc RESET.
RESET OUT (output)
Báo cho biết CPU đang ở trạng thái RESET, dùng để đặt lại toàn bộ hệ thống, ngõ
ra tương thích TTL.
X
1
, X
2
(input)
Ngõ đặt thạch anh, RC hoặc LC để tạo xung đồng hồ, X
1
còn là ngõ vào của tín
hiệu đồng hồ từ mạch bên ngoài.
CLK - Clock (output)
Ngõ ra xung đồng hồ có tần số bằng phân nửa tín hiệu tại X
1
.
SID - Serial Input Data line (input)
Ngõ vào dữ liệu nối tiếp nạp vào bit 7 của bộ tích lũy khi có lệnh RIM.
SOD - Serial Output Data line (output)
Ngõ ra dữ liệu nối tiếp được xác đònh bởi lệnh SIM.
Vcc Nguồn nuôi +5V.
Vss Mass.
21
Đồ án Vi mạch Trang
Cấu tạo 8085A:
Cấu tạo bên trong của Vi xử lý 8085A có đầy đủ tất cả các khối của một Vi xử lý 8
bit đã được giới thiệu, nhưng có một số điểm khác biệt được thể hiện qua sơ đồ khối sau:
Cấu trúc Vi xử lý 8085A

Cấu tạo Vi xử lý 8085A gồm 3 phần: Đơn vò số học-logic, các thanh ghi và đơn vò
điều khiển. Các thanh ghi trong 8085A được chia ra như sau:
Bộ đếm chương trình (PC) và con trỏ ngăn xếp (SP): là hai thanh ghi có độ dài 16
bit nên Vi xử lý có thể truy xuất được một lượng ô nhớ là 2
16
= 65536 byte hay 64Kbyte.
Bộ tích lũy (Accummulator): Có ký hiệu là A, độ dài 8 bit. Đây là thanh ghi quan
trọng nhất trong Vi xử lý, hầu hết các quá trình tính toán đều xảy ra trên thanh ghi này.
Thanh ghi trạng thái (Status Register): Có tên khác là thanh ghi cờ (Flag), ký
hiệu là F, thanh ghi này có độ dài 8 bit trong đó có 5 bit trạng thái dùng để phản ánh trạng
thái của Vi xử lý khi thực hiện xong một lệnh.
22
HOLD
INTERRUPT CONTROL SERIAL I/O CONTROL
ACCUMULATOR (8) TEMP REG(8)
FLAG (8)
FLIP FLOP
ALU
INSTRUCTION
DECODER AND
MACHINE CYCLE
ENCODING
ADDRESS
BUFFER
DATA/ADDRESS
BUFFER
B
REG (8)
C
REG (8)

D
REG (8)
E
REG (8)
H
REG (8)
L
REG (8)
STACK POINTER
PROGRAM COUNTER
INCREMENTER/
DECREMENTER
TIMING AND CONTROL
CONTROL STATUS DMA RESET
8 BIT INTERNAL DATA BU S
X
1
X
2
CLOCK OUT
READY
RD\ WR\ ALE S
0
S
1
IO/M\ A
15
A
8
ADDRESS BUS

AD
7
AD
0
DATA/ADDRESS BUS
INTR INTA\ RST 7.5 RST 6.5 RST 5.5 TRAP
SID SOD
HLDA
RESET IN
RESET OUT
INSTRUCTION
REGISTER (8)
Đồ án Vi mạch Trang
S Z x AC x P x Cy
S - Sign (bit dấu)
S = 1 Khi kết quả là số âm.
S = 0 Khi kết quả là số dương.
Z - Zero (bit zero)
Z = 1 Khi kết quả bằng 0.
Z = 0 Khi kết quả khác 0.
AC - Auxiliary Carry (bit số nhớ phụ)
AC = 1 Khi phép tính bò tràn trên bit 3.
AC = 0 Khi phép tính không tràn trên bit 3.
P - Parity (bit chẵn lẻ)
P = 1 Khi kết quả là số chẵn.
P = 0 Khi kết quả là số lẻ.
Số chẵn là số có tổng số bit [1] là chẵn, và ngược lại số lẻ là số có tổng số bit [1] là lẻ.
Cy - Carry (bit số nhớ)
Cy = 1 Khi kết quả có số nhớ.
Cy = 0 Khi kết quả không số nhớ.

Các thanh ghi công dụng chung: Gồm 6 thanh ghi có độ dài 8 bit được ký hiệu lần
lượt là B, C, D, E, H và L. Các thanh ghi này có thể kết hợp thành từng cặp 16 bit: BC,
DE, HL và AF, trong đó A, B, D và H là các thanh ghi cao và F, C, E và L là các thanh ghi
thấp.
II. TẬP LỆNH 8085A:
Tập lệnh của 8085A đượ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 về xuất nhập
- Nhóm lệnh điều khiển
23
Đồ án Vi mạch Trang
1. Nhóm lệnh truyền dữ liệu:
MOV ds, sr Truyền dữ liệu từ thanh ghi sr đến thanh ghi ds.
MOV ds, M Truyền dữ liệu từ ô nhớ có đòa chỉ chứa trong cặp thanh ghi HL
vào thanh ghi ds.
MOV M, sr Truyền dữ liệu từ thanh ghi sr vào ô nhớ có đòa chỉ chứa trong cặp
thanh ghi HL.
MVI ds, data Truyền tức thời dữ liệu 8 bit vào thanh ghi ds.
MVI M, data Truyền tức thời dữ liệu 8 bit vào ô nhớ có đòa chỉ chứa trong cặp
thanh ghi HL.
LXI r
p
, dw Nạp tức thời dữ liệu 16 bit vào cặp thanh ghi r
p
.
LDA addr Nạp trực tiếp nội dung ô nhớ có đòa chỉ là addr vào thanh ghi A.

LDAX r
p
Nạp gián tiếp nội dung ô nhớ có đòa chỉ chứa trong cặp thanh ghi
r
p
vào thanh ghi A.
LHLD addr Nạp trực tiếp nội dung ô nhớ có đòa chỉ là addr vào thanh ghi L,
nội dung ô nhớ có đòa chỉ addr+1 vào thanh ghi H.
STA addr Lưu trữ trực tiếp nội dung thanh ghi A vào ô nhớ có đòa chỉ addr.
STAX r
p
Lưu trữ gián tiếp nội dung thanh ghi A vào ô nhớ có đòa chỉ chứa
trong cặp thanh ghi r
p
.
SHLD addr Lưu trữ trực tiếp nội dung thanh ghi L vào ô nhớ có đòa chỉ addr,
nội dung thanh ghi H vào ô nhớ có đòa chỉ addr+1.
XCHG Hoán chuyển nội dung giữa cặp thanh ghi HL với cặp thanh ghi
DE.
2. Nhóm lệnh số học - logic:
ADD sr Cộng không lưu ý số nhớ nội dung thanh ghi A với nội dung thanh
ghi sr.
ADD M Cộng không lưu ý số nhớ nội dung thanh ghi A với nội dung ô nhớ
có đòa chỉ chứa trong cặp thanh ghi HL.
ADI data Cộng không lưu ý số nhớ nội dung thanh ghi A với dữ liệu.
ADC sr Cộng có lưu ý số nhớ nội dung thanh ghi A với nội dung thanh ghi
sr.
ADC M Cộng có lưu ý số nhớ nội dung thanh ghi A với nội dung ô nhớ có
đòa chỉ chứa trong cặp thanh ghi HL.
ACI data Cộng có lưu ý số nhớ nội dung thanh ghi A với dữ liệu.

24
Đồ án Vi mạch Trang
SUB sr Trừ không lưu ý số thiếu nội dung thanh ghi A với nội dung thanh
ghi sr.
SUB M Trừ không lưu ý số thiếu nội dung thanh ghi A với nội dung ô nhớ
có đòa chỉ chứa trong cặp thanh ghi HL.
SUI data Trừ không lưu ý số thiếu nội dung thanh ghi A với dữ liệu.
SBB sr Trừ có lưu ý số thiếu nội dung thanh ghi A với nội dung thanh ghi
sr.
SBB M Trừ có lưu ý số thiếu nội dung thanh ghi A với nội dung ô nhớ có
đòa chỉ chứa trong cặp thanh ghi HL.
SBI data Trừ có lưu ý số thiếu nội dung thanh ghi A với dữ liệu.
ANA sr AND giữa nội dung thanh ghi A với nội dung thanh ghi sr.
ANA M AND giữa nội dung thanh ghi A với nội dung ô nhớ có đòa chỉ
chứa trong cặp thanh ghi HL.
ANI data AND giữa nội dung thanh ghi A với dữ liệu.
ORA sr OR giữa nội dung thanh ghi A với nội dung thanh ghi sr.
ORA M OR giữa nội dung thanh ghi A với nội dung ô nhớ có đòa chỉ chứa
trong cặp thanh ghi HL.
ORI data OR giữa nội dung thanh ghi A với dữ liệu.
XRA sr EXOR giữa nội dung thanh ghi A với nội dung thanh ghi sr.
XRA M EXOR giữa nội dung thanh ghi A với nội dung ô nhớ có đòa chỉ
chứa trong cặp thanh ghi HL.
XRI data EXOR giữa nội dung thanh ghi A với dữ liệu.
INR reg Tăng nội dung thanh ghi reg.
INR M Tăng nội dung ô nhớ có đòa chỉ chứa trong cặp thanh ghi HL.
DCR reg Giảm nội dung thanh ghi reg.
DCR M Giảm nội dung ô nhớ có đòa chỉ chứa trong cặp thanh ghi HL.
INX r
p

Tăng nội dung cặp thanh ghi r
p
.
DCX r
p
Giảm nội dung cặp thanh ghi r
p
.
RRC Đẩy nội dung thanh ghi A về phía phải.
RLC Đẩy nội dung thanh ghi A về phía trái.
RAR Đẩy nội dung thanh ghi A về phía phải ngang qua cy.
RAL Đẩy nội dung thanh ghi A về phía trái ngang qua cy.
DAD r
p
Cộng nội dung cặp thanh ghi HL với nội dung cặp thanh ghi r
p
.
25
Đồ án Vi mạch Trang
DAA Điều chỉnh nội dung bộ tích lũy A.
CMA Nghòch đảo nội dung bộ tích lũy A.
STC Đặt bit cy là [1].
CMC Nghòch đảo bit cy.
3. Nhóm lệnh so sánh:
CMP sr So sánh nội dung thanh ghi A với nội dung thanh ghi sr.
CMP M So sánh nội dung thanh ghi A với nội dung ô nhớ có đòa chỉ chứa
trong cặp thanh ghi HL.
CPI data So sánh nội dung thanh ghi A với dữ liệu.
4. Nhóm lệnh nhảy:
JMP addr Nhảy đến đòa chỉ addr không điều kiện.

J
condition
addr Nhảy đến đòa chỉ addr nếu thỏa điều kiện:
- JNZ Z = 0
- JZ Z = 1
- JNC Cy = 0
- JC Cy = 1
- JPO P = 0
- JPE P = 1
- JP S = 0
- JM S = 1
CALL addr Gọi chương trình con tại đòa chỉ addr.
C
condition
addr Gọi chương trình con tại đòa chỉ addr nếu thỏa điều kiện:
- CNZ Z = 0
- CZ Z = 1
- CNC Cy = 0
- CC Cy = 1
- CPO P = 0
- CPE P = 1
- CP S = 0
- CM S = 1
26

×