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

giớt thiệu về vi điều khiển 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 (766.89 KB, 88 trang )

 Luận văn tốt nghiệp Trang 3
CHƯƠNG I
GIỚI THIỆU CHUNG
 Luận văn tốt nghiệp Trang 4
I .LỊCH SỬ PHÁT TRIỂN CỦA VI XỬ LÍ
1. Tóm tắt lòch sử phát triển của vi xử lí:
Sự phát triển của Vi xử lí có thể chia ra thành 5 thế hệ sau:
Thế hệ thứ nhất (1971 - 1973):
Năm 1971, trong khi phát triển các vi mạch cho máy tính
cầm tay, INTEL đã cho ra đời máy tính đầu tiên là 4004 (4 bit số
liệu) và 8008 (8 bit). đặc điểm chung của Vi xử lí thế hệ này này
là:
Độ dài từ thường là 4 bit (có thể dài thêm).
Công nghệ chế tạo PMOS (tốc độ thấp, giá rẻ, khả năng đưa
ra dòng tải nhỏ)
Tốc độ thực hiện lệnh là 1 –10 µs/lệnh với tần số xung đồng
hồ là 0,1 – 0,8 MHz.
Tập lệnh đơn giản, cần có nhiều vi mạch phụ trợ.
Thế hệ thứ 2 (1974 - 1977):
Đại diện cho thế hệ này là các Vi xử lí 8080, 8085 của
INTEL và 6800, 6809 của MOTOROLA và Z80 của ZILOG. Ở thế
hệ này, các Vi xử lí có tập lệnh phong phú hơn, có khả năng phân
biệt đòa chỉ bộ nhớ với dung lượng 64 Kbyte. Một số Vi xử lí có khả
năng phân biệt đươc 265 đòa chỉ cho các thiết bò ngoại vi. Tất cả
các Vi xử lí thế hệ này là được sản xuất bằng công nghệ NMOS
hoặc CMOS, tốc độ thực hiện lệnh là 1 – 8 µs/lệnh với tần số xung
đồng hồ là 1 – 5 MHz.
Thế hệ thứ 3 (1978 - 1982):
Đại diện cho thế hệ này là các bộ Vi xử lí 8086/80186/80286
của INTEL và 68000 /68010 của MOTOROLA . Điểm ưu việt của
các Vi xử lí thế hệ này so với các thế trước đó là chúng có tập


lệnh đa dạng với các lệnh nhân, chia và lệnh thao tác với chuỗi kí
tự. Khả năng phân biệt đòa chỉ cho bộ nhớ hoặc các thiết bò ngoại
vi từ 1 Mbyte đến 16 Mbyte. Các Vi xử lí thế hệ này được sản xuất
bằng công nghệ HMOS và cho phép đạt được tốc độ từ 0,1 µs/lệnh -
1µs/lệnh với tần số đồng hồ là 5 – 10 MHz.
Thế hệ thứ 4 (1983 - 1989):
Các bộ Vi xử lí đại diện cho thế hệ này là các vi xử lí 32 bit
80386/80486 và 64 Bit Pentium của INTEL, các vi xử lí 32 Bit
68020/68030/68040/68060 của MOTOROLA. Đặc điểm của các Vi xử
lí thế hệ này là Bus đòa chỉ đều là 32 Bit và có khả năng làm việc
với bộ nhớ ảo. Các bộ vi xử lí này đều có bộ quản lí bộ nhớ (MMU)
 Luận văn tốt nghiệp Trang 5
và nhiều khi có cả các bộ đồng xử lí toán học ở bên trong. Các Vi
xử lí thế hện này đều được sản xuất bằng công nghệ HCMO.
Thế hệ thứ 5 (1990 - ?):
 Luận văn tốt nghiệp Trang 6
3. Cấu tạo cơ bản của vi xử lí:
Về cơ bản vi xử lí có thể chia làm 3 khối chính:
 Đơ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 bit, 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
nhau như tính số bù bậc hai, 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 bit gọi là mã
đối tượng. Nhưng để dễ viết chương trình một chỉ thò thường được
viết dưới dạng gợi nhớ.
Ở dạng gợi nhớ một chỉ thò đượ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.
Toán hạng (operand): Được viết theo sau mã công tác, cho
biết vò trí dữ liệu cần phải xử lí. Ở dạng mã đối tượng, một chỉ thò
đượ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 chỉ thò được chia làm hai giai
đoạn:
Giai đoạn 1: Nhập mã công tác vào thanh ghi chỉ thò bằng
một chu kì đọc dữ liệu của ô nhớ có nội dung của bộ đếm chương
trình.
Giai đoạn 2: Thi hành chỉ thò bao gồm cả việc đọc các byte
kế tiếp trong bộ nhớ (đối với các chỉ thò nhiều byte). Sau đó, các
toán hạng được xử lí theo qui đònh của mã công tác.
Trong thực tế hai giai đọan thi hành chỉ thò nêu trên lại được
chia làm nhiều bước nhỏ gọi là vi chỉ thò . Đơn vò điều khiển phát
 Luận văn tốt nghiệp Trang 7
ra tín hiệu để điều khiển các vi chỉ thò theo một chương trình gọi
là chương trình vi mô.
4 . Đặc điểm 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 từ:
8bit, 16 bit, 32 bit, 64 bit. Bảng dưới đây liệt kê một số vi xử lí 8
bit thông dụng:
TÊN HÃNG SẢN XUẤT
8080, 8085 INTEL
MC6800, MC6802 MOTOROLA
Z80 ZILOG
F8 FAIRCHILD
TMS9985 TEXAS INSTRUCTMENT
Ưu điểm của vi xử lí nhiều bit là:
Cùng thời gian truy xuất bộ nhớ thì lượng thông tin 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.
Độ dài từ dữ liệu tăng cũng làm tăng số lượng dây dẫn trong
bus dữ liệu. Do đó số chân vi xử lí cũng phải nhiều. Điền này được
giải quyết bằng cách dùng phương pháp đa lộ thời gian (Timer
multiplexer), phương pháp này làm giảm vận tốc truyền dữ liệu.
Dưới đây là một số vi xử lí 16 bit thông dụng:
TÊN HÃNG SẢN XUẤT
8086 INTEL
MC68000 MOTOROLA
Z8000 ZILOG
LSI11 DIGITAL EQUIPMENT
Độ dài từ đòa chỉ: Độ 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 bit tương đương 64K đòa chỉ.
Tập lệnh và các cách đặt đòa chỉ : Tập lệnh (Instruction Set)

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ể khả năng đònh đòa chỉ khác nhau)
 Luận văn tốt nghiệp Trang 8
đối với vi xử lí 8 bit khoảng từ 50 đến 80, vi xử lí 16 bit 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ấ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 lệnh
cần xử lí. Có rất nhiều cách để chỉ vò trí của số liệu như trình bày
sau đây:
Đònh đòa chỉ trực tiếp bằng thanh ghi: 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í là
nội dung chứa trong thanh ghi đó.
Đònh đòa chỉ gián tiếp bằng thanh ghi: Trong trường hợp này
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 vò trì nơi chứa đòa chỉ của số 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 điạ 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: trong phương pháp này vò trí hoặc
giá trò của số liệu cần được xử lí được hiểu ngầm nhờ mã công tác .
Ngoài các đặc điểm trên, vi xử lí cần có các đặc điểm khác cần lưu
ý:
Công nghệ chế tạo linh kiện.
Số lượng nguồn cung cấp.
Tần số xung đồng hồ.
Khả năng truy xuất bộ nhớ: 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í. Các vi xử lí

đầu tiên bò giới hạn về khả năng truy xuất bộ nhớ. Vi xử lí 4004 có
14 đường đòa chỉ nên có thể truy xuất được 2
14
= 16384 ô nhớ. Vi xử
lí 8 bit có 16 đường đòa chỉ nên có thể truy xuất được 2
16
= 65536 ô
nhớ. Vi xử lí 32 bit như 80386 hay 68020 có thể truy xuất 4G ô
nhớ. Vi xử lí có khả năng truy xuất bộ nhớ càng lớn nên có thể
truy xuất các chương trình lớn. Tùy theo ứng dụng cụ thể mà chọn
vi xử lí thích hợp.
Tốc độ làm việc của vi xử lí: Tần số xung clock cung cấp cho
vi xử lí làm việc quyết đònh đến tốc độ làm việc của vi xử lí. Vi xử
lí có tốc độ làm việc càng lớn thì khả năng xử lí lệnh càng nhanh.
Tần số xung clock làm việc của các vi xử lí được cho bởi các nhà
chế tạo.
 Luận văn tốt nghiệp Trang 9
Tên Tần số xung clock Chiều dài từ dữ
liệu
8051 12 MHz 8 bit
Z80A 4 MHz 8 bit
Z80B 6 MHz 8 bit
80286 16 MHz 16 bit
80486DX2-66 66 MHz 32 bit
PENTIUM 66MHz 32 bit
II. CẤU TRÚC PHẦN CỨNG VI XỬ LÍ 8085A
1 . GIỚI THIỆU CHUNG
a .Các họ vi xử lí 8 bit:
Vi xử lí 8 bit là sự cải tiến của vi xử lí 4 bit. Các vi xử lí này
ra đời vào thập niên 70, có rất nhiều hãng chế tạo ra vi xử lí 8 bit

như Intel, Motorola, Zilog…
Các vi xử lí của Intel luôn bắt đầu từ các con số 80XX, được
tính từ vi xử lí 8 bit trở về sau như 8085, 8086, 80186
Bảng sau đây sẽ liệt kê một số vi xử lí của hãng Intel:
 Luận văn tốt nghiệp Trang 10
Tên Năm Chiều dài thanh
ghi
Bus dữ liệu Bộ nhớ
4040 1971 4 4 1K
8088 1972 8 8 16K
8080 1974 8 8 64K
8085 1974 8 8 64K
8086 1978 16 16 1M
8088 1980 16 8 1M
80186 1982 16 16 1M
80188 1982 16 16 1M
80286 1982 16 16 16M
80386 1985 32 32 70T
80386SX 1988 32 16 70T
80486 1989 32 32 70T
Chú ý : K = Kilo(2
10
) , M = Mega(2
20
) , T = Tera(2
40
)
b .Các đặc tính cơ bản của Vi xử lí 8085A:
Vi xử lí 8085A là một vi xử lí bit kênh N có các đặc tính sau:
 Nguồn nuôi 5v ± 10% ; I

max
= 170 mA.
 Tần số xung đồng hồ 6 Mhz.
 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-markable interrupt) và một tích hợp 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ố học: Thập phân, nhò phân và
số 16 bit.
 Đònh đòa chỉ trực tiếp 64 Kbyte ô nhớ.
Họ 8085 của hãng Intel là một sản phẩm mới có tập lệnh
tương thích 100% với họ 8080A và được thiết kế nhằm tăng tốc độ
làm việc của hệ thống dùng 8080 trước đây, nhờ mật độ tích hợp
cao của vi mạch cho phép giảm tới mức tối thiểu số lượng linh
kiện. Trong mạch còn 3 IC cơ bản: 8085(CPU); 8155(RAM) và
8355/8755 (ROM/PROM), 8085 còn kết hợp tất cả các tính năng
của vi mạch tạo xung đồng hồ 8224 và vi mạch điều khiển hệ
thống 8228.
 Luận văn tốt nghiệp Trang 11
Vi xử lí 8085 có cấu tạo Bus dữ liệu đa lộ, đòa chỉ được tách
ra từ 8 bit chung đòa chỉ/dữ liệu, chốt đòa chỉ bên trong của vi mạch
nhớ 8155/8355/8755 cho phép ghép trực tiếp với 8085.
2 . CẤU TRÚC PHẦN CỨNG 8085:
a . Sơ đồ chân:
Hình 2 .1: Sơ đồ chân của Vi xử lí 8085
b . Chức năng, dạng tín hiệu, trạng thái các chân của
vi xử lí 8085 được liệt kê ở bảng sau:

Chân Ký hiệu In/Out
3 state
Ý nghóa
1 , 2 X
1
, X
2
I X
1
, X
2
: là hai ngõ vào đặt thạch anh, mạch
RC, LC để xác đònh tần số xung đồng hồ,
có thể đưa xung dao động ngoài vào X
1
thay
cho thạch anh.
3 RESET OUT O Tín hiệu đồng bộ xung đồng hồ cho biết
CPU đang trong trạng thái Reset, có thể
dùng để đặt lại hệ thống.
4 SOD O Serial output data: Dữ liệu ra nối tiếp được
điều khiển bởi lệnh SIM.
5 SID I Serial input data: Ngõ vào nối tiếp được
đặt vào bit 7 của bộ tích lũy khi thi hành
chỉ thò RIM.
6 TRAP I Tín hiệu 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
A9
A10

A12
A15
A14
A11
X
2
SOD
TRAP
AD1
X
1
RESET
SID
RST 7.5
RST 6.5
RST 5.5
INTR
INTA\
AD0
AD2
AD3
AD4
AD5
AD6
AD7
V
SS
A8
A13
S

0
ALE
WR\
RD\
S
1
IO/M\
READY
RESET IN
CLK OUT
HLDA
HOLD
Vcc
 Luận văn tốt nghiệp Trang 12
ngắt.
7,8,9 INTR I 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ì xung đồng hồ cuối cùng
của chỉ thò. Khi ngắt tác động đến 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.
11 INTA\ O Interrupt acknowledge: Được dùng thay cho
RD\ trong chu kì lệnh sau khi một INTR
chấp nhận, tín hiệu này có thể được dùng

để tác động vi xử lí ngắt 8259 hoặc các
cổng ngắt khác.
19-12 AD7-AD0 0-3 Address/Data: Bus đa lộ đòa chỉ byte thấp
đòa chỉ của bộ nhớ hoặc cổng I/O trong
khoảng thời gian chu kì xung đồng hồ đầu
tiên và là 8 bit dữ liệu trong khoảng 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.
20 Vss Ground.
21-28 A15-A8 0-3 Byte cao đòa chỉ của bộ nhớ 8 bit, các chân
này ở trạng thái Z cao trong các chế độ
HOLD và HALT.
30 ALE 0-3 Address latch enable : Ngõ ra chốt đòa chỉ
ở 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 chốt đòa chỉ trên mạch ngoại
vi, các chân này được treo lên trạng thái Z
cao trong chế độ HOLD và HALT.
31 WR\ 0-3 Write :Dữ liệu trên bus dữ liệu đang được
ghi vào bộ nhớ hoặc cổng I/O, dữ liệu được
thiết lập lại 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
 Luận văn tốt nghiệp Trang 13
32 RD\ 0-3 Read: Dữ liệu được đọc từ bộ nhớ hoặc cổng
I/O và truyền trên bus dữ liệu, ở trạng thái
Z cao trong chế độ HOLD và HALT.
29,33,34, S0,S1,

IO/M\
0-3 Ba bit này cho biết trạng thái chu kì máy.
35 READY I 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ờ trước khi hoàn tất chu kì đọc/ghi.
36 RESET IN I Tín hiệu vào đặt bộ đếm chương trình về
không, xóa cờ cho phép ngắt và FF
HOLDA, các cờ và các thanh ghi khác
không ảnh hưởng (ngoại trừ thanh ghi chỉ
thò), CPU sẽ duy trì trạng thái reset khi
chân này ở mức thấp.
37 CLK O Ngõ ra đồng hồ có tần số bằng phân nửa
tần số dao động tại X
1
39 HOLD I 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 sử
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ủa các đường đòa chỉ , dữ liệu , RD\ , WR\
, IO/M\ và ALE được treo lên trạng thái Z
cao .
38 HLDA O 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
40 Vcc Power : Nguồn cung cấp +5V
c . Giản đồ thời gian của chu kì bus
 Luận văn tốt nghiệp Trang 14
Hình 1.2 : Giản đồ của chu kì đọc
Mỗi chu kì bus tương đương với chu kì máy. Mối liên hệ thời
gian của các tín hiệu luôn khác nhau đối với mỗi loại chu kì máy.
8085 có 4 loại chu kì máy: chu kì READ, chu kì WRITE, chu kì
INTERRUPT ACKNOWLEDGE và chu kì DMA.
Đối với chu kì đọc, có 3 sự thay đổi: đọc bộ nhớ, đọc IO và
đón giải mã lệnh. Sơ đồ thời gian đọc bộ nhớ hoặc đọc IO không có
trạng thái chờ.
Ở chu kì T
1
, bus AD
7
-AD
0
đóng vai trò là bus đòa chỉ A
7
-A
0
,
tín hiệu ALE lên mức logic 1 ở chu kì T1 nên tín hiệu ALE dùng để
chốt 8 bit đòa chỉ thấp A
7
-A
0

vào một IC chốt. Tín hiệu RD\ vẫn ở
mức logic 1 nên quá trình giao tiếp dữ liệu chưa xảy ra.
Ở chu kì T
2
và T
3
, bus AD
7
-AD
0
đóng vai trò là bus dữ liệu
D
7
-D
0
. Tín hiệu ALE lên mức logic 0 nên đòa chỉ trong IC vẫn
không thay đổi. Tín hiệu RD\ xuống mức logic 0 nên bus dữ liệu
D
7
-D
0
chưa đóng vai trò là bus nhận dữ liệu.
Trong cả 3 chu kì T
1
, T
2
, T
3
các đường đòa chỉ A
15

- A
8
,
IO/M\ , S
1
, S
2
, vẫn ở ổn đònh trạng thái. Trong chu kì bus D
7
-D
0
nhận dữ liệu các bit đòa chỉ A
7-
A
0
được chốt trong IC chốt và các bit
đòa chỉ cao A
15
-A
8
vẫn không thay đổi nên vi xử lí sẽ nhận đúng dữ
liệu của ô nhớ cần truy xuất.
Vi xử lí đang đọc bộ nhớ I/O chỉ được phân biệt bằng tín hiệu
IO/M\. Chu kì máy thực hiện một lệnh gồm 4 đến 6 chu kì xung
clock. Chu kì thực hiện được chia làm hai quá trình đón lệnh và
 Luận văn tốt nghiệp Trang 15
thực hiện lệnh. Quá trình đón lệnh giống như quá trình đọc bộ nhớ
tốn khoảng 3 chu kì xung clock từ T
1
đến T

3
. Quá trình giải mã và
thực hiện lệnh tốn thêm 1 đến 3 chu kì xung clock từ T
4
đến T
6
tùy
theo độ phức tạp của lệnh.
Trong trường hợp vi xử lí có tốc độ làm việc cao hơn bộ nhớ
khi có dữ liệu truy xuất sẽ bò sai. Ở chu kì đọc từ bộ nhớ hay ghi
dữ liệu lên bộ nhớ luôn xảy ra ở chu kì T
2
và T
3
. Nếu bộ nhớ có tốc
độ làm việc chậm hơn không kòp gởi dữ liệu ra ở 2 chu kì này thì
vi xử lí sẽ nhận một dữ liệu không xác đònh hay dữ liệu gởi đến bộ
nhớ sẽ bò mất. Trường hợp này được xử lí bằng cách xen thêm một
vài chu kì xung clock vào giữa chu kì T
2
và T
3
bằng cách dùng chân
tín hiệu vào READY. Các chu kì xung clock thêm vào gọi là các chu
kì đợi T
W
.
Hình 1.3
Giản đồ thời gian của các tín hiệu khi vi xử lí bò tác động bởi
các tín hiệu ngắt khác nhau. Trong một quá trình ngắt, vi xử lí sẽ

mất một vài chu kì để thực hiện yêu cầu ngắt đó tùy thuộc vào
lệnh được cung cấp bởi thiết bò ngắt đó.
Khi tác động đến INTR , chu kì máy đầu tiên dùng đều nhập
lệnh cần thực hiện. Do đó, ngắt INTR có cùng giản đồ thời gian ở
chu kì T
1
và tín hiệu INTA\ được gởi đi thay thế cho tín hiệu RD\
và trạng thái của nó dùng để báo cho thiết bò yêu cầu ngắt biết vi
xử lí chấp nhận yêu cầu ngắt này nếu ở mức logic 0.
Nếu lệnh ngắt là lệnh Restart thì vi xử lí cần thêm hai chu
kì máy ghi dữ liệu vào bộ nhớ để cất đòa chỉ trở về sau khi thực
hiện xong chương trình.
Khi Vi xử lí làm việc thì cả 3 Bus ddữ liệu, điều khiển, đòa
chỉ do vi xử lí sử dụng và DMA ở trạng thái ngừng làm việc, khi
muốn chuyển dữ liệu DMA sẽ tác động đến ngõ vào HOLD của Vi
 Luận văn tốt nghiệp Trang 16
xử lí. Nếu Vi xử lí chấp nhận thì nó sẽ trả lời bằng cách tác động
đến ngõ HLDA ở mức logic 1 và các ngõ ra dữ liệu, đòa chỉ và điều
khiển ở trạng thái tổng trở cao để không ảnh hưởng đến dữ liệu.
Vi xử lí luôn kiểm tra ngõ vào HOLD, nếu tín hiệu này xuống
mức logic 0 thì Vi xử lí sẽ trở lại thực hiện đúng công việc đang xử
lí.
Hình 1.4
d . Sơ đồ khối của vi xử lí:
Cấu trúc của tất cả các vi xử lí đều có các khối cơ bản như
ALU, các thanh ghi, khối điều khiển là các mạch logic. Để nắm rõ
nguyên lí làm việc của vi xử lí cần phải khảo sát nguyên lí kết hợp
các khối với nhau để xử lí một chương trình.
Sơ đồ khối của vi xử lí sẽ trình bày cấu trúc của một vi xử
lí . Mỗi vi xử lí khác nhau đều có cấu trúc khác nhau . Ví dụ vi xử

lí 8 bit sẽ khác với vi xử lí 16 bit .
Với mỗi vi xử lí đều có một sơ đồ cấu trúc bên trong và được
cho trong các sổ tay của nhà chế tạo . Sơ đồ cấu trúc ở dạng khối
rất tiện lợi và dễ trình bày nguyên lí hoạt động của vi xử lí :
 Luận văn tốt nghiệp Trang 17
Hình 1.5 :Sơ đồ cấu trúc của Vi xử lí
Trong sơ đồ khôái của vi xử lí bao gồm các khối chính như
sau: Khối ALU, các thanh ghi, khối Control logic. Ngoài ra sơ đồ
khối còn trình bày các đường truyền tải tín hiệu từ nơi này đến nơi
khác và ngoài hệ thống:
e . Chức năng từng khối
α .Chức năng của khối ALU :
ALU là khối quan trọng nhất của vi xử lí, khối ALU chứa các
mạch điện logic chuyên về xử lí dữ liệu. Khối ALU có hai ngõ vào
có tên là “IN” chính là các ngõ vào dữ liệu cho ALU xử lí và một
ngõ ra có tên là “OUT” chính là ngõ ra kết quả dữ liệu sau khi
ALU xử lí dữ liệu xong. Dữ liệu trước khi vào ALU được chứa ở
trong thanh ghi đệm (Temporarily register) có tên là Temp 1 và
Temp 2. Bus dữ liệu bên trong vi xử lí được kết nối với hai ngõ vào
“IN” của ALU thông qua hai thanh ghi đệm. Sự kết nối cho phép
ALU có thể lấy bất kì dữ liệu nào trên Bus dữ liệu bên trong vi xử
lí. Thường thì ALU luôn lấy dữ liệu từ một thanh ghi đặc biệt có
CK READY RD\ WR\ ALE S0 S1 IO/M\ HOLD HLDA RE.IN RE.OUT
A
8
A
15
AD
0
AD

7
INTR INTA\ RST 5.5 RST 6.5 RST 7.5 TRAP
SID SOD
 Luận văn tốt nghiệp Trang 18
tên là Accumulator. Ngõ ra “OUT” của ALU cho phép ALU có thể
gởi kết quả dữ liệu sau khi xử lí xong trên Bus dữ liệu bên trong vi
xử lí, do đó thiết bò kết nối với Bus bên trong đều có thể nhận dữ
liệu này. Thường thì ALU gởi dữ liệu sau khi đã xử lí xong tới
thanh ghi Accumulator.
Ví dụ khi ALU cộng hai dữ liệu thì một trong hai dữ liệu
được chứa trong thanh ghi Accumulator, sau khi phép cộng được
thực hiện bởi ALU thì kết quả sẽ gởi trở lại thanh ghi Accumulator
và lưu trữ ở thanh ghi này. ALU xử lí một dữ liệu hay hai dữ liệu
tùy thuộc vào lệnh hay yêu cầu điều khiển, ví dụ khi cộng hai dữ
liệu thì ALU sẽ xử lí hai dữ liệu và dùng hai ngõ vào “IN” để nhập
dữ liệu , khi tăng một dữ liệu nào đó lên một đơn vò hay lấy bù
một dữ liệu, khi đó ALU chỉ xử lí một dữ liệu và chỉ cần một ngõ
vào “IN”
Khối ALU có thể thực hiện các phép toán xử lí sau
Add Complement OR Exlusive OR
Subtract Shift right Increment
AND Shift left Decrement
Như vậy, chức năng chính của khối ALU là làm thay đổi dữ
liệu hay chuyên về xử lí dữ liệu nhưng không lưu trữ dữ liệu. Để
hiểu rõ thêm chức năng đặc biệt của khối ALU cần khảo sát một vi
xử lí cụ thể.
β . Các thanh ghi bên trong của vi xử lí:
Các thanh ghi bên trong có chức năng lưu trữ tạm thời các dữ
liệu khi xử lí. Trong số các thanh ghi có một vài thanh ghi đặc biệt
khi thực hiện các lệnh đặc biệt, các thanh ghi còn lại gọi là các

thanh ghi thông dụng. Với sơ đồ minh họa ở trên, các thanh ghi
thông dụng có tên Reg B, Reg C, Reg D, Reg E. Các thanh ghi
thông dụng rất hữu dụng cho người lập trình điều này sẽ thấy rõ
qua các chương trình. Số lượng các thanh ghi thông dụng thay đổi
tùy thuộc vào vi xử lí.
Số lượng và cách sử dụng các thanh ghi thông dụng tùy thuộc
vào cấu trúc của từng vi xử lí, nhưng chúng có một vài điểm cơ bản
giống nhau. Càng nhiều thanh ghi thông dụng thì vấn đề lập trình
đơn giản hơn.
Các thanh ghi cơ bản luôn có trong một vi xử lí và
Accumulator register(A), Program counter register (PC), Stack
pointer(SP), Status register (F), các thanh ghi thông dụng, thanh
 Luận văn tốt nghiệp Trang 19
ghi lệnh (Instruction register), thanh ghi đòa chỉ.
Thanh ghi Accumulator:
Thanh ghi Accumulator 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à các phép toán logic đều xảy ra giữa ALU và
Accumulator .
Ví dụ khi thực hiện một lệnh cộng một dữ liệu A với một dữ
liệu B thì một dữ liệu phải chứa trong thanh ghi Accumulator giả
sử là Thanh ghi, sau đó sẽ thực hiện lệnh cộng dữ liệu A (chứa
trong Accumulator) với dữ liệu B (có thể chứa trong ô nhớ hoặc
trong thanh ghi thông dụng), kết quả của lệnh cộng là dữ liệu C sẽ
được đặt trong thanh ghi A thay thế cho dữ liệu A trước đó.
Chú ý:
Kết quả sau khi thực hiện ALU thường gởi vào thanh ghi
Accumulator làm cho dữ liệu trước đó chứa trong Accumulator sẽ bò
mất.
Một chức năng quan trọng của thanh ghi Accumulator là

truyền dữ liệu từ bộ nhớ hoặc từ các thanh ghi bên trong vi xử lí ra
các thiết bò điều khiển bên ngoài thì dữ liệu đó phải chứa trong
thanh ghi Accumulator.
Thanh ghi Accumulator còn nhiều chức năng quan trọng khác
sẽ được thấy rõ qua tập lệnh của một vi xử lí cụ thể, số bit của
thanh ghi Accumulator chính là đơn vò đo của vi xử lí, vi xử lí 8 bit
thì thanh ghi Accumulator có độ dài 8 bit.
Program counter PC:
PC là một thanh ghi có vai trò quan trọng nhất của vi xử lí.
Chương trình là một chuỗi các lệnh nối tiếp nhau trong bộ nhớ của
vi xử lí, các lệnh này sẽ yêu cầu vi xử lí thực hiện chính xác các
công việc để giải quyết một vấn đề, từng lệnh phải đơn giản và
chính xác và các lệnh phải theo đúng một trình tự để chương trình
thực hiện đúng. Chức năng của PC là quản lí lệnh đang thực hiện
và lệnh sẽ được thực hiện tiếp theo.
Thanh ghi PC trong vi xử lí có chiều dài từ dữ liệu lớn hơn
chiều dài từ dữ liệu của vi xử lí . Ví dụ đối với các vi xử lí 8 bit có
65.536 ô nhớ thì thanh ghi PC phải có chiều dài là 16 bit để có thể
truy xuất từng ô nhớ bắt đầu từ ô nhớ 0 đến ô nhớ thứ 65.535.
Nội dung chứa trong thanh ghi PC cũng chính là nội dung
chứa trong thanh ghi đòa chỉ. Trước khi vi xử lí thực hiện một
 Luận văn tốt nghiệp Trang 20
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”.
Đòa chỉ của lệnh đầu tiên được gởi đến IC nhớ thông qua Bus
đòa chỉ 16 bit. Sau đó bộ nhớ sẽ đặt nội dung của ô nhớ lên Bus dữ
liệu. Các nội dung này chính là lệnh, quá trình này gọi là đón lệnh
từ bộ nhớ. Tiếp theo vi xử lí sẽ tự động tăng nội dung của PC để
chuẩn bò đón lệnh kế. PC chỉ được tăng khi vi xử lí bắt đầu thực
hiện lệnh được đón trước đó. Một trong những chương trình có thể

nạp vào PC một giá trò mới, khi lệnh làm thay đổi PC giá trò mới
được thực hiện thì lệnh kế tiếp có thể xảy ra ở một đòa chỉ mới.
Thanh ghi trạng thái (Status register):
Thanh ghi trạng thái 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 cần kiểm tra.
Việc lưu trữ các kết quả kiểm tra cho phép người lập trình thực
hiện việc rẽ nhánh trong chương trình. Khi chương trình rẽ nhánh,
chương trình sẽ bắt đầu tại một vò trí mới. Trong nhánh rẽ có điều
kiện, chương trình rẽ nhánh chỉ được thực hiện khi kết quả kiểm
tra thỏa mãn điều kiện. Thanh ghi trạng thái sẽ lưu trữ kết quả
kiểm tra này.
Các bit thường có một thanh ghi trạng thái được trình bày ở
hình vẽ sau:
S Z x AC x P x C
Chức năng các Bit :
Bit S :(Bit Signal): Bit dấu S = 1 Khi kết quả là số âm
S = 0 Khi kết quả là số dương
Bit Z (Bit Zero) Z = 1 Khi kết quả bằng không
Z = 0 Khi kết quả khác không
Bit AC (Bit tràn) AC = 0 Khi phép tính không tràn
lên Bit thứ 3
AC = 1 Khi phép tính bò tràn lên
Bit thứ 3
Bit P (Parity) :Bit chẳn lẽ P = 0 Khi kết quả là số chẳn
P = 1 Khi kết quả là số lẽ
Bit C (Carry) :Bit nhớ C = 0 Khi kết quả không có số nhớ
C = 1 Khi kết quả có số nhớ
Bit x : Không có ý nghóa
Các lệnh xảy ra trong thanh ghi thường ảnh hưởng đến
thanh ghi trạng thái, ví dụ khi thực hiện một lệnh cộng hai dữ

liệu 8 bit, nếu kết quả lớn hơn 11111111
2
thì bit carry có giá trò là
 Luận văn tốt nghiệp Trang 21
1, bit carry chứa trong thanh ghi trạng thái. Vậy phép cộng làm
cho bit carry có giá trò là 1. Ngược lại nếu kết quả của phép cộng
có giá trò nhỏ hơn 11111111
2
thì bit carry có giá trò là 0. Ví dụ
lệnh tăng hay giảm giá trò của một thanh ghi, nếu kết quả trong
thanh ghi khác 0 thì bit Z bằng 1.
Ý nghiã của các bit trong thanh ghi trạng thái:
1. Carry/ borrow: Là bit carry khi thực hiện một phép cộng có
giá trò tùy thuộc vào kết quả của phép cộng. Kết quả tràn thì bit
carry =1, ngược lại thì carry=0. Là bit borrow khi thực hiện một
phép tính trừ: Nếu số bò trừ lớn hơn số trò thì bit borrow = 0,
ngược lại thì bit borrow = 1. Bit carry hay bit borrow là 1 bit chỉ
được phân biệt khi thực hiện lệnh cụ thể.
2. Zero: Bit Z = 1 khi kết quả của phép toán bằng 0, ngược lại
bit Z= 0.
3. Negative: Bit N = 1 khi bit MSB của thanh ghi có giá trò là 1,
ngược lại bit N = 0.
4. Intermadiate carry: Giống như bit carry nhưng chỉ có tác
dụng đối với phép cộng hay trừ 4 bit thấp.
5. Interrupt Flag: Bit IF có giá trò là 1 khi người lập trình
muốn cho phép ngắt, ngược lại thì không cho phép ngắt.
6. Overflow: Bit này bằng 1 khi bit carry của phép toán cộng
với bit dấu của dữ liệu.
Parity: Bit này có giá trò là 1 khi kết quả của phép toán là số
chẵn, ngược lại thì bit P = 0.

Số lượng các bit có trong thanh ghi trạng thái tùy thuộc vào
từng vi xử lí. Trong một số vi xử lí có thể xóa hoặc đặt các bit
trạng thái của thanh ghi trạng thái.
Thanh ghi con trỏ ngăn xếp (Stack pointer):
Thanh ghi con trỏ ngăn xếp là một thanh ghi quan trọng của
vi xử lí, độ dài từ dữ liệu thanh ghi SP bằng thanh ghi PC, chức
năng của thanh ghi SP gần giống như thanh ghi PC 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. Trong hầu hết các vi xử lí, SP giảm (để chỉ đến ô nhớ tiếp
theo trong ngăn xếp) sau khi thực hiện xong lệnh cất dữ liệu vào
ngăn xếp. Do đó khi được thiết lập giá trò cho thanh ghi SP là đòa
chỉ cuối cùng của ô nhớ.
Stack pointer phải chỉ đến một ô nhớ nào đó do người lập
 Luận văn tốt nghiệp Trang 22
trình thiết lập, quá trình này gọi là khởi tạo con trỏ ngăn xếp.
Nếu không khởi tạo, con trỏ ngăn xếp sẽ chỉ đến một ô nhớ ngẫu
nhiên nào đó. Khi đó lệnh cất dữ liệu vào ngăn xếp có thể ghi đè
lên dữ liệu quan trọng khác làm chương trình xử lí sai hoặc SP chỉ
đến vùng nhớ không phải vùng nhớ của RAM làm chương trình
thực hiện không đúng. Tổ chức của ngăn xếp là vào sau ra trước
(Last in, first out).
Thanh ghi đòa chỉ bộ nhớ:
Mỗi khi vi xử lí truy xuất bộ nhớ thì thanh ghi đòa chỉ phải
tạo ra đúng đòa chỉ mà vi xử lí muốn. Ngõ ra của thanh ghi đòa chỉ
phải được đặt lên Bus đòa chỉ 16 bit. Bus đòa chỉ dùng để lựa chọn
ô nhớ hay lựa chọn một port In/Out.
Nội dung của thanh ghi đòa chỉ ô nhớ và nội dung của thanh
ghi PC là giống nhau khi vi xử lí truy xuất bộ nhớ để đón lệnh, khi
lệnh đang được giải mã thì PC tăng để đón lệnh tiếp theo, trong
khi đó nội dung của thanh ghi đòa chỉ bộ nhớ không tăng trong

suốt chu kì thực hiện lệnh, nội dung của thanh ghi đòa chỉ phụ
thuộc vào lệnh đang thực hiện. Nếu lệnh yêu cầu vi xử lí truy xuất
bộ nhớ thì thanh ghi đòa chỉ bộ nhớ được dùng lần thứ hai trong
khi thực hiện lệnh.
Trong tất cả các vi xử lí, thanh ghi đòa chỉ bộ nhớ bằng thanh
ghi PC.
Thanh ghi lệnh (Instruction Register):
Thanh ghi lệnh dùng để chứa lệnh vi xử lí đang thực hiện.
Một chu kì lệnh bao gồm đón lệnh từ bộ nhớ và thực hiện lệnh.
Đầu tiên là lệnh được đón từ bộ nhớ, sau đóù PC chỉ đến lệnh kế
trong bộ nhớ. Khi một lệnh được đón có nghóa là dữ liệu trong ô
nhớ đó được chép vào vi xử lí thông qua Bus dữ liệu đến 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 đọc nội dung của thanh ghi lệnh. Bộ giải mã sẽ
giải mã lệnh để báo cho vi xử lí thực hiện chính xác công việc mà
lệnh yêu cầu. Chiều dài từ dữ liệu của thanh ghi lệnh tùy thuộc vào
từng vi xử lí.
Thanh ghi lệnh do vi xử lí sử dụng, người lập trình không sử
dụng thanh ghi này.
Thanh ghi chứa dữ liệu tạm thời (Temporary data
Register):
Thanh ghi lưu trữ dữ liệu tạm thời dùng để ALU thực hiện
 Luận văn tốt nghiệp Trang 23
các phép toán xử lí dữ liệu. Do ALU không có chức năng xử lí dữ
liệu nên bất kì dữ liệu nào đến ngõ vào của ALU đều sẽ xuất hiện
ở ngõ ra.
Dữ liệu xuất hiện tại ngõ ra của ALU được quyết đònh bởi
lệnh trong chương trình yêu cầu ALU thực hiện. ALU sẽ lấy dữ
liệu từ Bus dữ liệu bên trong vi xử lí để xử lí dữ liệu, sau đó đặt dữ
liệu vừa xử lí xong trở lại. Thanh ghi Accumulator, do đó cần phải

có thanh ghi lưu trữ dữ liệu tạm thời để ALU thực hiện. Người lập
trình không được phép sử dụng thanh ghi này. Số lượng thanh ghi
tùy thuộc vào từng vi xử lí .
χ
. Khối điều khiển logic (Control logic) và khối giải mã
(Instruction decode):
Chức năng của khối giải mã lệnh là nhận lệnh từ thanh ghi
lệnh sau đó giải mã để gởi tín hiệu điều khiển đến cho khối điều
khiển logic.
Chức năng của khối điều khiển logic là nhận lệnh hay tín
hiệu điều khiển từ bộ giải mã lệnh, sau đó thực hiện đúng yêu cầu
của lệnh. Khối điều khiển logic được xem là một vi xử lí nhỏ trong
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 bộ nhớ, điều khiển các thiết bò ngoại vi, các đường
tín hiệu đọc ghi và các tín hiệu điều khiển vi xử lí từ các thiết bò
ngoài. Các đường tín hiệu này sẽ được trình bày cụ thể trong sơ đồ
của từng vi xử lí cụ thể.
Ngõ tín hiệu vào quan trọng nhất của khối điều khiển logic
là tín hiệu clock cần thiết cho khối điều khiển logic hoạt động. Nếu
không có tín hiệu clock thì vi xử lí không làm việc. Mạch tạo xung
clock là các mạch dao động, tín hiệu được đưa đến ngõ vào clock
của vi xử lí. Có nhiều vi xử lí tích hợp mạch tạo dao động ở bên
trong, khi đó chỉ cần thêm thạch anh bên ngoài.
δ
. Bus dữ liệu bên trong vi xử lí (Internal data bus):
Bus dữ liệu dùng để kết nối các thanh ghi bên trong và ALU
với nhau, tất cả các dữ liệu điều khiển chuyển trong vi xử lí đều
thông qua Bus dữ liệu này. Các thanh ghi bên trong có thể nhận
dữ liệu từ Bus hay có thể đặt dữ liệu lên Bus nên Bus này là Bus

hai chiều. Bus dữ liệu bên trong có thể kết nối ra Bus bên ngoài
khi vi xử lí cần truy xuất dữ liệu từ bộ nhớ bên ngoài hay các thiết
bò vào/ra. Bus dữ liệu bên ngoài cũng là Bus dữ liệu hai chiều vì vi
 Luận văn tốt nghiệp Trang 24
xử lí có thể nhận dữ liệu từ bên ngoài hay gởi dữ liệu ra.
Để biết trình tự làm việc của Bus dữ liệu bên trong vi xử lí
hoạt động như thế nào, hãy cho vi xử lí thực hiện một lệnh cộng
hai số nhò phân chứa trong hai thanh ghi: Thanh ghi Accumulator
(gọi tắt là A) = 1101 1110
2
và thanh ghi D = 1101 1010
2

Trình tự cộng như sau:
Trước khi thực hiện lệnh cộng, nội dung của hai thanh ghi
phải chứa hai dữ liệu và hai thanh ghi này có thể đang kết nối với
các thiết bò khác. Để thực hiện lệnh cộng nội dung hai thanh ghi A
và D thì thanh ghi lệnh phải mang đúng mã lệnh của phép cộng
này và giả sử lệnh đó là ADD.
Dữ liệu của thanh ghi A được đặt lên Bus dữ liệu bên trong vi
xử lí, một trong hai thanh ghi lưu trữ dữ liệu tạm thời được kết nối
với bus dữ liệu. Thanh ghi tạm thời sẽ chép dữ liệu chứa trong
thanh ghi A và thanh ghi tạm thời được kết nối với Bus tại thời
điểm này.
Dữ liệu trong thanh ghi D được kết nối với Bus dữ liệu và
thanh ghi tạm thời còn lại cũng được phép kết nối với Bus dữ liệu.
Thanh ghi tạm thời sẽ chép nội dung thanh ghi D. Chỉ có thanh
ghi D và thanh ghi tạm thời được kết nối với Bus tại thời điểm
này.
ALU sẽ cộng trực tiếp hai dữ liệu tại hai ngõ vào. Ngõ ra của

ALU được kết nối với thanh ghi A, kết quả của phép cộng sẽ được
chứa trong thanh ghi A.
Sau khi đặt kết quả thanh ghi A và cập nhật sự thay đổi các
bit trong thanh ghi trạng thái thì sự kết nối giữa A và ALU chấm
dứt. Các thanh ghi tạm thời trở lại trạng thái sẵn sàng chờ lệnh
tiếp theo.
 Luận văn tốt nghiệp Trang 25
CHƯƠNG II
THIẾT KẾ
PHẦN CỨNG
 Luận văn tốt nghiệp Trang 26
I . THIẾT KẾ MAINBOARD
1 . Thiết kế bộ nhớ
Bộ nhớ là nơi lưu trữ các chương trình do người thiết kế
muốn yêu cầu vi xử lí làm việc, bao gồm các chương trình hệ thống,
chương trình phụ. Các chương trình này được nạp vào ROM nhằm
mục đích tránh mất dữ liệu khi mất điện.
a.Đặt vấn đề :
Bộ nhớ phải đủ dung lượng để chứa tất cả các chương trình
và dữ liệu cần xử lí. Bộ nhớ trong máy tính bao gồm 3 IC nhớ là: 2
EPROM và 1 RAM dung lượng của mỗi linh kiện là 8 Kbyte. Mỗi
IC chiếm 13 đường đòa chỉ từ A
0
- A
12
. Chương trình hệ thống và
các chương trình phụ được nạp lần lượt bắt đầu tại đòa chỉ 0000
H
đến đòa chỉ cuối cùng của ROM là 3FFF
H

. Ngoài ra còn có 1 RAM
dùng để chuyển dữ liệu từ ROM ra mạch quang báo. Do dung lượng
của RAM còn hạn chế nên các câu thông báo cần xuất ra Quang
báo tương đối không dài.
b. Thiết kế chi tiết
Kết nối tổng quát Vi xử lí với bộ nhớ :
Vi xử lí và bộ nhớ giao tiếp qua 3 Bus chính là Bus đòa chỉ,
Bus dữ liệu và Bus điều khiển. Sơ đồ kết nối được minh họa bằng
hình ảnh dưới đây:
Hình 2 .1
Hoạt động :
 Luận văn tốt nghiệp Trang 27
Hoạt động giao tiếp chủ yếu của vi xử lí và bộ nhớ là việc ghi
và đọc dữ liệu từ bộ nhớ của vi xử lí . Hai hoạt động trên tiến
hành theo tuần tự các bước sau :
♦ Hoạt động ghi dữ liệu:
Vi xử lí tạo ra một đòa chỉ của ô nhớ cần lưu trữ dữ liệu, sau
đó đặt đòa chỉ này lên Bus dữ liệu. IC giải mã đòa chỉ sẽ giúp Vi xử
lí xác đònh đòa chỉ của ô nhớ nào cần lưu trữ dữ liệu.
Vi xử lí đặt dữ liệu cần lưu trữ lên bus dữ liệu
Vi xử lí tác động tín hiệu điều khiển lên bus điều khiển, cụ
thể là tín hiệu WR\.
♦ Hoạt động đọc dữ liệu
Vi xử lí tạo ra một đòa chỉ của ô nhớ cần đọc dữ liệu, sau đó
đặt đòa chỉ lên bus đòa chỉ . IC giải mã sẽ giúp cho Vi xử lí chọn
đòa chỉ chính xác .
Vi xử lí tác động tín hiệu điều khiển đọc ở bus điều khiển, cụ
thể là lệnh RD\ .
IC nhớ đặt dữ liệu từ ô nhớ đã được chọn lên bus dữ liệu để
truyền vào Vi xử lí .

Kết nối chi tiết Vi xử lí với bộ nhớ :
Việc kết nối giữa Vi xử lí và bộ nhớ phải nắm rõ các yêu cầu
sau:
Vi xử lí 8085 có dung lượng bộ nhớ là 64 Kbyte có đòa chỉ từ
0000
H
- FFFF
H
(quản lí tất cả 65536 ô nhớ ) . Do đó , khi thiết kế
thì dung lượng bộ nhớ không quá 64 Kbyte . Vì đây là mạch kit
điều khiển quang báo nên không cần dung lượng bộ nhớ cao , nên
mạch chỉ thiết kế với bộ nhớ có dung lượng là 24 Kbyte bao gồm :
2 EPROM có dung lượng 8 Kbyte/1 IC và một SRAM có dung lượng
là 8 Kbyte.
Như vậy vùng nhớ 64 kbyte chỉ sử dụng 24 Kbyte đầu tiên có
đòa chỉ từ 0000
H
- 5FFF
H
. Trong đó, vùng nhớ của 2 EPROM từ
0000
H
- 3FFF
H
, vùng còn lại của SRAM .
Sơ đồ kết nối chi tiết: Trang sau

×