Tải bản đầy đủ (.pdf) (75 trang)

thiết kế mạch quang báo dùng 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 (916.32 KB, 75 trang )

3 Luận văn tốt nghiệp Trang 3







CHƯƠNG I
GIỚI THIỆU CHUNG

















3 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) 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 - ?):
3 Luận văn tốt nghiệp Trang 5

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 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
3 Luận văn tốt nghiệp Trang 6

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) đố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
3 Luận văn tốt nghiệp Trang 7


đò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.
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:

3 Luận văn tốt nghiệp Trang 8


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.
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.
3 Luận văn tốt nghiệp Trang 9

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 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
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

3 Luận văn tốt nghiệp Trang 10

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

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.
3 Luận văn tốt nghiệp Trang 11

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


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
3 Luận văn tốt nghiệp Trang 12

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à 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ì
3 Luận văn tốt nghiệp Trang 13

để 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 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í :
3 Luận văn tốt nghiệp Trang 14








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ó 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
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
3 Luận văn tốt nghiệp Trang 15

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 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
3 Luận văn tốt nghiệp Trang 16

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 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
3 Luận văn tốt nghiệp Trang 17

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à 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.
3 Luận văn tốt nghiệp Trang 18


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 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
3 Luận văn tốt nghiệp Trang 19

đó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 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
3 Luận văn tốt nghiệp Trang 20

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 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


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.
3 Luận văn tốt nghiệp Trang 21












CHƯƠNG II

THIẾT KẾ
PHẦN CỨNG
3 Luận văn tốt nghiệp Trang 22

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 :
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 :
3 Luận văn tốt nghiệp Trang 23

♦ 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

3 Luaän vaên toát nghieäp Trang 24




3 Luận văn tốt nghiệp Trang 25

Các chân A
12
- A
0
của các IC nhớ được đưa lên bus đòa chỉ và nối vào
chân A
12
- A
0
của vi xử lí . Tuy nhiên Vi xử lí 8085 có chân AD
0
- AD
7
được
tích hợp giữa các đường đòa chỉ từ A
7
- A
0
và đường dữ liệu D
7
- D
0
. Do đó,
để tách các chân này ra thì ta phải dùng đến một IC chốt đòa chỉ 74373. Hoạt
động chốt đòa chỉ này được điều khiển bởi Vi xử lí thông qua các chân ALE
và HLDA. Ngõ ra của IC 74373 được đưa lên bus đòa chỉ để nối vào các
đường đòa chỉ từ A
0

- A
7
.
Bus dữ liệu D
7
- D
0
của các IC nhớ được nối thẳng đến các chân AD
7
-
AD
0
của Vi xử lí. Bus dữ liệu là đường trao đổi dữ liệu giữa Vi xử lí với bộ
nhớ và các thiết bò ngoại vi nên có thể xuất nhập tùy vào lệnh điều khiển, do
đó Bus dữ liệu thường được gọi là Bus 2 chiều (Bi-directional Bus).
Trong mạch quang báo này, cả hai EPROM đều được dùng để chứa
chương trình hệ thống và các chương trình con nên Bus dữ liệu giữa ROM với
Vi xử lí là Bus một chiều. Bus dữ liệu giữa RAM với Vi xử lí là Bus hai
chiều
c . Thiết kế mạch giải mã đòa chỉ :
Bộ nhớ và Vi xử lí giao tiếp qua 13 đường đòa chỉ . Để việc truy xuất
đòa chỉ được chính xác tránh nhầm lẫn thì ta phải thiết kế mạch giải mã đòa
chỉ.
Việc thực hiện giải mã đòa chỉ theo tuần tự các bước sau:
♦ Lập bảng đồ đòa chỉ
♦ Sơ đồ khối
♦ Sơ đồ mạch
♦ Giải thích
Bản đồ giải mã đòa chỉ của bộ nhớ:Trang sau


3 Luận văn tốt nghiệp Trang 26

Như vậy ta thấy rằng các chân A
15
- A
13
thay đổi ứng với 8 trạng thái
ngõ ra. Ở đây ta chỉ chọn 3 ngõ ra là 74LS138 là O
0
, O
1
và O
2
, các ngõ ra
còn lại không dùng đến đều được bỏ trống. Các ngõ ra này đều được lần lượt
nối đền CS\ của EPROM
1
, EPROM
2
và RAM
Tuy nhiên, để 74138 làm việc theo đúng yêu cầu thì ta phải nối chân
G
1
lên Vcc, còn chân G
2
\, G
3
\ xuống mức thấp. Để phân biệt được việc giải
mã bộ nhớ hay IO thì vi xử lí còn có thêm chân IO/M\. Chân này có hai trạng
thái làm việc, khi ở mức logic thấp nghóa là Vi xử lí yêu cầu việc giải mã

kiểu bộ nhớ, còn khi ở mức logic cao nghóa là Vi xử lí yêu cầu giải mã kiểu
IO.
Sơ đồ mạch giải mã kiểu bộ nhớ:


Hình 2 .3
2 .THIẾT KẾ KHỐI GIAO TIẾP XUẤT NHẬP :
Khối IO là bộ phận giao tiếp giữa Vi xử lí với các thiết bò bên ngoài,
cụ thể là bàn phím và màn hình quang báo. Khối này thực hiện việc xuất hay
nhập tùy thuộc vào từ điều khiển do Vi xử lí gởi ra.
a . Đặt vấn đề:
Mạch quang báo giao tiếp bên ngoài gồm bàn phím và màn hình
quang báo (Matrận led), do đó ta dùng hai vi mạch giao tiếp là 8255A với hai
chức năng khác nhau:
IC 8255-I dùng để quét phím và IC còn lại dùng để xuất dữ liệu ra Ma
trận Led.
IC 8255A giao tiếp với Vi xử lí bằng 8 byte cao có đòa chỉ từ A8 - A15.
Khi được thiết kế làm thiết bò I/O, do đó việc giải mã cũng phức tạp hơn giải
mã kiểu bộ nhớ. Tương tự như bộ nhớ, IC 8255A cũng có đòa chỉ rõ ràng khi
vi xử lí cần truy xuất tới.
b. Thiết kế chi tiết :
Lý thuyết :
IC 8255A thứ nhất được thiết kế kiểu I/O nên IC này giao tiếp với Vi
xử lí thông qua 3 bus chính là Bus dữ liệu, Bus điều khiển, Bus đòa chỉ. Trong
đó, Bus đòa chỉ dùng từ A
15
- A
8
của Vi xử lí, trong đó hai chân A
0

, A
1
của IC
3 Luận văn tốt nghiệp Trang 27

8255A được nối vào A
8
, A
9
của Vi xử lí , các chân còn lại từ A
10
- A
15
được
đưa qua mạch giải mã đòa chỉ để chọn đúng IC cần truy xuất .
Các đường dữ liệu D
7
- D
0
cũng được nối trực tiếp AD
7
- AD
0
của Vi
xử lí , đồng thời nối song song với tất cả các bus dữ liệu của bộ nhớ
Vì được thiết kế kiểu I/O nên Bus dữ liệu của IC 8255A là Bus hai
chiều , đọc ra hay viết vào đều phụ thuộc vào hai chân RD\ , WR\ giữa Vi xử
lí vớ 8255A.
IC 8255A giao tiếp với Vi xử lí bằng hai chân A
0

, A
1
và khi truy xuất
I/O thì Vi xử lí sử dụng các đường từ A
8
- A
15
. Như vậy , ngoài hai chân A
8
,
A
9
đã nối vào A
0
, A
1
thì các chân còn lại từ A
10
- A
15
sẽ được đưa vào mạch
giải mã đòa chỉ .
Vì chỉ có hai đường đòa chỉ nên IC 8255A chỉ sử dụng 4 đường đòa chỉ,
do đó nhóm thiết kế như sau :
♦ IC 8255A thứ nhất dùng để quét phím có đòa chỉ từ 00
H
- 03
H
.
Trong đó :

Port A có đòa chỉ là 00
H

Port B có đòa chỉ là 01
H

Port C có đòa chỉ là 02
H

Thanh ghi điều khiển có đòa chỉ là 03
H

Từ điều khiển gởi ra thanh ghi điều khiền của IC này là ; CW = 92
H

♦ IC 8255A thứ hai dùng để quét Ma trận có đòa chỉ từ 10
H
đến 13
H

Trong đó :
Port A có đòa chỉ là 10
H

Port B có đòa chỉ là 11
H
Port C có đòa chỉ là 12
H

Thanh ghi điều khiển có đòa chỉ là 13

H

Từ điều khiển gởi ra thanh ghi điều khiển của IC này là : CW = 80
H

Từ các yêu cầu trên , ta xây dựng bảng đồ đòa chỉ như sau :
A
15
A
14
A
13
A
12
A
11
A
10
A
9
A
8

8255I 00 0 0 0 0 0 0 0 0
03 0 0 0 0 0 0 1 1
8255II 10 0 0 0 1 0 0 0 0
13 0 0 0 1 0 0 1 1
Dựa vào bản đồ đòa chỉ ta chọn các chân A
15
- A

10
để giải mã , tương
tự như trên ta dùng IC 74LS138 để giải mã , vì có 6 ngõ vào trong khi đó
74LS138 chỉ có 5 chân (một chân G
1
đã nối vào IO/M\ của Vi xử lí ) . Do đó,
việc kết nối các chân này được thực hiện như sau :
Ba chân A
12
- A
10
lần lượt nối vào ngõ A , B , C của IC 74LS138 .
Chân A
13
nối vào G
2
\ của IC 74LS138 .

×