Tải bản đầy đủ (.docx) (16 trang)

Cấu trúc vi xử lý 8085

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 (213.85 KB, 16 trang )

Address Register
Data Register
ALU
Instruction Decoder
Program Counter
Logic Control
CẤU TRÚC VI XỬ LÝ 8085
I.CẤU TẠO BÊN TRONG VI XỬ LÝ 8085
1. Cấu trúc của một vi xử lý cơ bản :
Một vi xử lý về cơ bản gồm có 3 khối chức năng: đơn vò thực thi (Execution), bộ điều
khiển tuần tự (Sequencer) và bus giao tiếp.
- Đơn vò thực thi : Xử lý các lệnh số học và logic. Các toán hạng liên quan có mặt ở
các thanh ghi dữ liệu hoặc đòa chỉ hoặc từ bus nội.
- Bộ điều khiển tuần tự : Bao gồm bộ giải mã lệnh (Intrustruction Decoder) và bộ đếm
chương trình (Program Counter).
+ Bộ đếm chương trình gọi các lệnh chương trình tuần tự.
+ Bộ giải mã lệnh thì khởi động các bước cần thiết để thực hiện lệnh.
Bộ điều khiển tuần tự tạo thành một hệ thống logic tuần tự mà cách thức hoạt động của
nó được chứa trong ROM. Nội dung chứa trong ROM được gọi là vi chương trình. Các lệnh bên
ngoài trong trường hợp này xác đònh các đòa chỉ vào vi chương trình.
Khi chương trình bắt đầu thực hiện thì bộ đếm chương trình PC được đặt ở đòa chỉ bắt
đầu, thường là đòa chỉ 0000
H
(với xi xử lý 8 bit). Đòa chỉ này được chuyển đến bộ nhớ thông qua
bus đòa chỉ (Address Bus). Khi tín hiệu Read được đưa vào ở bus đòa chỉ nội dung của bộ nhớ
liên quan xuất hiện trên bus dữ liệu (data bus) và sẽ được chứa ở bộ giải mã lệnh (Instruction
Decoder). Sau khi khởi động một số bước cần thiết để thực thi lệnh nhờ một số chu kỳ máy và
khi lệnh đã thực thi, thì bộ giải mã lệnh làm cho bộ đếm chương trình chỉ đến ô đòa chỉ của lệnh
kế.
Trong đề tài này, sử dụng vi xử lý 8085 là một vi xử lý 8 bit nên dưới đây xin trình bày
cấu trúc của vi xử lý 8085.


Hình 1.1 : Sơ đồ khối của một vi xử lý 8 bit.
Register C
Register E
Register L
16 bit Address Bus
8 bit Data Bus
IN
IN
8 bit Internal data bus Bus
Hình 1.2 : Sơ đồ cấu trúc của một vi xử lý.
Qua sơ đồ trên, ta thấy vi xử lý bao gồm các khối chính sau: khối đơn vò số học/logic
ALU (Arithmatic Logic Unit), các thanh ghi và khối Control Logic. Các khối này liên hệ với
nhau qua các đường dây truyền tín hiệu.
2. Chức năng và nhiệm vụ của các khối trong vi xử lý:
a. Khối ALU (Arithmatic Logic Unit).
Khối đơn vò số học/ logic là khối quan trọng nhất bên trong vi xử lý, khối
ALU chứa các mạch điện logic có chức năng chính là thực hiện các phép toán,
các phép thay đổi số liệu. Cơ sở chính của khối ALU là mạch cộng, nên nó có
khả năng thực hiện các phép xử lý số nhò phân.
Khối ALU có hai ngõ vào và một ngõ ra, các ngõ vào có chức năng chuyển tín hiệu ngõ
vào vào khối ALU để tính toán, sau đó dữ liệu được chuyển đến ngõ ra để chuyển ra ngoài.
Dữ liệu trước khi vào khối ALU được chứa ở thanh ghi TEMP 1 và TEMP 2 là các thanh
ghi đệm. Trong vi xử lý có một thanh ghi đặc biệt có tên là thanh ghi A, hầu hết mọi hoạt động
của ALU đều thông qua thanh ghi này. Thông thường khối ALU nhận dữ liệu từ thanh ghi A rồi
xử lý dữ liệu, sau khi xử lý xong thì lại gởi dữ liệu ra thanh ghi A.
b. Các thanh ghi bên trong vi xử lý.
Các thanh ghi bên trong của vi xử lý có chức năng lưu trữ tạm thời các dữ liệu khi xử lý.
Register B
Register D
Register H

Trong số đó có một vài thanh ghi đặc biệt khi thực hiện lệnh, còn các thanh ghi còn lại là các
thanh ghi thông dụng. Các thanh ghi này giúp cho người lập trình thực hiện chương trình dễ
dàng hơn, số lượng thanh ghi phụ thuộc vào từng loại vi xử lý.
Các thanh ghi trong một vi xử lý gồm có: thanh ghi tích lũy (Accumulator Register), thanh
ghi PC (Program Counter Register), thanh ghi con trỏ ngăn xếp (Stack Pointer Register), thanh
ghi trạng thái (Status Register), các thanh ghi thông dụng, thanh ghi đòa chỉ và thanh ghi lệnh
(Instruction Register).
* Thanh ghi tích lũy (thanh ghi A – Accumulator Register) :
Thanh ghi A là một thanh ghi quan trọng của vi xử lý có chức năng lưu trữ dữ liệu khi tính
toán. Hầu hết các phép toán số học và phép toán logic đều xảy ra giữa ALU và thanh ghi A,
nhưng cần lưu ý rằng hầt hết sau khi thực hiện phép tính, ALU thường gởi dữ liệu vào thanh ghi
A làm dữ liệu trong thanh ghi A trước đó bò mất.
Thanh ghi A thường làm trung gian để trao dữ liệu của vi xử lý với các thiết bò ngoại vi.
Với vi xử lý 8085A, thanh ghi A có độ dài 8 bit.
* Thanh ghi PC (Program Counter Register) :
Thanh ghi PC là thanh ghi quan trọng nhất của vi xử lý. Khi thực hiện một chương trình, các
lệnh của chương trình sẽ được quản lý bằng thanh ghi PC.
Thanh ghi PC sẽ chứa đòa chỉ của các lệnh đang thực hiện của một chương trình. Chính vì
vậy, 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 dữ liệu,
đó chính là đòa chỉ đầu tiên của chương trình. Trong quá trình thực hiện chương trình, vi xử lý tự
động tăng nội dung thanh ghi PC để chuẩn bò đón các lệnh tiếp theo, tuy nhiên trong chương
trình có lệnh có khả năng làm thay đổi nội dung thanh ghi PC.
Với vi xử lý 8085, thanh ghi PC có độ dài 16 bit và khi vi xử lý được reset lại, thanh ghi PC
sẽ tự động nạp cho mình giá trò 0000
H
.
* Thanh ghi trạng thái (Status Register):
Thanh ghi trạng thái còn gọi là thanh ghi cờ (Flag Register – thanh ghi F) dùng để lưu trữ
kết quả của một số lệnh kiểm tra. Việc lưu trữ kết quả của các lệnh kiểm tra giúp cho người lập
trình có khả năng điều khiển chương trình theo các nhánh khác nhau.

Với vi xử lý 8085 cấu trúc của thanh ghi trạng thái như sau:
7 6 5 4 3 2 1 0
S Z x AC x P x CY
Trong đó:
S (signal): bit dấu : S = 1 khi kết quả âm, S = 0 khi kết quả 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 tràn: AC = 1 : phép tính bò tràn trên bit 4.
AC = 0 : phép tính không bò tràn trên bit
4.
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ẻ.
CY (Carry): bit nhớ: CY = 1 khi kết quả có số nhớ.
CY = 0 khi kết quả không có số nhớ.
Các bit x là các bit không được sử dụng thông dụng nên không giới thiệu trong đề tài
này.
* Thanh ghi con trỏ ngăn xếp (Stack Pointer Register – thanh ghi SP):
Thanh ghi con trỏ ngăn xếp là thanh ghi quan trọng của vi xử lý, độ dài dữ liệu của
thanh ghi SP bằng với độ dài dữ liệu của thanh ghi PC. Chức năng của thanh ghi SP là dùng để
quản lý bộ nhớ ngăn xếp khi muốn lưu trữ tạm thời dữ liệu vào ngăn xếp, cũng giống như thanh
ghi PC, thanh ghi SP cũng tự động chỉ tới ô nhớ kế.
Trong các vi xử lý, vò trí con trỏ ngăn xếp luôn tự động giảm để chỉ tới ô nhớ kế tiếp, vì
vậy khi thiết lập giá trò cho thanh ghi con trỏ ngăn xếp phải là đòa chỉ cuối cùng của chương
trình và nó phải nằm trong vùng nhớ RAM. Nếu không khởi tạo đòa chỉ con trỏ ngăn xếp, nó sẽ
chỉ đến một đòa chỉ ngẫu nhiên, do đó dữ liệu cất vào ngăn xếp có thể ghi chồng lên phần
chương trình làm chương trình chạy sai hoặc SP không nằm trong vùng nhớ RAM làm nó không
thực hiện đúng chức năng của mình.
* Thanh ghi đòa chỉ bộ nhớ:
Thanh ghi đòa chỉ ô nhớ có chức năng tạo đúng đòa chỉ ô nhớ mà vi xử lý muốn truy xuất
dữ liệu. Thanh ghi đòa chỉ luôn bằng với thanh ghi PC.
* Thanh ghi lệnh :

Thanh ghi này có chức năng chứa lệnh mà vi xử lý đang thực hiện. Đầu tiên, lệnh được
đón từ bộ nhớ đến chứa trong thanh ghi lệnh, tiếp theo lệnh sẽ được thực hiện, trong khi thực
hiện lệnh, bộ giải mã lệnh sẽ đọc dữ liệu trong thanh ghi lệnh để xử lý và báo chính xác cho vi
xử lý biết yêu cầu của lệnh. Trong suốt quá trình này thanh ghi lệnh không đổi, nó chỉ thay đổi
khi thực hiện lệnh kế tiếp.
Với vi xử lý 8085 thanh ghi lệnh có độ dài dữ liệu là 8 bit.
Người lập trình không có khả năng tác động vào thanh ghi này.
* Thanh ghi chứa dữ liệu tạm thời (Temporary Data Register):
Thanh ghi chứa dữ liệu tạm thời dùng để trợ giúp khối ALU trong quá trình thực hiện
các phép toán. Trong mỗi loại vi xử lý, số lượng các thanh ghi tạm thời khác nhau.
c. Khối điều khiển logic (Logic Control):
Khối điều khiển logic thực chất là các mạch điều khiển logic, có chức năng
nhận lệnh hay tín hiệu điều khiển từ bộ giải mã lệnh và thực hiện việc điều khiển
theo đúng yêu cầu của lệnh. Khối điều khiển logic được xem như là bộ xử lý của
vi xử lý.
Các tín hiệu điều khiển của khối điều khiển logic là các tín hiệu điều khiển các thiết bò
bên ngoài giao tiếp với vi xử lý và các đường điều khiển vi xử lý từ các thiết bò bên ngoài.
Ngõ vào tín hiệu quan trọng nhất trong khối điều khiển logic là ngõ vào xung clock,
phải có tín hiệu này thì khối điều khiển mới hoạt động được. Đồng thời giúp hệ thống hoạt
động được đồng bộ.
d. Các thành phần khác bên trong vi xử lý.
Khối giải mã lệnh (Instruction Decoder):
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.
Các đường dây dẫn:
Các khối bên trong của vi xử lý liên hệ với nhau thông qua các đường dây dẫn. Các
đường dây dẫn được chia làm ba nhóm chính: đường dữ liệu, đường đòa chỉ và đường điều
khiển.
- Đường đòa chỉ: trong vi xử lý 8085, đường dữ liệu của nó gồm 16 đường dây dẫn song
song để truyền tải các bit đòa chỉ. Số đường đòa chỉ cho ta biết số ô nhớ tối đa mà vi xử lý có

khả năng truy xuất được, số ô nhớ được tính bằng công thức 2
n
với n là số đường dây dẫn. Vậy
với vi xử lý 8085A, khả năng truy xuất ô nhớ tối đa là 65536 ô nhớ. Với nhiệm vụ đònh ra đòa
chỉ của thiết bò cần truy xuất nên đường đòa chỉ mang tính một chiều và chỉ có vi xử lý mới có
khả năng đưa đòa chỉ lên đường đòa chỉ.
- Đường dữ liệu: dùng để kết nối các thanh ghi bên trong vi xử lý với các khối khác bên
trong vi xử lý và chuyển dữ liệu ra ngoài. Vi xử lý 8085A có 8 đường dữ liệu. Để các thanh ghi
bên trong vừa có khả năng nhận dữ liệu vừa có khả năng xuất dữ liệu thì đường dữ liệu phải có
tính chất hai chiều.
- Đường điều khiển: bao gồm các tín hiệu điều khiển để bảo đảm sự hoạt động đồng bộ
với nhau giữa các khối. Mỗi tín hiệu điều khiển có một chiều nhất đònh.
3. 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ư
II. 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.

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×